texlive[46590] Build/source/utils: new utility package axodraw2

commits+karl at tug.org commits+karl at tug.org
Sun Feb 11 00:30:32 CET 2018


Revision: 46590
          http://tug.org/svn/texlive?view=revision&revision=46590
Author:   karl
Date:     2018-02-11 00:30:32 +0100 (Sun, 11 Feb 2018)
Log Message:
-----------
new utility package axodraw2 (executable axohelp)

Modified Paths:
--------------
    trunk/Build/source/Makefile.in
    trunk/Build/source/configure
    trunk/Build/source/doc/tlbuild.info
    trunk/Build/source/libs/Makefile.in
    trunk/Build/source/libs/configure
    trunk/Build/source/m4/ChangeLog
    trunk/Build/source/m4/kpse-pkgs.m4
    trunk/Build/source/texk/Makefile.in
    trunk/Build/source/texk/configure
    trunk/Build/source/utils/ChangeLog
    trunk/Build/source/utils/Makefile.in
    trunk/Build/source/utils/autosp/ac/withenable.ac
    trunk/Build/source/utils/configure

Added Paths:
-----------
    trunk/Build/source/utils/axodraw2/
    trunk/Build/source/utils/axodraw2/ChangeLog
    trunk/Build/source/utils/axodraw2/Makefile.am
    trunk/Build/source/utils/axodraw2/Makefile.in
    trunk/Build/source/utils/axodraw2/TLpatches/
    trunk/Build/source/utils/axodraw2/TLpatches/TL-Changes
    trunk/Build/source/utils/axodraw2/ac/
    trunk/Build/source/utils/axodraw2/ac/withenable.ac
    trunk/Build/source/utils/axodraw2/aclocal.m4
    trunk/Build/source/utils/axodraw2/axodraw2-src/
    trunk/Build/source/utils/axodraw2/axodraw2-src/AUTHORS
    trunk/Build/source/utils/axodraw2/axodraw2-src/COPYING
    trunk/Build/source/utils/axodraw2/axodraw2-src/ChangeLog
    trunk/Build/source/utils/axodraw2/axodraw2-src/INSTALL
    trunk/Build/source/utils/axodraw2/axodraw2-src/Makefile.am
    trunk/Build/source/utils/axodraw2/axodraw2-src/NEWS
    trunk/Build/source/utils/axodraw2/axodraw2-src/README
    trunk/Build/source/utils/axodraw2/axodraw2-src/axodraw2-man.pdf
    trunk/Build/source/utils/axodraw2/axodraw2-src/axodraw2-man.tex
    trunk/Build/source/utils/axodraw2/axodraw2-src/axodraw2.sty
    trunk/Build/source/utils/axodraw2/axodraw2-src/axohelp.1
    trunk/Build/source/utils/axodraw2/axodraw2-src/axohelp.c
    trunk/Build/source/utils/axodraw2/axodraw2-src/axohelp.test
    trunk/Build/source/utils/axodraw2/axodraw2-src/configure.ac
    trunk/Build/source/utils/axodraw2/axodraw2-src/example.tex
    trunk/Build/source/utils/axodraw2/axodraw2-src/test.ax1
    trunk/Build/source/utils/axodraw2/axodraw2-src/test.ax2-std
    trunk/Build/source/utils/axodraw2/configure
    trunk/Build/source/utils/axodraw2/configure.ac

Property Changed:
----------------
    trunk/Build/source/
    trunk/Build/source/utils/autosp/ac/withenable.ac

Index: trunk/Build/source
===================================================================
--- trunk/Build/source	2018-02-10 23:28:32 UTC (rev 46589)
+++ trunk/Build/source	2018-02-10 23:30:32 UTC (rev 46590)

Property changes on: trunk/Build/source
___________________________________________________________________
Modified: svn:ignore
## -1 +1,3 ##
+Work
+inst
 autom4te.cache
Modified: trunk/Build/source/Makefile.in
===================================================================
--- trunk/Build/source/Makefile.in	2018-02-10 23:28:32 UTC (rev 46589)
+++ trunk/Build/source/Makefile.in	2018-02-10 23:30:32 UTC (rev 46590)
@@ -122,6 +122,7 @@
 	$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/tardate.ac \
 	$(top_srcdir)/version.ac \
 	$(top_srcdir)/utils/autosp/ac/withenable.ac \
+	$(top_srcdir)/utils/axodraw2/ac/withenable.ac \
 	$(top_srcdir)/utils/devnag/ac/withenable.ac \
 	$(top_srcdir)/utils/lacheck/ac/withenable.ac \
 	$(top_srcdir)/utils/m-tx/ac/withenable.ac \

Modified: trunk/Build/source/configure
===================================================================
--- trunk/Build/source/configure	2018-02-10 23:28:32 UTC (rev 46589)
+++ trunk/Build/source/configure	2018-02-10 23:30:32 UTC (rev 46590)
@@ -786,6 +786,7 @@
 enable_cxx_runtime_hack
 enable_libtool_hack
 enable_autosp
+enable_axodraw2
 enable_devnag
 enable_lacheck
 enable_m_tx
@@ -1596,6 +1597,7 @@
   --enable-cxx-runtime-hack  link C++ runtime statically
   --enable-libtool-hack   ignore libtool dependency_libs
   --disable-autosp        do not build the autosp package
+  --disable-axodraw2      do not build the axodraw2 package
   --disable-devnag        do not build the devnag package
   --disable-lacheck       do not build the lacheck package
   --disable-m-tx          do not build the m-tx package
@@ -4182,7 +4184,8 @@
 esac
 
 ## utils/autosp/ac/withenable.ac: configure.ac fragment for TeX Live subdir
-## configure options and TL libraries required for vlna
+## $Id$
+## configure options and TL libraries required for autosp.
 # Check whether --enable-autosp was given.
 if test "${enable_autosp+set}" = set; then :
   enableval=$enable_autosp;
@@ -4199,6 +4202,25 @@
     ;;
 esac
 
+## utils/autosp/ac/withenable.ac: configure.ac fragment for TeX Live subdir
+## $Id$
+## configure options and TL libraries for axodraw2.
+# Check whether --enable-axodraw2 was given.
+if test "${enable_axodraw2+set}" = set; then :
+  enableval=$enable_axodraw2;
+fi
+case $enable_axodraw2 in #(
+  yes|no) :
+     ;; #(
+  *) :
+
+   enable_axodraw2=$enable_all_pkgs
+     { $as_echo "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-axodraw2=$enable_axodraw2'" >&5
+$as_echo "$as_me: Assuming \`--enable-axodraw2=$enable_axodraw2'" >&6;}
+     ac_configure_args="$ac_configure_args '--enable-axodraw2=$enable_axodraw2'"
+    ;;
+esac
+
 ## utils/devnag/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory utils/devnag/
 ## configure options and TL libraries required for devnag
 # Check whether --enable-devnag was given.

Modified: trunk/Build/source/doc/tlbuild.info
===================================================================
(Binary files differ)

Modified: trunk/Build/source/libs/Makefile.in
===================================================================
--- trunk/Build/source/libs/Makefile.in	2018-02-10 23:28:32 UTC (rev 46589)
+++ trunk/Build/source/libs/Makefile.in	2018-02-10 23:30:32 UTC (rev 46590)
@@ -120,6 +120,7 @@
 	$(top_srcdir)/../m4/kpse-zziplib-flags.m4 \
 	$(top_srcdir)/../version.ac \
 	$(top_srcdir)/../utils/autosp/ac/withenable.ac \
+	$(top_srcdir)/../utils/axodraw2/ac/withenable.ac \
 	$(top_srcdir)/../utils/devnag/ac/withenable.ac \
 	$(top_srcdir)/../utils/lacheck/ac/withenable.ac \
 	$(top_srcdir)/../utils/m-tx/ac/withenable.ac \

Modified: trunk/Build/source/libs/configure
===================================================================
--- trunk/Build/source/libs/configure	2018-02-10 23:28:32 UTC (rev 46589)
+++ trunk/Build/source/libs/configure	2018-02-10 23:30:32 UTC (rev 46590)
@@ -695,6 +695,7 @@
 enable_cxx_runtime_hack
 enable_libtool_hack
 enable_autosp
+enable_axodraw2
 enable_devnag
 enable_lacheck
 enable_m_tx
@@ -1483,6 +1484,7 @@
   --enable-cxx-runtime-hack  link C++ runtime statically
   --enable-libtool-hack   ignore libtool dependency_libs
   --disable-autosp        do not build the autosp package
+  --disable-axodraw2      do not build the axodraw2 package
   --disable-devnag        do not build the devnag package
   --disable-lacheck       do not build the lacheck package
   --disable-m-tx          do not build the m-tx package
@@ -3362,7 +3364,8 @@
 esac
 
 ## utils/autosp/ac/withenable.ac: configure.ac fragment for TeX Live subdir
-## configure options and TL libraries required for vlna
+## $Id$
+## configure options and TL libraries required for autosp.
 # Check whether --enable-autosp was given.
 if test "${enable_autosp+set}" = set; then :
   enableval=$enable_autosp;
@@ -3379,6 +3382,25 @@
     ;;
 esac
 
+## utils/autosp/ac/withenable.ac: configure.ac fragment for TeX Live subdir
+## $Id$
+## configure options and TL libraries for axodraw2.
+# Check whether --enable-axodraw2 was given.
+if test "${enable_axodraw2+set}" = set; then :
+  enableval=$enable_axodraw2;
+fi
+case $enable_axodraw2 in #(
+  yes|no) :
+     ;; #(
+  *) :
+
+   enable_axodraw2=$enable_all_pkgs
+     { $as_echo "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-axodraw2=$enable_axodraw2'" >&5
+$as_echo "$as_me: Assuming \`--enable-axodraw2=$enable_axodraw2'" >&6;}
+     ac_configure_args="$ac_configure_args '--enable-axodraw2=$enable_axodraw2'"
+    ;;
+esac
+
 ## utils/devnag/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory utils/devnag/
 ## configure options and TL libraries required for devnag
 # Check whether --enable-devnag was given.

Modified: trunk/Build/source/m4/ChangeLog
===================================================================
--- trunk/Build/source/m4/ChangeLog	2018-02-10 23:28:32 UTC (rev 46589)
+++ trunk/Build/source/m4/ChangeLog	2018-02-10 23:30:32 UTC (rev 46590)
@@ -1,3 +1,7 @@
+2018-02-09  Karl Berry  <karl at freefriends.org>
+
+	* kpse-pkgs.m4 (kpse_utils_pkgs): add axodraw2.
+
 2018-01-08  Karl Berry  <karl at freefriends.org>
 
 	* ax_cxx_compile_stdcxx.m4: move from dvisvgm; original from

Modified: trunk/Build/source/m4/kpse-pkgs.m4
===================================================================
--- trunk/Build/source/m4/kpse-pkgs.m4	2018-02-10 23:28:32 UTC (rev 46589)
+++ trunk/Build/source/m4/kpse-pkgs.m4	2018-02-10 23:30:32 UTC (rev 46590)
@@ -1,6 +1,6 @@
 # $Id$
 # Private Autoconf macros for the TeX Live (TL) tree.
-# Copyright 2016 Karl Berry <tex-live at tug.org>
+# Copyright 2016-2018 Karl Berry <tex-live at tug.org>
 # Copyright 2009-2015 Peter Breitenlohner <tex-live at tug.org>
 #
 # This file is free software; the copyright holder
@@ -84,6 +84,7 @@
 AC_DEFUN([KPSE_UTILS_PKGS], [dnl
 m4_define([kpse_utils_pkgs], [dnl
 autosp
+axodraw2
 devnag
 lacheck
 m-tx

Modified: trunk/Build/source/texk/Makefile.in
===================================================================
--- trunk/Build/source/texk/Makefile.in	2018-02-10 23:28:32 UTC (rev 46589)
+++ trunk/Build/source/texk/Makefile.in	2018-02-10 23:30:32 UTC (rev 46590)
@@ -120,6 +120,7 @@
 	$(top_srcdir)/../m4/kpse-zziplib-flags.m4 \
 	$(top_srcdir)/../version.ac \
 	$(top_srcdir)/../utils/autosp/ac/withenable.ac \
+	$(top_srcdir)/../utils/axodraw2/ac/withenable.ac \
 	$(top_srcdir)/../utils/devnag/ac/withenable.ac \
 	$(top_srcdir)/../utils/lacheck/ac/withenable.ac \
 	$(top_srcdir)/../utils/m-tx/ac/withenable.ac \

Modified: trunk/Build/source/texk/configure
===================================================================
--- trunk/Build/source/texk/configure	2018-02-10 23:28:32 UTC (rev 46589)
+++ trunk/Build/source/texk/configure	2018-02-10 23:30:32 UTC (rev 46590)
@@ -695,6 +695,7 @@
 enable_cxx_runtime_hack
 enable_libtool_hack
 enable_autosp
+enable_axodraw2
 enable_devnag
 enable_lacheck
 enable_m_tx
@@ -1483,6 +1484,7 @@
   --enable-cxx-runtime-hack  link C++ runtime statically
   --enable-libtool-hack   ignore libtool dependency_libs
   --disable-autosp        do not build the autosp package
+  --disable-axodraw2      do not build the axodraw2 package
   --disable-devnag        do not build the devnag package
   --disable-lacheck       do not build the lacheck package
   --disable-m-tx          do not build the m-tx package
@@ -3362,7 +3364,8 @@
 esac
 
 ## utils/autosp/ac/withenable.ac: configure.ac fragment for TeX Live subdir
-## configure options and TL libraries required for vlna
+## $Id$
+## configure options and TL libraries required for autosp.
 # Check whether --enable-autosp was given.
 if test "${enable_autosp+set}" = set; then :
   enableval=$enable_autosp;
@@ -3379,6 +3382,25 @@
     ;;
 esac
 
+## utils/autosp/ac/withenable.ac: configure.ac fragment for TeX Live subdir
+## $Id$
+## configure options and TL libraries for axodraw2.
+# Check whether --enable-axodraw2 was given.
+if test "${enable_axodraw2+set}" = set; then :
+  enableval=$enable_axodraw2;
+fi
+case $enable_axodraw2 in #(
+  yes|no) :
+     ;; #(
+  *) :
+
+   enable_axodraw2=$enable_all_pkgs
+     { $as_echo "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-axodraw2=$enable_axodraw2'" >&5
+$as_echo "$as_me: Assuming \`--enable-axodraw2=$enable_axodraw2'" >&6;}
+     ac_configure_args="$ac_configure_args '--enable-axodraw2=$enable_axodraw2'"
+    ;;
+esac
+
 ## utils/devnag/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory utils/devnag/
 ## configure options and TL libraries required for devnag
 # Check whether --enable-devnag was given.

Modified: trunk/Build/source/utils/ChangeLog
===================================================================
--- trunk/Build/source/utils/ChangeLog	2018-02-10 23:28:32 UTC (rev 46589)
+++ trunk/Build/source/utils/ChangeLog	2018-02-10 23:30:32 UTC (rev 46590)
@@ -1,3 +1,7 @@
+2018-02-09  Karl Berry  <karl at freefriends.org>
+
+	* axodraw2: new utility: package axodraw2, executable axohelp.
+
 2017-12-19  Karl Berry  <karl at tug.org>
 
 	* README (clisp): use libffcall-1.13, needed on aarch64 per

Modified: trunk/Build/source/utils/Makefile.in
===================================================================
--- trunk/Build/source/utils/Makefile.in	2018-02-10 23:28:32 UTC (rev 46589)
+++ trunk/Build/source/utils/Makefile.in	2018-02-10 23:30:32 UTC (rev 46590)
@@ -120,6 +120,7 @@
 	$(top_srcdir)/../m4/kpse-zziplib-flags.m4 \
 	$(top_srcdir)/../version.ac \
 	$(top_srcdir)/../utils/autosp/ac/withenable.ac \
+	$(top_srcdir)/../utils/axodraw2/ac/withenable.ac \
 	$(top_srcdir)/../utils/devnag/ac/withenable.ac \
 	$(top_srcdir)/../utils/lacheck/ac/withenable.ac \
 	$(top_srcdir)/../utils/m-tx/ac/withenable.ac \

Modified: trunk/Build/source/utils/autosp/ac/withenable.ac
===================================================================
--- trunk/Build/source/utils/autosp/ac/withenable.ac	2018-02-10 23:28:32 UTC (rev 46589)
+++ trunk/Build/source/utils/autosp/ac/withenable.ac	2018-02-10 23:30:32 UTC (rev 46590)
@@ -1,7 +1,8 @@
 ## utils/autosp/ac/withenable.ac: configure.ac fragment for TeX Live subdir
+## $Id$
 dnl
-dnl Copyright 2016 Karl Berry <tex-live at tug.org>
+dnl Copyright 2016--2018 Karl Berry <tex-live at tug.org>
 dnl You may freely use, modify and/or distribute this file.
 dnl
-## configure options and TL libraries required for vlna
+## configure options and TL libraries required for autosp.
 KPSE_ENABLE_PROG([autosp])


Property changes on: trunk/Build/source/utils/autosp/ac/withenable.ac
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+Date Author Id
\ No newline at end of property
Index: trunk/Build/source/utils/axodraw2
===================================================================
--- trunk/Build/source/utils/axodraw2	2018-02-10 23:28:32 UTC (rev 46589)
+++ trunk/Build/source/utils/axodraw2	2018-02-10 23:30:32 UTC (rev 46590)

Property changes on: trunk/Build/source/utils/axodraw2
___________________________________________________________________
Added: svn:ignore
## -0,0 +1 ##
+autom4te.cache
Added: trunk/Build/source/utils/axodraw2/ChangeLog
===================================================================
--- trunk/Build/source/utils/axodraw2/ChangeLog	                        (rev 0)
+++ trunk/Build/source/utils/axodraw2/ChangeLog	2018-02-10 23:30:32 UTC (rev 46590)
@@ -0,0 +1,5 @@
+2018-02-10  Karl Berry  <karl at freefriends.org>
+
+	* new package axodraw2 (executable axohelp).
+
+(This ChangeLog file public domain.)

Added: trunk/Build/source/utils/axodraw2/Makefile.am
===================================================================
--- trunk/Build/source/utils/axodraw2/Makefile.am	                        (rev 0)
+++ trunk/Build/source/utils/axodraw2/Makefile.am	2018-02-10 23:30:32 UTC (rev 46590)
@@ -0,0 +1,38 @@
+## $Id$
+## Makefile.am for axohelp (in TeX Live)
+##
+## Copyright (C) 2018 John Collins
+## You may freely use, modify and/or distribute this file.
+##
+
+## We want to re-distribute the whole original ps2eps source tree.
+EXTRA_DIST = $(AXODRAW2_TREE)
+
+# Files not to be distributed
+include $(srcdir)/../../am/dist_hook.am
+NEVER_NAMES += $(NEVER_NAMES_SUB)
+
+AM_CFLAGS = $(WARNING_CFLAGS)
+
+bin_PROGRAMS = axohelp
+# must use @... for _SOURCES or subdir $(... (literally) is created for .deps.
+axohelp_SOURCES = @AXODRAW2_TREE@/axohelp.c
+
+man1_MANS = $(AXODRAW2_TREE)/axohelp.1
+
+## Test
+AM_TESTS_ENVIRONMENT = AXODRAW2_TREE=$(AXODRAW2_TREE); export AXODRAW2_TREE;
+#
+TESTS = $(AXODRAW2_TREE)/axohelp.test
+EXTRA_DIST += $(TESTS)
+axohelp.log: axohelp$(EXEEXT)
+#
+## test files.
+EXTRA_DIST += \
+  $(AXODRAW2_TREE)/test.ax1 \
+  $(AXODRAW2_TREE)/test.ax2-std \
+  $(AXODRAW2_TREE)/example.tex
+
+dist_check_SCRIPTS = $(TESTS)
+CLEANFILES = test.ax2
+


Property changes on: trunk/Build/source/utils/axodraw2/Makefile.am
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Date Author Id
\ No newline at end of property
Added: trunk/Build/source/utils/axodraw2/Makefile.in
===================================================================
--- trunk/Build/source/utils/axodraw2/Makefile.in	                        (rev 0)
+++ trunk/Build/source/utils/axodraw2/Makefile.in	2018-02-10 23:30:32 UTC (rev 46590)
@@ -0,0 +1,1192 @@
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+bin_PROGRAMS = axohelp$(EXEEXT)
+subdir = .
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/../../m4/kpse-common.m4 \
+	$(top_srcdir)/../../m4/kpse-warnings.m4 \
+	$(top_srcdir)/../../m4/kpse-win32.m4 \
+	$(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
+	$(am__configure_deps) $(dist_check_SCRIPTS) $(am__DIST_COMMON)
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno config.status.lineno
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"
+PROGRAMS = $(bin_PROGRAMS)
+am__dirstamp = $(am__leading_dot)dirstamp
+am_axohelp_OBJECTS = @AXODRAW2_TREE@/axohelp.$(OBJEXT)
+axohelp_OBJECTS = $(am_axohelp_OBJECTS)
+axohelp_LDADD = $(LDADD)
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+DEFAULT_INCLUDES = -I. at am__isrc@
+depcomp = $(SHELL) $(top_srcdir)/../../build-aux/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_ at AM_V@)
+am__v_CC_ = $(am__v_CC_ at AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+SOURCES = $(axohelp_SOURCES)
+DIST_SOURCES = $(axohelp_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+man1dir = $(mandir)/man1
+NROFF = nroff
+MANS = $(man1_MANS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+CSCOPE = cscope
+AM_RECURSIVE_TARGETS = cscope check recheck
+am__tty_colors_dummy = \
+  mgn= red= grn= lgn= blu= brg= std=; \
+  am__color_tests=no
+am__tty_colors = { \
+  $(am__tty_colors_dummy); \
+  if test "X$(AM_COLOR_TESTS)" = Xno; then \
+    am__color_tests=no; \
+  elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
+    am__color_tests=yes; \
+  elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
+    am__color_tests=yes; \
+  fi; \
+  if test $$am__color_tests = yes; then \
+    red=''; \
+    grn=''; \
+    lgn=''; \
+    blu=''; \
+    mgn=''; \
+    brg=''; \
+    std=''; \
+  fi; \
+}
+am__recheck_rx = ^[ 	]*:recheck:[ 	]*
+am__global_test_result_rx = ^[ 	]*:global-test-result:[ 	]*
+am__copy_in_global_log_rx = ^[ 	]*:copy-in-global-log:[ 	]*
+# A command that, given a newline-separated list of test names on the
+# standard input, print the name of the tests that are to be re-run
+# upon "make recheck".
+am__list_recheck_tests = $(AWK) '{ \
+  recheck = 1; \
+  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+    { \
+      if (rc < 0) \
+        { \
+          if ((getline line2 < ($$0 ".log")) < 0) \
+	    recheck = 0; \
+          break; \
+        } \
+      else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
+        { \
+          recheck = 0; \
+          break; \
+        } \
+      else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
+        { \
+          break; \
+        } \
+    }; \
+  if (recheck) \
+    print $$0; \
+  close ($$0 ".trs"); \
+  close ($$0 ".log"); \
+}'
+# A command that, given a newline-separated list of test names on the
+# standard input, create the global log from their .trs and .log files.
+am__create_global_log = $(AWK) ' \
+function fatal(msg) \
+{ \
+  print "fatal: making $@: " msg | "cat >&2"; \
+  exit 1; \
+} \
+function rst_section(header) \
+{ \
+  print header; \
+  len = length(header); \
+  for (i = 1; i <= len; i = i + 1) \
+    printf "="; \
+  printf "\n\n"; \
+} \
+{ \
+  copy_in_global_log = 1; \
+  global_test_result = "RUN"; \
+  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+    { \
+      if (rc < 0) \
+         fatal("failed to read from " $$0 ".trs"); \
+      if (line ~ /$(am__global_test_result_rx)/) \
+        { \
+          sub("$(am__global_test_result_rx)", "", line); \
+          sub("[ 	]*$$", "", line); \
+          global_test_result = line; \
+        } \
+      else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
+        copy_in_global_log = 0; \
+    }; \
+  if (copy_in_global_log) \
+    { \
+      rst_section(global_test_result ": " $$0); \
+      while ((rc = (getline line < ($$0 ".log"))) != 0) \
+      { \
+        if (rc < 0) \
+          fatal("failed to read from " $$0 ".log"); \
+        print line; \
+      }; \
+      printf "\n"; \
+    }; \
+  close ($$0 ".trs"); \
+  close ($$0 ".log"); \
+}'
+# Restructured Text title.
+am__rst_title = { sed 's/.*/   &   /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
+# Solaris 10 'make', and several other traditional 'make' implementations,
+# pass "-e" to $(SHELL), and POSIX 2008 even requires this.  Work around it
+# by disabling -e (using the XSI extension "set +e") if it's set.
+am__sh_e_setup = case $$- in *e*) set +e;; esac
+# Default flags passed to test drivers.
+am__common_driver_flags = \
+  --color-tests "$$am__color_tests" \
+  --enable-hard-errors "$$am__enable_hard_errors" \
+  --expect-failure "$$am__expect_failure"
+# To be inserted before the command running the test.  Creates the
+# directory for the log if needed.  Stores in $dir the directory
+# containing $f, in $tst the test, in $log the log.  Executes the
+# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
+# passes TESTS_ENVIRONMENT.  Set up options for the wrapper that
+# will run the test scripts (or their associated LOG_COMPILER, if
+# thy have one).
+am__check_pre = \
+$(am__sh_e_setup);					\
+$(am__vpath_adj_setup) $(am__vpath_adj)			\
+$(am__tty_colors);					\
+srcdir=$(srcdir); export srcdir;			\
+case "$@" in						\
+  */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;;	\
+    *) am__odir=.;; 					\
+esac;							\
+test "x$$am__odir" = x"." || test -d "$$am__odir" 	\
+  || $(MKDIR_P) "$$am__odir" || exit $$?;		\
+if test -f "./$$f"; then dir=./;			\
+elif test -f "$$f"; then dir=;				\
+else dir="$(srcdir)/"; fi;				\
+tst=$$dir$$f; log='$@'; 				\
+if test -n '$(DISABLE_HARD_ERRORS)'; then		\
+  am__enable_hard_errors=no; 				\
+else							\
+  am__enable_hard_errors=yes; 				\
+fi; 							\
+case " $(XFAIL_TESTS) " in				\
+  *[\ \	]$$f[\ \	]* | *[\ \	]$$dir$$f[\ \	]*) \
+    am__expect_failure=yes;;				\
+  *)							\
+    am__expect_failure=no;;				\
+esac; 							\
+$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
+# A shell command to get the names of the tests scripts with any registered
+# extension removed (i.e., equivalently, the names of the test logs, with
+# the '.log' extension removed).  The result is saved in the shell variable
+# '$bases'.  This honors runtime overriding of TESTS and TEST_LOGS.  Sadly,
+# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
+# since that might cause problem with VPATH rewrites for suffix-less tests.
+# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
+am__set_TESTS_bases = \
+  bases='$(TEST_LOGS)'; \
+  bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
+  bases=`echo $$bases`
+RECHECK_LOGS = $(TEST_LOGS)
+TEST_SUITE_LOG = test-suite.log
+TEST_EXTENSIONS = @EXEEXT@ .test
+am__test_logs1 = $(TESTS:=.log)
+am__test_logs2 = $(am__test_logs1:@EXEEXT at .log=.log)
+TEST_LOGS = $(am__test_logs2:.test.log=.log)
+TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/../../build-aux/test-driver
+TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
+	$(TEST_LOG_FLAGS)
+am__set_b = \
+  case '$@' in \
+    */*) \
+      case '$*' in \
+        */*) b='$*';; \
+          *) b=`echo '$@' | sed 's/\.log$$//'`; \
+       esac;; \
+    *) \
+      b='$*';; \
+  esac
+am__DIST_COMMON = $(srcdir)/../../am/dist_hook.am \
+	$(srcdir)/Makefile.in $(top_srcdir)/../../build-aux/compile \
+	$(top_srcdir)/../../build-aux/depcomp \
+	$(top_srcdir)/../../build-aux/install-sh \
+	$(top_srcdir)/../../build-aux/missing \
+	$(top_srcdir)/../../build-aux/test-driver \
+	../../build-aux/ar-lib ../../build-aux/compile \
+	../../build-aux/config.guess ../../build-aux/config.sub \
+	../../build-aux/depcomp ../../build-aux/install-sh \
+	../../build-aux/ltmain.sh ../../build-aux/missing \
+	../../build-aux/texinfo.tex ../../build-aux/ylwrap
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+distdir = $(PACKAGE)-$(VERSION)
+top_distdir = $(distdir)
+am__remove_distdir = \
+  if test -d "$(distdir)"; then \
+    find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
+      && rm -rf "$(distdir)" \
+      || { sleep 5 && rm -rf "$(distdir)"; }; \
+  else :; fi
+am__post_remove_distdir = $(am__remove_distdir)
+DIST_ARCHIVES = $(distdir).tar.gz
+GZIP_ENV = --best
+DIST_TARGETS = dist-gzip
+distuninstallcheck_listfiles = find . -type f -print
+am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
+  | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
+distcleancheck_listfiles = find . -type f -print
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+AXODRAW2_TREE = @AXODRAW2_TREE@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EXEEXT = @EXEEXT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+WARNING_CFLAGS = @WARNING_CFLAGS@
+WIN_WRAPPER = @WIN_WRAPPER@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build_alias = @build_alias@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host_alias = @host_alias@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+#
+EXTRA_DIST = $(AXODRAW2_TREE) $(TESTS) $(AXODRAW2_TREE)/test.ax1 \
+	$(AXODRAW2_TREE)/test.ax2-std $(AXODRAW2_TREE)/example.tex
+NEVER_DIST = `find . $(NEVER_NAMES)`
+
+# Files not to be distributed
+NEVER_NAMES = -name .svn $(NEVER_NAMES_SUB)
+NEVER_NAMES_SUB = -o -name .deps -o -name .dirstamp -o -name '*.$(OBJEXT)'
+NEVER_NAMES_LT = -o -name .libs -o -name '*.lo'
+AM_CFLAGS = $(WARNING_CFLAGS)
+# must use @... for _SOURCES or subdir $(... (literally) is created for .deps.
+axohelp_SOURCES = @AXODRAW2_TREE@/axohelp.c
+man1_MANS = $(AXODRAW2_TREE)/axohelp.1
+AM_TESTS_ENVIRONMENT = AXODRAW2_TREE=$(AXODRAW2_TREE); export AXODRAW2_TREE;
+#
+TESTS = $(AXODRAW2_TREE)/axohelp.test
+dist_check_SCRIPTS = $(TESTS)
+CLEANFILES = test.ax2
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .log .o .obj .test .test$(EXEEXT) .trs
+am--refresh: Makefile
+	@:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/../../am/dist_hook.am $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
+	      $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --foreign Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    echo ' $(SHELL) ./config.status'; \
+	    $(SHELL) ./config.status;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
+	esac;
+$(srcdir)/../../am/dist_hook.am $(am__empty):
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	$(SHELL) ./config.status --recheck
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+	$(am__cd) $(srcdir) && $(AUTOCONF)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+	$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+$(am__aclocal_m4_deps):
+install-binPROGRAMS: $(bin_PROGRAMS)
+	@$(NORMAL_INSTALL)
+	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+	fi; \
+	for p in $$list; do echo "$$p $$p"; done | \
+	sed 's/$(EXEEXT)$$//' | \
+	while read p p1; do if test -f $$p \
+	  ; then echo "$$p"; echo "$$p"; else :; fi; \
+	done | \
+	sed -e 'p;s,.*/,,;n;h' \
+	    -e 's|.*|.|' \
+	    -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+	sed 'N;N;N;s,\n, ,g' | \
+	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+	    if ($$2 == $$4) files[d] = files[d] " " $$1; \
+	    else { print "f", $$3 "/" $$4, $$1; } } \
+	  END { for (d in files) print "f", d, files[d] }' | \
+	while read type dir files; do \
+	    if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+	    test -z "$$files" || { \
+	      echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+	      $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+	    } \
+	; done
+
+uninstall-binPROGRAMS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+	files=`for p in $$list; do echo "$$p"; done | \
+	  sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+	      -e 's/$$/$(EXEEXT)/' \
+	`; \
+	test -n "$$list" || exit 0; \
+	echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+	cd "$(DESTDIR)$(bindir)" && rm -f $$files
+
+clean-binPROGRAMS:
+	-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+ at AXODRAW2_TREE@/$(am__dirstamp):
+	@$(MKDIR_P) @AXODRAW2_TREE@
+	@: > @AXODRAW2_TREE@/$(am__dirstamp)
+ at AXODRAW2_TREE@/$(DEPDIR)/$(am__dirstamp):
+	@$(MKDIR_P) @AXODRAW2_TREE@/$(DEPDIR)
+	@: > @AXODRAW2_TREE@/$(DEPDIR)/$(am__dirstamp)
+ at AXODRAW2_TREE@/axohelp.$(OBJEXT): @AXODRAW2_TREE@/$(am__dirstamp) \
+	@AXODRAW2_TREE@/$(DEPDIR)/$(am__dirstamp)
+
+axohelp$(EXEEXT): $(axohelp_OBJECTS) $(axohelp_DEPENDENCIES) $(EXTRA_axohelp_DEPENDENCIES) 
+	@rm -f axohelp$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(axohelp_OBJECTS) $(axohelp_LDADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+	-rm -f @AXODRAW2_TREE@/*.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+ at AMDEP_TRUE@@am__include@ @am__quote@@AXODRAW2_TREE@/$(DEPDIR)/axohelp.Po at am__quote@
+
+.c.o:
+ at am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+ at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+ at am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c -o $@ $<
+
+.c.obj:
+ at am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+ at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+ at am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+install-man1: $(man1_MANS)
+	@$(NORMAL_INSTALL)
+	@list1='$(man1_MANS)'; \
+	list2=''; \
+	test -n "$(man1dir)" \
+	  && test -n "`echo $$list1$$list2`" \
+	  || exit 0; \
+	echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
+	$(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
+	{ for i in $$list1; do echo "$$i"; done;  \
+	if test -n "$$list2"; then \
+	  for i in $$list2; do echo "$$i"; done \
+	    | sed -n '/\.1[a-z]*$$/p'; \
+	fi; \
+	} | while read p; do \
+	  if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; echo "$$p"; \
+	done | \
+	sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+	      -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+	sed 'N;N;s,\n, ,g' | { \
+	list=; while read file base inst; do \
+	  if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+	    echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+	    $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
+	  fi; \
+	done; \
+	for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+	while read files; do \
+	  test -z "$$files" || { \
+	    echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
+	    $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
+	done; }
+
+uninstall-man1:
+	@$(NORMAL_UNINSTALL)
+	@list='$(man1_MANS)'; test -n "$(man1dir)" || exit 0; \
+	files=`{ for i in $$list; do echo "$$i"; done; \
+	} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+	      -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+	dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
+
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	set x; \
+	here=`pwd`; \
+	$(am__define_uniq_tagged_files); \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
+	fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
+	test -z "$(CTAGS_ARGS)$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscope: cscope.files
+	test ! -s cscope.files \
+	  || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
+clean-cscope:
+	-rm -f cscope.files
+cscope.files: clean-cscope cscopelist
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+	-rm -f cscope.out cscope.in.out cscope.po.out cscope.files
+
+# Recover from deleted '.trs' file; this should ensure that
+# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
+# both 'foo.log' and 'foo.trs'.  Break the recipe in two subshells
+# to avoid problems with "make -n".
+.log.trs:
+	rm -f $< $@
+	$(MAKE) $(AM_MAKEFLAGS) $<
+
+# Leading 'am--fnord' is there to ensure the list of targets does not
+# expand to empty, as could happen e.g. with make check TESTS=''.
+am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
+am--force-recheck:
+	@:
+
+$(TEST_SUITE_LOG): $(TEST_LOGS)
+	@$(am__set_TESTS_bases); \
+	am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
+	redo_bases=`for i in $$bases; do \
+	              am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
+	            done`; \
+	if test -n "$$redo_bases"; then \
+	  redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
+	  redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
+	  if $(am__make_dryrun); then :; else \
+	    rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
+	  fi; \
+	fi; \
+	if test -n "$$am__remaking_logs"; then \
+	  echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
+	       "recursion detected" >&2; \
+	elif test -n "$$redo_logs"; then \
+	  am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
+	fi; \
+	if $(am__make_dryrun); then :; else \
+	  st=0;  \
+	  errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
+	  for i in $$redo_bases; do \
+	    test -f $$i.trs && test -r $$i.trs \
+	      || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
+	    test -f $$i.log && test -r $$i.log \
+	      || { echo "$$errmsg $$i.log" >&2; st=1; }; \
+	  done; \
+	  test $$st -eq 0 || exit 1; \
+	fi
+	@$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
+	ws='[ 	]'; \
+	results=`for b in $$bases; do echo $$b.trs; done`; \
+	test -n "$$results" || results=/dev/null; \
+	all=`  grep "^$$ws*:test-result:"           $$results | wc -l`; \
+	pass=` grep "^$$ws*:test-result:$$ws*PASS"  $$results | wc -l`; \
+	fail=` grep "^$$ws*:test-result:$$ws*FAIL"  $$results | wc -l`; \
+	skip=` grep "^$$ws*:test-result:$$ws*SKIP"  $$results | wc -l`; \
+	xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
+	xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
+	error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
+	if test `expr $$fail + $$xpass + $$error` -eq 0; then \
+	  success=true; \
+	else \
+	  success=false; \
+	fi; \
+	br='==================='; br=$$br$$br$$br$$br; \
+	result_count () \
+	{ \
+	    if test x"$$1" = x"--maybe-color"; then \
+	      maybe_colorize=yes; \
+	    elif test x"$$1" = x"--no-color"; then \
+	      maybe_colorize=no; \
+	    else \
+	      echo "$@: invalid 'result_count' usage" >&2; exit 4; \
+	    fi; \
+	    shift; \
+	    desc=$$1 count=$$2; \
+	    if test $$maybe_colorize = yes && test $$count -gt 0; then \
+	      color_start=$$3 color_end=$$std; \
+	    else \
+	      color_start= color_end=; \
+	    fi; \
+	    echo "$${color_start}# $$desc $$count$${color_end}"; \
+	}; \
+	create_testsuite_report () \
+	{ \
+	  result_count $$1 "TOTAL:" $$all   "$$brg"; \
+	  result_count $$1 "PASS: " $$pass  "$$grn"; \
+	  result_count $$1 "SKIP: " $$skip  "$$blu"; \
+	  result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
+	  result_count $$1 "FAIL: " $$fail  "$$red"; \
+	  result_count $$1 "XPASS:" $$xpass "$$red"; \
+	  result_count $$1 "ERROR:" $$error "$$mgn"; \
+	}; \
+	{								\
+	  echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" |	\
+	    $(am__rst_title);						\
+	  create_testsuite_report --no-color;				\
+	  echo;								\
+	  echo ".. contents:: :depth: 2";				\
+	  echo;								\
+	  for b in $$bases; do echo $$b; done				\
+	    | $(am__create_global_log);					\
+	} >$(TEST_SUITE_LOG).tmp || exit 1;				\
+	mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG);			\
+	if $$success; then						\
+	  col="$$grn";							\
+	 else								\
+	  col="$$red";							\
+	  test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG);		\
+	fi;								\
+	echo "$${col}$$br$${std}"; 					\
+	echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}";	\
+	echo "$${col}$$br$${std}"; 					\
+	create_testsuite_report --maybe-color;				\
+	echo "$$col$$br$$std";						\
+	if $$success; then :; else					\
+	  echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}";		\
+	  if test -n "$(PACKAGE_BUGREPORT)"; then			\
+	    echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}";	\
+	  fi;								\
+	  echo "$$col$$br$$std";					\
+	fi;								\
+	$$success || exit 1
+
+check-TESTS:
+	@list='$(RECHECK_LOGS)';           test -z "$$list" || rm -f $$list
+	@list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
+	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+	@set +e; $(am__set_TESTS_bases); \
+	log_list=`for i in $$bases; do echo $$i.log; done`; \
+	trs_list=`for i in $$bases; do echo $$i.trs; done`; \
+	log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
+	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
+	exit $$?;
+recheck: all $(dist_check_SCRIPTS)
+	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+	@set +e; $(am__set_TESTS_bases); \
+	bases=`for i in $$bases; do echo $$i; done \
+	         | $(am__list_recheck_tests)` || exit 1; \
+	log_list=`for i in $$bases; do echo $$i.log; done`; \
+	log_list=`echo $$log_list`; \
+	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
+	        am__force_recheck=am--force-recheck \
+	        TEST_LOGS="$$log_list"; \
+	exit $$?
+.test.log:
+	@p='$<'; \
+	$(am__set_b); \
+	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+ at am__EXEEXT_TRUE@.test$(EXEEXT).log:
+ at am__EXEEXT_TRUE@	@p='$<'; \
+ at am__EXEEXT_TRUE@	$(am__set_b); \
+ at am__EXEEXT_TRUE@	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+ at am__EXEEXT_TRUE@	--log-file $$b.log --trs-file $$b.trs \
+ at am__EXEEXT_TRUE@	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+ at am__EXEEXT_TRUE@	"$$tst" $(AM_TESTS_FD_REDIRECT)
+
+distdir: $(DISTFILES)
+	$(am__remove_distdir)
+	test -d "$(distdir)" || mkdir "$(distdir)"
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	  else \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    || exit 1; \
+	  fi; \
+	done
+	$(MAKE) $(AM_MAKEFLAGS) \
+	  top_distdir="$(top_distdir)" distdir="$(distdir)" \
+	  dist-hook
+	-test -n "$(am__skip_mode_fix)" \
+	|| find "$(distdir)" -type d ! -perm -755 \
+		-exec chmod u+rwx,go+rx {} \; -o \
+	  ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+	  ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+	  ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
+	|| chmod -R a+r "$(distdir)"
+dist-gzip: distdir
+	tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz
+	$(am__post_remove_distdir)
+
+dist-bzip2: distdir
+	tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
+	$(am__post_remove_distdir)
+
+dist-lzip: distdir
+	tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
+	$(am__post_remove_distdir)
+
+dist-xz: distdir
+	tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
+	$(am__post_remove_distdir)
+
+dist-tarZ: distdir
+	@echo WARNING: "Support for distribution archives compressed with" \
+		       "legacy program 'compress' is deprecated." >&2
+	@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
+	tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+	$(am__post_remove_distdir)
+
+dist-shar: distdir
+	@echo WARNING: "Support for shar distribution archives is" \
+	               "deprecated." >&2
+	@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
+	shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz
+	$(am__post_remove_distdir)
+
+dist-zip: distdir
+	-rm -f $(distdir).zip
+	zip -rq $(distdir).zip $(distdir)
+	$(am__post_remove_distdir)
+
+dist dist-all:
+	$(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
+	$(am__post_remove_distdir)
+
+# This target untars the dist file and tries a VPATH configuration.  Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+	case '$(DIST_ARCHIVES)' in \
+	*.tar.gz*) \
+	  eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
+	*.tar.bz2*) \
+	  bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
+	*.tar.lz*) \
+	  lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
+	*.tar.xz*) \
+	  xz -dc $(distdir).tar.xz | $(am__untar) ;;\
+	*.tar.Z*) \
+	  uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+	*.shar.gz*) \
+	  eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
+	*.zip*) \
+	  unzip $(distdir).zip ;;\
+	esac
+	chmod -R a-w $(distdir)
+	chmod u+w $(distdir)
+	mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst
+	chmod a-w $(distdir)
+	test -d $(distdir)/_build || exit 0; \
+	dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+	  && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+	  && am__cwd=`pwd` \
+	  && $(am__cd) $(distdir)/_build/sub \
+	  && ../../configure \
+	    $(AM_DISTCHECK_CONFIGURE_FLAGS) \
+	    $(DISTCHECK_CONFIGURE_FLAGS) \
+	    --srcdir=../.. --prefix="$$dc_install_base" \
+	  && $(MAKE) $(AM_MAKEFLAGS) \
+	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
+	  && $(MAKE) $(AM_MAKEFLAGS) check \
+	  && $(MAKE) $(AM_MAKEFLAGS) install \
+	  && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+	  && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+	  && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+	        distuninstallcheck \
+	  && chmod -R a-w "$$dc_install_base" \
+	  && ({ \
+	       (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+	            distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+	      } || { rm -rf "$$dc_destdir"; exit 1; }) \
+	  && rm -rf "$$dc_destdir" \
+	  && $(MAKE) $(AM_MAKEFLAGS) dist \
+	  && rm -rf $(DIST_ARCHIVES) \
+	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
+	  && cd "$$am__cwd" \
+	  || exit 1
+	$(am__post_remove_distdir)
+	@(echo "$(distdir) archives ready for distribution: "; \
+	  list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+	  sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
+distuninstallcheck:
+	@test -n '$(distuninstallcheck_dir)' || { \
+	  echo 'ERROR: trying to run $@ with an empty' \
+	       '$$(distuninstallcheck_dir)' >&2; \
+	  exit 1; \
+	}; \
+	$(am__cd) '$(distuninstallcheck_dir)' || { \
+	  echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
+	  exit 1; \
+	}; \
+	test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
+	   || { echo "ERROR: files left after uninstall:" ; \
+	        if test -n "$(DESTDIR)"; then \
+	          echo "  (check DESTDIR support)"; \
+	        fi ; \
+	        $(distuninstallcheck_listfiles) ; \
+	        exit 1; } >&2
+distcleancheck: distclean
+	@if test '$(srcdir)' = . ; then \
+	  echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+	  exit 1 ; \
+	fi
+	@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+	  || { echo "ERROR: files left in build directory after distclean:" ; \
+	       $(distcleancheck_listfiles) ; \
+	       exit 1; } >&2
+check-am: all-am
+	$(MAKE) $(AM_MAKEFLAGS) $(dist_check_SCRIPTS)
+	$(MAKE) $(AM_MAKEFLAGS) check-TESTS
+check: check-am
+all-am: Makefile $(PROGRAMS) $(MANS)
+installdirs:
+	for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \
+	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+	done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
+mostlyclean-generic:
+	-test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
+	-test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
+	-test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+
+clean-generic:
+	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+	-rm -f @AXODRAW2_TREE@/$(DEPDIR)/$(am__dirstamp)
+	-rm -f @AXODRAW2_TREE@/$(am__dirstamp)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
+
+distclean: distclean-am
+	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
+	-rm -rf @AXODRAW2_TREE@/$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-man
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-binPROGRAMS
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man: install-man1
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
+	-rm -rf $(top_srcdir)/autom4te.cache
+	-rm -rf @AXODRAW2_TREE@/$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS uninstall-man
+
+uninstall-man: uninstall-man1
+
+.MAKE: check-am install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am am--refresh check check-TESTS \
+	check-am clean clean-binPROGRAMS clean-cscope clean-generic \
+	cscope cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \
+	dist-gzip dist-hook dist-lzip dist-shar dist-tarZ dist-xz \
+	dist-zip distcheck distclean distclean-compile \
+	distclean-generic distclean-tags distcleancheck distdir \
+	distuninstallcheck dvi dvi-am html html-am info info-am \
+	install install-am install-binPROGRAMS install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-man1 install-pdf \
+	install-pdf-am install-ps install-ps-am install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic pdf pdf-am ps ps-am recheck tags tags-am \
+	uninstall uninstall-am uninstall-binPROGRAMS uninstall-man \
+	uninstall-man1
+
+.PRECIOUS: Makefile
+
+dist-hook:
+	cd "$(distdir)" && rm -rf $(NEVER_DIST)
+axohelp.log: axohelp$(EXEEXT)
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:


Property changes on: trunk/Build/source/utils/axodraw2/Makefile.in
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+LF
\ No newline at end of property
Added: trunk/Build/source/utils/axodraw2/TLpatches/TL-Changes
===================================================================
--- trunk/Build/source/utils/axodraw2/TLpatches/TL-Changes	                        (rev 0)
+++ trunk/Build/source/utils/axodraw2/TLpatches/TL-Changes	2018-02-10 23:30:32 UTC (rev 46590)
@@ -0,0 +1,5 @@
+Changes applied to the axodraw tree as obtained from
+	https://ctan.org/pkg/axodraw2
+
+Remove:
+	axohelp.exe

Added: trunk/Build/source/utils/axodraw2/ac/withenable.ac
===================================================================
--- trunk/Build/source/utils/axodraw2/ac/withenable.ac	                        (rev 0)
+++ trunk/Build/source/utils/axodraw2/ac/withenable.ac	2018-02-10 23:30:32 UTC (rev 46590)
@@ -0,0 +1,8 @@
+## utils/autosp/ac/withenable.ac: configure.ac fragment for TeX Live subdir
+## $Id$
+dnl
+dnl Copyright 2018 Karl Berry <tex-live at tug.org>
+dnl You may freely use, modify and/or distribute this file.
+dnl
+## configure options and TL libraries for axodraw2.
+KPSE_ENABLE_PROG([axodraw2])


Property changes on: trunk/Build/source/utils/axodraw2/ac/withenable.ac
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Date Author Id
\ No newline at end of property
Added: trunk/Build/source/utils/axodraw2/aclocal.m4
===================================================================
--- trunk/Build/source/utils/axodraw2/aclocal.m4	                        (rev 0)
+++ trunk/Build/source/utils/axodraw2/aclocal.m4	2018-02-10 23:30:32 UTC (rev 46590)
@@ -0,0 +1,1191 @@
+# generated automatically by aclocal 1.15.1 -*- Autoconf -*-
+
+# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
+m4_ifndef([AC_AUTOCONF_VERSION],
+  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
+[m4_warning([this file was generated for autoconf 2.69.
+You have another version of autoconf.  It may work, but is not guaranteed to.
+If you have problems, you may need to regenerate the build system entirely.
+To do so, use the procedure documented by the package, typically 'autoreconf'.])])
+
+# Copyright (C) 2002-2017 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_AUTOMAKE_VERSION(VERSION)
+# ----------------------------
+# Automake X.Y traces this macro to ensure aclocal.m4 has been
+# generated from the m4 files accompanying Automake X.Y.
+# (This private macro should not be called outside this file.)
+AC_DEFUN([AM_AUTOMAKE_VERSION],
+[am__api_version='1.15'
+dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
+dnl require some minimum version.  Point them to the right macro.
+m4_if([$1], [1.15.1], [],
+      [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
+])
+
+# _AM_AUTOCONF_VERSION(VERSION)
+# -----------------------------
+# aclocal traces this macro to find the Autoconf version.
+# This is a private macro too.  Using m4_define simplifies
+# the logic in aclocal, which can simply ignore this definition.
+m4_define([_AM_AUTOCONF_VERSION], [])
+
+# AM_SET_CURRENT_AUTOMAKE_VERSION
+# -------------------------------
+# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
+# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
+AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
+[AM_AUTOMAKE_VERSION([1.15.1])dnl
+m4_ifndef([AC_AUTOCONF_VERSION],
+  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
+
+# AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
+
+# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
+# $ac_aux_dir to '$srcdir/foo'.  In other projects, it is set to
+# '$srcdir', '$srcdir/..', or '$srcdir/../..'.
+#
+# Of course, Automake must honor this variable whenever it calls a
+# tool from the auxiliary directory.  The problem is that $srcdir (and
+# therefore $ac_aux_dir as well) can be either absolute or relative,
+# depending on how configure is run.  This is pretty annoying, since
+# it makes $ac_aux_dir quite unusable in subdirectories: in the top
+# source directory, any form will work fine, but in subdirectories a
+# relative path needs to be adjusted first.
+#
+# $ac_aux_dir/missing
+#    fails when called from a subdirectory if $ac_aux_dir is relative
+# $top_srcdir/$ac_aux_dir/missing
+#    fails if $ac_aux_dir is absolute,
+#    fails when called from a subdirectory in a VPATH build with
+#          a relative $ac_aux_dir
+#
+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
+# are both prefixed by $srcdir.  In an in-source build this is usually
+# harmless because $srcdir is '.', but things will broke when you
+# start a VPATH build or use an absolute $srcdir.
+#
+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
+# iff we strip the leading $srcdir from $ac_aux_dir.  That would be:
+#   am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
+# and then we would define $MISSING as
+#   MISSING="\${SHELL} $am_aux_dir/missing"
+# This will work as long as MISSING is not called from configure, because
+# unfortunately $(top_srcdir) has no meaning in configure.
+# However there are other variables, like CC, which are often used in
+# configure, and could therefore not use this "fixed" $ac_aux_dir.
+#
+# Another solution, used here, is to always expand $ac_aux_dir to an
+# absolute PATH.  The drawback is that using absolute paths prevent a
+# configured tree to be moved without reconfiguration.
+
+AC_DEFUN([AM_AUX_DIR_EXPAND],
+[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
+# Expand $ac_aux_dir to an absolute path.
+am_aux_dir=`cd "$ac_aux_dir" && pwd`
+])
+
+# AM_CONDITIONAL                                            -*- Autoconf -*-
+
+# Copyright (C) 1997-2017 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+AC_DEFUN([AM_CONDITIONAL],
+[AC_PREREQ([2.52])dnl
+ m4_if([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
+       [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_SUBST([$1_TRUE])dnl
+AC_SUBST([$1_FALSE])dnl
+_AM_SUBST_NOTMAKE([$1_TRUE])dnl
+_AM_SUBST_NOTMAKE([$1_FALSE])dnl
+m4_define([_AM_COND_VALUE_$1], [$2])dnl
+if $2; then
+  $1_TRUE=
+  $1_FALSE='#'
+else
+  $1_TRUE='#'
+  $1_FALSE=
+fi
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+  AC_MSG_ERROR([[conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.]])
+fi])])
+
+# Copyright (C) 1999-2017 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+
+# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be
+# written in clear, in which case automake, when reading aclocal.m4,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery.  Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+
+
+# _AM_DEPENDENCIES(NAME)
+# ----------------------
+# See how the compiler implements dependency checking.
+# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC".
+# We try a few techniques and use that to set a single cache variable.
+#
+# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
+# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
+# dependency, and given that the user is not expected to run this macro,
+# just rely on AC_PROG_CC.
+AC_DEFUN([_AM_DEPENDENCIES],
+[AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+AC_REQUIRE([AM_MAKE_INCLUDE])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+
+m4_if([$1], [CC],   [depcc="$CC"   am_compiler_list=],
+      [$1], [CXX],  [depcc="$CXX"  am_compiler_list=],
+      [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+      [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'],
+      [$1], [UPC],  [depcc="$UPC"  am_compiler_list=],
+      [$1], [GCJ],  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
+                    [depcc="$$1"   am_compiler_list=])
+
+AC_CACHE_CHECK([dependency style of $depcc],
+               [am_cv_$1_dependencies_compiler_type],
+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named 'D' -- because '-MD' means "put the output
+  # in D".
+  rm -rf conftest.dir
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+  # We will build objects and dependencies in a subdirectory because
+  # it helps to detect inapplicable dependency modes.  For instance
+  # both Tru64's cc and ICC support -MD to output dependencies as a
+  # side effect of compilation, but ICC will put the dependencies in
+  # the current directory while Tru64 will put them in the object
+  # directory.
+  mkdir sub
+
+  am_cv_$1_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
+  fi
+  am__universal=false
+  m4_case([$1], [CC],
+    [case " $depcc " in #(
+     *\ -arch\ *\ -arch\ *) am__universal=true ;;
+     esac],
+    [CXX],
+    [case " $depcc " in #(
+     *\ -arch\ *\ -arch\ *) am__universal=true ;;
+     esac])
+
+  for depmode in $am_compiler_list; do
+    # Setup a source with many dependencies, because some compilers
+    # like to wrap large dependency lists on column 80 (with \), and
+    # we should not choose a depcomp mode which is confused by this.
+    #
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    : > sub/conftest.c
+    for i in 1 2 3 4 5 6; do
+      echo '#include "conftst'$i'.h"' >> sub/conftest.c
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > sub/conftst$i.h
+    done
+    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+    # We check with '-c' and '-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle '-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs.
+    am__obj=sub/conftest.${OBJEXT-o}
+    am__minus_obj="-o $am__obj"
+    case $depmode in
+    gcc)
+      # This depmode causes a compiler race in universal mode.
+      test "$am__universal" = false || continue
+      ;;
+    nosideeffect)
+      # After this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested.
+      if test "x$enable_dependency_tracking" = xyes; then
+	continue
+      else
+	break
+      fi
+      ;;
+    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+      # This compiler won't grok '-c -o', but also, the minuso test has
+      # not run yet.  These depmodes are late enough in the game, and
+      # so weak that their functioning should not be impacted.
+      am__obj=conftest.${OBJEXT-o}
+      am__minus_obj=
+      ;;
+    none) break ;;
+    esac
+    if depmode=$depmode \
+       source=sub/conftest.c object=$am__obj \
+       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+         >/dev/null 2>conftest.err &&
+       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      # icc doesn't choke on unknown options, it will just issue warnings
+      # or remarks (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored or not supported.
+      # When given -MP, icc 7.0 and 7.1 complain thusly:
+      #   icc: Command line warning: ignoring option '-M'; no argument required
+      # The diagnosis changed in icc 8.0:
+      #   icc: Command line remark: option '-MP' not supported
+      if (grep 'ignoring option' conftest.err ||
+          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+        am_cv_$1_dependencies_compiler_type=$depmode
+        break
+      fi
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_$1_dependencies_compiler_type=none
+fi
+])
+AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
+AM_CONDITIONAL([am__fastdep$1], [
+  test "x$enable_dependency_tracking" != xno \
+  && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
+])
+
+
+# AM_SET_DEPDIR
+# -------------
+# Choose a directory name for dependency files.
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES.
+AC_DEFUN([AM_SET_DEPDIR],
+[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
+])
+
+
+# AM_DEP_TRACK
+# ------------
+AC_DEFUN([AM_DEP_TRACK],
+[AC_ARG_ENABLE([dependency-tracking], [dnl
+AS_HELP_STRING(
+  [--enable-dependency-tracking],
+  [do not reject slow dependency extractors])
+AS_HELP_STRING(
+  [--disable-dependency-tracking],
+  [speeds up one-time build])])
+if test "x$enable_dependency_tracking" != xno; then
+  am_depcomp="$ac_aux_dir/depcomp"
+  AMDEPBACKSLASH='\'
+  am__nodep='_no'
+fi
+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+AC_SUBST([AMDEPBACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
+AC_SUBST([am__nodep])dnl
+_AM_SUBST_NOTMAKE([am__nodep])dnl
+])
+
+# Generate code to set up dependency tracking.              -*- Autoconf -*-
+
+# Copyright (C) 1999-2017 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+
+# _AM_OUTPUT_DEPENDENCY_COMMANDS
+# ------------------------------
+AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
+[{
+  # Older Autoconf quotes --file arguments for eval, but not when files
+  # are listed without --file.  Let's play safe and only enable the eval
+  # if we detect the quoting.
+  case $CONFIG_FILES in
+  *\'*) eval set x "$CONFIG_FILES" ;;
+  *)   set x $CONFIG_FILES ;;
+  esac
+  shift
+  for mf
+  do
+    # Strip MF so we end up with the name of the file.
+    mf=`echo "$mf" | sed -e 's/:.*$//'`
+    # Check whether this is an Automake generated Makefile or not.
+    # We used to match only the files named 'Makefile.in', but
+    # some people rename them; so instead we look at the file content.
+    # Grep'ing the first line is not enough: some people post-process
+    # each Makefile.in and add a new line on top of each file to say so.
+    # Grep'ing the whole file is not good either: AIX grep has a line
+    # limit of 2048, but all sed's we know have understand at least 4000.
+    if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+      dirpart=`AS_DIRNAME("$mf")`
+    else
+      continue
+    fi
+    # Extract the definition of DEPDIR, am__include, and am__quote
+    # from the Makefile without running 'make'.
+    DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+    test -z "$DEPDIR" && continue
+    am__include=`sed -n 's/^am__include = //p' < "$mf"`
+    test -z "$am__include" && continue
+    am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+    # Find all dependency output files, they are included files with
+    # $(DEPDIR) in their names.  We invoke sed twice because it is the
+    # simplest approach to changing $(DEPDIR) to its actual value in the
+    # expansion.
+    for file in `sed -n "
+      s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
+      # Make sure the directory exists.
+      test -f "$dirpart/$file" && continue
+      fdir=`AS_DIRNAME(["$file"])`
+      AS_MKDIR_P([$dirpart/$fdir])
+      # echo "creating $dirpart/$file"
+      echo '# dummy' > "$dirpart/$file"
+    done
+  done
+}
+])# _AM_OUTPUT_DEPENDENCY_COMMANDS
+
+
+# AM_OUTPUT_DEPENDENCY_COMMANDS
+# -----------------------------
+# This macro should only be invoked once -- use via AC_REQUIRE.
+#
+# This code is only required when automatic dependency tracking
+# is enabled.  FIXME.  This creates each '.P' file that we will
+# need in order to bootstrap the dependency handling code.
+AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
+[AC_CONFIG_COMMANDS([depfiles],
+     [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
+     [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
+])
+
+# Do all the work for Automake.                             -*- Autoconf -*-
+
+# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This macro actually does too much.  Some checks are only needed if
+# your package does certain things.  But this isn't really a big deal.
+
+dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O.
+m4_define([AC_PROG_CC],
+m4_defn([AC_PROG_CC])
+[_AM_PROG_CC_C_O
+])
+
+# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
+# AM_INIT_AUTOMAKE([OPTIONS])
+# -----------------------------------------------
+# The call with PACKAGE and VERSION arguments is the old style
+# call (pre autoconf-2.50), which is being phased out.  PACKAGE
+# and VERSION should now be passed to AC_INIT and removed from
+# the call to AM_INIT_AUTOMAKE.
+# We support both call styles for the transition.  After
+# the next Automake release, Autoconf can make the AC_INIT
+# arguments mandatory, and then we can depend on a new Autoconf
+# release and drop the old call support.
+AC_DEFUN([AM_INIT_AUTOMAKE],
+[AC_PREREQ([2.65])dnl
+dnl Autoconf wants to disallow AM_ names.  We explicitly allow
+dnl the ones we care about.
+m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
+AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+AC_REQUIRE([AC_PROG_INSTALL])dnl
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+  # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+  # is not polluted with repeated "-I."
+  AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
+  # test to see if srcdir already configured
+  if test -f $srcdir/config.status; then
+    AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+  fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+  if (cygpath --version) >/dev/null 2>/dev/null; then
+    CYGPATH_W='cygpath -w'
+  else
+    CYGPATH_W=echo
+  fi
+fi
+AC_SUBST([CYGPATH_W])
+
+# Define the identity of the package.
+dnl Distinguish between old-style and new-style calls.
+m4_ifval([$2],
+[AC_DIAGNOSE([obsolete],
+             [$0: two- and three-arguments forms are deprecated.])
+m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+ AC_SUBST([PACKAGE], [$1])dnl
+ AC_SUBST([VERSION], [$2])],
+[_AM_SET_OPTIONS([$1])dnl
+dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
+m4_if(
+  m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
+  [ok:ok],,
+  [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
+
+_AM_IF_OPTION([no-define],,
+[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
+ AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
+AM_MISSING_PROG([AUTOCONF], [autoconf])
+AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
+AM_MISSING_PROG([AUTOHEADER], [autoheader])
+AM_MISSING_PROG([MAKEINFO], [makeinfo])
+AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+# For better backward compatibility.  To be removed once Automake 1.9.x
+# dies out for good.  For more background, see:
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
+# We need awk for the "check" target (and possibly the TAP driver).  The
+# system "awk" is bad on some platforms.
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
+	      [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+			     [_AM_PROG_TAR([v7])])])
+_AM_IF_OPTION([no-dependencies],,
+[AC_PROVIDE_IFELSE([AC_PROG_CC],
+		  [_AM_DEPENDENCIES([CC])],
+		  [m4_define([AC_PROG_CC],
+			     m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+		  [_AM_DEPENDENCIES([CXX])],
+		  [m4_define([AC_PROG_CXX],
+			     m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJC],
+		  [_AM_DEPENDENCIES([OBJC])],
+		  [m4_define([AC_PROG_OBJC],
+			     m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
+		  [_AM_DEPENDENCIES([OBJCXX])],
+		  [m4_define([AC_PROG_OBJCXX],
+			     m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
+])
+AC_REQUIRE([AM_SILENT_RULES])dnl
+dnl The testsuite driver may need to know about EXEEXT, so add the
+dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This
+dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
+AC_CONFIG_COMMANDS_PRE(dnl
+[m4_provide_if([_AM_COMPILER_EXEEXT],
+  [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
+
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes.  So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+  cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present.  This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake at gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message.  This
+can help us improve future automake versions.
+
+END
+  if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+    echo 'Configuration will proceed anyway, since you have set the' >&2
+    echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+    echo >&2
+  else
+    cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <http://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+    AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
+  fi
+fi
+dnl The trailing newline in this macro's definition is deliberate, for
+dnl backward compatibility and to allow trailing 'dnl'-style comments
+dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841.
+])
+
+dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not
+dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
+dnl mangled by Autoconf and run in a shell conditional statement.
+m4_define([_AC_COMPILER_EXEEXT],
+m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
+
+# When config.status generates a header, we must update the stamp-h file.
+# This file resides in the same directory as the config header
+# that is generated.  The stamp files are numbered to have different names.
+
+# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
+# loop where config.status creates the headers, so we can generate
+# our stamp files there.
+AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
+[# Compute $1's index in $config_headers.
+_am_arg=$1
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+  case $_am_header in
+    $_am_arg | $_am_arg:* )
+      break ;;
+    * )
+      _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+  esac
+done
+echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
+
+# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_SH
+# ------------------
+# Define $install_sh.
+AC_DEFUN([AM_PROG_INSTALL_SH],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+if test x"${install_sh+set}" != xset; then
+  case $am_aux_dir in
+  *\ * | *\	*)
+    install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+  *)
+    install_sh="\${SHELL} $am_aux_dir/install-sh"
+  esac
+fi
+AC_SUBST([install_sh])])
+
+# Copyright (C) 2003-2017 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# Check whether the underlying file-system supports filenames
+# with a leading dot.  For instance MS-DOS doesn't.
+AC_DEFUN([AM_SET_LEADING_DOT],
+[rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+  am__leading_dot=.
+else
+  am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+AC_SUBST([am__leading_dot])])
+
+# Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
+# From Jim Meyering
+
+# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_MAINTAINER_MODE([DEFAULT-MODE])
+# ----------------------------------
+# Control maintainer-specific portions of Makefiles.
+# Default is to disable them, unless 'enable' is passed literally.
+# For symmetry, 'disable' may be passed as well.  Anyway, the user
+# can override the default with the --enable/--disable switch.
+AC_DEFUN([AM_MAINTAINER_MODE],
+[m4_case(m4_default([$1], [disable]),
+       [enable], [m4_define([am_maintainer_other], [disable])],
+       [disable], [m4_define([am_maintainer_other], [enable])],
+       [m4_define([am_maintainer_other], [enable])
+        m4_warn([syntax], [unexpected argument to AM@&t at _MAINTAINER_MODE: $1])])
+AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
+  dnl maintainer-mode's default is 'disable' unless 'enable' is passed
+  AC_ARG_ENABLE([maintainer-mode],
+    [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode],
+      am_maintainer_other[ make rules and dependencies not useful
+      (and sometimes confusing) to the casual installer])],
+    [USE_MAINTAINER_MODE=$enableval],
+    [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
+  AC_MSG_RESULT([$USE_MAINTAINER_MODE])
+  AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
+  MAINT=$MAINTAINER_MODE_TRUE
+  AC_SUBST([MAINT])dnl
+]
+)
+
+# Check to see how 'make' treats includes.	            -*- Autoconf -*-
+
+# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_MAKE_INCLUDE()
+# -----------------
+# Check to see how make treats includes.
+AC_DEFUN([AM_MAKE_INCLUDE],
+[am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+	@echo this is the am__doit target
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+AC_MSG_CHECKING([for style of include used by $am_make])
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# Ignore all kinds of additional output from 'make'.
+case `$am_make -s -f confmf 2> /dev/null` in #(
+*the\ am__doit\ target*)
+  am__include=include
+  am__quote=
+  _am_result=GNU
+  ;;
+esac
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+   echo '.include "confinc"' > confmf
+   case `$am_make -s -f confmf 2> /dev/null` in #(
+   *the\ am__doit\ target*)
+     am__include=.include
+     am__quote="\""
+     _am_result=BSD
+     ;;
+   esac
+fi
+AC_SUBST([am__include])
+AC_SUBST([am__quote])
+AC_MSG_RESULT([$_am_result])
+rm -f confinc confmf
+])
+
+# Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
+
+# Copyright (C) 1997-2017 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_MISSING_PROG(NAME, PROGRAM)
+# ------------------------------
+AC_DEFUN([AM_MISSING_PROG],
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
+
+# AM_MISSING_HAS_RUN
+# ------------------
+# Define MISSING if not defined so far and test if it is modern enough.
+# If it is, set am_missing_run to use it, otherwise, to nothing.
+AC_DEFUN([AM_MISSING_HAS_RUN],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([missing])dnl
+if test x"${MISSING+set}" != xset; then
+  case $am_aux_dir in
+  *\ * | *\	*)
+    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+  *)
+    MISSING="\${SHELL} $am_aux_dir/missing" ;;
+  esac
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --is-lightweight"; then
+  am_missing_run="$MISSING "
+else
+  am_missing_run=
+  AC_MSG_WARN(['missing' script is too old or missing])
+fi
+])
+
+# Helper functions for option handling.                     -*- Autoconf -*-
+
+# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_MANGLE_OPTION(NAME)
+# -----------------------
+AC_DEFUN([_AM_MANGLE_OPTION],
+[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
+
+# _AM_SET_OPTION(NAME)
+# --------------------
+# Set option NAME.  Presently that only means defining a flag for this option.
+AC_DEFUN([_AM_SET_OPTION],
+[m4_define(_AM_MANGLE_OPTION([$1]), [1])])
+
+# _AM_SET_OPTIONS(OPTIONS)
+# ------------------------
+# OPTIONS is a space-separated list of Automake options.
+AC_DEFUN([_AM_SET_OPTIONS],
+[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+
+# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
+# -------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+AC_DEFUN([_AM_IF_OPTION],
+[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+
+# Copyright (C) 1999-2017 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_PROG_CC_C_O
+# ---------------
+# Like AC_PROG_CC_C_O, but changed for automake.  We rewrite AC_PROG_CC
+# to automatically call this.
+AC_DEFUN([_AM_PROG_CC_C_O],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([compile])dnl
+AC_LANG_PUSH([C])dnl
+AC_CACHE_CHECK(
+  [whether $CC understands -c and -o together],
+  [am_cv_prog_cc_c_o],
+  [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
+  # Make sure it works both with $CC and with simple cc.
+  # Following AC_PROG_CC_C_O, we do the test twice because some
+  # compilers refuse to overwrite an existing .o file with -o,
+  # though they will create one.
+  am_cv_prog_cc_c_o=yes
+  for am_i in 1 2; do
+    if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \
+         && test -f conftest2.$ac_objext; then
+      : OK
+    else
+      am_cv_prog_cc_c_o=no
+      break
+    fi
+  done
+  rm -f core conftest*
+  unset am_i])
+if test "$am_cv_prog_cc_c_o" != yes; then
+   # Losing compiler, so override with the script.
+   # FIXME: It is wrong to rewrite CC.
+   # But if we don't then we get into trouble of one sort or another.
+   # A longer-term fix would be to have automake use am__CC in this case,
+   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+   CC="$am_aux_dir/compile $CC"
+fi
+AC_LANG_POP([C])])
+
+# For backward compatibility.
+AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
+
+# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_RUN_LOG(COMMAND)
+# -------------------
+# Run COMMAND, save the exit status in ac_status, and log it.
+# (This has been adapted from Autoconf's _AC_RUN_LOG macro.)
+AC_DEFUN([AM_RUN_LOG],
+[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
+   ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   (exit $ac_status); }])
+
+# Check to make sure that the build environment is sane.    -*- Autoconf -*-
+
+# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_SANITY_CHECK
+# ---------------
+AC_DEFUN([AM_SANITY_CHECK],
+[AC_MSG_CHECKING([whether build environment is sane])
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name.  Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+  *[[\\\"\#\$\&\'\`$am_lf]]*)
+    AC_MSG_ERROR([unsafe absolute working directory name]);;
+esac
+case $srcdir in
+  *[[\\\"\#\$\&\'\`$am_lf\ \	]]*)
+    AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);;
+esac
+
+# Do 'set' in a subshell so we don't clobber the current shell's
+# arguments.  Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+   am_has_slept=no
+   for am_try in 1 2; do
+     echo "timestamp, slept: $am_has_slept" > conftest.file
+     set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+     if test "$[*]" = "X"; then
+	# -L didn't work.
+	set X `ls -t "$srcdir/configure" conftest.file`
+     fi
+     if test "$[*]" != "X $srcdir/configure conftest.file" \
+	&& test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+	# If neither matched, then we have a broken ls.  This can happen
+	# if, for instance, CONFIG_SHELL is bash and it inherits a
+	# broken ls alias from the environment.  This has actually
+	# happened.  Such a system could not be considered "sane".
+	AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
+  alias in your environment])
+     fi
+     if test "$[2]" = conftest.file || test $am_try -eq 2; then
+       break
+     fi
+     # Just in case.
+     sleep 1
+     am_has_slept=yes
+   done
+   test "$[2]" = conftest.file
+   )
+then
+   # Ok.
+   :
+else
+   AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+AC_MSG_RESULT([yes])
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+  ( sleep 1 ) &
+  am_sleep_pid=$!
+fi
+AC_CONFIG_COMMANDS_PRE(
+  [AC_MSG_CHECKING([that generated files are newer than configure])
+   if test -n "$am_sleep_pid"; then
+     # Hide warnings about reused PIDs.
+     wait $am_sleep_pid 2>/dev/null
+   fi
+   AC_MSG_RESULT([done])])
+rm -f conftest.file
+])
+
+# Copyright (C) 2009-2017 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_SILENT_RULES([DEFAULT])
+# --------------------------
+# Enable less verbose build rules; with the default set to DEFAULT
+# ("yes" being less verbose, "no" or empty being verbose).
+AC_DEFUN([AM_SILENT_RULES],
+[AC_ARG_ENABLE([silent-rules], [dnl
+AS_HELP_STRING(
+  [--enable-silent-rules],
+  [less verbose build output (undo: "make V=1")])
+AS_HELP_STRING(
+  [--disable-silent-rules],
+  [verbose build output (undo: "make V=0")])dnl
+])
+case $enable_silent_rules in @%:@ (((
+  yes) AM_DEFAULT_VERBOSITY=0;;
+   no) AM_DEFAULT_VERBOSITY=1;;
+    *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
+esac
+dnl
+dnl A few 'make' implementations (e.g., NonStop OS and NextStep)
+dnl do not support nested variable expansions.
+dnl See automake bug#9928 and bug#10237.
+am_make=${MAKE-make}
+AC_CACHE_CHECK([whether $am_make supports nested variables],
+   [am_cv_make_support_nested_variables],
+   [if AS_ECHO([['TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+	@$(TRUE)
+.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then
+  am_cv_make_support_nested_variables=yes
+else
+  am_cv_make_support_nested_variables=no
+fi])
+if test $am_cv_make_support_nested_variables = yes; then
+  dnl Using '$V' instead of '$(V)' breaks IRIX make.
+  AM_V='$(V)'
+  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+  AM_V=$AM_DEFAULT_VERBOSITY
+  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AC_SUBST([AM_V])dnl
+AM_SUBST_NOTMAKE([AM_V])dnl
+AC_SUBST([AM_DEFAULT_V])dnl
+AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl
+AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
+AM_BACKSLASH='\'
+AC_SUBST([AM_BACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
+])
+
+# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_STRIP
+# ---------------------
+# One issue with vendor 'install' (even GNU) is that you can't
+# specify the program used to strip binaries.  This is especially
+# annoying in cross-compiling environments, where the build's strip
+# is unlikely to handle the host's binaries.
+# Fortunately install-sh will honor a STRIPPROG variable, so we
+# always use install-sh in "make install-strip", and initialize
+# STRIPPROG with the value of the STRIP variable (set by the user).
+AC_DEFUN([AM_PROG_INSTALL_STRIP],
+[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip".  However 'strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the 'STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be 'maybe'.
+if test "$cross_compiling" != no; then
+  AC_CHECK_TOOL([STRIP], [strip], :)
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
+
+# Copyright (C) 2006-2017 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_SUBST_NOTMAKE(VARIABLE)
+# ---------------------------
+# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
+# This macro is traced by Automake.
+AC_DEFUN([_AM_SUBST_NOTMAKE])
+
+# AM_SUBST_NOTMAKE(VARIABLE)
+# --------------------------
+# Public sister of _AM_SUBST_NOTMAKE.
+AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
+
+# Check how to create a tarball.                            -*- Autoconf -*-
+
+# Copyright (C) 2004-2017 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_PROG_TAR(FORMAT)
+# --------------------
+# Check how to create a tarball in format FORMAT.
+# FORMAT should be one of 'v7', 'ustar', or 'pax'.
+#
+# Substitute a variable $(am__tar) that is a command
+# writing to stdout a FORMAT-tarball containing the directory
+# $tardir.
+#     tardir=directory && $(am__tar) > result.tar
+#
+# Substitute a variable $(am__untar) that extract such
+# a tarball read from stdin.
+#     $(am__untar) < result.tar
+#
+AC_DEFUN([_AM_PROG_TAR],
+[# Always define AMTAR for backward compatibility.  Yes, it's still used
+# in the wild :-(  We should find a proper way to deprecate it ...
+AC_SUBST([AMTAR], ['$${TAR-tar}'])
+
+# We'll loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
+
+m4_if([$1], [v7],
+  [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
+
+  [m4_case([$1],
+    [ustar],
+     [# The POSIX 1988 'ustar' format is defined with fixed-size fields.
+      # There is notably a 21 bits limit for the UID and the GID.  In fact,
+      # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
+      # and bug#13588).
+      am_max_uid=2097151 # 2^21 - 1
+      am_max_gid=$am_max_uid
+      # The $UID and $GID variables are not portable, so we need to resort
+      # to the POSIX-mandated id(1) utility.  Errors in the 'id' calls
+      # below are definitely unexpected, so allow the users to see them
+      # (that is, avoid stderr redirection).
+      am_uid=`id -u || echo unknown`
+      am_gid=`id -g || echo unknown`
+      AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])
+      if test $am_uid -le $am_max_uid; then
+         AC_MSG_RESULT([yes])
+      else
+         AC_MSG_RESULT([no])
+         _am_tools=none
+      fi
+      AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])
+      if test $am_gid -le $am_max_gid; then
+         AC_MSG_RESULT([yes])
+      else
+        AC_MSG_RESULT([no])
+        _am_tools=none
+      fi],
+
+  [pax],
+    [],
+
+  [m4_fatal([Unknown tar format])])
+
+  AC_MSG_CHECKING([how to create a $1 tar archive])
+
+  # Go ahead even if we have the value already cached.  We do so because we
+  # need to set the values for the 'am__tar' and 'am__untar' variables.
+  _am_tools=${am_cv_prog_tar_$1-$_am_tools}
+
+  for _am_tool in $_am_tools; do
+    case $_am_tool in
+    gnutar)
+      for _am_tar in tar gnutar gtar; do
+        AM_RUN_LOG([$_am_tar --version]) && break
+      done
+      am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+      am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+      am__untar="$_am_tar -xf -"
+      ;;
+    plaintar)
+      # Must skip GNU tar: if it does not support --format= it doesn't create
+      # ustar tarball either.
+      (tar --version) >/dev/null 2>&1 && continue
+      am__tar='tar chf - "$$tardir"'
+      am__tar_='tar chf - "$tardir"'
+      am__untar='tar xf -'
+      ;;
+    pax)
+      am__tar='pax -L -x $1 -w "$$tardir"'
+      am__tar_='pax -L -x $1 -w "$tardir"'
+      am__untar='pax -r'
+      ;;
+    cpio)
+      am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+      am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+      am__untar='cpio -i -H $1 -d'
+      ;;
+    none)
+      am__tar=false
+      am__tar_=false
+      am__untar=false
+      ;;
+    esac
+
+    # If the value was cached, stop now.  We just wanted to have am__tar
+    # and am__untar set.
+    test -n "${am_cv_prog_tar_$1}" && break
+
+    # tar/untar a dummy directory, and stop if the command works.
+    rm -rf conftest.dir
+    mkdir conftest.dir
+    echo GrepMe > conftest.dir/file
+    AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+    rm -rf conftest.dir
+    if test -s conftest.tar; then
+      AM_RUN_LOG([$am__untar <conftest.tar])
+      AM_RUN_LOG([cat conftest.dir/file])
+      grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+    fi
+  done
+  rm -rf conftest.dir
+
+  AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+  AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+
+AC_SUBST([am__tar])
+AC_SUBST([am__untar])
+]) # _AM_PROG_TAR
+
+m4_include([../../m4/kpse-common.m4])
+m4_include([../../m4/kpse-warnings.m4])
+m4_include([../../m4/kpse-win32.m4])


Property changes on: trunk/Build/source/utils/axodraw2/aclocal.m4
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+LF
\ No newline at end of property
Added: trunk/Build/source/utils/axodraw2/axodraw2-src/AUTHORS
===================================================================
--- trunk/Build/source/utils/axodraw2/axodraw2-src/AUTHORS	                        (rev 0)
+++ trunk/Build/source/utils/axodraw2/axodraw2-src/AUTHORS	2018-02-10 23:30:32 UTC (rev 46590)
@@ -0,0 +1,2 @@
+John Collins (jcc8 at psu dot edu)
+Jos Vermaseren (t68 at nikhef dot nl) 

Added: trunk/Build/source/utils/axodraw2/axodraw2-src/COPYING
===================================================================
--- trunk/Build/source/utils/axodraw2/axodraw2-src/COPYING	                        (rev 0)
+++ trunk/Build/source/utils/axodraw2/axodraw2-src/COPYING	2018-02-10 23:30:32 UTC (rev 46590)
@@ -0,0 +1,674 @@
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+  The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works.  By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.  We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors.  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+  To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights.  Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received.  You must make sure that they, too, receive
+or can get the source code.  And you must show them these terms so they
+know their rights.
+
+  Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+  For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software.  For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+  Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so.  This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software.  The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable.  Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products.  If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+  Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary.  To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                       TERMS AND CONDITIONS
+
+  0. Definitions.
+
+  "This License" refers to version 3 of the GNU General Public License.
+
+  "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+  "The Program" refers to any copyrightable work licensed under this
+License.  Each licensee is addressed as "you".  "Licensees" and
+"recipients" may be individuals or organizations.
+
+  To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy.  The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+  A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+  To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy.  Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+  To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies.  Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+  An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License.  If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+  1. Source Code.
+
+  The "source code" for a work means the preferred form of the work
+for making modifications to it.  "Object code" means any non-source
+form of a work.
+
+  A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+  The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form.  A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+  The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities.  However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work.  For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+  The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+  The Corresponding Source for a work in source code form is that
+same work.
+
+  2. Basic Permissions.
+
+  All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met.  This License explicitly affirms your unlimited
+permission to run the unmodified Program.  The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work.  This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+  You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force.  You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright.  Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+  Conveying under any other circumstances is permitted solely under
+the conditions stated below.  Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+  No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+  When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+  4. Conveying Verbatim Copies.
+
+  You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+  You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+  5. Conveying Modified Source Versions.
+
+  You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+    a) The work must carry prominent notices stating that you modified
+    it, and giving a relevant date.
+
+    b) The work must carry prominent notices stating that it is
+    released under this License and any conditions added under section
+    7.  This requirement modifies the requirement in section 4 to
+    "keep intact all notices".
+
+    c) You must license the entire work, as a whole, under this
+    License to anyone who comes into possession of a copy.  This
+    License will therefore apply, along with any applicable section 7
+    additional terms, to the whole of the work, and all its parts,
+    regardless of how they are packaged.  This License gives no
+    permission to license the work in any other way, but it does not
+    invalidate such permission if you have separately received it.
+
+    d) If the work has interactive user interfaces, each must display
+    Appropriate Legal Notices; however, if the Program has interactive
+    interfaces that do not display Appropriate Legal Notices, your
+    work need not make them do so.
+
+  A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit.  Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+  6. Conveying Non-Source Forms.
+
+  You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+    a) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by the
+    Corresponding Source fixed on a durable physical medium
+    customarily used for software interchange.
+
+    b) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by a
+    written offer, valid for at least three years and valid for as
+    long as you offer spare parts or customer support for that product
+    model, to give anyone who possesses the object code either (1) a
+    copy of the Corresponding Source for all the software in the
+    product that is covered by this License, on a durable physical
+    medium customarily used for software interchange, for a price no
+    more than your reasonable cost of physically performing this
+    conveying of source, or (2) access to copy the
+    Corresponding Source from a network server at no charge.
+
+    c) Convey individual copies of the object code with a copy of the
+    written offer to provide the Corresponding Source.  This
+    alternative is allowed only occasionally and noncommercially, and
+    only if you received the object code with such an offer, in accord
+    with subsection 6b.
+
+    d) Convey the object code by offering access from a designated
+    place (gratis or for a charge), and offer equivalent access to the
+    Corresponding Source in the same way through the same place at no
+    further charge.  You need not require recipients to copy the
+    Corresponding Source along with the object code.  If the place to
+    copy the object code is a network server, the Corresponding Source
+    may be on a different server (operated by you or a third party)
+    that supports equivalent copying facilities, provided you maintain
+    clear directions next to the object code saying where to find the
+    Corresponding Source.  Regardless of what server hosts the
+    Corresponding Source, you remain obligated to ensure that it is
+    available for as long as needed to satisfy these requirements.
+
+    e) Convey the object code using peer-to-peer transmission, provided
+    you inform other peers where the object code and Corresponding
+    Source of the work are being offered to the general public at no
+    charge under subsection 6d.
+
+  A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+  A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling.  In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage.  For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product.  A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+  "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source.  The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+  If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information.  But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+  The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed.  Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+  Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+  7. Additional Terms.
+
+  "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law.  If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+  When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it.  (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.)  You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+  Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+    a) Disclaiming warranty or limiting liability differently from the
+    terms of sections 15 and 16 of this License; or
+
+    b) Requiring preservation of specified reasonable legal notices or
+    author attributions in that material or in the Appropriate Legal
+    Notices displayed by works containing it; or
+
+    c) Prohibiting misrepresentation of the origin of that material, or
+    requiring that modified versions of such material be marked in
+    reasonable ways as different from the original version; or
+
+    d) Limiting the use for publicity purposes of names of licensors or
+    authors of the material; or
+
+    e) Declining to grant rights under trademark law for use of some
+    trade names, trademarks, or service marks; or
+
+    f) Requiring indemnification of licensors and authors of that
+    material by anyone who conveys the material (or modified versions of
+    it) with contractual assumptions of liability to the recipient, for
+    any liability that these contractual assumptions directly impose on
+    those licensors and authors.
+
+  All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10.  If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term.  If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+  If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+  Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+  8. Termination.
+
+  You may not propagate or modify a covered work except as expressly
+provided under this License.  Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+  However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+  Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+  Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License.  If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+  9. Acceptance Not Required for Having Copies.
+
+  You are not required to accept this License in order to receive or
+run a copy of the Program.  Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance.  However,
+nothing other than this License grants you permission to propagate or
+modify any covered work.  These actions infringe copyright if you do
+not accept this License.  Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+  10. Automatic Licensing of Downstream Recipients.
+
+  Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License.  You are not responsible
+for enforcing compliance by third parties with this License.
+
+  An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations.  If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+  You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License.  For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+  11. Patents.
+
+  A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based.  The
+work thus licensed is called the contributor's "contributor version".
+
+  A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version.  For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+  Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+  In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement).  To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+  If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients.  "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+  If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+  A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License.  You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+  Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+  12. No Surrender of Others' Freedom.
+
+  If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all.  For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+  13. Use with the GNU Affero General Public License.
+
+  Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work.  The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+  14. Revised Versions of this License.
+
+  The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+  Each version is given a distinguishing version number.  If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation.  If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+  If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+  Later license versions may give you additional or different
+permissions.  However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+  15. Disclaimer of Warranty.
+
+  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. Limitation of Liability.
+
+  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+  17. Interpretation of Sections 15 and 16.
+
+  If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+  If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+    <program>  Copyright (C) <year>  <name of author>
+    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+  You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+  The GNU General Public License does not permit incorporating your program
+into proprietary programs.  If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.  But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.

Added: trunk/Build/source/utils/axodraw2/axodraw2-src/ChangeLog
===================================================================
--- trunk/Build/source/utils/axodraw2/axodraw2-src/ChangeLog	                        (rev 0)
+++ trunk/Build/source/utils/axodraw2/axodraw2-src/ChangeLog	2018-02-10 23:30:32 UTC (rev 46590)
@@ -0,0 +1,17 @@
+2016/06/02
+	Release on CTAN:
+	axodraw2 [v. 2.1.0b 2016/06/02]
+	axohelp [v. 1.0 2016/05/23]
+
+2018/01/20
+	axohelp has standard options (-h, --help, -v, --version)
+	Change verbose option to -V instead of -v
+	Include files for autoconf and automake
+2018/01/31
+	Updated manual to include information on status of axodraw2 and
+ 	axohelp in MiKTeX.
+	Compiled axohelp on Windows 10 and updated axohelp.exe.
+	Checked package works with MiKTeX on Windows 10 by compiling
+	manual.
+2018/02/04
+	Minor corrections in manual.

Added: trunk/Build/source/utils/axodraw2/axodraw2-src/INSTALL
===================================================================
--- trunk/Build/source/utils/axodraw2/axodraw2-src/INSTALL	                        (rev 0)
+++ trunk/Build/source/utils/axodraw2/axodraw2-src/INSTALL	2018-02-10 23:30:32 UTC (rev 46590)
@@ -0,0 +1,57 @@
+MANUAL INSTALLATION of axohelp v. 1.1 and axodraw2
+==================================================
+
+
+
+A. Fully Manual Installation
+----------------------------
+
+   Note: if you do not wish to use axodraw2 with pdflatex, xelatex, or
+         lualatex, but will only use it with latex, then only the
+         first step is needed.
+
+  1.  Copy axodraw2.sty to a suitable directory for LaTeX style files.
+
+  2.  Compile the axohelp program by a command line like
+
+          gcc -o axohelp -Wall -O3 axohelp.c
+
+      (The exact details of the command line depend on your operating
+      system and which compiler you have installed for the C
+      language.)
+
+  3.  Move axohelp to a suitable directory for executables.
+
+  4.  (Optional) Copy axodraw2-man.pdf to a suitable directory for
+                 LaTex package documentation.
+
+  5.  (Optional) Copy axohelp.1 to a suitable directory for man pages.
+  
+
+B. Using autoconf etc:
+---------------------
+
+   You can also make axohelp using the GNU utilities autoconf,
+   automake and autoreconf (if these are installed).  Doing this is
+   enormous overkill for a program like axohelp with a single source
+   file and with no need to make adjustments dependent on the
+   operating system etc. Even so, we provide the files necessary for
+   the use of autoconf and automake, since these are needed when the
+   axodraw2 package is incorporated into TeXLive (which has an
+   enormous automated build process).  So here are the instructions
+   for building with autoconf and automake.  For these, it is assumed
+   that the GNU utilities autoconf, automake and autoreconf are
+   installed:
+
+   As in Fully Manual Installation, but replace step 2 by
+
+  2'. Run
+
+      autoreconf --install
+     ./configure
+     make
+     make check
+
+     The last line runs a test to ensure axohelp is running
+     correctly.
+

Added: trunk/Build/source/utils/axodraw2/axodraw2-src/Makefile.am
===================================================================
--- trunk/Build/source/utils/axodraw2/axodraw2-src/Makefile.am	                        (rev 0)
+++ trunk/Build/source/utils/axodraw2/axodraw2-src/Makefile.am	2018-02-10 23:30:32 UTC (rev 46590)
@@ -0,0 +1,16 @@
+## Makefile.am for axohelp
+##
+## Copyright (C) 2018 John Collins
+## You may freely use, modify and/or distribute this file.
+##
+
+AM_CFLAGS = $(WARNING_CFLAGS)
+
+bin_PROGRAMS = axohelp
+axohelp_SOURCES = axohelp.c
+
+## Test
+TESTS = axohelp.test
+dist_check_SCRIPTS = $(TESTS)
+CLEANFILES = test.ax2
+


Property changes on: trunk/Build/source/utils/axodraw2/axodraw2-src/Makefile.am
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Build/source/utils/axodraw2/axodraw2-src/NEWS
===================================================================
Added: trunk/Build/source/utils/axodraw2/axodraw2-src/README
===================================================================
--- trunk/Build/source/utils/axodraw2/axodraw2-src/README	                        (rev 0)
+++ trunk/Build/source/utils/axodraw2/axodraw2-src/README	2018-02-10 23:30:32 UTC (rev 46590)
@@ -0,0 +1,41 @@
+Axodraw2 is a package that defines macros for drawing Feynman graphs
+in LaTeX documents.
+
+It is an important update of the axodraw package, but since it is not
+completely backwards compatible, we have given the style file a
+changed name.
+
+Many new features have been added, with new types of line, and much
+more flexibility in their properties: For details see the
+documentation.
+
+In addition, it is now possible to use axodraw2 with pdflatex, as well
+as with the latex-dvips method. However with pdflatex (and also lualatex
+and xelatex), an external program, axohelp, is used to perform the
+geometrical calculations needed for the pdf code inserted in the
+output file.  The processing involves a run of pdflatex, a run of
+axohelp, and then another run of pdflatex.
+
+The files in the distribution are:
+
+     README           This file
+     axodraw2.sty     The main style file
+     axohelp.c        Source code of axohelp
+     axohelp.exe      MS-Windows executable for axohelp
+     axodraw2-man.pdf Documentation
+     axodraw2-man.tex Source for documentation
+     example.tex      Example latex file for use of axodraw2
+
+
+Authors, copyright, license
+---------------------------
+
+(C) 1994-2018 John Collins (jcc8 at psu dot edu) and Jos Vermaseren
+(t68 at nikhef dot nl) 
+
+Axodraw2 is free software: you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation, either version 3 of the License, or (at your
+option) any later version.  See the files axodraw2.sty or axohelp.c
+for more details.
+


Property changes on: trunk/Build/source/utils/axodraw2/axodraw2-src/README
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Build/source/utils/axodraw2/axodraw2-src/axodraw2-man.pdf
===================================================================
(Binary files differ)

Index: trunk/Build/source/utils/axodraw2/axodraw2-src/axodraw2-man.pdf
===================================================================
--- trunk/Build/source/utils/axodraw2/axodraw2-src/axodraw2-man.pdf	2018-02-10 23:28:32 UTC (rev 46589)
+++ trunk/Build/source/utils/axodraw2/axodraw2-src/axodraw2-man.pdf	2018-02-10 23:30:32 UTC (rev 46590)

Property changes on: trunk/Build/source/utils/axodraw2/axodraw2-src/axodraw2-man.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Build/source/utils/axodraw2/axodraw2-src/axodraw2-man.tex
===================================================================
--- trunk/Build/source/utils/axodraw2/axodraw2-src/axodraw2-man.tex	                        (rev 0)
+++ trunk/Build/source/utils/axodraw2/axodraw2-src/axodraw2-man.tex	2018-02-10 23:30:32 UTC (rev 46590)
@@ -0,0 +1,5200 @@
+\documentclass[12pt]{article}
+\usepackage{a4wide}
+% Use fix-cm or lmodern to get scaleable cm fonts
+\usepackage{longtable,fix-cm,url,units,hyperref}
+
+\usepackage{axodraw2}
+
+\def\num{$\langle$number$\rangle$}
+\def\colorname{$\langle$colorname$\rangle$}
+
+% How to typeset filenames and program names: Use \file and \program
+%  to allow stylistic changes.
+% Basic definition of \file would be \def\file#1{\texttt{#1}}, but
+% that would not allow line breaks in long names.  So define it by
+% \DeclareUrlCommand from url package.  (We can't use \url itself,
+% because that provokes hyperref into making a hyperlink.)
+\DeclareUrlCommand\file{\urlstyle{tt}}
+
+% Similarly specify how to typeset names of programs
+\def\program#1{\texttt{#1}}
+
+% Backslash of the kind used in verbatim 
+\newcommand\BS{\symbol{`\\}}
+
+% Set the name of a TeX macro (and possibly its signature). 
+% In the argument, the initial backslash. Allow \{ and \} in the
+% argument.  E.g. \name{SetSpace\{\#\}}}
+\newcommand\name[1]{%
+ \bgroup
+   \def\{{\symbol{`\{}}%
+   \def\}{\symbol{`\}}}%
+   \texttt{\BS#1}%
+ \egroup
+}
+
+
+\hyphenation{Jaxo-Draw}
+
+
+\begin{document}
+
+%% ?? To get settings useful to test compatibility of axodraw2 with
+%% color.sty, uncomment the following line:
+%\SetColor{Blue} \color{green} \pagecolor[cmyk]{0,0.02,0.05,0}
+%%   Note green is useful, because it is defined in rgb color model
+%% and the apparently equivalent Green, cmyk 1 0 1 0, looks quite
+%% different on screen. So we can test the colors are entering graphics
+%% correctly. 
+
+%% ?? To test whether offsets work correctly, uncomment the following
+%% line:
+%\SetOffset(10,20) \SetScaledOffset(10,-20)
+
+
+\setcounter{page}{0}
+\thispagestyle{empty}
+\hfill \begin{minipage}{3.0cm}
+Nikhef 2015-025
+\end{minipage}
+\vspace{20mm}
+
+\begin{center}
+{\LARGE\bf\sc Manual for Axodraw Version 2}
+\end{center}
+\vspace{5mm}
+\begin{center}
+{\large John C. Collins$^{\, a}$ and J.A.M. Vermaseren$^{\, b}$} 
+\vspace{1cm}\\
+{\it $^a$ Department of Physics, Pennsylvania State University, \\
+\vspace{0.1cm}
+University Park, Pennsylvania 16802, USA} \\
+\texttt{jcc8 at psu dot edu} \\
+\vspace{0.5cm}
+{\it $^b$Nikhef Theory Group \\
+\vspace{0.1cm}
+Science Park 105, 1098 XG Amsterdam, The Netherlands} \\
+\texttt{t68 at nikhef dot nl} \\
+\vspace{1.0cm}
+(31 January 2018)
+\end{center}
+\vspace{5mm}
+
+\begin{abstract}
+This is the reference manual for version two of the \LaTeX{} graphical
+style file Axodraw.  
+Relative to version one,
+it has a number of new drawing primitives and many extra options, and 
+it can now work with \program{pdflatex} to directly produce
+output in PDF file format (but with the aid of an auxiliary program).
+\end{abstract}
+
+\newpage
+
+\tableofcontents
+
+\newpage
+
+
+%>>#[ Introduction :
+%=========================
+\section{Introduction}
+\label{sec:intro}
+
+This is the documentation for axodraw2, a \LaTeX{} package for drawing
+Feynman graphs (and other simple graphics).  This is version 2 and a
+substantial update of the original axodraw package \cite{axodraw1},
+which was released in 1994, and which has become rather popular in the
+preparation of articles in elementary-particle physics.  One of its
+advantages is that its drawing primitives are included in the
+\file{.tex} document, in a human-writable form. (This also allows
+convenient production of axodraw figures by other software, e.g.,
+Jaxodraw \cite{jaxodraw1,jaxodraw2}.)  This is in distinction to
+methods that use a separate program to create graphics files that are
+read in during the processing of the \LaTeX{} file.  The objects
+needed in Feynman graphs are often difficult to draw at high quality
+with conventional computer graphics software.
+
+The original axodraw package has hardly been modified since its
+introduction.  The new version addresses several later needs.  A
+detailed list of the changes is given in Sec.\ \ref{sec:changes}.
+
+One change arises from the fact that \TeX{} (and hence \LaTeX{})
+itself does not possess sufficiently useful methods of drawing
+complicated graphics, so that the drawing of the graphics is actually
+done by inserting suitable code in the final output file (postscript
+or pdf).  The original axodraw worked only with the
+\program{latex}-\program{dvips} processing chain to put the diagrams
+in the final postscript file.\footnote{A pdf file can be produced from
+  the postscript file by a program like \program{ps2pdf}.}  Now we
+also have in common use the \program{pdflatex} (and \program{lualatex}
+and \program{xelatex}) programs that directly produce pdf.  The new
+version of axodraw works with \program{pdflatex}, \program{lualatex},
+and \program{xelatex}, as well as with the
+\program{latex}-\program{dvips} method.
+
+Furthermore, more kinds of graphical object and greater flexibility in
+their properties have been found useful for Feynman graphs.  The new
+version provides a new kind of line, B\'ezier, and is able to make the
+various kinds of line doubled.  There is now a very flexible
+configuration of arrows.  Many of the changes correspond to
+capabilities of JaxoDraw \cite{jaxodraw1,jaxodraw2}, which is a
+graphical program for drawing Feynman graphs, and which is able to
+write and to import diagrams in the axodraw format.
+
+Finally, substantial improvements have been made in the handling of
+colors, with much better compatibility with modern packages used to
+set colors in the normal \LaTeX{} part of a document.
+
+Since some of the changes (especially in the internal coding)
+introduce incompatibilities (Sec.\ \ref{sec:compat}) with the original
+version of axodraw, the new version of the style file is given a new
+name \file{axodraw2.sty}.  Then the many legacy documents (e.g., on
+\url{http://arxiv.org}) that use the old axodraw will continue to use
+the old version, and will therefore continue to be compilable without
+any need for any possible changes in the source document, and with
+unchanged output.  Even so, as regards the coding of diagrams, there
+are very few backwardly incompatible changes in axodraw2.
+
+The software is available under the GNU General Public License
+\cite{GPL} version 3.
+
+
+
+%=========================
+\section{Changes}
+\label{sec:changes}
+
+\subsection{Changes relative to original, axodraw version 1}
+\label{sec:changes.wrt.1}
+
+Relative to the original version of axodraw, the current version,
+axodraw2, has the following main changes:
+\begin{itemize}
+
+\item A bug that the line bounding an oval did not have a uniform
+  width has been corrected.
+
+\item A bug has been corrected that axodraw did not work with the
+  revtex4 document class when \verb+\maketitle+ and two-column mode
+  were used.
+
+\item Axodraw2 works both when pdf output is produced directly using
+  the programs \program{pdflatex}, \program{lualatex}, and
+  \program{xelatex}, as well as when a postscript file is produced by
+  the \program{latex}--\program{dvips} method.  The old version only
+  worked when postscript output was produced.  However, an auxiliary
+  program is needed when using \program{pdflatex}, \program{lualatex},
+  or \program{xelatex}.  See Sec.\ \ref{sec:doc.compile} for how this
+  is done.
+
+\item In the original axodraw, a diagram is coded inside a
+  \verb+picture+ environment of \LaTeX.  Now, a specialized
+  \verb+axopicture+ environment is provided and preferred; it provides
+  better behavior, especially when diagrams are to be scaled.
+
+\item In association with this, there are some changes in how scaling
+  of diagrams is done.
+
+\item An inconsistency in length units between postscript and \TeX{}
+  has been corrected.  All lengths are now specified in terms of
+  $\unit[1]{pt} = \unit[1/72.27]{in} = \unit[0.3515]{mm}$.  Previously
+  the unit length for graphics was the one defined by postscript to be 
+  $\unit[1]{bp} = \unit[1/72]{in} = \unit[0.3528]{mm}$.
+
+\item Substantial improvements have been made in the treatment of
+  color.  When named colors are used, axodraw2's use of color is
+  generally compatible with that of the modern, \LaTeX-standard
+  \file{color.sty} package.  It also provides all the color-setting
+  macros that were defined in v.\ 1 of axodraw, including those of the
+  \file{colordvi.sty} package used by v.\ 1.
+
+\item The various types of line can now be produced as double lines,
+  e.g.,
+  \begin{axopicture}(35,5)(0,-2)
+    \SetWidth{1}
+    \Line[double,sep=2.5](0,2)(35,2)
+  \end{axopicture}.
+  This is commonly used, for example, for notating Wilson lines. 
+
+\item Lines can be made from B\'ezier curves.
+  Currently this is only for simple lines, not photon, gluon, or
+  zigzag lines.
+
+\item Gluon, photon, and zigzag lines can be dashed.
+
+\item Macros are provided for drawing gluon circles, without the
+  endpoint effects given by the corresponding gluon arc macros.
+
+\item The positions and sizes of arrows can be adjusted.  See Sec.\
+  \ref{sec:arrows} for all the possibilities.  One example is 
+  \begin{axopicture}(30,6)(0,-2)
+    \SetWidth{1}
+    \Line[arrow,arrowpos=0.8](0,2)(30,2)
+  \end{axopicture}
+
+\item Macros for drawing polygons and filled polygons are provided.
+
+\item Macros for drawing rotated boxes are provided.
+
+\item A macro \verb+\ECirc+ is provided for drawing a circle with a
+  transparent interior.
+
+\item A macro \verb+\EBoxc+ is provided for drawing a box with a
+  specified center.
+
+\item A macro \verb+\AxoGrid+ is provided for drawing a grid.  One
+  use is to provide a useful tool in designing pictures.
+
+\item Since there are now many more possibilities to specify the
+  properties of a line, optional arguments to the main line drawing
+  commands can be used to specify properties in a keyword style.  
+
+\item A new macro named \verb+\Arc+ is introduced.  With the aid of
+  optional arguments, this unifies the behavior of various arc-drawing
+  commands in the original axodraw.
+
+\item For consistency with the \verb+\Gluon+ macro, the
+  \verb+\GlueArc+ macro has been renamed to \verb+\GluonArc+, with the old
+  macro retained as a synonym.
+
+\item The behavior of arcs is changed to what we think is more natural
+  behavior when the specified opening angle is outside the natural range.
+
+\item What we call macros for drawing objects with postscript text are
+  now implemented within \LaTeX{} instead of relying on instructions
+  inserted in the postscript code.  Thus all the normal \LaTeX{}
+  commands, including mathematics, can now be used in all text
+  objects, with proper scaling.  The placement and scaling of text
+  objects are more consistent. 
+
+\item Some new named colors are provided:
+  \LightYellow{LightYellow}, \LightRed{LightRed},
+  \LightBlue{LightBlue}, \LightGray{LightGray},
+  \VeryLightBlue{VeryLightBlue}.  
+  (LightYellow, LightRed, LightBlue, LightGray, VeryLightBlue.)
+
+\item The macros originally specified as \verb+\B2Text+,
+  \verb+\G2Text+, and \verb+\C2Text+ are now named \verb+\BTwoText+,
+  \verb+\GTwoText+, and \verb+\CTwoText+.  The intent of the original
+  code was to define macros with names \verb+\B2Text+, etc.  However
+  in \TeX, under normal circumstances, macro names of more than one
+  character must only contain letters, unlike typical programming
+  languages that also allow digits.  So the rules for \TeX{} macro
+  names mean that in defining, for example
+  \verb+\def\B2Text(#1,#2)#3#4{...}+, the original version of axodraw
+  actually defined a macro named named \verb+\B+, obligatorially
+  followed by \verb+2Text+.  This caused a conflict if the user wished
+  to define a macro \verb+\B+.  If it is desired to retain the old
+  behavior, then the following should be placed in the preamble of the
+  \file{.tex} file, then the axodraw2 package should be invoked in the
+  source document with the \texttt{v1compatible} option:
+    \begin{verbatim}
+          \usepackage[v1compatible]{axodraw2}
+    \end{verbatim}
+
+\end{itemize}
+
+\subsection{Changes relative to axodraw4j distributed with JaxoDraw}
+\label{sec:changes.wrt.4j}
+
+The JaxoDraw program \cite{jaxodraw2} is distributed with a version of
+axodraw called axodraw4j.  At the time of writing (July 2016), this
+was effectively a predecessor of axodraw2, but without the possibility
+of working with \program{pdflatex}.  (The suffix ``4j'' is intended to
+mean ``for JaxoDraw''.)
+
+The changes in axodraw2 relative to the version of axodraw4j dated
+2011/03/22 are the following subset of those listed in Sec.\
+\ref{sec:changes.wrt.1}:
+\begin{itemize}
+\item The ability to work with \program{pdflatex}, \program{lualatex},
+  and  \program{xelatex}.
+\item The improvements in the handling of color and fonts.
+\item The double and arrow options for B\'ezier lines.
+\item The dash option for gluons and photons.
+\item Color option for all lines.
+\item Correction of inconsistency of length unit between \TeX{} and
+  postscript. 
+\item Better drawing of double gluons and photons.
+\item Addition of the macros for making gluon circles, polygons, and rotated
+  boxes.
+\item Addition of the macros
+  \verb+\ECirc+, \verb+\EBoxc+, and \verb+\AxoGrid+.
+\item A series of ``LongArrow'' macros for drawing lines with the
+  arrow at the end.  The same effect could only be achieved in
+  axodraw4j with arrowpos=1 option to the basic line-drawing
+  commands.
+\item A series of macros like \verb+\DashDoubleLine+ to provide access
+  to the dashed and double properties in the style of the macros
+  provided in v.\ 1 of axodraw.  This is in addition to the optional
+  arguments that allow the same effect in axodraw4j and in axodraw2.
+\item The \texttt{v1compatible} and other options are provided for the
+  package.
+\item Better treatment of the scaling of objects.
+\item The treatment of ``postscript text objects'' within \LaTeX{}
+  itself. 
+\end{itemize}
+
+
+%---------------
+\subsection{Backward compatibility, etc}
+\label{sec:compat}
+
+The official user interface of axodraw2 is backward-compatible with
+versions 1 and 4j, with the exception of the issue mentioned above
+about the commands that had the signatures \verb+\B2Text+,
+\verb+\G2Text+, and \verb+\C2Text+ in the old version.
+
+As to behavior, there are some minor changes in the objects that are
+drawn, mostly concerning the exact dimensions of default arrows. The
+scaling of the sizes of text objects is changed.  The scoping of color
+changes is substantially changed, but improved.
+
+The old axodraw only used the tools available in \LaTeX{} in the early
+1990s.  The new version needs a more modern installation.
+Installations for which axodraw2 has been tested include TeXLive 2011
+and 2016.
+
+We have tested backwards compatibility by compiling the version 1
+manual with axodraw2; only a trivially modified preamble was needed.
+It also worked to compile Collins's QCD book\cite{qcdbook},
+which has a large number
+of JaxoDraw figures (processed automatically to pieces of axodraw code
+imported into the document); only changes in the preamble were needed.
+
+In addition, axodraw2 provides an \verb+axopicture+ environment inside
+of which axodraw2's graphics are coded and drawn.  In the old axodraw,
+\LaTeX's \verb+picture+ environment was used instead.  In axodraw2, we
+recommend only the use of \verb+axopicture+ environment, and that is
+the only method we document.  However, old diagrams coded with
+\verb+picture+ environment continue to work.
+
+Some possible compatibility issues could arise because the old and new
+versions load a different set of external packages.  The old version
+loaded the packages \file{epsf.sty} and \file{colordvi.sty}, and so
+macros defined by these packages were available.  The new version does
+not load these now essentially-obsolete packages; so they should be
+loaded from the document if they happen to be needed.  But the new
+version does define some macros for setting colors that correspond to
+those in \file{colordvi.sty}; these are defined using facilities from
+the standard \LaTeX{} \file{color.sty} package.  Axodraw2 loads the
+following \LaTeX{} packages: \program{keyval}, \program{ifthen},
+\program{graphicx}, \program{color}, \program{ifxetex}.  It defines
+its own set of 73 named colors which are the 68 dvips-defined names
+(as coded in \file{colordvi.sty} and used in axodraw v.\ 1), plus 5
+more.
+
+
+
+%=========================
+\section{Installation}
+\label{sec:installation}
+
+%---------------
+\subsection{Installation from standard \TeX{} distribution}
+
+At the moment that this document was updated (January 2018), axodraw2
+was part of both the main \TeX{} distributions, TeXLive and MiKTeX.
+The easiest way to install axodraw2 is therefore from the package
+manager of your \TeX{} distribution.  (There is one complication
+concerning the \program{axohelp} program --- see below.)
+
+You can also obtain axodraw2 from CTAN at
+\url{http://ctan.org/pkg/axodraw2}, and install it manually, following
+the instructions in Sec.\ \ref{sec:manual.install} below.
+
+\paragraph{\program{axohelp} in TeXLive}
+In TeXLive 2017, a binary executable for the \program{axohelp} was not
+provided, even though the rest of the axodraw2 package was provided.
+Thus you could use axodraw2 with the \program{latex} but not with
+\program{pdflatex} unless you compiled and installed the program
+\program{axohelp} yourself following the instructions below.  This is
+planned to be changed in TeXLive 2018, when \program{axohelp} should
+be provided as part of the distribution when the package axodraw2 is
+installed from the package manager.
+
+\paragraph{\program{axohelp} in MiKTeX}
+The axodraw2 package including an executable \program{axohelp.exe} was
+provided by MiKTeX when this was checked in January 2018.
+
+
+
+%---------------
+\subsection{Manual installation}
+\label{sec:manual.install}
+
+%For a manual installation, the minimum that needs to be done is to put
+For a manual installation, what needs to be done is to put the file
+\file{axodraw2.sty} in a place where it will be found by the
+\program{latex} program.  If you wish to use axodraw2 with
+\program{pdflatex}, you will also need to compile the
+\program{axohelp} program --- see Sec.\ \ref{sec:axohelp} --- and put
+it in an appropriate directory.  Documentation can also be installed
+if you want.
+
+%--
+\subsubsection{Style file \protect\file{axodraw2.sty}}
+
+If you merely want to try out axodraw2, just put the file
+\file{axodraw2.sty} in the same directory as the \file{.tex}
+file(s) you are working on. 
+
+Otherwise, put it in an appropriate directory for a \LaTeX{} style
+file, and, if necessary, run the texhash program to ensure that the
+file is in the \TeX{} system's database of files.  For example,
+suppose that you have a TeXLive system installed for all users on a
+Unix-like system (e.g., Linux or OS-X), and that TeXLive is installed,
+as is usual, under the directory \file{/usr/local/texlive}.  Then an
+appropriate place for axodraw2 is in a directory
+\file{/usr/local/texlive/texmf-local/tex/latex/axodraw2}.  You will
+need to run the \program{texhash} program in this last case.  For such
+a system-wide installation, you may have to do these
+operations as an administrative user (e.g., root), possibly
+supplemented by running the relevant commands with the \program{sudo}
+program.
+
+But note that if you later install the axodraw2 package from the
+package manager of you \TeX{} distribution, it's a good idea to delete
+the files you installed manually.  Otherwise when you use axodraw2 in
+a document, then the wrong version of \file{axodraw2.sty} may get
+used.  This is a particularly important issue after possible future
+updates to axodraw2 get installed by the package manager.
+
+%--
+\subsubsection{Helper program \program{axohelp}}
+\label{sec:axohelp}
+
+If you wish to use axodraw2 with \program{pdflatex}, \program{lualatex},
+or \program{xelatex}., then you need to install the \program{axohelp}
+program.
+
+On a Unix-like system (e.g., linux or OS-X), you first need to compile
+the program by a C compiler.  An appropriate shell command to do this
+is
+\begin{verbatim}
+   cc -o axohelp -O3 axohelp.c -lm
+\end{verbatim}
+(Note that this is a C compiler, \emph{not} a C++ compiler.)  Most linux
+systems have the program \program{cc} already installed.  This also applies to
+OS-X at versions below 10.7.  But on OS-X version 10.7 and higher, you
+will need to install a compiler, which can be done by installing XCode
+and the associated command-line utilities.  If you have the GNU
+compilers installed, you might need to use the command \program{gcc}
+instead of \program{cc}.
+
+For Microsoft Windows, if you do not have a C compiler available, you
+can use the Windows binary \file{axohelp.exe} we have provided.  It
+was compiled on Windows 10, and should work with at least that version
+of Windows.
+
+In any case once you have the executable (named \program{axohelp} on
+unix-like systems, or \program{axohelp.exe} on a Microsoft system), put
+it in a directory where it will be found when you run programs from
+the command line.
+
+
+%--
+\subsubsection{Testing}
+
+To test whether the installation works, you need a simple test file.
+An example is given in Sec.\ \ref{sec:example}, and is provided
+with the axodraw2 distribution as \file{example.tex}.
+
+At a command line with the current directory set to the directory
+containing the file \file{example.tex}, run the following commands:
+\begin{verbatim}
+   latex example
+   dvips example -o
+\end{verbatim}
+If all goes well, you will obtain a file \file{example.ps}.  When
+you view it, it should contain the diagram shown in Sec.\
+\ref{sec:example}.  You can make a pdf file instead by the commands
+\begin{verbatim}
+   latex example
+   dvipdf example
+\end{verbatim}
+A more extensive test can be made by compiling the manual.
+
+To make a pdf file directly, with \program{pdflatex}, you use the commands
+\begin{verbatim}
+   pdflatex example
+   axohelp example
+   pdflatex example
+\end{verbatim}
+The \program{axohelp} run takes as input a file \file{example.ax1}
+produced by the first run of \program{pdflatex} and makes an output
+file \file{example.ax2}.  The second run of \program{pdflatex} reads
+the \file{example.ax2} file and uses the result to place the axodraw
+objects in the \file{example.pdf} file.
+
+
+%--
+\subsubsection{Documentation}
+
+Put the documentation in a place where you can find it.  If you
+installed the \file{axodraw2.sty} file in
+\file{/usr/local/texlive/texmf-local/tex/latex/axodraw2}, the 
+standard place for the documentation would be
+\file{usr/local/texlive/texmf-local/doc/latex/axodraw2}.
+
+
+%=========================
+\section{Use}
+\label{sec:use}
+
+In this section we show how to use axodraw2, illustrated with an
+example.
+
+\subsection{Basic example}
+\label{sec:example}
+
+The principles of using axodraw2 are illustrated by the following
+complete \LaTeX{} document:
+\begin{verbatim}
+        \documentclass{article}
+        \usepackage{axodraw2}
+        \begin{document}
+        Example of Feynman graph using axodraw2 macros:
+        \begin{center}
+          \begin{axopicture}(200,110)
+            \SetColor{Red}
+            \Arc[arrow](100,50)(40,0,180)
+            \Text(100,100){$\alpha P_1 + \beta P_2 + k_\perp$}
+            \SetColor{Black}
+            \Arc[arrow](100,50)(40,180,360)
+            \Gluon(0,50)(60,50){5}{4}
+            \Vertex(60,50){2} 
+            \Gluon(140,50)(200,50){5}{4}
+            \Vertex(140,50){2}
+          \end{axopicture}
+        \end{center}
+        \end{document}
+\end{verbatim}
+After compilation according to the instructions in Sec.\
+\ref{sec:doc.compile}, viewing the resulting file should show the
+following Feynman graph:
+\begin{center}
+  \begin{axopicture}(200,110)
+    \SetColor{Red}
+    \Arc[arrow](100,50)(40,0,180)
+    \Text(100,100){$\alpha P_1 + \beta P_2 + k_\perp$}
+    \SetColor{Black}
+    \Arc[arrow](100,50)(40,180,360)
+    \Gluon(0,50)(60,50){5}{4}
+    \Vertex(60,50){2} 
+    \Gluon(140,50)(200,50){5}{4}
+    \Vertex(140,50){2}
+  \end{axopicture}
+\end{center}
+See Sec.\ \ref{sec:examples} for more examples
+
+\emph{Important note about visibility of graphics objects:} If you
+view this document on a computer monitor, Feynman graphs drawn with
+narrow lines may not fully match what was intended.  This is because
+of the way graphics viewers interact with the limited resolution of
+computer monitors. To see the example graphs properly, you may need to
+use a large enough magnification, or to use an actual print out.
+
+\emph{Note about sending a document to others}: If for example, you
+submit an article to arXiv.org, it is likely that their automated
+system for processing the file will not run \program{axohelp}. So together with
+the tex file, you one should also submit the \file{.ax2} file.
+
+
+%-----------------------
+\subsection{Document preparation}
+\label{sec:doc.prep}
+
+The general rules for preparation of a document are:
+\begin{itemize}
+
+\item Insert the following
+   \begin{verbatim}
+     \usepackage{axodraw2}
+  \end{verbatim}
+  in the preamble of the \file{.tex} file.
+  There are some options and commands that can be used to change axodraw2's
+  behavior from its default.  See Secs.\ \ref{sec:invoke} and
+  \ref{sec:settings} for details. 
+
+\item Where you want to insert axodraw2 objects, put them inside an
+  axopicture environment, specified in Sec.\ \ref{sec:env},
+  \begin{verbatim}
+     \begin{axopicture}(x,y)
+        ...
+     \end{axopicture}
+  \end{verbatim}
+  Here \texttt{x} and \texttt{y} denote the desired size of the box
+  that is to be inserted in the document and that contains the graph.
+  An optional offset can be specified (as with \LaTeX's
+  \texttt{picture} environment). By default the units are
+  $\unit[1]{pt} = \unit[1/72.27]{in} = \unit[0.3515]{mm}$.
+
+\end{itemize}
+Full details of all these components are in Sec.\
+\ref{sec:reference}. 
+
+The design of graphs can be done manually, and this can be greatly
+facilitated with the new \verb:\AxoGrid: command.  A convenient way of
+constructing diagrams is to use the graphical program
+JaxoDraw~\cite{jaxodraw1,jaxodraw2}, which is what most people
+do. This program can export axodraw code.  It also uses axodraw as one
+way of making postscript and pdf files.  The original version of
+axodraw was used by JaxoDraw until version 1.3. In version 2 of
+JaxoDraw, a specially adapted version of \file{axodraw.sty} is used,
+named \file{axodraw4j.sty}. The output from version 2 of
+JaxoDraw is compatible with axodraw2.
+
+
+%-----------------------
+\subsection{Document compilation}
+\label{sec:doc.compile}
+
+\subsubsection{To make a postscript file}
+\label{sec:doc.compile.ps}
+
+When a postscript file is needed, you just make the postscript file as
+usual.  E.g., when the source file is \file{example.tex}, you run
+the following commands:
+\begin{verbatim}
+   latex example
+   dvips example -o
+\end{verbatim}
+which results in a postscript file \file{example.ps}.  Of course, if
+there are cross references to be resolved, you may need multiple runs
+of \program{latex}, as usual.  When needed, use of \program{bibtex},
+\program{makeindex}, and other similar programs is also as usual.
+Instead of \program{latex}, one may also use the \program{dvilualatex}
+program, which behaves like \program{latex} except for providing some
+extra capabilities that are sometimes useful.
+
+Internally, axodraw uses \TeX's \verb+\special+ mechanism to put
+specifications of postscript code into the \file{.dvi} file, and
+\program{dvips} puts this code in the postscript file.  This postscript
+code performs the geometrical calculations needed to specific
+axodraw's objects, and then draws them when the file is displayed or
+printed. 
+
+\emph{Important note about configuration of \program{dvips}:} You may
+possibly find that when you run \program{dvips} that it spends a lot of
+time running \program{mktexpk} to make bitmapped fonts, or that the
+postscript
+file contains bitmapped type-3 fonts.  This is \emph{not} the default
+situation in typical current installations.  But if you do find this
+situation, which is highly undesirable in most circumstances, you
+should arrange for \program{dvips} to use type 1 fonts.  This can be
+done either by appropriately configuring your \TeX{} installation, for
+which you will have to locate instructions, or by giving
+\program{dvips} its \texttt{-V0} option:
+\begin{verbatim}
+   dvips -V0 example -o
+\end{verbatim}
+Once you do this, you should see, from \program{dvips}'s output,
+symptoms of its use of type 1 fonts. \emph{Let us re-emphasize that
+  you do not have to be concerned with this issue, under
+  normal circumstances.  But since things were different within our
+  memory, we give some suggestions as to what to do in what are
+  currently abnormal circumstances.}
+
+\subsubsection{To make a pdf file via \program{latex}}
+
+There are multiple methods of making pdf files for a latex document;
+we will not give all the advantages and disadvantages here.
+
+One way is to convert the postscript file, e.g., by
+\begin{verbatim}
+   ps2pdf example.ps
+\end{verbatim}
+You can also produce a pdf file from the dvi file produced by
+\program{latex} by the \program{dvipdf} command, e.g,.
+\begin{verbatim}
+   dvipdf example
+\end{verbatim}
+\emph{Important note:} The program here is \program{dvipdf} and
+\emph{not} the similarly named \program{dvipdfm} or \program{dvipdfmx},
+which are incompatible with axodraw.  The reason why \program{dvipdf}
+works is that it internally makes a postscript file and then converts
+it to pdf.
+
+
+\subsubsection{To make a pdf file by \program{pdflatex},
+  \program{lualatex}, or  \program{xelatex}}
+
+A common and standard way to make a pdf file is the \program{pdflatex}
+program, which makes pdf directly.  It has certain advantages, among
+which are the possibility of importing a wide variety of graphics file
+formats.  (In contrast, the \program{latex} program only handles
+encapsulated postscript.)
+
+However, to use axodraw2 with \program{pdflatex}, you need an 
+auxiliary program, \program{axohelp}, as in
+\begin{verbatim}
+   pdflatex example
+   axohelp example
+   pdflatex example
+\end{verbatim}
+What happens is that during a run of \program{pdflatex}, axodraw2
+writes a file \file{example.ax1} containing specifications of its
+graphical objects.  Then running \program{axohelp} reads the
+\file{example.ax1} file, computes the necessary pdf code to draw the
+objects, and writes the results to \file{example.ax2}.  The next run
+of \program{pdflatex} reads \file{example.ax2} and uses it to put the
+appropriate code in the output pdf file.
+
+The reason for the extra program is that axodraw needs many
+geometrical calculations to place and draw its graphical objects.
+\LaTeX{} itself does not provide anything convenient and efficient for
+these calculations, while the PDF language does not offer sufficient
+computational facilities, unlike the postscript language.
+
+If you modify a document, and recompile with \program{pdflatex}, you
+will only need to rerun \program{axohelp} if the modifications
+involve axodraw objects.  Axodraw2 will output an appropriate message
+when a rerun of \program{axohelp} is needed.
+
+If you wish to use \program{lualatex} or \program{xelatex}, instead of
+\program{pdflatex}, then you can simply run the program
+\program{lualatex} or \program{xelatex} instead of
+\program{pdflatex}. These are equally compatible with axodraw2.
+
+
+
+
+%-----------------------
+\subsection{Automation of document compilation}
+\label{sec:doc.auto.compile}
+
+It can be useful to automate the multiple steps for compiling a
+\LaTeX{} document.  One of us has provided a program \program{latexmk}
+to do this --- see \url{http://www.ctan.org/pkg/latexmk/}.  Here we
+show how to configure 
+\program{latexmk} to run \program{axohelp} as needed when a document is
+compiled via the \program{pdflatex} route.
+
+All you need to do is to put the following lines in one of
+\program{latexmk}'s initialization files (as specified in its
+documentation):
+\begin{verbatim}
+     add_cus_dep( "ax1", "ax2", 0, "axohelp" );
+     sub axohelp { return system "axohelp \"$_[0]\""; }
+     $clean_ext .= " %R.ax1 %R.ax2";
+\end{verbatim}
+The first two lines specify that \program{latexmk} is to make
+\file{.ax2} files from \file{.ax1} files by the \program{axohelp}
+program, whenever necessary.  (After that \program{latexmk}
+automatically also does any further runs of \program{pdflatex} that are
+necessary.)  The last line is optional; it adds \file{.ax1} and
+\file{.ax2} files to the list of files that will be deleted when
+\program{latexmk} is requested to do a clean up of generated,
+recreatable files.
+
+\program{Latexmk} is installed by default by the currently common
+distributions of \TeX{} software, i.e., TeXLive and MiKTeX.  It has as
+an additional requirement a properly installed Perl system.  For the
+TeXLive distribution, this requirement is always met.
+
+With the above configuration, you need no change in how you invoke
+\program{latexmk} to compile a document, when it uses axodraw2.  For
+producing postscript, you can simply use
+\begin{verbatim}
+     latexmk -ps example
+\end{verbatim}
+and for producing pdf via \program{pdflatex} you can use
+\begin{verbatim}
+     latexmk -pdf example
+\end{verbatim}
+Then \program{latexmk} takes care of whatever runs are needed of all
+the relevant programs, now including \program{axohelp}, as well
+whatever, possibly multiple, runs are needed for the usual programs
+(\program{latex}, \program{pdflatex}, \program{bibtex}, etc).
+
+
+
+%>>#] Introduction :
+%>>#[ The Commands :
+
+\section{Reference}
+\label{sec:reference}
+
+\subsection{Package invocation}
+\label{sec:invoke}
+
+To use the axodraw2 package in a \LaTeX{} document, you simply put
+\begin{verbatim}
+     \usepackage{axodraw2}
+\end{verbatim}
+in the preamble of the document, as normal.  
+
+The \verb+\usepackage+ command takes optional arguments
+(comma-separated list of keywords) in square brackets, e.g.,
+\begin{verbatim}
+     \usepackage[v1compatible]{axodraw2}
+\end{verbatim}
+The options supported by axodraw2 are
+\begin{itemize}
+\item \texttt{v1compatible}: This makes axodraw2's operation more
+  compatible with v.\ 1.  It allows the use of \verb+\B2Text+,
+  \verb+\G2Text+, and \verb+\C2Text+ as synonyms for the macros named
+  \verb+\BTwoText+, \verb+\GTwoText+, and \verb+\CTwoText+.
+  (You may wish also to use the \texttt{canvasScaleisUnitLength}
+  option, so that the scaling of the units in the \texttt{axopicture}
+  environment is the same as it was for the \texttt{picture}
+  environment used in v.\ 1.)
+\item \texttt{canvasScaleIs1pt}: Unit for canvas dimensions
+  in an \texttt{axopicture} environment is fixed at $\unit[1]{pt}$,
+\item \texttt{canvasScaleIsObjectScale}: Unit for canvas dimensions
+  in an \texttt{axopicture} environment are the same as those set for
+  axodraw objects (by the \verb+\SetScale+ macro).  This is the
+  default setting, so the option need not be given.
+\item \texttt{canvasScaleIsUnitLength}: Unit for canvas dimensions
+  in an \texttt{axopicture} environment is the current value of
+  \verb+\unitlength+, exactly as for \LaTeX{}'s \texttt{picture}
+  environment.  (Thus, this corresponds to the behavior of the
+  original axodraw v.\ 1, which simply used the \texttt{picture}
+  environment.)
+\item \texttt{PStextScalesIndependently}: Axodraw's text objects are
+  scaled by the factor set by the \verb+\SetTextScale+ command.
+\item \texttt{PStextScalesLikeGraphics}: Axodraw's text objects are
+  scaled by the factor set by same factor for its graphics objects,
+  i.e., the scale set by the \verb+\SetScale+ command.
+\end{itemize}
+(N.B. Default scaling factors are initialized to unity.)
+
+\emph{Note:} If you use \program{axodraw}'s commands for placing text
+and you use the standard \TeX{} Computer Modern fonts for the
+document, then when you compile your document you may get a lot of
+warning messages.  These are about fonts not being available in
+certain sizes.  To fix this problem invoke the package
+\program{fix-cm} in your document's preamble:
+\begin{verbatim}
+    \usepackage{fix-cm}
+\end{verbatim}
+It is also possible to use the package \program{lmodern} for the same
+purpose. 
+
+
+\subsection{Environment(s)}
+\label{sec:env}
+
+The graphical and other objects made by axodraw2 are placed in an
+\texttt{axopicture} environment, which is invoked either as
+\begin{verbatim}
+     \begin{axopicture}(x,y)
+        ...
+     \end{axopicture}
+\end{verbatim}
+or
+\begin{verbatim}
+     \begin{axopicture}(x,y)(xoffset,yoffset)
+        ...
+     \end{axopicture}
+\end{verbatim}
+Here, the \dots{} denote sequences of axodraw2 commands, as documented
+in later sections, for drawing lines, etc.  The \texttt{axopicture}
+environment is just like standard \LaTeX's \texttt{picture}
+environment,\footnote{In fact, the \texttt{axopicture} is changed from
+  the \texttt{picture} environment only by making some
+  axodraw-specific settings. So the \texttt{picture} environment that
+  was used in v.\ 1 may also be used with axodraw2; it merely has a
+  lack of automation on the setting of the canvas scale relative to
+  the object scale, and, in the future, other possible
+  initializations.}, except for doing some axodraw-specific
+initialization.  It inserts a region of size \texttt{x} by \texttt{y}
+(with default units of $\unit[1]{pt} = \unit[1/72.27]{in} =
+\unit[0.3515]{mm}$). Here \texttt{x} and \texttt{y} are set to the
+numerical values you need.
+
+The positioning of axodraw objects is specified by giving $x$ and $y$
+coordinates, e.g., for the ends of lines.  The origin of these
+coordinates is, by default, at the lower left corner of the box that
+\texttt{axopicture} inserts in your document.  But sometimes,
+particularly after editing a graph, you will find this is not
+suitable.  To avoid changing a lot of coordinate values to get correct
+placement, you can specify an offset by the optional arguments
+\texttt{(xoffset,yoffset)} to the \texttt{axopicture} environment,
+exactly as for \LaTeX's \texttt{picture} environment.  The offset
+\texttt{(xoffset,yoffset)} denotes the position of the bottom left
+corner of the box inserted in your document relative to the coordinate
+system used for specifying object positions.  Thus
+\begin{verbatim}
+     \begin{axopicture}(20,20)
+        \Line(0,0)(20,20)
+     \end{axopicture}
+\end{verbatim}
+and 
+\begin{verbatim}
+     \begin{axopicture}(20,20)(-10,20)
+        \Line(-10,20)(10,40)
+     \end{axopicture}
+\end{verbatim}
+are exactly equivalent.
+
+Within an \texttt{axopicture} environment, all the commands that can
+be used inside an ordinary \texttt{picture} environment can also be
+used. 
+
+We can think of the \texttt{axopicture} environment as defining a
+drawing canvas for axodraw's graphical and text objects.
+There are possibilities for manipulating (separately) the units used
+to specify the canvas and the objects.  These can be useful for
+scaling a diagram or parts of it from an originally chosen design.
+See Secs.\ \ref{sec:units} and \ref{sec:settings} for details.
+
+
+\subsection{Graphics drawing commands}
+\label{sec:commands}
+
+In this section we present commands for drawing graphical objects,
+split up by category.  Later, we will give: details of options to the
+line-drawing commands, explanations of some details about specifying
+gluons and about specifying arrow parameters, and then commands for
+textual objects and for adjusting settings (e.g., separation in a
+double line).  Mostly, we present the commands by means of examples.
+Note that many of the arguments of the commands, notably arguments for
+$(x,y)$ coordinate values are delimited by parentheses and commas
+instead of the brace delimiters typically used in \LaTeX.
+
+It should also be noted that some commands provide different ways of
+performing the same task. For instance
+\begin{verbatim}
+   \BCirc(50,50){30}
+\end{verbatim}
+can also be represented by
+\begin{verbatim}
+   \CCirc(50,50){30}{Black}{White}
+\end{verbatim}
+when the current color is black. The presence of the BCirc command has been 
+maintained both for backward compatibility, and because it represents
+a convenient short hand for a common situation. This also holds for similar 
+commands involving boxes and triangles. For the new Polygon, FilledPolygon, 
+RotatedBox and FilledRotatedBox commands we have selected a more minimal 
+scheme.
+
+Similar remarks apply to the new feature of options for line drawing
+commands. Originally in v.\ 1, a line with an arrow would be coded as
+\begin{verbatim}
+   \ArrowLine(30,65)(60,25)
+\end{verbatim}
+It is now also possible to code using the general \verb+\Line+ macro,
+but with a keyword optional argument:
+\begin{verbatim}
+   \Line[arrow](30,65)(60,25)
+\end{verbatim}
+One advantage of the option method is a variety of other properties of
+an individual line may also be coded, as in
+\begin{verbatim}
+   \Line[arrow,arrowpos=1](30,65)(60,25)
+\end{verbatim}
+without the need to use separate global setting for the property, by
+the commands listed in Sec.\ \ref{sec:settings}, or by having a
+corresponding compulsory argument to the command.
+Which way to do things is a matter of user taste in particular
+situations.
+
+%--#[ AxoGrid :
+
+\subsubsection{Grid drawing}
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,140)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,14){LightGray}{0.5}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{axogrid}
+\verb:\AxoGrid(0,0)(10,10)(9,14){LightGray}{0.5}: \hfill \\
+This command is used in our examples to allow the reader to compare the 
+coordinates in the commands with those of the actual picture. The arguments 
+are first the position of the left bottom corner, then two values that tell 
+the size of the divisions in the $x$ and $y$ direction. Next there are two 
+values that specify how many divisions there should be in the $x$ and $y$ 
+direction. Then the color of the lines is given and finally the width of 
+the lines. Note that if there are $(n_x,n_y)$ divisions there will be 
+$n_x+1$ vertical lines and $n_y+1$ horizontal lines. The temporary use of 
+this command can also be convenient when designing pictures manually.
+\end{minipage}\vspace{4mm}
+
+%--#] AxoGrid :
+%--#[ Line :
+
+\subsubsection{Ordinary straight lines}
+\label{sec:Line}
+
+
+All of the commands in this section can be given optional keyword
+arguments, which are defined in Secs.\ \ref{sec:options} and
+\ref{sec:arrows}.  These can be used to specify the type of line
+(dashed, double), to specify the use of an arrow, and its parameters, and
+to specify some of the line's parameters.
+
+The basic line drawing command is \verb+\Line+:\\[3mm]
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,40)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,4){LightGray}{0.5}
+\Line(10,10)(80,30)
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{line}
+\verb:\Line(10,10)(80,30): \hfill \\
+In this command we have two coordinates. The (solid) line goes from the 
+first to the second.
+\end{minipage}\vspace{4mm}
+
+Examples of the use of optional arguments are:\\[3mm]
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,80)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,8){LightGray}{0.5}
+\Line[color=Magenta,arrow](10,70)(80,70)
+\Line[dash](10,50)(80,50)
+\Line[arrow,double](10,30)(80,30)
+\Line[arrow,dash,double](10,10)(80,10)
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{line.options}
+\begin{verbatim}
+\Line[color=Magenta,arrow](10,70)(80,70)
+\Line[dash](10,50)(80,50)
+\Line[arrow,double](10,30)(80,30)
+\Line[arrow,dash,double](10,10)(80,10)
+\end{verbatim}
+\end{minipage}
+\\[4mm]
+Details of the specification of arrows, together with alternative
+commands for making lines with arrows are given in Sec.\
+\ref{sec:arrows}. 
+
+\vspace{4mm}
+%--#] Line :
+%--#[ DoubleLine :
+
+Alternative commands for dashed and/or double lines are:\\[3mm]
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,40)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,4){LightGray}{0.5}
+\DoubleLine(10,25)(80,25){1}
+\DoubleLine[color=Red](10,15)(80,15){2}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{doubleline}
+\verb:\DoubleLine(10,25)(80,25){1}: \hfill \\
+\verb:\DoubleLine[color=Red](10,15)(80,15){2}: \hfill \\
+In this command we have two coordinates as in the Line command but two 
+lines are drawn. The extra parameter is the separation between the two 
+lines. Note however that everything between the lines is blanked out.
+\end{minipage}\vspace{4mm}
+
+%--#] DoubleLine :
+%--#[ DashLine :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,40)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,4){LightGray}{0.5}
+\DashLine(10,25)(80,25){2}
+\DashLine(10,15)(80,15){6}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{dashline}
+\verb:\DashLine(10,25)(80,25){2}: \hfill \\
+\verb:\DashLine(10,15)(80,15){6}: \hfill \\
+In this command we have two coordinates. The dashed line goes from the 
+first to the second. The extra parameter is the size of the dashes. The 
+space between the dashes is transparent.
+\end{minipage}\vspace{4mm}
+
+%--#] DashLine :
+%--#[ DashDoubleLine :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,40)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,4){LightGray}{0.5}
+\DashDoubleLine(10,25)(80,25){1.5}{2}
+\DashDoubleLine(10,15)(80,15){1.5}{6}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{dashdoubleline}
+\verb:\DashDoubleLine(10,25)(80,25){1.5}{2}: \hfill \\
+\verb:\DashDoubleLine(10,15)(80,15){1.5}{6}: \hfill \\
+In this command we have two coordinates. The dashed lines go from the 
+first to the second. The first extra parameter is the separation between 
+the lines and the second extra parameter is the size of the dashes.
+\end{minipage}\vspace{4mm}
+
+%--#] DashDoubleLine :
+%--#[ Arc :
+
+\subsubsection{Arcs}
+\label{sec:Arc}
+
+The commands in this section draw circular arcs in types corresponding
+to the straight lines of Sec.\ \ref{sec:Line}.  In v.\ 1, some of
+these commands had names containing ``Arc'' and some ``CArc''.  Some
+kinds had variant names containing ``Arcn'', whose the direction of
+drawing was clockwise instead of anticlockwise. In v.\ 2, we have
+tried to make the situation more consistent.  First, all the old names
+have been retained, for backward compatibility.  Second, a general
+purpose command \verb+\Arc+ has been introduced; in a single command,
+with the aid of optional arguments, it covers all the variants.  See
+Secs.\ \ref{sec:options} and \ref{sec:arrows} for full details.  The
+options can be used to specify the type of line (dashed, double,
+clockwise or anticlockwise), to specify the use of arrow, and its
+parameters, and to specify some of the line's parameters.  The other
+commands in this section can also be given optional keyword arguments.
+
+The basic \verb+\Arc+ command has the form\\[3mm]
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,50)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,5){LightGray}{0.5}
+\Arc(45,0)(40,20,160)
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{carc}
+\verb:\Arc(45,0)(40,20,160):\hfill \\
+In this command we have one coordinate: the center of the circle. Then 
+follow the radius of the circle, the start angle and the finishing angle. 
+The arc will be drawn counterclockwise.
+\end{minipage}\vspace{4mm}
+
+An example of the use of the optional parameters is:\\[3mm]
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(80,80)(-10,0)}
+\AxoGrid(0,0)(10,10)(8,8){LightGray}{0.5}
+\Arc[arrow,dash,clockwise](40,40)(30,20,160)
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{carc.opt}
+\verb:\Arc[arrow,dash,clockwise](40,40)(30,20,160):
+\end{minipage}\vspace{4mm}
+
+Alternative commands for dashed and/or double arcs are as follows.
+\vspace*{4mm}
+
+%--#] Arc :
+%--#[ DoubleArc :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,50)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,5){LightGray}{0.5}
+\DoubleArc[color=Green](45,0)(40,20,160){2}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{doublearc}
+\verb:\DoubleArc[color=Green](45,0)(40,20,160){2}:\hfill \\
+In this command we have one coordinate: the center of the circle. Then 
+follow the radius of the circle, the start angle and the finishing angle. 
+The arc will be drawn counterclockwise. The last argument is the line 
+separation of the double line.
+\end{minipage}\vspace{4mm}
+
+%--#] DoubleArc :
+%--#[ DashArc :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,50)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,5){LightGray}{0.5}
+\DashArc(45,0)(40,20,160){4}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{dasharc}
+\verb:\DashArc(45,0)(40,20,160){4}:\hfill \\
+In this command we have one coordinate: the center of the circle. Then 
+follow the radius of the circle, the start angle and the finishing angle. 
+The arc will be drawn counterclockwise. The last argument is the size of 
+the dashes.
+\end{minipage}\vspace{4mm}
+
+%--#] DashArc :
+%--#[ DashDoubleArc :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,50)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,5){LightGray}{0.5}
+\DashDoubleArc(45,0)(40,20,160){2}{4}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{dashdoublearc}
+\verb:\DashDoubleArc(45,0)(40,20,160){2}{4}:\hfill \\
+In this command we have one coordinate: the center of the circle. Then 
+follow the radius of the circle, the start angle and the finishing angle. 
+The arc will be drawn counterclockwise. The last two arguments are the line 
+separation of the double line and the size of the dashes.
+\end{minipage}\vspace{4mm}
+
+%--#] DashDoubleArc :
+%--#[ Bezier :
+
+\subsubsection{B\'ezier lines}
+\label{sec:Bezier}
+
+The commands in this section draw B\'ezier curves, specified by 4
+points.  The variants are just as for straight lines, Sec.\
+\ref{sec:Line}.
+
+All of the commands in this section can be given optional keyword
+arguments, which are defined in Sec.\ \ref{sec:options}.  These can be
+used to specify the type of line (dashed, double), to specify the use
+of an arrow, and its parameters, and to specify some of the line's
+parameters.
+
+The basic general purpose command is \verb+\Bezier+:\\[3mm]
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(60,60)(-25,0)}
+\AxoGrid(0,0)(10,10)(6,6){LightGray}{0.5}
+\Bezier(10,10)(75,30)(65,40)(20,50)
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{bezier}
+\verb:\Bezier(10,10)(75,30)(65,40)(20,50): \hfill \\
+Draws a cubic B\'ezier curve based on the four given points. The first
+point is the starting point and the fourth the finishing point. The
+second and third points are the two control points.
+\end{minipage}\vspace{4mm}
+
+An example of the use of optional arguments is
+\\[3mm]
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(60,60)(-25,0)}
+\AxoGrid(0,0)(10,10)(6,6){LightGray}{0.5}
+\Bezier[color=Red,arrow,double,arrowpos=1](10,10)%
+    (75,30)(65,40)(20,50)
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{bezier.opt}
+\begin{verbatim}
+  \Bezier[color=Red,arrow,double,arrowpos=1](10,10)%
+    (75,30)(65,40)(20,50)
+\end{verbatim}
+\end{minipage}\vspace{4mm}
+
+%--#] Bezier :
+%--#[ DoubleBezier :
+Alternative ways of making dashed and/or double B\'ezier curves
+are:\\[3mm]
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(60,60)(-25,0)}
+\AxoGrid(0,0)(10,10)(6,6){LightGray}{0.5}
+\DoubleBezier(10,10)(75,30)(65,40)(20,50){1.5}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{doublebezier}
+\verb:\DoubleBezier(10,10)(75,30)(65,40)(20,50){1.5}: \hfill \\
+Draws a cubic B\'ezier curve based on the four given points. 
+The first four arguments are the same as for \verb+\Bezier+.
+The final argument is the line separation.
+\end{minipage}\vspace{4mm}
+
+%--#] DoubleBezier :
+%--#[ DashBezier :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(60,60)(-25,0)}
+\AxoGrid(0,0)(10,10)(6,6){LightGray}{0.5}
+\DashBezier(10,10)(75,30)(65,40)(20,50){4}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{dashbezier}
+\verb:\DashBezier(10,10)(75,30)(65,40)(20,50){4}: \hfill \\
+Draws a cubic B\'ezier curve based on the four given points. 
+The first four arguments are the same as for \verb+\Bezier+.
+The final argument is the size of the dashes.
+\end{minipage}\vspace{4mm}
+
+%--#] DashBezier :
+%--#[ DashDoubleBezier :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(60,60)(-25,0)}
+\AxoGrid(0,0)(10,10)(6,6){LightGray}{0.5}
+\DashDoubleBezier(10,10)(75,30)(65,40)(20,50){1.5}{4}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{dashdoublebezier}
+\verb:\DashDoubleBezier(10,10)(75,30)(65,40)(20,50){1.5}{4}:
+Draws a cubic B\'ezier curve based on the four given points. 
+The first four arguments are the same as for \verb+\Bezier+.
+The final two arguments are the line separation and the size of the
+dashes.
+\end{minipage}\vspace{4mm}
+
+%--#] DashDoubleBezier :
+%--#[ Curve :
+
+\subsubsection{Curves}
+
+The commands in this section draw curves through an arbitrary sequence
+of points.  They only exist in variants for continuous and dashed
+lines.  No optional arguments are allowed.
+\vspace{4mm}
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(60,60)(-25,0)}
+\AxoGrid(0,0)(10,10)(6,6){LightGray}{0.5}
+\Curve{(5,55)(10,32.5)(15,23)(20,18)(25,14.65)(30,12.3)(40,9.5)(55,7)}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{curve}
+\verb:\Curve{(5,55)(10,32.5)(15,23)(20,18): \hfill \\
+\verb:       (25,14.65)(30,12.3)(40,9.5)(55,7)}: \hfill \\
+Draws a smooth curve through the given points. The $x$ coordinates of the 
+points should be in ascending order. The curve is obtained by constructing 
+quadratic fits to each triplet of adjacent points and then in each interval 
+between two points interpolating between the two relevant parabolas.
+\end{minipage}\vspace{4mm}
+
+%--#] Curve :
+%--#[ DashCurve :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(60,60)(-25,0)}
+\AxoGrid(0,0)(10,10)(6,6){LightGray}{0.5}
+\DashCurve{(5,55)(10,32.5)(15,23)(20,18)(25,14.65)(30,12.3)(40,9.5)(55,7)}{4}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{dashcurve}
+\verb:\DashCurve{(5,55)(10,32.5)(15,23)(20,18): \hfill \\
+\verb:       (25,14.65)(30,12.3)(40,9.5)(55,7)}{4}: \hfill \\
+Draws a smooth dashed curve through the given points. The $x$ coordinates of 
+the points should be in ascending order. The last argument is the size of 
+the dashes.
+\end{minipage}\vspace{4mm}
+
+%--#] DashCurve :
+%--#[ Gluon :
+
+\subsubsection{Gluon lines}
+\label{sec:Gluon}
+
+The basic gluon drawing commands are \verb+\Gluon+, \verb+\GluonArc+,
+\verb+\GluonCirc+.  There are also variants for dashed and double
+gluons. But arrows aren't possible.
+
+See Sec.\ \ref{sec:gluon.remarks} for additional information on the
+shape of gluon lines.
+
+All of the commands in this section can be given optional keyword
+arguments, which are defined in Sec.\ \ref{sec:options}.  These can be
+used to specify the type of line (dashed, double), and to specify some
+of the line's parameters.
+\vspace{3mm}
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,40)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,4){LightGray}{0.5}
+\Gluon(10,20)(80,20){5}{7}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{gluon}
+\verb:\Gluon(10,20)(80,20){5}{7}: \hfill \\
+In this command we have coordinates for the start and end of the line,
+the amplitude of the windings and the number of windings.  A negative
+value for the amplitude reverses the orientation of the windings ---
+see Sec.\ \ref{sec:gluon.remarks} for details.
+\end{minipage}
+\\[4mm]
+Optional arguments can be used, e.g., \hfill \\[3mm]
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,40)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,4){LightGray}{0.5}
+\Gluon[color=Blue,dash,dashsize=1,double](10,20)(80,20){4}{7}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{gluon.opt}
+\verb:\Gluon[color=Blue,dash,double](10,20)(80,20){4}{7}:
+\end{minipage}
+
+
+\vspace{4mm}
+
+%--#] Gluon :
+%--#[ DoubleGluon :
+\noindent
+Examples of the other commands for various types of gluon line are as
+follows. They can all take optional arguments.
+\\[3mm]
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,40)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,4){LightGray}{0.5}
+\DoubleGluon(10,20)(80,20){5}{7}{1.3}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{doublegluon}
+\verb:\DoubleGluon(10,20)(80,20){5}{7}{1.3}:\hfill \\
+The first 6 arguments are as in the \verb+\Gluon+ command. The
+extra argument is the line separation.
+\end{minipage}\vspace{4mm}
+
+%--#] DoubleGluon :
+%--#[ DashGluon :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,40)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,4){LightGray}{0.5}
+\DashGluon(10,20)(80,20){5}{7}{1}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{dashgluon}
+\verb:\DashGluon(10,20)(80,20){5}{7}{1}:\hfill \\
+The first 6 arguments are as in the \verb+Gluon+ command. The 
+extra argument is the size of the dashes.
+\end{minipage}\vspace{4mm}
+
+%--#] DashGluon :
+%--#[ DashDoubleGluon :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,40)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,4){LightGray}{0.5}
+\DashDoubleGluon(10,20)(80,20){5}{7}{1.3}{1}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{dashdoublegluon}
+\verb:\DashDoubleGluon(10,20)(80,20){5}{7}{1.3}{1}:\hfill \\
+The first 7 arguments are as in the \verb+DoubleGluon+
+command.
+The last two arguments are the line 
+separation of the double line and the size of the dashes.
+\end{minipage}
+\vspace{8mm}
+
+%--#] DashDoubleGluon :
+%--#[ GluonArc :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,50)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,5){LightGray}{0.5}
+\GluonArc(45,0)(40,20,160){5}{8}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{gluonarc}
+\verb:\GluonArc(45,0)(40,20,160){5}{8}:\hfill \\
+In this command we have one coordinate: the center of the circle. Then 
+follow the radius of the circle, the start angle and the finishing angle. 
+The arc will be drawn counterclockwise. The final two parameters are the 
+amplitude of the windings and the number of windings.
+Like the other commands in this section, this command can take
+optional arguments, Sec.\ \ref{sec:options}.
+\end{minipage}
+\vspace{4mm}
+
+%--#] GluonArc :
+%--#[ DoubleGluonArc :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,50)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,5){LightGray}{0.5}
+   \DoubleGluonArc[color=Red](45,0)(40,20,160)%
+                             {5}{8}{1.3}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{doublegluonarc}
+\begin{verbatim}
+   \DoubleGluonArc[color=Red](45,0)(40,20,160)%
+                             {5}{8}{1.3}
+\end{verbatim}
+The first 7 arguments are as in the \verb+GluonArc+ command. The extra
+argument is the separation in the double line.
+\end{minipage}\vspace{4mm}
+
+%--#] DoubleGluonArc :
+%--#[ DashGluonArc :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,50)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,5){LightGray}{0.5}
+\DashGluonArc(45,0)(40,20,160){5}{8}{1.5}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{dashgluonarc}
+\verb:\DashGluonArc(45,0)(40,20,160){5}{8}{1.5}:\hfill \\
+The first 7 arguments are as in the \verb+GluonArc+ command. The extra
+argument is the size of the dash segments.
+\end{minipage}\vspace{4mm}
+
+%--#] DashGluonArc :
+%--#[ DashDoubleGluonArc :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,50)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,5){LightGray}{0.5}
+\DashDoubleGluonArc(45,0)(40,20,160){5}{8}{1.3}{1.5}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{dashdoublegluonarc}
+\verb:\DashDoubleGluonArc(45,0)(40,20,160){5}{8}{1.3}{1.5}:\hfill \\
+The first 7 arguments are as in the \verb+GluonArc+ command. The extra
+arguments are the separation of the lines and the size of the dash
+segments.
+\end{minipage}\vspace{10mm}
+
+%--#] DashDoubleGluonArc :
+%--#[ GluonCirc :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(80,80)(-15,0)}
+\AxoGrid(0,0)(10,10)(8,8){LightGray}{0.5}
+\GluonCirc(40,40)(30,0){5}{16}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{gluoncirc}
+\verb:\GluonCirc(40,40)(30,0){5}{16}:\hfill \\
+The arguments are: Coordinates for the center of the circle, the
+radius and a phase, the 
+amplitude of the gluon windings and the number of windings.
+Like the other commands in this section, this command can take
+optional arguments, Sec.\ \ref{sec:options}.  The phase argument
+specifies a counterclockwise rotation of the line relative to a
+default starting point.
+\end{minipage}\vspace{4mm}
+
+%--#] GluonCirc :
+%--#[ DoubleGluonCirc :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(80,80)(-15,0)}
+\AxoGrid(0,0)(10,10)(8,8){LightGray}{0.5}
+\DoubleGluonCirc[color=Red](40,40)(30,0){5}{16}{1.3}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{doublegluoncirc}
+\verb:\DoubleGluonCirc[color=Red](40,40)(30,0){5}{16}{1.3}:\hfill \\
+The first 6 arguments are as for the \verb+GluonCirc+ command.  The
+final argument is the line separation.
+\end{minipage}\vspace{4mm}
+
+%--#] DoubleGluonCirc :
+%--#[ DashGluonCirc :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(80,80)(-15,0)}
+\AxoGrid(0,0)(10,10)(8,8){LightGray}{0.5}
+\DashGluonCirc(40,40)(30,0){5}{16}{1.5}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{dashgluoncirc}
+\verb:\DashGluonCirc(40,40)(30,0){5}{16}{1.5}:\hfill \\
+The first 6 arguments are as for the \verb+GluonCirc+ command.  
+The final argument is the size of the dashes.
+\end{minipage}\vspace{4mm}
+
+%--#] DashGluonCirc :
+%--#[ DashDoubleGluonCirc :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(80,80)(-15,0)}
+\AxoGrid(0,0)(10,10)(8,8){LightGray}{0.5}
+\DashDoubleGluonCirc(40,40)(30,0){5}{16}{1.3}{1.5}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{dashdoublegluoncirc}
+\verb:\DashDoubleGluonCirc(40,40)(30,0){5}{16}{1.3}{1.5}:\hfill \\
+The first 6 arguments are as for the \verb+GluonCirc+ command.  
+The final 2 arguments are the line separation and the size of the
+dashes.
+\end{minipage}\vspace{4mm}
+
+%--#] DashDoubleGluonCirc :
+%--#[ Photon :
+
+\subsubsection{Photon lines}
+\label{sec:Photon}
+
+The basic drawing commands for drawing photon lines are \verb+\Photon+
+and \verb+\PhotonArc+.  There are also variants for dashed and double
+photons. But arrows aren't possible.
+
+All of the commands in this section can be given optional keyword
+arguments, which are defined in Sec.\ \ref{sec:options}.  These can be
+used to specify the type of line (dashed, double), and to specify some
+of the line's parameters.\vspace{3mm}
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,40)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,4){LightGray}{0.5}
+\Photon(10,20)(80,20){5}{7}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{photon}
+\verb:\Photon(10,20)(80,20){5}{7}: \hfill \\
+In this command we have two coordinates, the amplitude of the wiggles and 
+the number of wiggles.
+A negative value for the amplitude will reverse the orientation of the
+wiggles.
+The line will be drawn with the number of wiggles rounded to the
+nearest half integer.
+Like the other commands in this section, this command can take
+optional arguments, Sec.\ \ref{sec:options}.
+\end{minipage}\vspace{4mm}
+
+%--#] Photon :
+%--#[ DoublePhoton :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,40)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,4){LightGray}{0.5}
+\DoublePhoton(10,20)(80,20){5}{7}{1.3}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{doublephoton}
+\verb:\DoublePhoton(10,20)(80,20){5}{7}{1.3}:\hfill \\
+The first 6 arguments are as in the \verb+Photon+ command. The 
+extra argument is the line separation.
+\end{minipage}\vspace{4mm}
+
+%--#] DoublePhoton :
+%--#[ DashPhoton :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,40)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,4){LightGray}{0.5}
+\DashPhoton[color=Red](10,20)(80,20){5}{7}{1}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{dashphoton}
+\verb:\DashPhoton[color=Red](10,20)(80,20){5}{7}{1}:\hfill \\
+The first 6 arguments are as in the \verb+Photon+ command. The 
+extra argument is the size of the dashes.
+\end{minipage}\vspace{4mm}
+
+%--#] DashPhoton :
+%--#[ DashDoublePhoton :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,40)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,4){LightGray}{0.5}
+\DashDoublePhoton(10,20)(80,20){5}{7}{1.3}{1}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{dashdoublephoton}
+\verb:\DashDoublePhoton(10,20)(80,20){5}{7}{1.3}{1}:\hfill \\
+The first 6 arguments are as in the \verb+Photon+ 
+command. 
+The final 2 arguments are the line separation and the size of the
+dashes.
+\end{minipage}\vspace{10mm}
+
+%--#] DashDoublePhoton :
+%--#[ PhotonArc :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,50)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,5){LightGray}{0.5}
+\PhotonArc(45,0)(40,20,160){5}{8}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{photonarc}
+\verb:\PhotonArc(45,0)(40,20,160){5}{8}:\hfill \\
+In this command we have one coordinate: the center of the circle. Then 
+follow the radius of the circle, the start angle and the finishing angle. 
+The arc will be drawn counterclockwise. The final two parameters are the 
+amplitude of the wiggles and the number of wiggles.
+Like the other commands in this section, this command can take
+optional arguments, Sec.\ \ref{sec:options}.
+\end{minipage}\vspace{4mm}
+
+%--#] PhotonArc :
+%--#[ DoublePhotonArc :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,50)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,5){LightGray}{0.5}
+\DoublePhotonArc[color=Red](45,0)(40,20,160)%
+                           {5}{8}{1.3}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{doublephotonarc}
+\begin{verbatim}
+\DoublePhotonArc[color=Red](45,0)(40,20,160)%
+                           {5}{8}{1.3}
+\end{verbatim}
+The first 7 arguments are as in the \verb+PhotonArc+ command. The extra
+argument is the separation of the double line.
+\end{minipage}\vspace{4mm}
+
+%--#] DoublePhotonArc :
+%--#[ DashPhotonArc :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,50)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,5){LightGray}{0.5}
+\DashPhotonArc(45,0)(40,20,160){5}{8}{1.5}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{dashphotonarc}
+\verb:\DashPhotonArc(45,0)(40,20,160){5}{8}{1.5}:\hfill \\
+The first 7 arguments are as in the \verb+PhotonArc+ command. The
+extra argument is the size of the dash segments.
+\end{minipage}\vspace{4mm}
+
+%--#] DashPhotonArc :
+%--#[ DashDoublePhotonArc :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,50)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,5){LightGray}{0.5}
+\DashDoublePhotonArc(45,0)(40,20,160){5}{8}{1.3}{1.5}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{dashdoublephotonarc}
+\verb:\DashDoublePhotonArc(45,0)(40,20,160){5}{8}{1.3}{1.5}:\hfill \\
+The first 7 arguments are as in the \verb+PhotonArc+ command. The
+extra arguments are the separation of the lines and the size of the
+dash segments.
+\end{minipage}\vspace{4mm}
+
+%--#] DashDoublePhotonArc :
+%--#[ ZigZag :
+
+\subsubsection{Zigzag lines}
+
+The basic drawing commands for drawing zigzag lines are \verb+\Zigzag+
+and \verb+\ZigzagArc+.  There are also variants for dashed and double
+lines. But arrows aren't possible.
+
+All of the commands in this section can be given optional keyword
+arguments, which are defined in Sec.\ \ref{sec:options}.  These can be
+used to specify the type of line (dashed, double), and to specify some
+of the line's parameters.
+\vspace{4mm}
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,40)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,4){LightGray}{0.5}
+\ZigZag(10,20)(80,20){5}{7.5}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{zigzag}
+\verb:\ZigZag(10,20)(80,20){5}{7.5}: \hfill \\
+In this command we have two coordinates, the amplitude of the sawteeth and 
+the number of sawteeth.
+A negative value for the amplitude will reverse the orientation of the
+sawteeth.
+The line will be drawn with the number of sawteeth rounded to the
+nearest half integer.
+\end{minipage}
+\\[3mm]
+Like the other commands in this section, this command can take
+optional arguments, Sec.\ \ref{sec:options}, e.g.,\\[3mm]
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,40)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,4){LightGray}{0.5}
+\ZigZag[color=Red,double,sep=1.5](10,20)(80,20){5}{7}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{zigzag.opt}
+\verb:\ZigZag[color=Red,double,sep=1.5](10,20)(80,20){5}{7}:
+\end{minipage}\vspace{6mm}
+
+%--#] ZigZag :
+%--#[ DoubleZigZag :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,40)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,4){LightGray}{0.5}
+\DoubleZigZag(10,20)(80,20){5}{7}{1.3}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{doublezigzag}
+\verb:\DoubleZigZag(10,20)(80,20){5}{7}{1.3}:\hfill \\
+The first 6 arguments are as in the \verb+ZigZag+ command. The 
+extra argument is the line separation.
+\end{minipage}\vspace{4mm}
+
+%--#] DoubleZigZag :
+%--#[ DashZigZag :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,40)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,4){LightGray}{0.5}
+\DashZigZag(10,20)(80,20){5}{7}{1}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{dashzigzag}
+\verb:\DashZigZag(10,20)(80,20){5}{7}{1}:\hfill \\
+The first 6 arguments are as in the \verb+ZigZag+ command. The 
+extra argument is the size of the dashes.
+\end{minipage}\vspace{4mm}
+
+%--#] DashZigZag :
+%--#[ DashDoubleZigZag :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,40)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,4){LightGray}{0.5}
+\DashDoubleZigZag(10,20)(80,20){5}{7}{1.3}{1}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{dashdoublezigzag}
+\verb:\DashDoubleZigZag(10,20)(80,20){5}{7}{1.3}{1}:\hfill \\
+The first 6 arguments are as in the \verb+ZigZag+ command. 
+The extra arguments are the separation of the lines and the size of
+the dash segments.
+\end{minipage}\vspace{6mm}
+
+%--#] DashDoubleZigZag :
+%--#[ ZigZagArc :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,50)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,5){LightGray}{0.5}
+\ZigZagArc(45,0)(40,20,160){5}{8}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{zigzagarc}
+\verb:\ZigZagArc(45,0)(40,20,160){5}{8}:\hfill \\
+In this command we have one coordinate: the center of the circle. Then
+follow the radius of the circle, the start angle and the finishing
+angle.  The arc will be drawn counterclockwise. The final two
+arguments are the amplitude of the sawteeth and the number of
+sawteeth.  Like the other commands in this section, this command can
+take optional arguments, Sec.\ \ref{sec:options}.
+\end{minipage}\vspace{4mm}
+
+%--#] ZigZagArc :
+%--#[ DoubleZigZagArc :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,50)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,5){LightGray}{0.5}
+\DoubleZigZagArc(45,0)(40,20,160){5}{8}{1.3}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{doublezigzagarc}
+\verb:\DoubleZigZagArc(45,0)(40,20,160){5}{8}{1.3}:\hfill \\
+The first 7 arguments are as for the \verb+ZigZagArc+ command. The
+extra argument is the separation in the double line.
+\end{minipage}\vspace{4mm}
+
+%--#] DoubleZigZagArc :
+%--#[ DashZigZagArc :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,50)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,5){LightGray}{0.5}
+\DashZigZagArc(45,0)(40,20,160){5}{8}{1.5}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{dashzigzagarc}
+\verb:\DashZigZagArc(45,0)(40,20,160){5}{8}{1.5}:\hfill \\
+The first 7 arguments are as for the \verb+ZigZagArc+ command. The
+extra argument is the size of the dash segments.
+\end{minipage}\vspace{4mm}
+
+%--#] DashZigZagArc :
+%--#[ DashDoubleZigZagArc :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,50)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,5){LightGray}{0.5}
+\DashDoubleZigZagArc(45,0)(40,20,160){5}{8}{1.3}{1.5}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{dashdoublezigzagarc}
+\verb:\DashDoubleZigZagArc(45,0)(40,20,160){5}{8}{1.3}{1.5}:\hfill \\
+The first 7 arguments are as for the \verb+ZigZagArc+ command. The
+final 2 arguments are the separation of the lines and the size of the
+dash segments.
+\end{minipage}\vspace{4mm}
+
+%--#] DashDoubleZigZagArc :
+%--#[ Vertex :
+
+\subsubsection{Vertices,  circles, ovals}
+\label{sec:other.graphics}
+
+The commands in this section are for graphical elements other
+than those that we conceived of as lines in Feynman graphs.  Many of
+these have standard uses as components of Feynman graphs\footnote{Of
+  course, none of the commands is restricted to its originally
+  envisaged use, or to being used to draw Feynman graphs.  But
+  especially the line-drawing commands have been designed from the
+  point-of-view of being suitable for the needs of drawing particular
+  elements of Feynman graphs.}.  The commands here are mostly shown
+in association with other objects, to indicate some of their
+properties.
+\vspace{4mm}
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(80,50)(-15,0)}
+\AxoGrid(0,0)(10,10)(8,5){LightGray}{0.5}
+\Line(10,10)(70,10)
+\Photon(40,10)(40,40){4}{3}
+\Vertex(40,10){1.5}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{vertex}
+\verb:\Line(10,10)(70,10): \hfill \\
+\verb:\Photon(40,10)(40,40){4}{3}: \hfill \\
+\verb:\Vertex(40,10){1.5}: \hfill \\
+\verb+\Vertex+ gives a vertex, as is often used for connecting lines
+in Feynman graphs. It gives a fat dot. The arguments are coordinates
+(between parentheses) for its center, and the radius of the dot.
+\end{minipage}\vspace{4mm}
+
+%--#] Vertex :
+%--#[ ECirc :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(60,60)(-25,0)}
+\AxoGrid(0,0)(10,10)(6,6){LightGray}{0.5}
+\Red{\Line(0,0)(60,60)}
+\ECirc(30,30){20}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{ecirc}
+\verb:\Red{\Line(0,0)(60,60)}:\\
+\verb:\ECirc(30,30){20}:\\
+\verb+\ECirc+ draws a circle with its center at the specified
+coordinate (first two arguments) and the specified radius (third
+argument).  The interior is transparent, so that it does not erase
+previously drawn material.
+If you need a filled circle, use the \verb+\Vertex+ command (to which
+we have defined a synonym \verb+\FCirc+ to match similar commands for
+other shapes).
+\end{minipage}\vspace{4mm}
+
+%--#] ECirc :
+%--#[ BCirc :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(60,60)(-25,0)}
+\AxoGrid(0,0)(10,10)(6,6){LightGray}{0.5}
+\Red{\Line(0,0)(60,60)}
+\BCirc(30,30){20}
+\Blue{\Line(60,0)(0,60)}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{bcirc}
+\verb:\Red{\Line(0,0)(60,60)}:\\
+\verb:\BCirc(30,30){20}:\\
+\verb:\Blue{\Line(60,0)(0,60)}:\\
+\verb+\BCirc+
+draws a circle with the center at the specified coordinate (first two 
+arguments) and the specified radius (third argument). The interior is
+white and opaque, so that it erases previously written objects, but not
+subsequently drawn objects.
+\end{minipage}\vspace{4mm}
+
+%--#] BCirc :
+%--#[ GCirc :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(60,60)(-25,0)}
+\AxoGrid(0,0)(10,10)(6,6){LightGray}{0.5}
+\Red{\Line(0,0)(60,60)}
+\GCirc(30,30){20}{0.82}
+\Blue{\Line(60,0)(0,60)}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{gcirc}
+\verb:\Red{\Line(0,0)(60,60)}:\\
+\verb:\GCirc(30,30){20}{0.82}:\\
+\verb:\Blue{\Line(60,0)(0,60)}:\\
+\verb+\GCirc+ draws a circle with the center at the specified
+coordinate (first two arguments) and the specified radius (third
+argument).  Previously written contents are overwritten and made gray
+according to the grayscale specified by the fourth argument (0=black,
+1=white).
+\end{minipage}\vspace{4mm}
+
+%--#] GCirc :
+%--#[ CCirc :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(60,60)(-25,0)}
+\AxoGrid(0,0)(10,10)(6,6){LightGray}{0.5}
+\Red{\Line(0,0)(60,60)}
+\CCirc(30,30){20}{Red}{Yellow}
+\Blue{\Line(60,0)(0,60)}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{ccirc}
+\verb:\Red{\Line(0,0)(60,60)}:\\
+\verb:\CCirc(30,30){20}{Red}{Yellow}:\\
+\verb:\Blue{\Line(60,0)(0,60)}:\\
+\verb+\CCirc+ draws a colored circle with the center at the specified
+coordinate (first two arguments) and the specified radius (third
+argument). The fourth argument is the name of the color for the circle
+itself. Its interior is overwritten and colored with the color
+specified by name in the fifth argument.
+\end{minipage}\vspace{4mm}
+
+%--#] CCirc :
+%--#[ Oval :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(80,110)(-15,0)}
+\AxoGrid(0,0)(10,10)(8,11){LightGray}{0.5}
+\Oval(40,80)(20,30)(0)
+\Oval(40,30)(20,30)(30)
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{oval}
+\verb:\Oval(40,80)(20,30)(0):\\
+\verb:\Oval(40,30)(20,30)(30):\\
+\verb:\Oval: draws an oval.  The first pair of values is the center of
+the oval. The next pair forms the half-height and the half-width. The
+last argument is a (counterclockwise) rotation angle.  The interior is
+transparent, so that it does not erase previously drawn material.
+\end{minipage}\vspace{4mm}
+
+%--#] Oval :
+%--#[ FOval :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(80,60)(-15,0)}
+\AxoGrid(0,0)(10,10)(8,6){LightGray}{0.5}
+\SetColor{Yellow}
+\FOval(40,30)(20,30)(30)
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{foval}
+\verb:\SetColor{Yellow}:\\
+\verb:\FOval(40,80)(20,30)(30):\\
+\verb:\FOval: draws an oval filled with the current color overwriting
+previously written material. Its arguments are the same as for the
+\verb:\Oval: command. 
+\end{minipage}\vspace{4mm}
+
+%--#] FOval :
+%--#[ GOval :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(80,60)(-15,0)}
+\AxoGrid(0,0)(10,10)(8,6){LightGray}{0.5}
+\Red{\Line(0,0)(80,60)}
+\GOval(40,30)(20,30)(0){0.6}
+\Blue{\Line(80,0)(0,60)}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{goval}
+\verb:\Red{\Line(0,0)(80,60)}:\\
+\verb:\GOval(40,30)(20,30)(0){0.6}: \\
+\verb:\Blue{\Line(80,0)(0,60)}:\\
+\verb:\GOval: draws an oval with a gray interior.  
+The first 5 arguments are the same as for the \verb:\Oval: command. 
+The last argument indicates the
+grayscale with which the oval will be filled, overwriting previously
+written contents (0=black, 1=white).
+\end{minipage}\vspace{4mm}
+
+%--#] GOval :
+%--#[ COval :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(80,60)(-15,0)}
+\AxoGrid(0,0)(10,10)(8,6){LightGray}{0.5}
+\SetWidth{1}
+\Green{\Line(0,0)(80,60)}
+\COval(40,30)(20,30)(20){Orange}{Blue}
+\Yellow{\Line(80,0)(0,60)}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{coval}
+\verb:\Green{\Line(0,0)(80,60)}:\\
+\verb:\COval(40,30)(20,30)(20){Orange}{Blue}:\\
+\verb:\Yellow{\Line(80,0)(0,60)}:\\
+\verb:\COval: draws a colored oval.  
+The first 5 arguments are the same as for the \verb:\Oval: command. 
+The last two arguments are the names of two colors. 
+The first is the color of the line that forms the oval and the second is 
+the color of the inside.
+\end{minipage}\vspace{4mm}
+
+%--#] COval :
+%--#[ EBox :
+
+Commands for drawing boxes are in two series.  For the first set, the
+box's position is specified by the coordinates of its bottom left
+corner and top right corner:\\[4mm]
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(60,50)(-25,0)}
+\AxoGrid(0,0)(10,10)(6,5){LightGray}{0.5}
+\EBox(10,10)(50,40)
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{ebox}
+\verb:\EBox(10,10)(50,40): \hfill \\
+Draws a box. The points specified are the bottom left corner and the top 
+right corner.
+The interior is transparent, so that it does not erase previously
+drawn material. 
+\end{minipage}\vspace{4mm}
+
+%--#] EBox :
+%--#[ FBox :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(60,50)(-25,0)}
+\AxoGrid(0,0)(10,10)(6,5){LightGray}{0.5}
+\FBox(10,10)(50,40)
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{fbox}
+\verb:\FBox(10,10)(50,40): \hfill \\
+Draws a box filled with the current color overwriting
+previously written material. Its arguments are the same as for the
+\verb:\EBox: command. 
+\end{minipage}\vspace{4mm}
+
+%--#] FBox :
+%--#[ BBox :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(60,50)(-25,0)}
+\AxoGrid(0,0)(10,10)(6,5){LightGray}{0.5}
+\BBox(10,10)(50,40)
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{bbox}
+\verb:\BBox(10,10)(50,40): \hfill \\
+Draws a blanked-out box. The points specified are the bottom left corner 
+and the top right corner.
+\end{minipage}\vspace{4mm}
+
+%--#] BBox :
+%--#[ GBox :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(60,50)(-25,0)}
+\AxoGrid(0,0)(10,10)(6,5){LightGray}{0.5}
+\GBox(10,10)(50,40){0.9}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{gbox}
+\verb:\GBox(10,10)(50,40){0.9}: \hfill \\
+Draws a box filled with a grayscale given by the fifth argument (black=0, 
+white=1). The points specified are the bottom left corner and the top 
+right corner.
+\end{minipage}\vspace{4mm}
+
+%--#] GBox :
+%--#[ CBox :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(60,50)(-25,0)}
+\AxoGrid(0,0)(10,10)(6,5){LightGray}{0.5}
+\SetWidth{1.5}
+\CBox(10,10)(50,40){Green}{LightRed}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{cbox}
+\verb:\CBox(10,10)(50,40){Green}{LightRed}: \hfill \\
+Draws a box in the color specified by name in the fifth argument. The
+contents are filled with the color specified by name in the sixth
+argument. The points specified are the bottom left corner and the top
+right corner.
+\end{minipage}\vspace{4mm}
+
+%--#] CBox :
+%--#[ EBoxc :
+
+For the other series of box-drawing commands, the box's position is
+specified by its center, and its width and height.  The command names
+end with a ``\texttt{c}'', for ``center'':\\[3mm]
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(60,50)(-25,0)}
+\AxoGrid(0,0)(10,10)(6,5){LightGray}{0.5}
+\EBoxc(30,25)(40,30)
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{eboxc}
+\label{boxc}
+\verb:\EBoxc(30,25)(40,30): \hfill \\
+Draws a box. The first two numbers give the center of the box. The next two 
+numbers are the width and the height of the box. Instead of \verb:\EBoxc: 
+one may also use \verb:\Boxc:.
+
+There is also the similar command \verb:\FBoxc: that draws a filled box.
+\end{minipage}\vspace{4mm}
+
+%--#] EBoxc :
+%--#[ BBoxc :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(60,50)(-25,0)}
+\AxoGrid(0,0)(10,10)(6,5){LightGray}{0.5}
+\BBoxc(30,25)(40,30)
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{bboxc}
+\verb:\BBoxc(30,25)(40,30): \hfill \\
+Draws a box of which the contents are blanked out. The arguments are
+the same as for the \verb+\EBoxc+ command.
+\end{minipage}\vspace{4mm}
+
+%--#] BBoxc :
+%--#[ GBoxc :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(60,50)(-25,0)}
+\AxoGrid(0,0)(10,10)(6,5){LightGray}{0.5}
+\GBoxc(30,25)(40,30){0.9}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{gboxc}
+\verb:\GBoxc(30,25)(40,30){0.9}: \hfill \\
+Draws a box filled with a grayscale given by the fifth argument (black=0, 
+white=1).
+The first 4 arguments are the same as for the \verb+\EBoxc+ command.
+\end{minipage}\vspace{4mm}
+
+%--#] GBoxc :
+%--#[ CBoxc :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(60,50)(-25,0)}
+\AxoGrid(0,0)(10,10)(6,5){LightGray}{0.5}
+\SetWidth{1.5}
+\CBoxc(30,25)(40,30){Brown}{LightBlue}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{cboxc}
+\verb:\CBoxc(30,25)(40,30){Brown}{LightBlue}: \hfill \\
+Draws a box in the color specified by name in the fifth argument. The
+contents are filled with the color specified by name in the sixth
+argument.
+The first 4 arguments are the same as for the \verb+\EBoxc+ command.
+\end{minipage}\vspace{4mm}
+
+%--#] BBoxc :
+%--#] CBoxc :
+%--#[ RotatedBox :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(60,50)(-25,0)}
+\AxoGrid(0,0)(10,10)(6,5){LightGray}{0.5}
+\RotatedBox(30,25)(40,30){30}{Red}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{rotatedbox}
+\verb:\RotatedBox(30,25)(40,30){30}{Red}: \hfill \\
+Draws a rotated box. The first two numbers give the center of the
+box. The next two numbers are the width and the height of the box. The
+fifth argument is the counterclockwise rotation angle and the sixth
+argument is the color of the box.  The interior of the box is
+transparent.
+\end{minipage}\vspace{4mm}
+
+%--#] RotatedBox :
+%--#[ FilledRotatedBox :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(60,50)(-25,0)}
+\AxoGrid(0,0)(10,10)(6,5){LightGray}{0.5}
+\FilledRotatedBox(30,25)(40,30){30}{Blue}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{filledrotatedbox}
+\verb:\FilledRotatedBox(30,25)(40,30){30}{Blue}: \hfill \\
+Draws a rotated box.
+The first 4 arguments are the same as for the \verb+\RotatedBox+ command.
+The
+fifth argument is the counterclockwise rotation angle and the sixth
+argument is the color of the inside of the box. If a differently
+colored outline is needed, it should be written with the
+\verb+RotatedBox+ command.
+\end{minipage}\vspace{4mm}
+
+%--#] FilledRotatedBox :
+%--#[ ETri :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(60,50)(-25,0)}
+\AxoGrid(0,0)(10,10)(6,5){LightGray}{0.5}
+\ETri(10,20)(50,10)(40,40)
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{etri}
+\verb:\ETri(10,20)(50,10)(40,40): \hfill \\
+Draws a triangle. The three points specified are the corners of the 
+triangle.
+The interior is transparent.
+
+There is also the similar command \verb:\FTri: that draws a filled triangle.
+\end{minipage}\vspace{4mm}
+
+%--#] ETri :
+%--#[ BTri :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(60,50)(-25,0)}
+\AxoGrid(0,0)(10,10)(6,5){LightGray}{0.5}
+\BTri(10,20)(50,10)(40,40)
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{btri}
+\verb:\BTri(10,20)(50,10)(40,40): \hfill \\
+Draws a blanked-out triangle. The three points specified are the corners of 
+the triangle.
+\end{minipage}\vspace{4mm}
+
+%--#] BTri :
+%--#[ GTri :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(60,50)(-25,0)}
+\AxoGrid(0,0)(10,10)(6,5){LightGray}{0.5}
+\GTri(10,20)(50,10)(40,40){0.9}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{gtri}
+\verb:\GTri(10,20)(50,10)(40,40){0.9}: \hfill \\
+Draws a triangle of which the content are filled with the grayscale 
+specified by the seventh argument (black=0, white=1). The three points 
+specified are the corners of the triangle.
+\end{minipage}\vspace{4mm}
+
+%--#] GTri :
+%--#[ CTri :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(60,50)(-25,0)}
+\AxoGrid(0,0)(10,10)(6,5){LightGray}{0.5}
+\SetWidth{1}
+\CTri(10,20)(50,10)(40,40){Red}{Yellow}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{ctri}
+\verb:\CTri(10,20)(50,10)(40,40){Red}{Yellow}: \hfill \\
+Draws a triangle in the color named in the seventh argument. The
+contents are filled with the color named in the eightth argument. The
+three points specified are the corners of the triangle.
+\end{minipage}\vspace{4mm}
+
+%--#] CTri :
+%--#[ Polygon :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(60,50)(-25,0)}
+\AxoGrid(0,0)(10,10)(6,5){LightGray}{0.5}
+\Polygon{(10,20)(20,10)(40,20)(50,10)(45,40)(15,30)}{Red}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{polygon}
+\verb:\Polygon{(10,20)(20,10)(40,20)(50,10): \hfill \\
+  \verb:         (45,40)(15,30)}{Red}: \hfill \\
+Draws a polygon. The first argument is a sequence of two dimensional
+points which form the corners of the polygon. The second argument is
+the name of the color of the polygon. The interior is transparent.
+\end{minipage}\vspace{4mm}
+
+%--#] Polygon :
+%--#[ FilledPolygon :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(60,50)(-25,0)}
+\AxoGrid(0,0)(10,10)(6,5){LightGray}{0.5}
+\FilledPolygon{(10,20)(20,10)(40,20)(50,10)(45,40)(15,30)}{Apricot}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{filledpolygon}
+\verb:\FilledPolygon{(10,20)(20,10)(40,20)(50,10): \hfill \\
+  \verb:               (45,40)(15,30)}{Apricot}: \hfill \\
+Draws a polygon. The first argument is a sequence of two dimensional
+points which form the corners of the polygon. The second argument is
+the name of the color of the interior.
+\end{minipage}\vspace{4mm}
+
+%--#] FilledPolygon :
+%--#[ LinAxis :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(100,50)(-5,0)}
+\AxoGrid(0,0)(10,10)(10,5){LightGray}{0.5}
+\LinAxis(10,30)(90,30)(4,5,5,0,1)
+\LinAxis(10,10)(90,10)(4,5,5,2,1)
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{linaxis}
+\verb:\LinAxis(10,30)(90,30)(4,5,5,0,1):\\
+\verb:\LinAxis(10,10)(100,10)(4,5,5,2,1): \\
+\verb+\LinAxis+($x_1$,$y_1$)($x_2$,$y_2$)($N_D$,$d$,hashsize,offset,width)
+    draws a line to be used as an axis in a graph. Along the axis 
+    are hash marks. Going from the first coordinate to the second, the 
+    hash marks are on the left side if `hashsize', which is the size of the 
+    hash marks, is positive and on the right side if it is negative. 
+    $N_D$ is the number of `decades', indicated by fat hash marks, and 
+    $d$ is the (integer) number of subdivisions inside each decade. The offset 
+    parameter tells to which subdivision the first coordinate 
+    corresponds. When it is zero, this coordinate corresponds to a fat 
+    mark of a decade. Because axes have their own width, this is 
+    indicated with the last parameter.
+%Draws a line with subdivisions that can be used as the axis on a histogram 
+%or other figure. The first four arguments are the endpoints of the axis. 
+%Then we have the number of decades, the number of divisions inside each 
+%decade, the size of the hash marks, the offset in divisions at which we 
+%start and the linewidth. The hashmarks will be on the left side when going 
+%from point 1 to point 2.
+\end{minipage}\vspace{4mm}
+
+%--#] LinAxis :
+%--#[ LogAxis :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(100,40)(-5,0)}
+\AxoGrid(0,0)(10,10)(10,4){LightGray}{0.5}
+\LogAxis(0,30)(100,30)(4,3,0,1)
+\LogAxis(0,10)(100,10)(4,3,3,1)
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{logaxis}
+\verb:\LogAxis(0,30)(100,30)(4,3,0,1): \hfill \\
+\verb:\LogAxis(0,10)(100,10)(4,3,3,1): \hfill \\
+\verb+\LogAxis+($x_1$,$y_1$)($x_2$,$y_2$)($N_L$,hashsize
+    ,offset,width) \hfill \\
+    This draws a line to be used as a logarithmic axis in a graph. Along 
+    the axis are hash marks. Going from the first coordinate to the second, 
+    the hash marks are on the left side if `hashsize', which is the size of 
+    the hash marks, is positive and on the right side if it is negative. 
+    $N_L$ is the number of orders of magnitude, indicated by fat hash 
+    marks. The offset parameter tells to which integer subdivision the 
+    first coordinate corresponds. When it is zero, this coordinate 
+    corresponds to a fat mark, which is identical to when the value would 
+    have been 1. Because axes have their own width, this is indicated with 
+    the last parameter.
+%Draws a line with subdivisions that can be used as the axis on a histogram 
+%or other figure. The first four arguments are the endpoints of the axis. 
+%Then we have the number of orders of magnitude, 
+%the size of the hash marks, the offset inside a logarithm at which we 
+%start and the linewidth. The hashmarks will be on the left side when going 
+%from point 1 to point 2.
+\end{minipage}\vspace{4mm}
+
+%--#] LogAxis :
+%>>#] The Commands :
+%>>#[ Text :
+
+\subsection{Text}
+\label{sec:text}
+
+%--#[ Implementation :
+
+Axodraw2 provides several commands for inserting text into diagrams.
+Some are for plain text, with a chosen placement and angle.  Some
+allow placement of text inside boxes.  There are two sets of commands.
+Some we call \TeX-text commands; these use the standard \LaTeX{} fonts
+as used in the rest of the document.  The others we call
+postscript-text commands; these use a user-specified standard
+postscript font or, if the user wishes, the usual document font, at a
+user-chosen size.
+
+[\emph{Side issue:} In version 1 of axodraw, the difference between
+the classes of text command was caused by a serious implementation
+difficulty.  With the then-available \LaTeX{} technology, certain
+graphic effects, could not be achieved within \LaTeX, at least not
+easily.  So direct programming in postscript was resorted to, with the
+result that normal \LaTeX{} commands, including mathematics, were not
+available in the postscript-text commands.  With the greatly improved
+methods now available, this has all changed, and the restrictions have
+gone.  But since the commands and their basic behavior is already
+defined, we have retained the distinction between \TeX{}-text commands
+and postscript-text commands.]
+
+In the original version of Axodraw the commands for two lines inside a
+box were \verb:B2Text:, \verb:G2Text: and \verb:C2Text:. This causes
+some problems explained in Sec.\ \ref{sec:changes.wrt.1}.  If you need to
+retain compatibility with v.\ 1 on this issue, e.g., with old files or
+old diagrams or for personal preference, you can use the
+\texttt{v1compatible} option when loading axodraw2 --- see Sec.\
+\ref{sec:invoke}.
+
+\vspace{4mm}
+
+%--#] Implementation :
+%--#[ Text :
+
+\subsubsection{\TeX-type text}
+
+Illustrated by examples, the commands to insert text are as follows:
+
+\medskip
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,90)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,9){LightGray}{0.5}
+\Text(10,10)[l]{left}
+\Text(45,45){centered}
+\Text(80,80)[rt]{right-top}
+\Text(20,60)(45){$e^{i\pi/4}$}
+\SetColor{Red}
+\Vertex(10,10){1.5}
+\Vertex(45,45){1.5}
+\Vertex(80,80){1.5}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{text}
+\verb:\Text(10,10)[l]{left}: \hfill \\
+\verb:\Text(45,45){centered}: \hfill \\
+\verb:\Text(80,80)[rt]{right-top}: \hfill \\
+\verb:\Text(20,60)(45){$e^{i\pi/4}$}: \hfill \\
+\verb:\SetColor{Red}: \hfill \\
+\verb:\Vertex(10,10){1.5}: \hfill \\
+\verb:\Vertex(45,45){1.5}: \hfill \\
+\verb:\Vertex(80,80){1.5}: \hfill \\
+\verb+\Text+ writes text in the current \LaTeX{} font.  The most
+general form is \verb+\Text(x,y)(theta)[pos]{text}+; but either or
+both of the theta and pos arguments (and their delimiters) can be omitted.
+It puts the text
+at focal point $(x,y)$, with a rotation by anticlockwise angle theta.
+The default angle is zero, and the default position is to 
+center the text horizontally and vertically at the focal point.  The
+position letters are any relevant combination of `l', `r', `t', and
+`b', as in the various 
+\TeX/\LaTeX{} box commands to indicate left, right, top or bottom 
+adjustment with respect to the focal point. No indication means
+centered.
+\end{minipage}\vspace{4mm}
+
+%--#] Text :
+%--#[ rText :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,90)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,9){LightGray}{0.5}
+\rText(10,10)[l][l]{left-left}
+\rText(45,45)[][u]{upside}
+\rText(80,10)[r][r]{right-right}
+\rText(20,60)[][r]{$e^{i\pi}$}
+\SetColor{Red}
+\Vertex(10,10){1.5}
+\Vertex(45,45){1.5}
+\Vertex(80,10){1.5}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{rtext}
+\verb:\rText(10,10)[l][l]{left-left}: \hfill \\
+\verb:\rText(45,45)[][u]{upside}: \hfill \\
+\verb:\rText(80,10)[r][r]{right-right}: \hfill \\
+\verb:\rText(20,60)[][r]{$e^{i\pi}$}: \hfill \\
+\verb:\SetColor{Red}: \hfill \\
+\verb:\Vertex(10,10){1.5}: \hfill \\
+\verb:\Vertex(45,45){1.5}: \hfill \\
+\verb:\Vertex(80,10){1.5}: \hfill \\
+The \verb:\rText: command gives a subset of the functionality of the
+\verb+\Text+ command.  It is used for backward compatibility with
+Axodraw v.\ 1. The general form of the command is
+\verb:\rText(x,y)[mode][rotation]{text}:. 
+Unlike the case with the \verb:\Text: command and typical standard
+\LaTeX{} commands, if the option letters are omitted, the square
+brackets must be retained.  
+The coordinates $(x,y)$ are
+the focal point of the text.  The third argument is \verb+l+,
+\verb+r+, or empty to indicate the justification of the text.  The
+fourth argument is \verb+l+, \verb+r+, \verb+u+, or empty to indicate
+respectively whether the text is rotated left (anticlockwise) by 90
+degrees, is rotated right (clockwise) by 90 degrees, is upside-down,
+or is not rotated.  The fifth argument is the text.  
+This command is retained only for backward compatibility;
+for new diagrams it is probably better to use the the \verb:\Text:.
+\end{minipage}\vspace{4mm}
+
+%--#] rText :
+%--#[ SetPFont :
+
+\subsubsection{Postscript-type text}
+\label{sec:PSText}
+
+The remaining text-drawing commands can use postscript fonts with an
+adjustable size.
+
+To set the font for later text-drawing commands in this class, the
+\verb:\SetPFont: command sets the `Postscript'
+font, e.g.,
+\begin{verbatim}
+   \SetPFont{Helvetica}{20}
+\end{verbatim}
+(This font is initialized by axodraw2 to Times-Roman at 10pt.)
+The font set in this way is used in the \verb:PText:, \verb:BText:,
+\verb:GText:, \verb:CText:, \verb:BTwoText:, \verb:GTwoText: and
+\verb:CTwoText: commands. The fonts that can be used are the 35 fonts
+that are made available by Adobe and that are normally available in
+all postscript interpreters, including printers.  The fonts, together
+with the names used to specify them in the normal font-setting
+commands of \TeX{} and \LaTeX{}, are shown in Table \ref{tab:Pfont}.
+
+\begin{table}
+\begin{tabular}{|l|l|l|l|}
+\hline
+Font name                   & \LaTeX{} & Font name                & \LaTeX{} \\
+\hline
+AvantGarde-Book             & pagk  & Helvetica-Narrow            & phvrrn\\
+AvantGarde-BookOblique      & pagko & Helvetica-NarrowOblique     & phvron\\
+AvantGarde-Demi             & pagd  & NewCenturySchlbk-Bold       & pncb  \\
+AvantGarde-DemiOblique      & pagdo & NewCenturySchlbk-BoldItalic & pncbi \\
+Bookman-Demi                & pbkd  & NewCenturySchlbk-Italic     & pncri \\
+Bookman-DemiItalic          & pbkdi & NewCenturySchlbk-Roman      & pncr  \\
+Bookman-Light               & pbkl  & Palatino-Bold               & pplb  \\
+Bookman-LightItalic         & pbkli & Palatino-BoldItalic         & pplbi \\
+Courier-Bold                & pcrb  & Palatino-Italic             & pplri \\
+Courier-BoldOblique         & pcrbo & Palatino-Roman              & pplr  \\
+Courier                     & pcrr  & Symbol                      & psyr  \\
+Courier-Oblique             & pcrro & Times-Bold                  & ptmb  \\
+Helvetica-Bold              & phvb  & Times-BoldItalic            & ptmbi \\
+Helvetica-BoldOblique       & phvbo & Times-Italic                & ptmri \\
+Helvetica-NarrowBold        & phvbrn& Times-Roman                 & ptmr  \\
+Helvetica-NarrowBoldOblique & phvbon& ZapfChancery-MediumItalic   & pzcmi \\
+Helvetica                   & phvr  & ZapfDingbats                & pzdr  \\
+Helvetica-Oblique           & phvro &                             &       \\
+\hline
+\end{tabular}
+\caption{Available postscript fonts and their corresponding names in
+  \LaTeX.}
+\label{tab:Pfont}
+\end{table}
+If you prefer to use the normal document font (which would normally be
+Computer Modern in the common document classes), you simply leave the
+fontname empty, e.g,.
+\begin{verbatim}
+   \SetPFont{}{20}
+\end{verbatim}
+As for the second, fontsize argument, leaving it empty uses the size
+that \LaTeX{} is using at the moment the text-drawing command starts,
+e.g.,
+\begin{verbatim}
+   \SetPFont{Helvetica-Bold}{}
+\end{verbatim}
+\vspace{3mm}
+
+%--#] SetPFont :
+%--#[ PText :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,90)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,9){LightGray}{0.5}
+\SetPFont{Helvetica}{13}
+\PText(10,10)(0)[l]{left}
+\PText(45,45)(30)[]{centered}
+\PText(80,80)(20)[rt]{right-top}
+%\PText(20,60)(140)[]{$e^{i\pi}$}
+\SetColor{Red}
+\Vertex(10,10){1.5}
+\Vertex(45,45){1.5}
+\Vertex(80,80){1.5}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{ptext}
+\verb:\SetPFont{Helvetica}{13}: \hfill \\
+\verb:\PText(10,10)(0)[l]{left}: \hfill \\
+\verb:\PText(45,45)(30)[]{centered}: \hfill \\
+\verb:\PText(80,80)(20)[rt]{right-top}: \hfill \\
+%\verb:\PText(20,60)(90)[]{$e^{i\pi}$}: \hfill \\
+\verb:\SetColor{Red}: \hfill \\
+\verb:\Vertex(10,10){1.5}: \hfill \\
+\verb:\Vertex(45,45){1.5}: \hfill \\
+\verb:\Vertex(80,80){1.5}: \hfill \\
+The \verb:\PText: command writes %text 
+in Axodraw's current Postscript font. 
+The first two arguments give the focal point, the third argument is a 
+rotation angle and the fourth argument is as in the various \TeX/\LaTeX{} 
+box commands to indicate left, right, top or bottom adjustment with respect 
+to the focal point. No indication means centered.
+
+Note that use of normal \LaTeX{} font setting commands or of math-mode
+will not normally have the desired effect.
+\end{minipage}\vspace{4mm}
+
+%--#] PText :
+%--#[ BText :
+
+\noindent
+\begin{minipage}{4.53cm}
+\begin{axopicture}{(110,110)(-10,0)}
+\AxoGrid(0,0)(10,10)(10,9){LightGray}{0.5}
+\ArrowLine(30,65)(60,25)
+\SetPFont{Bookman-Demi}{14}
+\BText(30,65){Who?}
+\SetPFont{AvantGarde-Book}{16}
+\BText(60,25){Me?}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{10.8cm}
+\label{btext}
+\verb:\ArrowLine(30,65)(60,25): \hfill \\
+\verb:\SetPFont{Bookman-Demi}{14}: \hfill \\
+\verb:\BText(30,65){Who?}: \hfill \\
+\verb:\SetPFont{AvantGarde-Book}{16}: \hfill \\
+\verb:\BText(60,25){Me?}: \hfill \\
+The \verb:\BText: command writes a centered box with text in it. It uses 
+Axodraw's current Postscript font.
+\end{minipage}\vspace{4mm}
+
+%--#] BText :
+%--#[ GText :
+
+\noindent
+\begin{minipage}{4.53cm}
+\begin{axopicture}{(110,110)(-10,0)}
+\AxoGrid(0,0)(10,10)(10,9){LightGray}{0.5}
+\ArrowLine(30,65)(60,25)
+\SetPFont{Bookman-Demi}{12}
+\GText(30,65){0.9}{Why?}
+\SetPFont{Courier-Bold}{5}
+\GText(60,25){0.75}{We wanted it that way!}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{10.8cm}
+\label{gtext}
+\verb:\ArrowLine(30,65)(60,25): \hfill \\
+\verb:\SetPFont{Bookman-Demi}{12}: \hfill \\
+\verb:\GText(30,65){0.9}{Why?}: \hfill \\
+\verb:\SetPFont{Courier-Bold}{5}: \hfill \\
+\verb:\GText(60,25){0.75}{We wanted it that way!}: \hfill \\
+The \verb:\GText: command writes a centered box with text in it. It uses 
+Axodraw's current Postscript font. The third argument is the grayscale
+with which
+the box will be filled. 0 is black and 1 is white.
+\end{minipage}\vspace{4mm}
+
+%--#] GText :
+%--#[ CText :
+ 
+\noindent
+\begin{minipage}{4.53cm}
+\begin{axopicture}{(110,110)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,9){LightGray}{0.5}
+\ArrowLine(30,65)(60,25)
+\SetPFont{Times-Bold}{15}
+\CText(30,65){LightYellow}{LightBlue}{Who?}
+\SetPFont{Courier-Bold}{14}
+\CText(60,25){Red}{Yellow}{You!}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{10.8cm}
+\label{ctext}
+\verb:\ArrowLine(30,65)(60,25): \hfill \\
+\verb:\SetPFont{Times-Bold}{15}: \hfill \\
+\verb:\CText(30,65){LightYellow}{LightBlue}{Who?}: \hfill \\
+\verb:\SetPFont{Courier-Bold}{14}: \hfill \\
+\verb:\CText(60,25){Red}{Yellow}{You!}: \hfill \\
+The \verb:\CText: command writes a centered box with text in it. It uses 
+Axodraw's current Postscript font. The third argument is the color of
+the box and
+the text. The fourth argument is the color with which the box will be 
+filled.
+\end{minipage}\vspace{4mm}
+
+%--#] CText :
+%--#[ BTwoText :
+\noindent
+\begin{minipage}{4.53cm}
+\begin{axopicture}{(110,110)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,9){LightGray}{0.5}
+\ArrowLine(30,65)(60,25)
+\SetPFont{Bookman-Demi}{14}
+\BTwoText(30,65){Why}{Me?}
+\SetPFont{AvantGarde-Book}{16}
+\BTwoText(60,25){You}{did it}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{10.8cm}
+\label{btwotext}
+\verb:\ArrowLine(30,65)(60,25): \hfill \\
+\verb:\SetPFont{Bookman-Demi}{14}: \hfill \\
+\verb:\BTwoText(30,65){Why}{Me?}: \hfill \\
+\verb:\SetPFont{AvantGarde-Book}{16}: \hfill \\
+\verb:\BTwoText(60,25){You}{did it}: \hfill \\
+The \verb:\BTwoText: command writes a centered box with two lines of text in 
+it. It uses Axodraw's current Postscript font.
+\end{minipage}\vspace{4mm}
+
+%--#] BTwoText :
+%--#[ GTwoText :
+
+\noindent
+\begin{minipage}{4.53cm}
+\begin{axopicture}{(110,110)(-10,0)}
+\AxoGrid(0,0)(10,10)(10,9){LightGray}{0.5}
+\ArrowLine(30,65)(60,25)
+\SetPFont{Bookman-Demi}{12}
+\GTwoText(30,65){0.9}{Prove}{it!}
+\SetPFont{Courier-Bold}{11}
+\GTwoText(60,25){0.75}{Sherlock}{says so}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{10.8cm}
+\label{gtwotext}
+\verb:\ArrowLine(30,65)(60,25): \hfill \\
+\verb:\SetPFont{Bookman-Demi}{12}: \hfill \\
+\verb:\GTwoText(30,65){0.9}{Prove}{it!}: \hfill \\
+\verb:\SetPFont{Courier-Bold}{11}: \hfill \\
+\verb:\GTwoText(60,25){0.75}{Sherlock}{says so}: \hfill \\
+The \verb:\GTwoText: command writes a centered box with two lines of text in 
+it. It uses Axodraw's current Postscript font. The third argument is the 
+grayscale with which the box will be filled. 0 is black and 1 is white.
+\end{minipage}\vspace{4mm}
+
+%--#] GTwoText :
+%--#[ CTwoText :
+ 
+\noindent
+\begin{minipage}{4.53cm}
+\begin{axopicture}{(110,110)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,9){LightGray}{0.5}
+\ArrowLine(30,65)(60,25)
+\SetPFont{Times-Bold}{10}
+\CTwoText(30,65){LightYellow}{Blue}{That is}{no proof!}
+\SetPFont{Courier-Bold}{14}
+\CTwoText(60,25){Red}{Yellow}{Yes}{it is}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{10.8cm}
+\label{ctwotext}
+\verb:\ArrowLine(30,65)(60,25): \hfill \\
+\verb:\SetPFont{Times-Bold}{10}: \hfill \\
+\verb:\CTwoText(30,65){LightYellow}{Blue}: \\
+    \verb:{That is}{no proof!}: \hfill \\
+\verb:\SetPFont{Courier-Bold}{14}: \hfill \\
+\verb:\CTwoText(60,25){Red}{Yellow}{Yes}{it is}: \hfill \\
+The \verb:\CTwoText: command writes a centered box with two lines of text in 
+it. It uses Axodraw's current Postscript font. The third argument is
+the color of both
+the box and the text. The fourth argument is the color with which the box 
+will be filled.
+\end{minipage}\vspace{4mm}
+ 
+%--#] CTwoText :
+%--#[ Features :
+
+Note that because you can now use \LaTeX{} commands for the text
+arguments of the commands described in this section, the effects of
+the \verb+\BTwoText+, \verb+\GTwoText+, and \verb+\CTwoText+ can be
+achieved also by the use of regular \verb:\BText: etc commands.
+Mathematics can also be used.  (None of these was possible in v.\ 1 of
+axodraw.)  Here are some examples: \vspace{4mm}
+
+\noindent
+\begin{minipage}{5.5cm}
+\begin{axopicture}{(150,90)(-10,0)}
+\AxoGrid(0,0)(10,10)(12,9){LightGray}{0.5}
+\SetPFont{Helvetica}{15}
+\BText(60,45){%
+    \begin{minipage}{4.5cm}
+      Here is boxed text in a larger size, including
+      mathematics: $\alpha^2$.
+    \end{minipage}%
+}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{8.5cm}
+\label{btext2}
+\begin{verbatim}
+\SetPFont{Helvetica}{15}
+\BText(70,45){%
+    \begin{minipage}{4.5cm}
+      Here is boxed text in a
+      larger size, including
+      mathematics: $\alpha^2$.
+    \end{minipage}%
+}
+\end{verbatim}
+This example shows that the \verb:\BText: command can also be used
+with minipages and other \LaTeX{} methods to make more complicated
+boxed texts.
+\end{minipage}
+\vspace{4mm}
+
+\noindent
+\begin{minipage}{5.5cm}
+\begin{axopicture}{(150,90)(-10,0)}
+\AxoGrid(0,0)(10,10)(13,9){LightGray}{0.5}
+\SetPFont{}{15}
+\BText(65,45){%
+    \begin{minipage}{4cm}
+      \sffamily Here is boxed text in a
+      large size, including
+      mathematics: $\alpha^2$.
+    \end{minipage}%
+}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{8.5cm}
+\label{btext2.mod}
+\begin{verbatim}
+\SetPFont{}{15}
+\BText(65,45){%
+    \begin{minipage}{4cm}
+      \sffamily Here is boxed text in a 
+      large size, including
+      mathematics: $\alpha^2$.
+    \end{minipage}%
+}
+\end{verbatim}
+But if you use mathematics, the text may be more elegant if you use
+the document font, which has matching fonts for text and mathematics.
+Use of a sans-serif font (by \verb:\sffamily:) may be better in a diagram.
+\end{minipage}
+\vspace{4mm}
+
+%--#] Features :
+%>>#] Text :
+%>>#[ Options :
+
+\subsection{Options}
+\label{sec:options}
+
+Almost all of axodraw2's line-drawing commands take optional
+arguments.  The form here is familiar from many standard \LaTeX{}
+commands.  The optional arguments are placed in square brackets after
+the command name, and are made of a comma-separated list of items of
+the form: \texttt{keyword} or \texttt{keyword=value}.  The required
+arguments are placed afterwards.
+
+Optional arguments can be used to set particular characteristics of a
+line, e.g., whether it is dashed or has an arrow.  They can also be
+used to set some of the line's parameters, to be used instead of
+default values.  (The default values can be adjusted by commands
+listed in Sec.\ \ref{sec:settings}.  Those commands are useful for
+adjusting parameters that apply to multiple lines, while the optional
+arguments are useful for setting parameters for individual lines.)
+
+The original axodraw only had different command names to determine
+whether lines were dashed, or had arrows, etc.  The new version
+retains these commands,
+but now the basic commands
+(\verb:\Line:, \verb:\Arc:, \verb:\Gluon:, etc) can also be treated as
+generic commands, with the different varieties (dashed, double, and/or
+with an arrow) being set by options.  
+
+The same set of options are available for all types of line.  However,
+not all apply or are implemented for particular types of line.  Thus,
+\texttt{clockwise} is irrelevant for a straight line, while
+\texttt{arrow} is not implemented for gluons, photons and zigzag
+lines.  Warnings are given for unimplemented features, while
+inapplicable arguments are ignored.
+
+The full set of options.
+\begin{center}
+\begin{tabular}{ll}
+ color=\colorname    & Set the line in this color. \\
+ colour=\colorname   & Same as color=\colorname. \\
+ dash                & Use a dashed line. \\
+ dsize=\num          & Set the dash size (when a line is dashed). \\
+ dashsize=\num       & Same as dsize=\num. \\
+ double              & Use a double line. \\
+ sep=\num            & Sets the separation for a double line. \\
+ linesep=\num        & Same as sep=\num. \\
+ width=\num          & Sets line width for this line only.\\[2mm]
+ clock               & For arcs, makes the arc run clockwise. \\
+ clockwise           & For arcs, makes the arc run clockwise. \\[2mm]
+ arrow               & Use an arrow.\\
+ flip                & If there is an arrow, its direction is flipped. \\
+
+ arrowpos=\num     & The number should be between zero and one and\\
+                   & indicates where along the line the arrow should be. \\
+                   & 1 is at the end. 0.5 is halfway (the initial default).\\ 
+ arrowaspect=\num  & See Sec.\ \ref{sec:arrows}. \\
+ arrowlength=\num  & See Sec.\ \ref{sec:arrows}. \\
+ arrowheight=\num  & See Sec.\ \ref{sec:arrows}. \\
+ arrowinset=\num   & See Sec.\ \ref{sec:arrows}. \\
+ arrowscale=\num   & See Sec.\ \ref{sec:arrows}. \\
+ arrowstroke=\num  & See Sec.\ \ref{sec:arrows}. \\
+ arrowwidth=\num   & See Sec.\ \ref{sec:arrows}. \\
+ inset=\num        & Same as arrowinset.\\
+\end{tabular}
+\end{center}
+The options without an extra argument, e.g., \texttt{arrow}, are
+actually of a boolean type.  That is, they can also be used with a
+suffix ``\texttt{=true}'' or ``\texttt{=false}'', e.g.,
+\texttt{arrow=true} or \texttt{arrow=false}.
+
+If an option is not provided, its default value is used. Defaults are
+no dashes, no double lines, anticlockwise arcs, no arrow and if an
+arrow is asked for, its position is halfway along the line. Other
+arrow settings are explained in Sec.\ \ref{sec:arrows}.  There are
+also default values for dash size (3) and the separation of double
+lines (2).
+
+The full set of the generic line commands with their syntax is
+\begin{center}
+  \begin{tabular}{l}
+     \verb+\Line[options](x1,y1)(x2,y2)+  \\
+     \verb+\Arc[options](x,y)(r,theta1,theta2)+  \\
+     \verb+\Bezier[options](x1,y1)(x2,y2)(x3,y3)(x4,y4)+  \\
+     \verb+\Gluon[options](x1,y1)(x2,y2){amplitude}{windings}+  \\
+     \verb+\GluonArc[options](x,y)(r,theta1,theta2){amplitude}{windings}+  \\
+     \verb+\GluonCirc[options](x,y)(r,phase){amplitude}{windings}+   \\
+     \verb+\Photon[options](x1,y1)(x2,y2){amplitude}{windings}+  \\
+     \verb+\PhotonArc[options](x,y)(r,theta1,theta2){amplitude}{windings}+  \\
+     \verb+\ZigZag[options](x1,y1)(x2,y2){amplitude}{windings}+  \\
+     \verb+\ZigZagArc[options](x,y)(r,theta1,theta2){amplitude}{windings}+  \\
+  \end{tabular}
+\end{center}
+The applicability of the options is as follows
+\begin{center}
+  \begin{tabular}{lcc}
+                        & Arrow, etc & Clockwise \\
+     \verb+\Line+       &    Y       &     N     \\
+     \verb+\Arc+        &    Y       &     Y     \\
+     \verb+\Bezier+     &    Y       &     N     \\
+     \verb+\Gluon+      &    N       &     N     \\
+     \verb+\GluonArc+   &    N       &     Y     \\
+     \verb+\GluonCirc+  &    N       &     N     \\
+     \verb+\Photon+     &    N       &     N     \\
+     \verb+\PhotonArc+  &    N       &     Y     \\
+     \verb+\ZigZag+     &    N       &     N     \\
+     \verb+\ZigZagArc+  &    N       &     Y     \\
+  \end{tabular}
+\end{center}
+The arrow options include those for setting the arrow dimensions.
+Options not indicated in the last table apply to all cases.
+
+%{\sc The next options still have to be implemented, but it seems the most 
+%sensible thing to do.}\vspace{3mm}
+%
+%The third family is the one of the shapes:
+%
+%\begin{center}
+%\begin{minipage}{14cm}
+%\begin{verbatim}
+%\Box[options](x1,y1)(x2,y2)
+%\Tri[options](x1,y1)(x2,y2)(x3,y3)
+%\Polygon[options]{(x1,y1)(x2,y2)...(xn,yn)}
+%\Circ[options](x1,y1){radius}
+%\Oval[options](x1,y1)(height,width)(rotation)
+%\end{verbatim}
+%\end{minipage}
+%\end{center}
+%
+%\noindent The options here are:
+%\begin{center}
+%\begin{tabular}{ll}
+% centered            & For boxes: x1,y1 is the center. x2,y2 is width,
+%                       height \\
+% blanked             & Inside is blanked out. \\
+% inside              & (Over)write only the inside. \\
+% color,line=$<$color$>$  & Main color. \\
+% filled,fill=$<$color$>$ & When both the outline and the inside are written. \\
+% gray,grayscale=\num & Inside is in gray. Filled overwrites this. \\
+% rotation=\num       & Only for centered boxes: rotation angle.
+%\end{tabular}
+%\end{center}
+%The options gray and filled imply blanked. Hence it is not needed to use 
+%blanked when either of those options is used. The default values are that 
+%none of these options are used.
+
+Some examples are:
+\begin{verbatim}
+   \Line[double,sep=1.5,dash,dsize=4](10,10)(70,30)
+   \Line[double,sep=1.5,arrow,arrowpos=0.6](10,10)(70,30)
+\end{verbatim}
+ 
+The options can also be used on the more explicit commands as extra 
+options. Hence it is possible to use
+\begin{verbatim}
+   \DoubleLine[dash,dsize=4](10,10)(70,30){1.5}
+\end{verbatim}
+instead of the first line in the previous example.
+
+One may notice that some of the options are not accessible with the more 
+explicit commands. For example, it is possible to put arrows on B\'ezier 
+curves only by using the option `arrow' for the B\'ezier command.
+
+%>>#] Options :
+%>>#[ Remarks about Gluons :
+%
+\subsection{Remarks about Gluons}
+\label{sec:gluon.remarks}
+
+There are 12 commands that concern gluons. This allows much freedom in 
+developing one's own style. Gluons can be drawn as single solid lines, as 
+double lines, as dashed lines and as dashed double lines.
+
+Gluons have an amplitude and a number of windings. By varying these 
+quantities one may obtain completely different gluons as in:
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,90)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,8){LightGray}{0.5}
+\Gluon(10,70)(80,70){3}{5}
+\Gluon(10,50)(80,50){3}{9}
+\Gluon(10,30)(80,30){5}{7}
+\Gluon(10,10)(80,10){8}{9}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{gluons}
+\verb:\Gluon(10,70)(80,70){3}{5}: \hfill \\
+\verb:\Gluon(10,50)(80,50){3}{9}: \hfill \\
+\verb:\Gluon(10,30)(80,30){5}{7}: \hfill \\
+\verb:\Gluon(10,10)(80,10){8}{9}:
+\end{minipage}\vspace{4mm}
+
+One may change the orientation of the windings by reversing the
+direction in which the gluon is drawn and/or changing the sign of the
+amplitude:
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,90)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,8){LightGray}{0.5}
+\DoubleGluon(10,70)(80,70){5}{7}{1.2}
+\DoubleGluon(80,50)(10,50){5}{7}{1.2}
+\DoubleGluon(10,30)(80,30){-5}{7}{1.2}
+\DoubleGluon(80,10)(10,10){-5}{7}{1.2}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{gluonss}
+\verb:\DoubleGluon(10,70)(80,70){5}{7}{1.2}: \hfill \\
+\verb:\DoubleGluon(80,50)(10,50){5}{7}{1.2}: \hfill \\
+\verb:\DoubleGluon(10,30)(80,30){-5}{7}{1.2}: \hfill \\
+\verb:\DoubleGluon(80,10)(10,10){-5}{7}{1.2}:
+\end{minipage}\vspace{4mm}
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,70)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,7){LightGray}{0.5}
+\GluonArc(45,20)(40,20,160){5}{8}
+\GluonArc(45,0)(40,20,160){-5}{8}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{gluonarcA}
+\verb:\GluonArc(45,20)(40,20,160){5}{8}:\hfill \\
+\verb:\GluonArc(45,0)(40,20,160){-5}{8}:\hfill \\
+Here one can see that the sign of the amplitude gives a completely 
+different aspect to a gluon on an arc segment.
+\end{minipage}\vspace{4mm}
+
+There are two ways of drawing a gluon circle. One is with the command 
+GluonCirc and the other is an arc of 360 degrees with the GluonArc command. 
+The second way has a natural attachment point, because the GluonArc 
+command makes gluons with a begin- and endpoint. \vspace{4mm}
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(80,80)(-15,0)}
+\AxoGrid(0,0)(10,10)(8,8){LightGray}{0.5}
+\GluonCirc(40,40)(30,0){5}{16}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+%\label{gluoncirc}
+\verb:\GluonCirc(40,40)(30,0){5}{16}:\hfill \\
+This is the `complete circle'. If one likes to attach one or more lines to 
+it one should take into account that the best places for this are at a 
+distance radius+amplitude from the center of the circle. One can rotate the 
+circle by using the phase argument.
+\end{minipage}\vspace{4mm}
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(80,80)(-15,0)}
+\AxoGrid(0,0)(10,10)(8,8){LightGray}{0.5}
+\GluonArc(40,40)(30,0,360){5}{16}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{gluonarc360}
+\verb:\GluonArc(40,40)(30,0,360){5}{16}:\hfill \\
+In the 360 degree arc there is a natural point of attachment. Of course 
+there is only one such point. If one needs more than one such point one 
+should use more than one arc segment.
+\end{minipage}\vspace{4mm}
+
+Some examples are:
+
+\begin{center} \begin{axopicture}{(460,60)(0,0)}
+\Gluon(7,30)(27,30){3}{3}
+\GluonCirc(50,30)(20,0){3}{16}
+\Gluon(73,30)(93,30){3}{3}
+\Vertex(27,30){1.5}
+\Vertex(73,30){1.5}
+%
+\Gluon(110,30)(130,30){3}{3}
+\GluonArc(150,30)(20,0,180){3}{8}
+\GluonArc(150,30)(20,180,360){3}{8}
+\Gluon(170,30)(190,30){3}{3}
+\Vertex(130,30){1.5}
+\Vertex(170,30){1.5}
+%
+\Gluon(210,30)(230,30){3}{3}
+\GluonArc(250,30)(20,0,180){-3}{8}
+\GluonArc(250,30)(20,180,360){-3}{8}
+\Gluon(270,30)(290,30){3}{3}
+\Vertex(230,30){1.5}
+\Vertex(270,30){1.5}
+%
+\DashLine(310,30)(330,30){3}
+\GluonArc(350,30)(20,-180,180){3}{16}
+\Vertex(330,30){1.5}
+%
+\DashLine(387,30)(407,30){3}
+\GluonCirc(430,30)(20,0){3}{16}
+\Vertex(407,30){1.5}
+%
+\end{axopicture} \end{center}
+This picture was generated with the code:
+\begin{verbatim}
+\begin{center} \begin{axopicture}{(460,60)(0,0)}
+   \Gluon(7,30)(27,30){3}{3}
+   \GluonCirc(50,30)(20,0){3}{16}
+   \Gluon(73,30)(93,30){3}{3}
+   \Vertex(27,30){1.5}
+   \Vertex(73,30){1.5}
+   \Gluon(110,30)(130,30){3}{3}
+   \GluonArc(150,30)(20,0,180){3}{8}
+   \GluonArc(150,30)(20,180,360){3}{8}
+   \Gluon(170,30)(190,30){3}{3}
+   \Vertex(130,30){1.5}
+   \Vertex(170,30){1.5}
+   \Gluon(210,30)(230,30){3}{3}
+   \GluonArc(250,30)(20,0,180){-3}{8}
+   \GluonArc(250,30)(20,180,360){-3}{8}
+   \Gluon(270,30)(290,30){3}{3}
+   \Vertex(230,30){1.5}
+   \Vertex(270,30){1.5}
+   \DashLine(310,30)(330,30){3}
+   \GluonArc(350,30)(20,-180,180){3}{16}
+   \Vertex(330,30){1.5}
+   \DashLine(387,30)(407,30){3}
+   \GluonCirc(430,30)(20,0){3}{16}
+   \Vertex(407,30){1.5}
+\end{axopicture} \end{center}
+\end{verbatim}
+
+%>>#] Remarks about Gluons :
+%>>#[ Arrows :
+
+\subsection{Remarks about arrows}
+\label{sec:arrows}
+
+%--#[ General :
+
+The old Axodraw arrows were rather primitive little triangles. The JaxoDraw 
+program has introduced fancier arrows which the user can also customize. 
+There are parameters connected to this as shown in the figure:
+\begin{center}
+\begin{axopicture}{(150,100)(0,0)}
+\AxoGrid(0,0)(10,10)(15,10){LightGray}{0.5}
+\SetWidth{3}
+%\Line(10,50)(130,50)
+%\FilledPolygon{(140,50)(90,90)(105,50)(90,10)}{White}
+%\Polygon{(140,50)(90,90)(105,50)(90,10)}{Black}
+%\SetWidth{0.5}
+%\LongArrow(85,50)(85,90)
+%\LongArrow(90,5)(105,5)
+%\LongArrow(90,95)(140,95)
+%\SetPFont{Helvetica}{9}
+%\PText(110,85)(0)[l]{Length}
+%\PText(76,71)(90)[c]{Width}
+%\PText(110,5)(0)[l]{Inset}
+\Line[arrow,arrowinset=0.3,arrowaspect=1,arrowwidth=40,arrowpos=1,
+       arrowstroke=3](10,50)(100,50)
+\SetWidth{0.5}
+\LongArrow(55,50)(55,90)
+\LongArrow(60,5)(84,5)
+\LongArrow(60,95)(140,95)
+\SetPFont{Helvetica}{9}
+\PText(100,85)(0)[l]{Length}
+\PText(46,71)(90)[c]{Width}
+\PText(90,5)(0)[l]{Inset}
+\end{axopicture}\vspace{2mm} \\
+\verb:\Line[arrow,arrowinset=0.3,arrowaspect=1,arrowwidth=40,arrowpos=1,:\\
+\verb:arrowstroke=3](10,50)(100,50):
+\end{center}
+The full set of parameters is:
+\begin{description}
+\item[aspect]   A multiplicative parameter when the length is calculated 
+from the width. The normal formula is: 
+$\mbox{length}=2\times \mbox{width}\times \mbox{aspect}$.
+\item[inset] The fraction of the length that is taken inward.
+\item[length] The full length of the arrowhead.
+\item[position] The position of the arrow in the line as a fraction of the 
+length of the line.
+\item[scale]    A scale parameter for the complete arrowhead.
+\item[stroke]   The width of the line that makes up the arrowhead. If the 
+value is not set (default value is zero) the arrow is filled and overwrites 
+whatever was there. In the case of a stroke value the contents are 
+overwritten in the background color.
+\item[width] The half width of the arrowhead.
+\end{description}
+The parameters can be set in two ways. One is with one of the commands
+\begin{center}
+\begin{tabular}{ll}
+\verb:\SetArrowScale{number}: & Initial value is 1. \\
+\verb:\SetArrowInset{number}: & Initial value is 0.2 \\
+\verb:\SetArrowAspect{number}: & Initial value is 1.25 \\
+\verb:\SetArrowPosition{number}: & Initial value is 0.5 \\
+\verb:\SetArrowStroke{number}: & Initial value is 0 \\
+\end{tabular} \vspace{2mm} \\
+\end{center}
+(A complete list of commands for setting defaults is in
+Sec.\ \ref{sec:settings}.)
+These commands determine settings that will hold for all following
+commands, up to the end of whatever \LaTeX{} or \TeX{} grouping the
+default setting is given in.  E.g., setting a default value inside an
+\texttt{axopicture} environment sets it until the end of the
+environment only.  (Thus the settings obey the normal rules of
+\LaTeX{} for scoping.)
+
+The other way is to use one or more of these parameters as options in a 
+command that uses an arrow. The general use of options is in Sec.\
+\ref{sec:options}. The options that are available are 
+\begin{center}
+\begin{tabular}{ll}
+   arrow              & initial default=false \\
+   arrowscale=\num    & initial default=1 \\
+   arrowwidth=\num    & initial default=0 \\
+   arrowlength=\num   & initial default=0 \\
+   arrowpos=\num      & initial default=0.5 \\
+   arrowinset=\num    & initial default=0.2 \\
+   arrowstroke=\num   & initial default=0 \\
+   arrowaspect=\num   & initial default=1.25 \\
+   flip               & initial default=false
+\end{tabular}
+\end{center}
+The arrow option tells the program to draw an arrow. Without it no
+arrow will be drawn. The flip option indicates that the direction of
+the arrow should be reversed from the `natural' direction. 
+
+When
+neither the width nor the length are specified, but instead both are
+given as zero, they are computed from the line width (and the line
+separation when there is a double line). The formula is:
+\begin{eqnarray}
+   \mbox{Arrowwidth} & = & 
+   1.2 \times \left( \mbox{linewidth} 
+              + 0.7 \times \mbox{separation}
+              + 1
+         \right) 
+     \times \mbox{arrowscale},
+\\
+\label{arrowlength}
+   \mbox{Length} & = &
+   2 \times \mbox{arrowwidth} \times  \mbox{arrowaspect}. 
+\end{eqnarray}
+%If however $\mbox{linewidth} + \frac{1}{4} \times \mbox{separation} <
+%0.5$ the formula for the arrow width becomes $\mbox{arrowwidth} = 2.5
+%\times \mbox{arrowscale}$.
+If, however, $1.2 \times(\mbox{linewidth}+0.7\times\mbox{separation}+1)$ is less
+than 2.5, the formula for the arrow width becomes
+$\mbox{arrowwidth}=2.5\times\mbox{arrowscale}$.
+
+If only one of the arrowwidth or the arrowlength parameters is zero,
+it is computed from the other non-zero parameter using formula
+(\ref{arrowlength}). When both are non-zero, those are the values that
+are used.
+
+The position of the arrowhead is a bit tricky. The arrowpos parameter is a 
+fraction of the length of the line and indicates the position of the center 
+of the arrowhead. This means that when arrowpos is one, the arrowhead 
+sticks out beyond the end of the line by half the arrowlength. When for 
+instance the line width is 0.5, the default length of the arrowhead 
+defaults to 6.25. Hence if one would like to compensate for this one should 
+make the line 3.125 points shorter. Usually 3 pt will be sufficient.
+
+Because of backward compatibility axodraw2 has many individual commands for 
+lines with arrows. We present them here, together with some `options' 
+varieties.\vspace{4mm}
+
+%--#] General :
+%--#[ ArrowLine :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,80)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,8){LightGray}{0.5}
+\Line[arrow,arrowscale=2](10,70)(80,70)
+\Line[arrow,arrowpos=0.8,flip](10,50)(80,50)
+\Line[arrow](10,30)(80,30)
+\ArrowLine(10,10)(80,10)
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{arrowline}
+\verb:\Line[arrow,arrowscale=2](10,70)(80,70): \hfill \\
+\verb:\Line[arrow,arrowpos=0.8,flip](10,50)(80,50): \hfill \\
+\verb:\Line[arrow](10,30)(80,30): \hfill \\
+\verb:\ArrowLine(10,10)(80,10): \hfill \\
+The default position for the arrow is halfway (arrowpos=0.5). With the line 
+command and the options we can put the arrow in any position.
+\end{minipage}\vspace{4mm}
+
+%--#] ArrowLine :
+%--#[ LongArrow :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,60)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,6){LightGray}{0.5}
+\Line[arrow,arrowpos=1](10,30)(80,30)
+\LongArrow(10,10)(80,10)
+\SetWidth{4}
+\LongArrow[arrowscale=0.8](10,50)(70,50)
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{longarrow}
+\verb:\Line[arrow,arrowpos=1](10,30)(80,30): \hfill \\
+\verb:\LongArrow(10,10)(80,10): \hfill \\
+\verb:\SetWidth{4}: \hfill \\
+\verb:\LongArrow[arrowscale=0.8](10,50)(70,50): \hfill \\
+The \verb:\LongArrow: command just places the arrowhead at the end of the 
+line. The size of the arrowhead is a function of the linewidth.
+\end{minipage}\vspace{4mm}
+
+%--#] LongArrow :
+%--#[ ArrowDoubleLine :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,100)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,10){LightGray}{0.5}
+\SetArrowStroke{1}
+\Line[arrow,arrowpos=1,double,sep=5,arrowscale=1.3](10,90)(75,90)
+\Line[arrow,arrowpos=1,double,sep=2,arrowscale=1.5](10,70)(80,70)
+\Line[arrow,arrowpos=1,double,sep=2](10,50)(80,50)
+\Line[arrow,double,sep=2](10,30)(80,30)
+\ArrowDoubleLine(10,10)(80,10){2}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{arrowdoubleline}
+\verb:\SetArrowStroke{1}: \hfill \\
+\verb:\Line[arrow,arrowpos=1,double,sep=5,arrowscale=1.3]: \hfill \\
+     \verb:    (10,90)(75,90): \hfill \\
+\verb:\Line[arrow,arrowpos=1,double,sep=2,arrowscale=1.5]: \hfill \\
+     \verb:    (10,70)(80,70): \hfill \\
+\verb:\Line[arrow,arrowpos=1,double,sep=2](10,50)(80,50): \hfill \\
+\verb:\Line[arrow,double,sep=2](10,30)(80,30): \hfill \\
+\verb:\ArrowDoubleLine(10,10)(80,10){2}: \hfill \\
+As one can see, the arrows also work with double lines.
+\end{minipage}\vspace{4mm}
+
+%--#] ArrowDoubleLine :
+%--#[ ArrowDashLine :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,80)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,8){LightGray}{0.5}
+\Line[arrow,arrowpos=0.3,dash,dsize=3,arrowscale=1.5](10,70)(80,70)
+\DashArrowLine(10,50)(80,50){3}
+\Line[arrow,dash,dsize=3](10,30)(80,30)
+\ArrowDashLine(10,10)(80,10){3}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{arrowdashline}
+\verb:\Line[arrow,arrowpos=0.3,dash,dsize=3,arrowscale=1.5]: \\
+       \verb:(10,70)(80,70): \\
+\verb:\DashArrowLine(10,50)(80,50){3}: \\
+\verb:\Line[arrow,dash,dsize=3](10,30)(80,30): \\
+\verb:\ArrowDashLine(10,10)(80,10){3}: \\
+We have not taken provisions for the dashes to be centered in the 
+arrowhead, because at times that is nearly impossible. The commands 
+\verb:\ArrowDashLine: and \verb:\DashArrowLine: are identical.
+\end{minipage}\vspace{4mm}
+
+%--#] ArrowDashLine :
+%--#[ ArrowDashDoubleLine :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,80)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,8){LightGray}{0.5}
+\SetArrowStroke{0.5}
+\Line[arrow,arrowpos=1,dash,dsize=3,double,sep=1.5,arrowscale=1.5](10,70)(80,70)
+\DashArrowDoubleLine(10,50)(80,50){1.5}{3}
+\Line[arrow,dash,dsize=3,double,sep=1.5](10,30)(80,30)
+\ArrowDashDoubleLine(10,10)(80,10){1.5}{3}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{arrowdashdoubleline}
+\verb:\SetArrowStroke{0.5}: \\
+\verb:\Line[arrow,arrowpos=1,dash,dsize=3,double: \\
+       \verb:,sep=1.5,arrowscale=1.5](10,70)(80,70): \\
+\verb:\DashArrowDoubleLine(10,50)(80,50){1.5}{3}: \\
+\verb:\Line[arrow,dash,dsize=3](10,30)(80,30): \\
+\verb:\ArrowDashDoubleLine(10,10)(80,10){1.5}{3}: \\
+The \verb:\ArrowDashDoubleLine: and \verb:\DashArrowDoubleLine: 
+commands are identical.
+\end{minipage}\vspace{4mm}
+
+%--#] ArrowDashDoubleLine :
+%--#[ LongArrowDashLine :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,80)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,8){LightGray}{0.5}
+\Line[arrow,arrowpos=0,dash,dsize=3,arrowscale=1.5,flip](10,70)(80,70)
+\DashLongArrowLine(10,50)(80,50){3}
+\Line[arrow,arrowpos=1,dash,dsize=3](10,30)(80,30)
+\LongArrowDashLine(10,10)(80,10){3}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{longarrowdashline}
+\verb:\Line[arrow,arrowpos=0,dash,dsize=3,arrowscale=1.5: \\
+       \verb:,flip](10,70)(80,70): \\
+\verb:\DashLongArrowLine(10,50)(80,50){3}: \\
+\verb:\Line[arrow,arrowpos=1,dash,dsize=3](10,30)(80,30): \\
+\verb:\LongArrowDashLine(10,10)(80,10){3}: \\
+The commands 
+\verb:\LongArrowDashLine:, \verb:\DashLongArrowLine:, 
+\verb:\LongArrowDash: and \verb:\DashLongArrow: are identical.
+\end{minipage}\vspace{4mm}
+
+%--#] LongArrowDashLine :
+%--#[ ArrowArc :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,140)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,14){LightGray}{0.5}
+\Arc[arrow,arrowpos=1,clock](45,95)(40,160,20)
+\LongArrowArcn(45,80)(40,160,20)
+\Arc[arrow,arrowpos=0.5,clock](45,65)(40,160,20)
+\ArrowArcn(45,50)(40,160,20)
+\Arc[arrow,arrowpos=1](45,35)(40,20,160)
+\LongArrowArc(45,20)(40,20,160)
+\Arc[arrow,arrowpos=0.5](45,5)(40,20,160)
+\ArrowArc(45,-10)(40,20,160)
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{arrowarc}
+\verb:\Arc[arrow,arrowpos=0,flip](45,95)(40,20,160): \\
+\verb:\LongArrowArcn(45,80)(40,20,160): \\
+\verb:\Arc[arrow,arrowpos=0.5](45,65)(40,20,160): \\
+\verb:\ArrowArcn(45,50)(40,20,160): \\
+\verb:\Arc[arrow,arrowpos=1](45,35)(40,20,160): \\
+\verb:\LongArrowArc(45,20)(40,20,160): \\
+\verb:\Arc[arrow,arrowpos=0.5](45,5)(40,20,160): \\
+\verb:\ArrowArc(45,-10)(40,20,160): \\
+The \verb:Arc: and the \verb:CArc: commands are identical.
+\end{minipage}\vspace{4mm}
+
+%--#] ArrowArc :
+%--#[ ArrowDashArc :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,110)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,11){LightGray}{0.5}
+\Arc[arrow,dash,dsize=3,arrowpos=0.5,clock](45,65)(40,160,20)
+\ArrowDashArcn(45,50)(40,160,20){3}
+\Arc[arrow,dash,dsize=3,arrowpos=1](45,35)(40,20,160)
+\LongArrowDashArc(45,20)(40,20,160){3}
+\Arc[arrow,dash,dsize=3,arrowpos=0.5](45,5)(40,20,160)
+\ArrowDashArc(45,-10)(40,20,160){3}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{arrowdasharc}
+\verb:\Arc[arrow,dash,dsize=3,arrowpos=0.5]: \\
+       \verb:(45,65)(40,20,160): \\
+\verb:\ArrowDashArcn(45,50)(40,20,160){3}: \\
+\verb:\Arc[arrow,dash,dsize=3,arrowpos=1]: \\
+       \verb:(45,35)(40,20,160): \\
+\verb:\LongArrowDashArc(45,20)(40,20,160){3}: \\
+\verb:\Arc[arrow,dash,dsize=3,arrowpos=0.5]: \\
+       \verb:(45,5)(40,20,160): \\
+\verb:\ArrowDashArc(45,-10)(40,20,160){3}: \\
+The \verb:DashArrowArc: and the \verb:ArrowDashArc: commands are identical.
+So are the commands \verb:DashArrowArcn: and \verb:ArrowDashArcn:.
+\end{minipage}\vspace{4mm}
+
+%--#] ArrowDashArc :
+%--#[ ArrowDashDoubleArc :
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(90,80)(-10,0)}
+\AxoGrid(0,0)(10,10)(9,8){LightGray}{0.5}
+\Arc[arrow,dash,dsize=3,double,sep=1.5,arrowpos=0.5](45,35)(40,20,160)
+\ArrowDashDoubleArc(45,20)(40,20,160){1.5}{3}
+\Arc[arrow,double,sep=1.5,arrowpos=0.5](45,5)(40,20,160)
+\ArrowDoubleArc(45,-10)(40,20,160){1.5}
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{arrowdashdoublearc}
+\verb:\Arc[arrow,dash,dsize=3,double,sep=1.5: \\
+      \verb:,arrowpos=0.5](45,35)(40,20,160): \\
+\verb:\ArrowDashDoubleArc(45,20)(40,160,20){1.5}{3}: \\
+\verb:\Arc[arrow,double,sep=1.5,arrowpos=0.5]: \\
+      \verb:(45,5)(40,20,160): \\
+\verb:\ArrowDoubleArc(45,-10)(40,20,160){1.5}: \\
+Other commands involving Long do not exist. The options can take care of 
+their functionality.
+\end{minipage}\vspace{4mm}
+
+%--#] ArrowDashDoubleArc :
+%--#[ Bezier :
+ 
+Computing the position of the arrow in a B\'ezier curve is a bit complicated. 
+Let us recall the definition of a cubic B\'ezier curve:
+\begin{eqnarray}
+ x & = & x_0 (1-t)^3 + 3 x_1 t (1-t)^2 + 3 x_2 t^2 (1-t) + x_3 t^3 
+            \nonumber \\
+ y & = & y_0 (1-t)^3 + 3 y_1 t (1-t)^2 + 3 y_2 t^2 (1-t) + y_3 t^3
+\end{eqnarray}
+Computing the length of the curve is done with the integral
+\begin{eqnarray}
+   L & = & \int_0^1 dt
+   \sqrt{ \left( \frac{dx}{dt} \right)^2 + \left( \frac{dy}{dt} \right )^2 },
+\end{eqnarray}
+which is an integral over the square root of a quartic polynomial. This we 
+do with a 16 point Gaussian quadrature and it gives us more than enough 
+accuracy\footnote{We need to compute the length of the B\'ezier curve also 
+when we want to put a dash pattern on it. The exact dash size is determined 
+such that an integer number of patterns fits in the line.}. Let us assume 
+now that we want the arrow at 0.6 of the length. To find the exact fraction 
+of the length involves finding the upper limit of the integral for which 
+the length is $0.6 L$. This requires an iteration procedure till we have a 
+reasonable accuracy for the position $(x,y)$. After that we have to calculate 
+the derivative in this point as well.
+
+Because the B\'ezier curves are new commands in axodraw2 there is no need for 
+backwards compatibility in the use of arrows. Hence all arrow commands are 
+done by means of the options. Some examples are:
+\vspace{4mm}
+
+\noindent
+\begin{minipage}{3.83cm}
+\begin{axopicture}{(80,80)(-15,0)}
+\AxoGrid(0,0)(10,10)(8,8){LightGray}{0.5}
+\Bezier[arrow](10,10)(30,30)(10,50)(30,70)
+\Bezier[arrow,dash,dsize=3](30,10)(50,30)(30,50)(50,70)
+\Bezier[arrow,arrowpos=1,double,sep=1,arrowstroke=0.5](50,10)(70,30)(50,50)(70,70)
+\end{axopicture}
+\end{minipage}
+\begin{minipage}{11.5cm}
+\label{arrowbezier}
+\verb:\Bezier[arrow](10,10)(30,30)(10,50)(30,70): \\
+\verb:\Bezier[arrow,dash,dsize=3](30,10)(50,30): \\
+       \verb:(30,50)(50,70): \\
+\verb:\Bezier[arrow,arrowpos=1,double,sep=1,arrowstroke: \\
+       \verb:=0.5](50,10)(70,30)(50,50)(70,70):
+\end{minipage}\vspace{4mm}
+
+%--#] Bezier :
+%>>#] Arrows :
+%>>#[ Settings :
+
+\subsection{Units and scaling}
+\label{sec:units}
+
+When you have constructed a diagram, you may need to change its scale,
+to make it larger or smaller.  Axodraw2 provides ways of doing this,
+for scaling diagrams without recoding all the individual coordinates.
+However the requirements for the nature of the scaling change between
+different cases. For example, suppose a diagram is designed for use in
+a journal article and you wish to use it in the slides for a seminar.
+Then you will want to enlarge both the geometric size of the diagram's
+objects and the text labels it contains.  But if you wish to use a
+scaled diagram in another place in a journal article, you will wish to
+scale its lines etc, but will probably not wish to scale the text (to
+preserve its legibility).
+
+Axodraw2 therefore provides tools for the different situations, so we
+will now explain what to do.  The commands to achieve this all appear
+in the list of parameter-setting commands in Sec.\ \ref{sec:settings}.
+
+
+\subsubsection{Scaling for slides}
+
+Suppose the original diagram is
+\begin{center}
+\begin{minipage}{10cm}
+\begin{verbatim}
+   \SetPFont{Helvetica-Oblique}{12}
+   Document text.  Then diagram:
+   \begin{axopicture}(60,43)
+      \Arc[arrow](30,0)(30,0,180)
+      \Text(30,33)[b]{$\alpha P_1$}
+      \CText(30,10){Red}{Yellow}{Arc}
+   \end{axopicture}
+\end{verbatim}
+\end{minipage}
+\end{center}
+to give
+\begin{center}
+   \SetPFont{Helvetica-Oblique}{12}
+   Document text.  Then diagram:
+   \begin{axopicture}(60,43)
+      \Arc[arrow](30,0)(30,0,180)
+      \Text(30,33)[b]{$\alpha P_1$}
+      \CText(30,10){Red}{Yellow}{Arc}
+   \end{axopicture}
+\end{center}
+Then you could double the scale of the diagram by
+\begin{center}
+\begin{minipage}{10cm}
+\begin{verbatim}
+   \SetScale{2}
+   \fontsize{24}{26}\selectfont
+   \SetPFont{Helvetica-Oblique}{12}
+   Document text.  Then diagram:
+   \begin{axopicture}(60,43)
+      \Arc[arrow](30,0)(30,0,180)
+      \Text(30,33)[b]{$\alpha P_1$}
+      \CText(30,10){Red}{Yellow}{Arc}
+   \end{axopicture}
+\end{verbatim}
+\end{minipage}
+\end{center}
+to get
+\begin{center}
+   \SetScale{2}
+   \fontsize{24}{26}\selectfont
+   \SetPFont{Helvetica-Oblique}{12}
+   Document text.  Then diagram:
+   \begin{axopicture}(60,43)
+      \Arc[arrow](30,0)(30,0,180)
+      \Text(30,33)[b]{$\alpha P_1$}
+      \CText(30,10){Red}{Yellow}{Arc}
+   \end{axopicture}
+\end{center}
+We have changed the size of the document font, as would be appropriate
+for a make slides for a presentation; this we did by the
+\verb+\fontsize+ command.  The arc and the space inserted
+in the document for the diagram have scaled up.  The label inserted by
+the \verb:\Text: command has changed to match the document font.  The
+postscript text in the \verb:\CText: was specified to be at
+$\unit[12]{pt}$, but is now scaled up also.  
+
+The above behavior is what axodraw2 does by default, and is what v.\ 1
+did. 
+
+
+\subsubsection{Scaling within article}
+
+If you wanted to make an enlarged figure in a journal article, you
+would not change the document font.  But the obvious modification to
+the previous example is
+\begin{center}
+\begin{minipage}{10cm}
+\begin{verbatim}
+   \SetScale{2}
+   \SetPFont{Helvetica-Oblique}{12}
+   Document text.  Then diagram:
+   \begin{axopicture}(60,43)
+      \Arc[arrow](30,0)(30,0,180)
+      \Text(30,33)[b]{$\alpha P_1$}
+      \CText(30,10){Red}{Yellow}{Arc}
+   \end{axopicture}
+\end{verbatim}
+\end{minipage}
+\end{center}
+which gives
+\begin{center}
+   \SetScale{2}
+   \SetPFont{Helvetica-Oblique}{12}
+   Document text.  Then diagram:
+   \begin{axopicture}(60,43)
+      \Arc[arrow](30,0)(30,0,180)
+      \Text(30,33)[b]{$\alpha P_1$}
+      \CText(30,10){Red}{Yellow}{Arc}
+   \end{axopicture}
+\end{center}
+The label $\alpha P_1$ is now not enlarged, since it copies the
+behavior of the document font.  But the postscript text is enlarged,
+which is probably undesirable.  If you were scaling down the diagram
+instead of scaling it up, the situation would be worse, because the
+postscript font would be difficult to read.
+
+So in this situation, of scaling the diagram while keeping the
+document font intact, you probably also want to leave unchanged the
+size of the postscript font.  You can achieve this by the
+\verb:\PSTextScalesLikeGraphicsfalse: command:
+\begin{center}
+\begin{minipage}{10cm}
+\begin{verbatim}
+   \SetScale{2}
+   \PSTextScalesLikeGraphicsfalse
+   \SetPFont{Helvetica-Oblique}{12}
+   Document text.  Then diagram:
+   \begin{axopicture}(60,43)
+      \Arc[arrow](30,0)(30,0,180)
+      \Text(30,33)[b]{$\alpha P_1$}
+      \CText(30,10){Red}{Yellow}{Arc}
+   \end{axopicture}
+\end{verbatim}
+\end{minipage}
+\end{center}
+\begin{center}
+   \SetScale{2}
+   \PSTextScalesLikeGraphicsfalse
+   \SetPFont{Helvetica-Oblique}{12}
+   Document text.  Then diagram:
+   \begin{axopicture}(60,43)
+      \Arc[arrow](30,0)(30,0,180)
+      \Text(30,33)[b]{$\alpha P_1$}
+      \CText(30,10){Red}{Yellow}{Arc}
+   \end{axopicture}
+\end{center}
+
+To achieve this on a document-wide basis, which is probably what you
+want, you can use the \texttt{PStextScalesIndependently} option when you
+load axodraw2 --- see Sec.\ \ref{sec:invoke}.
+
+Nevertheless, if you turn off the default scaling of postscript text,
+%you may still want to scale text.  To do this you can use the
+you may still want to scale text.  For this you can use the
+\verb:\SetTextScale: command, as in \verb:\SetTextScale{1.2}:.  This
+only has an effect when you have turned off the scaling of postscript
+text with graphics objects; but then it applies to \TeX{} text
+inserted by axodraw2's \verb:\Text: and \verb:\rText: commands, as
+well text inserted by axodraw2's ``postscript-text'' commands.
+
+If you are confused by the above, we recommend experimentation to
+understand how to achieve the effects that you specifically need.  We
+could have made the set of commands and options simpler, but only at
+the expense of not being able to meet the demands of the different
+plausible situations that we could imagine and have to deal with
+ourselves.
+
+\subsubsection{Canvas and object scales}
+
+When you use \verb:\SetScale: outside an \verb:axopicture:
+environment, as above, the scaling applies to both the axodraw2
+objects and the space inserted for the \texttt{axopicture} environment
+in the document, as is natural.  But you may find you need to scale a
+subset of objects inside the diagram, e.g.,
+\begin{center}
+  \begin{minipage}{10cm}
+    \verb:\begin{axopicture}:(\dots)\\
+    \hspace*{1cm} (First block)\\
+    \verb:\SetScale{0.5}:\\
+    \hspace*{1cm} (Second block)\\
+    \verb:\end{axopicture}:
+  \end{minipage}
+\end{center}
+In this case, the units for specifying the objects in the second block
+are different from those for specifying the \verb:axopicture:
+environment's size (as well as the first block of objects).  We thus
+distinguish object units from canvas units, where ``canvas'' refers to
+the \verb:axopicture: environment as a whole.  
+
+Another complication is that the \LaTeX{} \verb+picture+ environment
+has is own \verb:\unitlength: parameter.  In v.\ 1 of axodraw, the
+canvas scale was determined by \LaTeX's \verb:\unitlength:.  But there
+was an independent unit for the object scale; this was the one
+determined by axodraw's \verb:\SetScale: command. Also, not all
+objects used the object scale.  The situation therefore got quite
+confusing. In v.\ 1, if, as is often natural, you wished to scale the
+canvas as well as the objects, you would have needed to set \LaTeX's
+\verb:\unitlength: parameter as well as using axodraw's
+\verb:\SetScale: command.
+
+So now we have arranged things so that the canvas and object scales
+are tied by default, provided that you use axodraw2's \verb:\SetScale:
+command, and that axodraw diagrams are inside \verb+axopicture+
+environments (in contrast to the \verb+picture+ environment used in
+the original axodraw).
+However, it may be necessary to keep backward compatibility in some
+cases, and we weren't certain that the new behavior is exactly what is
+always desired.  So in axodraw2, we have provided three choices, given
+by the \texttt{canvasScaleIs1pt}, \texttt{canvasScaleIsObjectScale},
+and \texttt{canvasScaleIsUnitLength} options when loading axodraw2 ---
+see Sec.\ \ref{sec:invoke}.  Naturally,
+\texttt{canvasScaleIsObjectScale} is the default.  If you wish to
+change the setting mid-document, there are corresponding commands ---
+Sec.\ \ref{sec:settings}.
+
+
+
+\subsection{Settings}
+\label{sec:settings}
+
+Axodraw2 has a number of parameters that can be set by the user.  The
+parameters include defaults for line types, dimensions, etc.  The
+parameters can be set either inside the axopicture environment or
+outside.  If they are set outside they modify the default value for
+subsequent pictures. If set inside they only affect the current
+picture.  (In general, the parameters obey the usual rules for the
+scope of \LaTeX{} variables.)  In many cases, the parameters provide
+default values for a command to draw an object and can be overridden
+for a single object by using an optional parameter in invoking the
+command for the object.
+
+The unit for lengths is the current object scale, as set by the
+\verb+\SetScale+ command.
+
+\break 
+
+The parameter-setting commands are:
+%\begin{center}
+%\def\arraystretch{1.4}
+%%
+%% See preamble for definition of \name
+%\def\descr#1#2{%
+%  % #1 = command-syntax, #2 = description
+%  \name{#1} & #2\\
+%  \hline
+%}
+%\def\descrL#1#2{%
+%  % #1 = command-syntax, #2 = description
+%  % Set #1 on separate line
+%  \multicolumn{2}{|l|}{\name{#1}}   \\
+%                & #2\\
+%  \hline
+%}
+%\catcode`\#=13
+%\def#{\#}
+%%
+%\begin{longtable}{|p{5cm}|p{10.2cm}|}
+%\hline
+%   Command & Commentary 
+%\\
+%\hline
+%%
+%\descr{SetLineSep\{\#1\}}{
+%  This sets the default separation of double lines. Its initial value
+%  is 2.
+%}
+%%
+%\descr{SetDashSize\{\#1\}}{
+%  This sets the default size for the size of the dashes of dashed
+%  lines. Its initial value is 3.
+%}
+%%
+%\descr{SetWidth\{\#1\}}{
+%  This sets the default width of lines.  Its initial value is 1.
+%}
+%%
+%\descr{SetScale\{\#1\}}{
+%    This sets a scale factor. 
+%    This factor applies a magnification factor to all 
+%    axodraw2 graphics objects.  When the setting that
+%    postscript-text-scales-like-graphics is set (as is true by
+%    default), it also applies to axodraw2's ``postscript-text''
+%    writing commands (\name{PText}, \name{BText}, etc), but not to
+%    its \TeX{}-text commands (\name{Text} etc).  The initial scale
+%    factor is unity.
+%}
+%%
+%\descr{SetTextScale\{\#1\}}{
+%    This factor applies a magnification factor to all 
+%    axodraw2 text objects, but \emph{only when} the setting that
+%    postscript-text-scales-like-graphics is turned off.
+%}
+%%
+%\descr{SetOffset(\#1,\#2)}{
+%  Sets an offset value 
+%  for all commands of 
+%  axodraw2. Its value is not affected by the scale variable.
+%}
+%%
+%\descr{SetScaledOffset(\#1,\#2)}{
+%  Sets an offset for 
+%  all commands of axodraw2. This 
+%  offset is affected by the scale factor.
+%}
+%%
+%\descr{SetColor\{\#1\}}{
+%    Sets the named color,
+%    for both axodraw2 objects and regular text.  See Sec.\
+%    \ref{sec:colors} for details on using color with axodraw2.
+%}
+%%
+%\descr{textRed}{
+%    Alternative command for setting named a color
+%    for both axodraw2 objects and regular text.  See Sec.\
+%    \ref{sec:colors} for details on using color with axodraw2.
+%    There is one such command for each axodraw2 named color.
+%}
+%%
+%\descr{SetPFont\{\#1\}\{\#2\}}{
+%    Sets the Postscript 
+%    font, and its size in units of points.  See Sec.\ \ref{sec:PSText}
+%    for the commands that use this font, for a table of the names of
+%    the fonts.  An empty first argument, instead of a font name,  (as in
+%    \name{SetPFont\{\}\{20\}} indicates that the normal document font is
+%    to be used at the indicated size.  An empty second argument,
+%    instead of the font size, (as in \name{SetPFont\{Helvetica\}\{\}} or
+%    \name{SetPFont\{\}\{\}}) indicates that the font size is to be
+%    \LaTeX's document font size at the time the text-making command is
+%    executed. 
+%}
+%%
+%\descr{SetArrowScale\{\#1\}}{
+%   A scale parameter for the 
+%   entire head of an arrow.
+%}
+%%
+%\descr{SetArrowInset\{\#1\}}{
+%   See Sec.\ \ref{sec:arrows}.
+%}
+%%
+%\descr{SetArrowAspect\{\#1\}}{
+%   See Sec.\ \ref{sec:arrows}.
+%}
+%%
+%\descr{SetArrowPosition\{\#1\}}{
+%  Determines where the 
+%arrowhead is on a line. The position is the fraction of the length of the 
+%line. 
+%}
+%%
+%\descr{SetArrowStroke\{\#1\}}{
+%    This parameter determines the linewidth of the arrowhead if it is just 
+%    outlined. Its initial value is zero (filled arrowhead).
+%}
+%%
+%\descr{canvasScaleOnept}{
+%      Sets canvas scale to $\unit[1]{pt}$. 
+%}
+%%
+%\descr{canvasScaleObjectScale}{
+%      Sets canvas scale to equal the value set by \name{SetScale} in
+%      units of points.  This is the initial default of axodraw2,
+%      unless overridden. 
+%}
+%%
+%\descr{canvasScaleUnitLength}{
+%      The canvas scale is the same as \LaTeX's length parameter
+%      \name{unitlength}. 
+%}
+%%
+%\descrL{PSTextScalesLikeGraphicsfalse}{
+%      Text drawn by all of Axodraws's text commands scales with the
+%      factor set by \name{SetTextScale}.
+%      See Sec.\ \ref{sec:text}. 
+%}
+%%
+%\descrL{PSTextScalesLikeGraphicstrue}{
+%      (Default setting.)  Text drawn by Axodraw's postscript-text
+%      commands scales with the same factor as graphics objects, as set
+%      by \name{SetScale}.   Text drawn by Axodraw's \TeX{}-text
+%      commands is unscaled.
+%      See Sec.\ \ref{sec:text}.  
+%}
+%\end{longtable}
+%\end{center}
+\begin{center}
+\def\arraystretch{1.4}
+%
+% See preamble for definition of \name
+\def\descr#1#2{%
+  % #1 = command-syntax, #2 = description
+  \name{#1} & #2\\
+  \hline
+}
+\def\descrL#1#2{%
+  % #1 = command-syntax, #2 = description
+  % Set #1 on separate line
+  \multicolumn{2}{|l|}{\name{#1}}   \\
+                & #2\\
+  \hline
+}
+\def\category#1{%
+  % #1 = name of category
+  \multicolumn{2}{l}{#1:}
+  \\
+  \hline
+}
+\catcode`\#=13
+\def#{\#}
+%
+\begin{longtable}{|p{5cm}|p{10.2cm}|}
+\hline
+\endfirsthead
+   Command & Commentary 
+\\
+\hline
+%====================
+\category{Lines}
+%
+\descr{SetDashSize\{\#1\}}{
+  This sets the default size for the size of the dashes of dashed
+  lines. Its initial value is 3.
+}
+%
+\descr{SetLineSep\{\#1\}}{
+  This sets the default separation of double lines. Its initial value
+  is 2.
+}
+%
+\descr{SetWidth\{\#1\}}{
+  This sets the default width of lines.  Its initial value is 0.5.
+}
+%====================
+\category{Arrows}
+%
+\descr{SetArrowAspect\{\#1\}}{
+   See Sec.\ \ref{sec:arrows}.
+}
+%
+\descr{SetArrowInset\{\#1\}}{
+   See Sec.\ \ref{sec:arrows}.
+}
+%
+\descr{SetArrowPosition\{\#1\}}{
+  Determines where the 
+arrowhead is on a line. The position is the fraction of the length of the 
+line. 
+}
+%
+\descr{SetArrowScale\{\#1\}}{
+   A scale parameter for the 
+   entire head of an arrow.
+}
+%
+\descr{SetArrowStroke\{\#1\}}{
+    This parameter determines the linewidth of the arrowhead if it is just 
+    outlined. Its initial value is zero (filled arrowhead).
+}
+%====================
+\category{Scaling}
+%
+\descr{canvasScaleOnept}{
+      Sets canvas scale to $\unit[1]{pt}$. 
+}
+%
+\descr{canvasScaleObjectScale}{
+      Sets canvas scale to equal the value set by \name{SetScale} in
+      units of points.  This is the initial default of axodraw2,
+      unless overridden. 
+}
+%
+\descr{canvasScaleUnitLength}{
+      The canvas scale is the same as \LaTeX's length parameter
+      \name{unitlength}. 
+}
+%
+\descr{SetScale\{\#1\}}{
+    This sets a scale factor. 
+    This factor applies a magnification factor to all 
+    axodraw2 graphics objects.  When the setting that
+    postscript-text-scales-like-graphics is set (as is true by
+    default), it also applies to axodraw2's ``postscript-text''
+    writing commands (\name{PText}, \name{BText}, etc), but not to
+    its \TeX{}-text commands (\name{Text} etc).  The initial scale
+    factor is unity.
+}
+%
+\descr{SetTextScale\{\#1\}}{
+    This factor applies a magnification factor to all 
+    axodraw2 text objects, but \emph{only when} the setting that
+    postscript-text-scales-like-graphics is turned off.
+}
+%
+\descrL{PSTextScalesLikeGraphicsfalse}{
+      Text drawn by all of Axodraws's text commands scales with the
+      factor set by \name{SetTextScale}.
+      See Sec.\ \ref{sec:text}. 
+}
+%
+\descrL{PSTextScalesLikeGraphicstrue}{
+      (Default setting.)  Text drawn by Axodraw's postscript-text
+      commands scales with the same factor as graphics objects, as set
+      by \name{SetScale}.   Text drawn by Axodraw's \TeX{}-text
+      commands is unscaled.
+      See Sec.\ \ref{sec:text}.
+}
+%
+%====================
+\category{Offsets}
+%
+\descr{SetOffset(\#1,\#2)}{
+  Sets an offset value 
+  for all commands of 
+  axodraw2. Its value is not affected by the scale variable.
+}
+%
+\descr{SetScaledOffset(\#1,\#2)}{
+  Sets an offset for 
+  all commands of axodraw2. This 
+  offset is affected by the scale factor.
+}
+%
+%====================
+\category{Color}
+%
+\descr{SetColor\{\#1\}}{
+    Sets the named color,
+    for both axodraw2 objects and regular text.  See Sec.\
+    \ref{sec:colors} for details on using color with axodraw2.
+}
+%
+\descr{textRed}{
+    Alternative command for setting named a color
+    for both axodraw2 objects and regular text.  See Sec.\
+    \ref{sec:colors} for details on using color with axodraw2.
+    There is one such command for each axodraw2 named color.
+}
+%====================
+\category{Font}
+%
+\descr{SetPFont\{\#1\}\{\#2\}}{
+    Sets the Postscript 
+    font, and its size in units of points.  See Sec.\ \ref{sec:PSText}
+    for the commands that use this font, for a table of the names of
+    the fonts.  An empty first argument, instead of a font name,  (as in
+    \name{SetPFont\{\}\{20\}} indicates that the normal document font is
+    to be used at the indicated size.  An empty second argument,
+    instead of the font size, (as in \name{SetPFont\{Helvetica\}\{\}} or
+    \name{SetPFont\{\}\{\}}) indicates that the font size is to be
+    \LaTeX's document font size at the time the text-making command is
+    executed. 
+}
+%
+\end{longtable}
+\end{center}
+
+
+%>>#] Settings :
+%>>#[ Colors :
+
+\subsection{Colors}
+\label{sec:colors}
+
+\TeX{} and \LaTeX{} by themselves do not provide any means to set
+colors in a document.  Instead, one must use a suitable package to
+achieve the effect; the current standard one is \file{color.sty}.
+Such a package performs its work by passing graphics commands to the
+viewable output file.  Since axodraw also works in a similar fashion,
+there is a potentiality for conflicts.  
+
+Axodraw version 1, released in 1994, used the package
+\file{colordvi.sty} for applying color to normal textual material,
+and its own separate methods for applying color to its graphical
+objects.  They both defined the same convenient set of named colors
+that could be used, but they had to be set separately for text and
+graphics\footnote{The named colors corresponded to ones defined by the
+  \program{dvips} program.}. The \file{colordvi.sty} package also had
+an important disadvantage that its color settings did not respect
+\TeX{} grouping and \LaTeX{} environments, so that a color setting
+made for text in an environment continued to apply after the end of
+the environment.
+
+Since then, the available tools, notably in the powerful
+\file{color.sty}, have greatly improved.  But this has introduced
+both real and potential incompatibilities with the older methods.
+Note that \file{color.sty} is currently the most standard way for
+implementing color, and is a required part of \LaTeX{} distributions,
+as part of the graphics bundle.
+
+In the new version of axodraw, we have arranged to have compatibility
+with \file{color.sty}, while allowing as much backward compatibility
+as we could with the user interface from v.\ 1.  We fully rely on
+\file{color.sty} for setting color\footnote{Except for certain hard
+  wired settings in double lines and stroked arrows.}.  But to keep
+the best of the old methods, we have defined all the named colors that
+were defined in the old version, together with a few extra ones. We
+have also defined color-setting commands in the style of
+\file{colordvi.sty}, but they now apply uniformly to both text and
+axodraw graphical objects, and they respect \TeX{} and \LaTeX{}
+grouping and environments.
+
+This results in some changes in behavior in certain situations.  We
+think the new behavior is more natural from the user's point of view;
+but it is a change.  
+
+There are two classes of graphics-drawing command in axodraw.  One
+class has no explicit color argument, and uses the currently set
+color; the line-drawing commands are typical of these.  Other commands
+have explicit color arguments, and these arguments are named colors.
+The named colors are a union of those axodraw defines, with those
+defined by \file{color.sty} together with any further ones defined
+by the user.
+
+\subsubsection{How to use colors}
+
+Axodraw works with named colors --- see Sec.\ \ref{sec:defined.colors}
+--- which are a standard set of 68 originally defined by the \program{dvips}
+program and the \file{colordvi.sty}, plus 5 extra colors defined in
+axodraw2.  (In addition there are several named colors that are
+normally defined by default by \file{color.sty}, and that can also
+be used.)
+
+To use them we have several possibilities to specify colors.  Which to
+use is mostly a matter of user preference or convenience.
+\begin{itemize}
+
+\item The axodraw command \verb+\SetColor{colorname}+: sets the color
+  to be the named color for everything until the end of the current
+  environment (or \TeX{} group, as relevant.)  The initial default
+  color is Black, of course.  An example:
+  \begin{center}
+    \begin{minipage}{4cm}
+        \SetColor{Red}
+        Now red is used:\\
+        \begin{axopicture}(0,40)
+            \Line(0,10)(40,30)
+        \end{axopicture}
+    \end{minipage}
+    \begin{minipage}{7cm}
+    \label{SetColor}
+    \begin{verbatim}
+    \SetColor{Red}
+    Now red is used:\\
+    \begin{axopicture}(0,40)
+        \Line(0,10)(40,30)
+    \end{axopicture}
+    \end{verbatim}
+    \end{minipage}
+  \end{center}
+
+\item Completely equivalently, one can use the command
+  \verb+\color{colorname}+ defined by the standard \file{color.sty}
+  package, with any of its options, e.g., \verb+\color{Red}+ or
+  \verb+\color[rgb]{1,0,0}+.  In fact \verb+\SetColor+ is now a
+  synonym for \verb+\color+, retained for backward compatibility.
+
+\item The named colors defined by axodraw2 are listed in Sec.\
+  \ref{sec:defined.colors}.  Extra ones can be defined by axodraw2's
+  \verb+\newcolor+ command.
+
+\item For each of the named colors defined by axodraw2 (and others
+  defined by the use of the \verb+\newcolor+ command), there is a
+  macro whose name is ``text'' followed by the color name, e.g.,
+  \verb+\textMagenta+.  This behaves just like the corresponding call
+  to \verb+\SetColor+ or \verb+\color+.  Thus we have
+  \begin{center}
+    \begin{minipage}{4cm}
+        \textMagenta
+        Now magenta is used: \hfill \\
+        \begin{axopicture}(0,40)
+            \Line(0,10)(40,30)
+        \end{axopicture}
+    \end{minipage}
+    \begin{minipage}{7cm}
+    \label{textName}
+    \begin{verbatim}
+    \textMagenta
+    Now magenta is used:\\
+    \begin{axopicture}(0,40)
+        \Line(0,10)(40,30)
+    \end{axopicture}
+    \end{verbatim}
+    \end{minipage}
+  \end{center}
+  These macros correspond to macros defined by the venerable
+  \file{colordvi.sty} package, but now have what is normally an advantage
+  that their scope is delimited by the enclosing environment.  
+  \begin{center}
+    \begin{minipage}{5cm}
+        Normal text, then
+        \begin{center}
+          \Large \bf \color{Blue}
+          Large, bold blue\\
+          \begin{axopicture}(40,20)
+              \Gluon(0,10)(40,10){4}{4}
+          \end{axopicture}\\
+        \end{center}
+        And normal text afterward.
+    \end{minipage}
+    \begin{minipage}{7.7cm}
+    \label{scope}
+    \begin{verbatim}
+    Normal text, then
+    \begin{center}
+        \Large \bf \color{Blue}
+        Large, bold blue
+        \begin{axopicture}(40,20)
+          \Gluon(0,10)(40,10){4}{4}
+        \end{axopicture}\\
+    \end{center}
+    And normal text afterward.
+    \end{verbatim}
+    \end{minipage}
+  \end{center}
+
+\item A delimited section of text can be set in a color by using a
+  macro named by the color (e.g., $\verb+\Red+$):
+  \begin{center}
+    \begin{minipage}{6cm}
+        In the middle of black text,
+        \textcolor{Red}{red text and
+          \begin{axopicture}(30,10)
+          \Gluon(0,5)(30,5){3}{4}
+          \end{axopicture}\ 
+          gluon%
+        }.
+        Then continue \dots
+    \end{minipage}
+    \begin{minipage}{7.3cm}
+    \label{Red}
+    \begin{verbatim}
+    In the middle of black text,
+    \Red{red text and
+      \begin{axopicture}(30,10)
+          \Gluon(0,5)(30,5){3}{4}
+      \end{axopicture}\ 
+      gluon%
+    }.
+    Then continue \dots
+    \end{verbatim}
+    \end{minipage}
+  \end{center}
+  These macros correspond to macros defined by the \file{colordvi.sty}
+  package, but they now apply to axodraw objects as well.
+
+\item The same effect, for named colors, can be achieved by
+  \file{color.sty}'s \verb+\textcolor+ macro.  Thus
+  \verb+\textcolor{Red}{...}+ is equivalent to \verb+\Red{...}+.
+
+\end{itemize}
+
+It is also possible to define new named colors, in the CMYK
+system. This means that each color is defined by four numbers. New
+colors can be introduced with the \verb:\newcolor{#1}{#2}: command as
+in \verb:\newcolor{LightRed}{0 0.75 0.7 0}:. This use of this command
+defines a named color for use in axodraw, with corresponding macros
+\verb:\LightRed: and \verb:\textLightRed{#1}:, and also makes the name
+known to \file{color.sty}.  (Use of \file{color.sty}'s
+\verb:\definecolor: macro is not supported here: it will affect only
+normal \LaTeX{} text, but not axodraw objects, and it will fail to
+define the extra macros.)
+
+We define the CMYK values for the named colors in the
+\file{axodraw2.sty} file.  These override the definitions provided
+by \file{color.sty} (in its file dvipsnam.def), which are the same
+(at least currently).
+
+There can be differences in how colors render on different devices.
+In principle, there should be compensations made by the driver to
+compensate for individual device properties. Our experience is however
+that such compensations are not always implemented well enough. Most
+notorious are differences between the shades of green on the screen,
+on projectors, and on output from a printer.  These colors are usually
+much too light on a projector and one way to correct this is to
+redefine those colors when the output is prepared for a projector,
+e.g., by use of axodraw's \verb:\newcolor{#1}{#2}: macro.  An example
+is illustrated by
+\begin{center}
+  \color{green} 
+  \begin{axopicture}(100,20)
+  \Text(25,15){color.sty's green}
+  \Line[width=2](0,0)(50,0)
+  \end{axopicture}
+%
+  \color{Green} 
+  \begin{axopicture}(100,20)
+  \Text(25,15){axodraw's Green}
+  \Line[width=2](0,0)(50,0)
+  \end{axopicture}
+\end{center}
+coded by
+\begin{verbatim}
+  \color{green} 
+  \begin{axopicture}(100,20)
+  \Text(25,15){color.sty's green}
+  \Line[width=2](0,0)(50,0)
+  \end{axopicture}
+%
+  \color{Green} 
+  \begin{axopicture}(100,20)
+  \Text(25,15){axodraw's Green}
+  \Line[width=2](0,0)(50,0)
+  \end{axopicture}
+\end{verbatim}
+On a typical screen or projector, we find that the two greens are
+quite distinct, the ``green'' being much lighter than the
+``Green''\footnote{The ``green'' is defined in the RGB scheme from the
+  values $(0,1,0)$, while ``Green'' is defined in the CMYK scheme from
+  the values $(1,0,1,0)$.}.  But on the paper output from our
+printers, they give close results.
+
+
+
+\subsubsection{Defined named colors}
+\label{sec:defined.colors}
+
+The first set of predefined colors are those defined by dvips (and
+defined in \file{colordvi.sty}, or in \file{color.sty} with the
+use of both of its usenames and dvipsnames options).  They are
+\begin{quote}
+\sloppy
+\GreenYellow{GreenYellow},
+\Yellow{Yellow},
+\Goldenrod{Goldenrod},
+\Dandelion{Dandelion},
+\Apricot{Apricot},
+\Peach{Peach},
+\Melon{Melon},
+\YellowOrange{YellowOrange},
+\Orange{Orange},
+\BurntOrange{BurntOrange},
+\Bittersweet{Bittersweet},
+\RedOrange{RedOrange},
+\Mahogany{Mahogany},
+\Maroon{Maroon},
+\BrickRed{BrickRed},
+\Red{Red},
+\OrangeRed{OrangeRed},
+\RubineRed{RubineRed},
+\WildStrawberry{WildStrawberry},
+\Salmon{Salmon},
+\CarnationPink{CarnationPink},
+\Magenta{Magenta},
+\VioletRed{VioletRed},
+\Rhodamine{Rhodamine},
+\Mulberry{Mulberry},
+\RedViolet{RedViolet},
+\Fuchsia{Fuchsia},
+\Lavender{Lavender},
+\Thistle{Thistle},
+\Orchid{Orchid},
+\DarkOrchid{DarkOrchid},
+\Purple{Purple},
+\Plum{Plum},
+\Violet{Violet},
+\RoyalPurple{RoyalPurple},
+\BlueViolet{BlueViolet},
+\Periwinkle{Periwinkle},
+\CadetBlue{CadetBlue},
+\CornflowerBlue{CornflowerBlue},
+\MidnightBlue{MidnightBlue},
+\NavyBlue{NavyBlue},
+\RoyalBlue{RoyalBlue},
+\Blue{Blue},
+\Cerulean{Cerulean},
+\Cyan{Cyan},
+\ProcessBlue{ProcessBlue},
+\SkyBlue{SkyBlue},
+\Turquoise{Turquoise},
+\TealBlue{TealBlue},
+\Aquamarine{Aquamarine},
+\BlueGreen{BlueGreen},
+\Emerald{Emerald},
+\JungleGreen{JungleGreen},
+\SeaGreen{SeaGreen},
+\Green{Green},
+\ForestGreen{ForestGreen},
+\PineGreen{PineGreen},
+\LimeGreen{LimeGreen},
+\YellowGreen{YellowGreen},
+\SpringGreen{SpringGreen},
+\OliveGreen{OliveGreen},
+\RawSienna{RawSienna},
+\Sepia{Sepia},
+\Brown{Brown},
+\Tan{Tan},
+\Gray{Gray},
+\Black{Black},
+White.
+\end{quote}
+In addition \file{axodraw2.sty} defines the following extra colors:
+\begin{quote}
+\LightYellow{LightYellow},
+\LightRed{LightRed},
+\LightBlue{LightBlue}, 
+\LightGray{LightGray},
+\VeryLightBlue{VeryLightBlue}.
+\end{quote}
+
+Note that \file{color.sty} by default also defines a set of other
+named colors: black, white, red, green, blue, cyan, magenta, and
+yellow (with purely lower-case names).  Depending on properties of
+your screen, projector or printer, these may or may not agree with the
+similarly named axodraw colors (which have capitalized names).  These
+names can also be used in the \verb+\SetColor+ and \verb+\color+
+commands and for color names to those axodraw commands that take named
+colors for arguments.
+
+
+%\subsection{Background issues on color}
+%\label{sec:color.issues}
+
+
+
+
+%>>#] Colors :
+%>>#[ Some examples :
+
+\section{Some examples}
+\label{sec:examples}
+
+\subsection{A Feynman diagram}
+
+When computing the singlet part of structure functions in polarized Deep 
+Inelastic Scattering one approach is to use spin two currents to determine 
+all anomalous dimensions. At the three loop level this can give diagrams 
+like the following:
+\begin{center}
+\begin{axopicture}{(200,140)(0,0)}
+\SetArrowStroke{0.5}
+\SetArrowScale{0.8}
+\Photon(7,70)(37,70){4}{3}
+\Photon(7,70)(37,70){-4}{3}
+\GluonArc(70,70)(30,90,270){3}{10}
+\Line[arrow](100,100)(70,100)
+\Line[arrow](130,100)(100,100)
+\Line[arrow,arrowpos=0.25](70,100)(130,40)
+\Line[arrow](100,40)(70,40)
+\Line[arrow](130,40)(100,40)
+\Line[arrow,arrowpos=0.75](70,40)(130,100)
+\GluonArc(130,70)(30,270,450){3}{10}
+\Photon(163,70)(193,70){4}{3}
+\Photon(163,70)(193,70){-4}{3}
+\Gluon(100,100)(100,130){3}{4}
+\Gluon(100,40)(100,10){3}{4}
+\Vertex(37,70){2}
+\Vertex(163,70){2}
+\Vertex(70,100){2}
+\Vertex(70,40){2}
+\Vertex(130,100){2}
+\Vertex(130,40){2}
+\Vertex(100,100){2}
+\Vertex(100,40){2}
+\end{axopicture}
+\end{center}
+for which the code is:
+\begin{verbatim}
+  \begin{center} \begin{axopicture}{(200,140)(0,0)}
+  \SetArrowStroke{0.5} \SetArrowScale{0.8}
+  \Photon(7,70)(37,70){4}{3}
+  \Photon(7,70)(37,70){-4}{3}
+  \GluonArc(70,70)(30,90,270){3}{10}
+  \Line[arrow](100,100)(70,100) \Line[arrow](130,100)(100,100)
+  \Line[arrow,arrowpos=0.25](70,100)(130,40)
+  \Line[arrow](100,40)(70,40) \Line[arrow](130,40)(100,40)
+  \Line[arrow,arrowpos=0.75](70,40)(130,100)
+  \GluonArc(130,70)(30,270,450){3}{10}
+  \Photon(163,70)(193,70){4}{3}
+  \Photon(163,70)(193,70){-4}{3}
+  \Gluon(100,100)(100,130){3}{4}
+  \Gluon(100,40)(100,10){3}{4}
+  \Vertex(37,70){2} \Vertex(163,70){2} \Vertex(70,100){2}
+  \Vertex(70,40){2} \Vertex(130,100){2} \Vertex(130,40){2}
+  \Vertex(100,100){2} \Vertex(100,40){2}
+  \end{axopicture} \end{center}
+\end{verbatim}
+The diagrams can become a bit more complicated when more lines meet in a 
+single vertex. One could compose some lines from straight lines and arcs, 
+but in this case we selected some B\'ezier curves. The result is
+\begin{center}
+\begin{axopicture}{(200,140)(0,0)}
+\SetArrowStroke{0.5}
+\SetArrowScale{0.8}
+\Photon(7,70)(40,70){4}{3}
+\Photon(7,70)(40,70){-4}{3}
+\GluonArc(70,70)(30,180,270){3}{5}
+\Bezier[arrow](100,100)(55,100)(40,95)(40,70)
+\Line[arrow](130,100)(100,100)
+\Bezier[arrow,arrowpos=0.37](40,70)(110,70)(130,70)(130,40)
+\Line[arrow](100,40)(70,40)
+\Line[arrow](130,40)(100,40)
+\Line[arrow,arrowpos=0.75](70,40)(130,100)
+\GluonArc(130,70)(30,270,450){3}{10}
+\Photon(163,70)(193,70){4}{3}
+\Photon(163,70)(193,70){-4}{3}
+\Gluon(100,100)(100,130){3}{4}
+\Gluon(100,40)(100,10){3}{4}
+\Vertex(40,70){2}
+\Vertex(163,70){2}
+\Vertex(70,40){2}
+\Vertex(130,100){2}
+\Vertex(130,40){2}
+\Vertex(100,100){2}
+\Vertex(100,40){2}
+\end{axopicture}
+\end{center}
+for which the code is:
+\begin{verbatim}
+  \begin{center}
+  \begin{axopicture}{(200,140)(0,0)}
+  \SetArrowStroke{0.5} \SetArrowScale{0.8}
+  \Photon(7,70)(40,70){4}{3}
+  \Photon(7,70)(40,70){-4}{3}
+  \GluonArc(70,70)(30,180,270){3}{5}
+  \Bezier[arrow](100,100)(55,100)(40,95)(40,70)
+  \Line[arrow](130,100)(100,100)
+  \Bezier[arrow,arrowpos=0.37](40,70)(100,70)(130,70)(130,40)
+  \Line[arrow](100,40)(70,40) \Line[arrow](130,40)(100,40)
+  \Line[arrow,arrowpos=0.75](70,40)(130,100)
+  \GluonArc(130,70)(30,270,450){3}{10}
+  \Photon(163,70)(193,70){4}{3}
+  \Photon(163,70)(193,70){-4}{3}
+  \Gluon(100,100)(100,130){3}{4} \Gluon(100,40)(100,10){3}{4}
+  \Vertex(40,70){2} \Vertex(163,70){2} \Vertex(70,40){2}
+  \Vertex(130,100){2} \Vertex(130,40){2} \Vertex(100,100){2}
+  \Vertex(100,40){2}
+  \end{axopicture}
+  \end{center}
+\end{verbatim}
+
+%\subsection{A flowchart}
+
+%\subsection{A histogram}
+ 
+\subsection{A diagrammatic equation}
+
+This example is from ref~\cite{twopap}. The equations in that paper were 
+rather untransparent, because each Feynman diagram represents a complicated 
+two loop integral and to solve these integrals one needed many different 
+recursion relations in terms of the powers of the propagators. We defined a 
+number of macro's for the diagrams, each containing one picture. Here are 
+three of them:
+
+\begin{verbatim}
+  \def\TAA(#1,#2,#3,#4,#5,#6){
+    \raisebox{-19.1pt}{ \hspace{-12pt}
+      \begin{axopicture}{(50,39)(0,-4)}
+      \SetScale{0.5}\SetColor{Blue}%
+      \CArc(40,35)(25,90,270) \CArc(60,35)(25,270,90)
+      \Line(40,60)(60,60) \Line(40,10)(60,10) \Line(50,10)(50,60)
+      \Line(0,35)(15,35) \Line(85,35)(100,35)
+      \SetColor{Black}\SetPFont{Helvetica}{14}%
+      \PText(55,39)(0)[lb]{#5} \PText(55,36)(0)[lt]{#6}
+      \PText(35,62)(0)[rb]{#1} \PText(65,62)(0)[lb]{#2}
+      \PText(65,8)(0)[lt]{#3} \PText(35,8)(0)[rt]{#4}
+      \SetColor{Red} \SetWidth{3}
+      \Line(50,35)(50,60) \Line(40,60)(50,60)
+      \CArc(40,35)(25,90,180) \Vertex(50,60){1.3}
+      \end{axopicture}
+      \hspace{-12pt}
+    }
+  }
+\end{verbatim}
+\def\TAA(#1,#2,#3,#4,#5,#6){
+  \raisebox{-18.1pt}{ \hspace{-12pt}
+    \begin{axopicture}{(50,39)(0,-4)}
+    \SetScale{0.5}\SetColor{Blue}%
+    \CArc(40,35)(25,90,270) \CArc(60,35)(25,270,90)
+    \Line(40,60)(60,60) \Line(40,10)(60,10) \Line(50,10)(50,60)
+    \Line(0,35)(15,35) \Line(85,35)(100,35)
+    \SetColor{Black}\SetPFont{Helvetica}{14}%
+    \PText(55,39)(0)[lb]{#5} \PText(55,36)(0)[lt]{#6}
+    \PText(35,62)(0)[rb]{#1} \PText(65,62)(0)[lb]{#2}
+    \PText(65,8)(0)[lt]{#3} \PText(35,8)(0)[rt]{#4}
+    \SetColor{Red} \SetWidth{3}
+    \Line(50,35)(50,60) \Line(40,60)(50,60)
+    \CArc(40,35)(25,90,180) \Vertex(50,60){1.3}
+    \end{axopicture}
+    \hspace{-12pt}
+  }
+}
+\begin{verbatim}
+  \def\TABs(#1,#2,#3,#4,#5){
+    \raisebox{-18.1pt}{ \hspace{-12pt}
+      \begin{axopicture}{(50,39)(0,-4)}
+      \SetScale{0.5}\SetColor{Blue}%
+      \CArc(40,35)(25,90,270) \CArc(60,35)(25,270,90)
+      \Line(40,60)(60,60) \Line(40,10)(60,10) \Line(50,10)(50,60)
+      \Line(0,35)(15,35) \Line(85,35)(100,35)
+      \SetColor{Black}\SetPFont{Helvetica}{14}%
+      \PText(55,38)(0)[l]{#5}
+      \PText(35,62)(0)[rb]{#1} \PText(65,62)(0)[lb]{#2}
+      \PText(65,8)(0)[lt]{#3} \PText(35,8)(0)[rt]{#4}
+      \SetColor{Red} \SetWidth{3}
+      \Line(50,10)(50,60) \Vertex(50,60){1.3}
+      \Line(40,60)(50,60) \CArc(40,35)(25,90,180)
+      \end{axopicture}
+      \hspace{-12pt}
+    }
+  }
+\end{verbatim}
+\def\TABs(#1,#2,#3,#4,#5){
+  \raisebox{-18.1pt}{ \hspace{-12pt}
+    \begin{axopicture}{(50,39)(0,-4)}
+    \SetScale{0.5}\SetColor{Blue}%
+    \CArc(40,35)(25,90,270) \CArc(60,35)(25,270,90)
+    \Line(40,60)(60,60) \Line(40,10)(60,10) \Line(50,10)(50,60)
+    \Line(0,35)(15,35) \Line(85,35)(100,35)
+    \SetColor{Black}\SetPFont{Helvetica}{14}%
+    \PText(55,38)(0)[l]{#5}
+    \PText(35,62)(0)[rb]{#1} \PText(65,62)(0)[lb]{#2}
+    \PText(65,8)(0)[lt]{#3} \PText(35,8)(0)[rt]{#4}
+    \SetColor{Red} \SetWidth{3}
+    \Line(50,10)(50,60) \Vertex(50,60){1.3}
+    \Line(40,60)(50,60) \CArc(40,35)(25,90,180)
+    \end{axopicture}
+    \hspace{-12pt}
+  }
+}
+\begin{verbatim}
+  \def\TACs(#1,#2,#3,#4,#5){
+    \raisebox{-19.1pt}{ \hspace{-12pt}
+      \begin{axopicture}{(50,39)(0,-4)}
+      \SetScale{0.5}\SetColor{Blue}%
+      \CArc(40,35)(25,90,270) \CArc(60,35)(25,270,90)
+      \Line(40,60)(60,60) \Line(40,10)(60,10) \Line(50,10)(50,60)
+      \Line(0,35)(15,35) \Line(85,35)(100,35)
+      \SetColor{Black}\SetPFont{Helvetica}{14}%
+      \PText(53,38)(0)[l]{#5}
+      \PText(35,62)(0)[rb]{#1} \PText(65,62)(0)[lb]{#2}
+      \PText(65,8)(0)[lt]{#3} \PText(35,8)(0)[rt]{#4}
+      \SetColor{Red} \SetWidth{3}
+      \Line(40,60)(50,60) \CArc(40,35)(25,90,180)
+      \end{axopicture}
+      \hspace{-12pt}
+    }
+  }
+\end{verbatim}
+\def\TACs(#1,#2,#3,#4,#5){
+  \raisebox{-19.1pt}{ \hspace{-12pt}
+    \begin{axopicture}{(50,39)(0,-4)}
+    \SetScale{0.5}\SetColor{Blue}%
+    \CArc(40,35)(25,90,270) \CArc(60,35)(25,270,90)
+    \Line(40,60)(60,60) \Line(40,10)(60,10) \Line(50,10)(50,60)
+    \Line(0,35)(15,35) \Line(85,35)(100,35)
+    \SetColor{Black}\SetPFont{Helvetica}{14}%
+    \PText(53,38)(0)[l]{#5}
+    \PText(35,62)(0)[rb]{#1} \PText(65,62)(0)[lb]{#2}
+    \PText(65,8)(0)[lt]{#3} \PText(35,8)(0)[rt]{#4}
+    \SetColor{Red} \SetWidth{3}
+    \Line(40,60)(50,60) \CArc(40,35)(25,90,180)
+    \end{axopicture}
+    \hspace{-12pt}
+  }
+}
+and together with two extra little macro's
+\begin{verbatim}
+\def\plus{\!+\!}
+\def\minus{\!-\!}
+\end{verbatim}
+\def\plus{\!+\!}
+\def\minus{\!-\!}
+the equations became rather transparent and easy to program. This is the 
+code
+\begin{verbatim}
+   \begin{eqnarray}
+     \TAA({n,m},1,1,1,1,1) & = & \frac{1}{\tilde{N}\plus 5\plus n\minus
+     m\minus D}\ (\ n\ \ \TAA({n+1,m},0,1,1,1,1)
+       \ \ -n\ \ \TACs({n+1,m},1,1,1,1)  \\ & &
+       +\ \ \TAA({n,m},1,0,2,1,1)
+       \ \ -\ \ \TABs({n,m},1,1,2,1)
+       \ \ +m\ \ \TACs({n,m-1},1,1,1,1) 
+       \ \ -m\ \ \TABs({n,m-1},1,1,1,1)\ \ \ ) \, .\nonumber
+   \end{eqnarray}
+\end{verbatim}
+and the equation becomes
+\begin{eqnarray}
+     \TAA({n,m},1,1,1,1,1) & = & \frac{1}{\tilde{N}\plus 5\plus n\minus
+     m\minus D}\ (\ n\ \ \TAA({n+1,m},0,1,1,1,1)
+       \ \ -n\ \ \TACs({n+1,m},1,1,1,1)  \\ & &
+       +\ \ \TAA({n,m},1,0,2,1,1)
+       \ \ -\ \ \TABs({n,m},1,1,2,1)
+       \ \ +m\ \ \TACs({n,m-1},1,1,1,1) 
+       \ \ -m\ \ \TABs({n,m-1},1,1,1,1)\ \ \ ) \, .\nonumber
+\end{eqnarray}
+The diagrams are actually four-point diagrams. A momentum $P$ flows through 
+the diagram (the fat red line), but because the method of computation 
+involves an expansion in terms of this momentum the remaining diagrams are 
+like two-point functions. Details are in the paper.
+
+%>>#] Some examples :
+%>>#[ Acknowledgements :
+
+\section*{Acknowledgements}
+
+JAMV's work is part of the research program of the ``Stichting voor 
+Fundamenteel Onderzoek der Materie (FOM)'', which is financially supported 
+by the ``Nederlandse organisatie voor Wetenschappelijke Onderzoek (NWO)'' and 
+is also supported by the ERC Advanced Grant no.~320651, HEPGAME.
+JCC is supported in part by the U.S. Department of Energy under Grant
+No.\ DE-SC0008745.  
+
+We like to thank Lucas Theussl for discussions during the development of 
+axodraw2.
+
+%>>#] Acknowledgements :
+%--#[ Appendix :
+
+\appendix
+
+\section{The \program{axohelp} program: Information for developers}
+\label{sec:axohelp.devel}
+
+This appendix provides some details on how the \program{axohelp} program works.
+Most of the information is only relevant to people who wish to modify
+or extend axodraw2 and therefore may need to modify \program{axohelp} as well.
+
+The reason for \program{axohelp}'s existence is that axodraw needs to perform
+substantial geometric calculations.  When axodraw is used with
+pdflatex to produce pdf output directly, suitable calculational
+facilities are not available, neither within the PDF language nor
+within \LaTeX{} itself.  Therefore when axodraw is used under
+pdflatex, we use our program \program{axohelp} to perform the calculations.
+
+The mode of operation is as follows.  Let us assume that the
+\file{.tex} file being compiled by the \program{pdflatex} program is
+called \file{paper.tex}.  When one issues the command
+\begin{verbatim}
+  pdflatex paper
+\end{verbatim}
+the reaction of the system is of course to translate all \TeX{}
+related objects into a PDF file. Most (but not all) axodraw objects
+need non-trivial calculations and hence their specifications are
+placed inside a file called \file{paper.ax1}. At the end of the
+processing \program{pdflatex} will place a message on the screen that
+mentions that the user should run the command
+\begin{verbatim}
+  axohelp paper
+\end{verbatim}
+for the processing of this graphical information. In principle it is
+possible to arrange for \program{axohelp} to be invoked automatically from
+within pdflatex.  But for this to be done, the running of general
+external commands from pdflatex would have to be enabled.  That is a
+security risk, and is therefore normally disabled by default for
+pdflatex.
+
+When run, \program{axohelp} reads the file \file{paper.ax1}, processes the
+contents, and produces a file \file{paper.ax2}. For each axodraw
+object, it contains both the code to be placed in the pdf file, and a
+copy of the corresponding specification that was in \file{paper.ax1}.
+
+When pdflatex is run again, it sees that the file \file{paper.ax2} is
+present and reads it in to give essentially an array of objects, one
+for each processed axodraw object.  Then during the processing of the
+document, whenever axodraw runs into an axodraw object in need of
+external calculation, it determines whether an exactly corresponding
+specification was present in the file \file{paper.ax2}. If not, it
+means that the graphical information in the file \file{paper.tex} has
+changed since the last run of \program{axohelp} and the graphics information is
+invalidated. In that case, at the end of the program the message to
+run \program{axohelp} will be printed again. But if instead there is an exact
+match between an axodraw object in the current \file{paper.tex} and
+its specification in \file{paper.ax2}, then the corresponding pdf code
+will be placed in the PDF file. If all axodraw commands have a proper
+match in the \file{paper.ax2} file, there will be no message in the
+paper.log file and on the screen about rerunning \program{axohelp}; then the PDF
+file should contain the correct information for drawing the axodraw
+objects (at least if there are no \TeX{} errors).
+
+In a sense the situation with \program{axohelp} is no different from the use of
+makeindex when one prepares a document that contains an index. In that
+case one also has to run \LaTeX{} once to prepare a file for the
+makeindex program, then run this program which prepares another file
+and finally run \LaTeX{} again. Note that if you submit a paper to
+arXiv.org, it is likely that their automated system for processing the
+file will not run \program{axohelp}. So together with \file{paper.tex}, you one
+should also submit the \file{.ax2} file.
+
+The complete source of the \program{axohelp} program can be found in the file
+\file{axohelp.c}. This file contains a bit less than 4000 lines of C
+code but should translate without problems with any C compiler --- see
+Sec.\ \ref{sec:axohelp} for an appropriate command line on typical
+Unix-like systems.
+
+The \program{axohelp} program functions as follows:
+\begin{enumerate}
+\item The \file{.ax1} file is located, space is allocated for it and
+  the complete file is read and closed again.
+\item The input is analysed and split in individual object
+  specifications, of which a list is made.
+\item The list of object specifications is processed one by
+  one. Before the processing of each object specification, the system
+  is brought to a default state to avoid that there is a memory of the
+  previous object. 
+\item In the \file{.ax2} file, for each object is written both the
+  corresponding pdf code and a copy of the specification of the object
+  as was earlier read from the \file{.ax1} file.  Before the output
+  for an object is written to the \file{.ax2} file it is optimized a
+  bit to avoid superfluous spaces and linefeeds.
+\end{enumerate}
+
+Processing an object from the input involves finding the proper routine for 
+it and testing that the number of parameters is correct. Some objects have 
+a special input (like the Curve, DashCurve, Polygon and FilledPolygon 
+commands). All relevant information is stored in an array of double 
+precision numbers. Then some generic action is taken (like setting the 
+linewidth and the color) and the right routine is 
+called. The output is written to an array of fixed (rather large) length. 
+Finally the array is optimized and written to file.
+
+A user who would like to extend the system with new objects should
+take the above structure into account. There is an array that gives
+the correspondence between axodraw object names and the corresponding
+routine in \program{axohelp}.  For each object, this array also gives the number
+of parameters and whether the stroking or non-stroking color space
+should be used. 
+
+Naturally, when adding new kinds of object, it is necessary to add new
+items to the just-mentioned array, and to add a corresponding
+subroutine.  One should also try to do all the writing of PDF code by
+means of some routines like the ones sitting in the file in the
+section named ``PDF utilities''. This is important from the viewpoint
+of future action. When new graphical languages will be introduced and
+it will be needed to modify axodraw2 such that it can produce code for
+those languages, it should be much easier if code in the supporting
+\program{axohelp} program needs to be changed in as few places as possible.
+They form a set of graphics primitives used by other subroutines.
+Some of these subroutines in the ``PDF utilities'' section of
+\file{axohelp.c} have names similar to operators in the postscript
+language that perform the same function.
+
+%--#] Appendix :
+%>>#[ bibliography :
+
+\begin{thebibliography}{9}
+
+\bibitem{axodraw1} J.A.M. Vermaseren,
+  Comput.\ Phys.\ Commun.\ {\bf 83} (1994) 45--58
+
+\bibitem{jaxodraw1} D. Binosi and L. Theussl,
+  Comput.\ Phys.\ Commun.\ {\bf 161} (2004) 76--86.
+
+\bibitem{jaxodraw2}
+D. Binosi, J. Collins, C. Kaufhold, L. Theussl, 
+  Comput.\ Phys.\ Commun.\ {\bf 180} (2009) 1709--1715
+
+\bibitem{GPL} GNU General Public
+  License. \url{http://www.gnu.org/copyleft/gpl.html}. 
+  
+\bibitem{qcdbook}
+J.C. Collins, ``Foundations of Perturbative QCD'' (Cambridge
+  University Press, 2011).
+
+\bibitem{twopap} S. Moch and J.A.M. Vermaseren,
+  Nucl.\ Phys.\ {\bf B573} (2000) 853.
+  %%CITATION = NUPHA,B573,853;%%.
+
+\end{thebibliography}
+
+%>>#] bibliography :
+\end{document}
+


Property changes on: trunk/Build/source/utils/axodraw2/axodraw2-src/axodraw2-man.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Build/source/utils/axodraw2/axodraw2-src/axodraw2.sty
===================================================================
--- trunk/Build/source/utils/axodraw2/axodraw2-src/axodraw2.sty	                        (rev 0)
+++ trunk/Build/source/utils/axodraw2/axodraw2-src/axodraw2.sty	2018-02-10 23:30:32 UTC (rev 46590)
@@ -0,0 +1,4728 @@
+%  This is axodraw2.sty
+%
+% (C) 1994-2016 by authors:
+%         John Collins (jcc8 at psu dot edu)
+%         Jos Vermaseren (t68 at nikhef dot nl) 
+%
+%
+%  Conditions of use:
+%
+%    axodraw is free software: you can redistribute it and/or modify it under 
+%    the terms of the GNU General Public License as published by the Free 
+%    Software Foundation, either version 3 of the License, or (at your option) 
+%    any later version.
+%
+%    axodraw is distributed in the hope that it will be useful, but WITHOUT ANY
+%    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+%    FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+%    details.
+%
+%    For the GNU General Public License see <http://www.gnu.org/licenses/>.
+%
+%  Code necessities:
+%
+%  1.  \ignorespaces at end of commands that draw things.  Often it won't
+%      matter, but occasionally a command in a picture environment
+%      will set material and a following uncommented end-of-line in
+%      the user's code will shift the insertion point.
+%  2.  Use end-of-line comments whereever TeX might use the end-of-line as
+%      a space to be typeset.
+%
+%  Conventions
+%
+%  1.  Any font and color changes that are supposed to be local should
+%      be made local, either by explicit TeX grouping or by being
+%      inside commands (e.g., box-making commands) that enforce groups.
+%      Braces work, but \begingroup and \endgroup are easier to see in
+%      multiline groups. 
+%  2.  Scaling:
+%           \unitlength is the unit for the canvas (as in picture environment).
+%           \axoscale is for the unit for coordinates, widths, etc
+%           \axotextscale is for all text objects, BUT only when
+%                PSText is NOT set to scale as graphics objects
+%           When PSText is set to scale as graphics objects, PSText
+%                scales by \axoscale, but TeX-text has unit scaling.
+%      Given a specification of a position (x,y) as in a call to \Line,
+%      the position of the point relative to the origin is
+%           x_act = (x + \axoxo ) \axoscale pt + \axoxoffset \unitlength
+%           y_act = (y + \axoyo ) \axoscale pt + \axoyoffset \unitlength
+%      Widths and the like for lines are in units of \axoscale pt
+%
+%		#[ About folds : (this line starts with one % and two tabs)
+%
+%   The internals of the file have been organized in folds.
+%   These are defined as a range of lines if which the first and last
+%   lines have a special format. Each starts with any three characters
+%   (may include tabs), then #[ for the start line and #] for the closing
+%   line, then both lines need identical name fields, closed by a colon.
+%   After the colon can be anything. When a fold is closed one should see
+%   only the first line but with the #[ replaced by ## as in
+%		## About folds : (this line starts with one % and two tabs)
+%   Folds can be nested.
+%   This fold concept comes originally from the occam compiler for the
+%   transputer in the second half of the 1980's although there it was
+%   implemented differently. It was taken over by the STedi editor in its
+%   current form. The sources of this editor are available from the form
+%   home site: http://www.nikhef.nl/~form
+%   Some people have managed to emulate these folds in editors like emacs
+%   and vim.
+%
+%		#] About folds : 
+%
+\ProvidesPackage{axodraw2}[2016/06/02 v2.1.0b]
+%
+%   axodraw.sty file, both for .tex -> .dvi -> .ps and for .tex -> .pdf
+%
+% 	#[ Common LaTeX code :
+%		#[ Variables :
+%
+%
+\RequirePackage{keyval}
+\RequirePackage{ifthen}
+\RequirePackage{graphicx}
+\RequirePackage{color}
+\RequirePackage{ifxetex}
+%
+%
+\DeclareOption{v1compatible}{
+    \def\B2Text{\BTwoText}
+    \def\G2Text{\GTwoText}
+    \def\C2Text{\CTwoText}
+}
+\DeclareOption{canvasScaleIs1pt}{\canvasScaleOnept}
+\DeclareOption{canvasScaleIsObjectScale}{\canvasScaleObjectScale}
+\DeclareOption{canvasScaleIsUnitLength}{\canvasScaleUnitLength}
+\DeclareOption{PSTextScalesIndependently}{\PSTextScalesLikeGraphicsfalse}
+\DeclareOption{PSTextScalesLikeGraphics}{\PSTextScalesLikeGraphicstrue}
+
+% N.B. Option processing is deferred to end of this file, so that all
+% definitions and initializations have been done first.
+
+% Settings for pdf v. dvi/ps output:
+% We need to be able to run under latex, pdflatex, lualatex, and
+% xelatex, and use (if possible) \pdfoutput and \pdfliteral
+%
+% latex:    Initially \pdfoutput is 0, and \pdfliteral is defined but
+%           not usable. 
+% pdflatex: Initially \pdfoutput is 1, and \pdfliteral is defined and
+%           usable. 
+% lualatex: same as pdflatex in versions up to 0.80
+%           But in versions from 0.85, pdfouput and pdfliteral aren't
+%           defined; instead \outputmode, \pdfextension literal{...}
+%           are available instead.
+% xelatex:  Both \pdfoutput and \pdfliteral are undefined
+%           but special{pdf:literal ...} gives same effect as
+%           \pdfliteral would, and we can assume pdf mode always.
+% When \pdfoutput is defined, the user can change its value to change
+% the type of output.  This must be done before the first page is
+% created.  But various packages (including graphics and ifpdf, as
+% well as axodraw) take actions when the package is loaded that depend
+% on current state of \pdfoutput (or its equivalent).  So it is
+% reasonable to require that \pdfoutput be set only before packages
+% are loaded and not set later.
+%
+% We define \axo at pdfoutput and \axo at pdfliteral for our uses to have
+% function of \pdfoutput and \pdfliteral, but to be defined always.
+% We initialize them to a default suitable for dvi mode, and override
+% these definitions to cover the situations listed above.  This needs
+% tests for whether \pdfoutput, \outputmode, etc are undefined of
+% defined.  We put these inside a group, to evade the side effect that 
+% \@ifundefined defines the object being tested.
+%
+% Default values:
+\newcount\axo at pdfoutput
+\axo at pdfoutput=0
+\def\axo at pdfliteral#1%
+     {\PackageWarning{axo}{Bug: pdfliteral accessed but not available}}
+\bgroup
+    \@ifundefined{pdfoutput}%
+        {}%
+        {\global\axo at pdfoutput=\pdfoutput}%
+    %
+    \@ifundefined{pdfliteral}%
+        {}%
+        {% Define \axo at pdfliteral to call \pdfliteral, so that if the
+         % definition of \pdfliteral were to be overridden, we get to
+         % use the changed definition
+         \gdef\axo at pdfliteral#1{\pdfliteral{#1}}}%
+    \@ifundefined{outputmode}%
+                 {}%
+                 {\global\axo at pdfoutput=\outputmode}
+    \@ifundefined{pdfextension}%
+                 {}%
+                 {\gdef\axo at pdfliteral#1{\pdfextension literal{#1}}}
+\egroup
+\ifxetex
+    \axo at pdfoutput=1
+    \def\axo at pdfliteral#1{\special{pdf:literal #1}}
+\fi
+
+%
+%  For communicating with axohelp with global file
+%
+\newif\ifaxo at axohelpRerun
+\axo at axohelpRerunfalse
+%
+\newcounter{axo at objectIndex}
+\setcounter{axo at objectIndex}{0}
+\newwrite\axo at spec
+\newread\axo at axohelpFile
+%
+\newcommand\axo at setObject[3]{
+    \expandafter\gdef\csname axo at input@#1\endcsname{#2}
+    \expandafter\gdef\csname axo at output@#1\endcsname{#3}
+}
+%
+\ifcase\axo at pdfoutput
+\else
+    \IfFileExists{\jobname.ax2}%
+        {{% For comparisons between current definition of object
+        % and previously processed definition, spaces must be preserved.
+            \obeyspaces
+            \openin\axo at axohelpFile=\jobname.ax2
+        }}%
+        {%
+            \PackageWarning{axo}{File `\jobname.ax2' not found.}
+        \axo at axohelpReruntrue
+        }
+    \AtBeginDocument{\immediate\openout\axo at spec\jobname.ax1}
+    \AtEndDocument{\immediate\closeout\axo at spec
+                  \ifaxo at axohelpRerun
+                    \PackageWarning{axodraw2}{Run `axohelp \jobname'
+                      and then rerun pdflatex.}
+                  \fi
+                 }
+\fi
+
+%  Commands to set parameters
+%
+%  Arrow scale:
+\newcommand{\AXO at DefaultArrowScale}{1}
+\newcommand\SetArrowScale[1]{%
+    \renewcommand\AXO at DefaultArrowScale{#1}%
+}
+% Alternative name
+\newcommand\DefaultArrowScale[1]{\SetArrowScale{#1}}
+\SetArrowScale{1}
+
+% Arrow inset:
+\newcommand\AXO at ArrowInset{0.2}
+%\renewcommand\AXO at ArrowInset{-1 }
+\newcommand\SetArrowInset[1]{%
+    \renewcommand\AXO at ArrowInset{#1}%
+}
+
+% Arrow aspect:
+\newcommand\AXO at DefaultArrowAspect{1.25}
+\newcommand\SetArrowAspect[1]{%
+    \renewcommand\AXO at DefaultArrowAspect{#1}%
+}
+
+% Arrow position (fractional position along line):
+\newcommand\AXO at ArrowPos{0.5}
+\newcommand\SetArrowPosition[1]{%
+    \renewcommand\AXO at ArrowPos{#1}%
+}
+
+% Arrow stroke width
+\newcommand{\AXO at DefaultArrowStroke}{0 }
+\newcommand\SetArrowStroke[1]{%
+    \renewcommand\AXO at DefaultArrowStroke{#1}%
+}
+
+\newlength{\axounitlength}
+% The next two are scratch registers
+\newlength\axo at x
+\newlength\axo at y
+% Initializations
+\axounitlength=\unitlength
+\def\axocanvas{1}     % How unitlength is set in axopicture environment
+                      % 0 => 1 pt
+                      % 1 => \axoscale pt
+                      % 2 => Don't set it
+\def\axominusone{-1}
+\def\axoone{1}
+\def\axozero{0}
+\def\axowidth{0.5}
+\def\axoscale{1.0}
+\def\axotextscale{1.0}
+\newif\ifPSTextScalesLikeGraphics
+\PSTextScalesLikeGraphicstrue
+\def\axoxoff{0}
+\def\axoyoff{0}
+\def\axoxo{0}
+\def\axoyo{0}
+\def\axoarrowsize{2}
+%
+%
+%       Now the user callable routines, and their immediate helpers
+%
+% Commands for setting parameters applicable to subsequent graphical objects:
+%
+\def\SetLineSep#1{\def\AXO at Sep{#1}\ignorespaces}\relax
+\let\SetSep=\SetLineSep\relax
+\def\SetDashSize#1{\def\AXO at DashSize{#1}\ignorespaces}\relax
+\def\SetWidth#1{\def\axowidth{#1}\ignorespaces}
+\def\SetArrowSize#1{\def\axoarrowsize{#1}}
+
+\def\SetObjectScale#1{\def\axoscale{#1}\ignorespaces}
+\def\SetCanvasScale#1{\unitlength = #1 pt\ignorespaces}
+\def\SetTextScale#1{\def\axotextscale{#1}\ignorespaces}
+\let\SetScale = \SetObjectScale
+
+\def\SetOffset(#1,#2){\def\axoxoff{#1}\def\axoyoff{#2}\ignorespaces}
+\def\SetScaledOffset(#1,#2){\def\axoxo{#1}\def\axoyo{#2}\ignorespaces}
+
+\def\canvasScaleOnept{\def\axocanvas{0}}
+\def\canvasScaleObjectScale{\def\axocanvas{1}}
+\def\canvasScaleUnitLength{\def\axocanvas{2}}
+
+%
+%
+%		#] Variables : 
+%		#[ Defining commands with optional arguments : 
+%
+\def\defWithOption#1#2#3{%
+    \@namedef{#1}%
+        {%
+            \@ifnextchar[%]
+                {\@nameuse{#1 at A}}%
+                {\@nameuse{#1 at A}[]}%
+        }%
+    \@namedef{#1 at A}[##1]#2%
+         {#3}%
+}
+%
+%		#] Defining commands with optional arguments : 
+%		#[ axopicture :
+%
+%   Version of picture environment with unitlength set to 1pt
+%   as assumed by axodraw. We also store some variables and reset them
+%   afterwards. This makes the picture environment also local from the
+%   axodraw viewpoint. To change the global settings one should issue
+%   the corresponding command from outside the axopicture environment.
+%   Use: \begin{axopicture}(width,height)(xshift,yshift)
+%        \end{axopicture}
+%   The old use with the regular picture environment will still work,
+%   but it will have the old shortcomings connected to it.
+%   
+\let\OLDpicture=\picture
+\let\endOLDpicture=\endpicture
+\newenvironment{axopicture}
+{%
+    \ifcase \axocanvas  
+        \setlength{\unitlength}{1 pt}%
+    \or
+        \setlength{\unitlength}{\axoscale\space pt}%
+    \else
+        % Leave \unitlength as whatever the user set
+    \fi
+    \begin{OLDpicture}%
+}
+{%
+    \end{OLDpicture}%
+    \ignorespacesafterend
+}
+%
+%		#] axopicture : 
+%		#[ AXO at keys :
+%
+
+% Diagnostics for unimplemented features:
+\newif\ifAXONotImplemented
+\AXONotImplementedfalse
+\def\AXO at NOTIMPLEMENTED#1{%
+    \global\AXONotImplementedtrue
+    \PackageWarning{axodraw2}{#1}%
+}
+\AtEndDocument{%
+    \ifAXONotImplemented
+        \PackageWarningNoLine{axodraw2}{unimplemented features used
+          somewhere in document}%
+    \fi
+}
+
+% The next is used temporarily, it gives the result of parsing an
+% arrow-using command to give the Postscript code for setting the
+% arrow.
+%
+%  Keys for optional arguments:
+%  First the variables used, with some defaults.
+\newif\ifAXO at arrow
+\AXO at arrowfalse
+\newif\ifAXO at clock
+\AXO at clockfalse
+\newif\ifAXO at dash
+\AXO at dashfalse
+\newif\ifAXO at double
+\AXO at doublefalse
+\newif\ifAXO at flip       % Flip arrow orientation, as in JaxoDraw
+\AXO at flipfalse
+\newif\ifAXO at linecolor  % Option sets color for current line
+\AXO at linecolorfalse
+
+\def\AXO at Sep{2}        % Double line separation
+\def\AXO at DashSize{3}
+
+%  Then the definitions of the keys
+\define at key{axo}{arrowscale}{%
+    \def\AXO at CurrentArrowScale{#1}%
+}
+\define at key{axo}{arrowwidth}{%
+    \def\AXO at CurrentArrowWidth{#1}%
+}
+\define at key{axo}{arrowlength}{%
+    \def\AXO at CurrentArrowLength{#1}%
+}
+% Make arrowheight a synonym for arrowlength
+\let\KV at axo@arrowheight=\KV at axo@arrowlength
+%
+\define at key{axo}{arrowpos}{%
+    \def\AXO at CurrentArrowPos{#1 }
+}
+%
+\define at key{axo}{arrowaspect}{%
+    \def\AXO at CurrentArrowAspect{#1 }
+}
+%
+\define at key{axo}{arrowinset}{%
+    \def\AXO at CurrentArrowInset{#1 }
+}
+% Make inset a synonym for arrowinset
+\let\KV at axo@inset=\KV at axo@arrowinset
+%
+\define at key{axo}{arrowstroke}{%
+    \def\AXO at CurrentArrowStroke{#1 }
+}
+%
+\define at key{axo}{arrow}[true]{%
+    \AXO at boolkey{#1}{arrow}%
+}
+\define at key{axo}{clock}[true]{%
+    \AXO at boolkey{#1}{clock}%
+}
+\define at key{axo}{clockwise}[true]{%
+    \AXO at boolkey{#1}{clock}%
+}
+\define at key{axo}{color}{%
+    \def\AXO at CurrentColor{#1}%
+        \AXO at linecolortrue
+}
+% Make colour a synonym for color
+\let\KV at axo@colour=\KV at axo@color
+%
+\define at key{axo}{dash}[true]{%
+    \AXO at boolkey{#1}{dash}%
+}
+\define at key{axo}{dashsize}{%
+    \def\AXO at CurrentDashSize{#1 }
+}
+\define at key{axo}{dsize}{%
+    \def\AXO at CurrentDashSize{#1 }
+}
+\define at key{axo}{double}[true]{%
+    \AXO at boolkey{#1}{double}%
+}
+\define at key{axo}{flip}[true]{%
+    \AXO at boolkey{#1}{flip}%
+}
+\define at key{axo}{linesep}{%
+    \def\AXO at CurrentSep{#1}
+}
+\define at key{axo}{sep}{%
+    \def\AXO at CurrentSep{#1}
+}
+\define at key{axo}{width}{%
+    \def\AXO at CurrentWidth{#1}%
+}
+%
+%		#] AXO at keys : 
+%		#[ AXO at Parse :
+%
+%  Parsing of optional arguments, etc
+%
+\def\AXO at Parse#1#2{%
+    % Usage: \AXO at Parse#1#2 or \AXO at Parse#1#2[#3]
+    % #1 is a command for setting an object, that takes no optional argument
+    % #2 and the optional #3 are keyword settings.
+    % There then follow the compulsory arguments for the command in #1.
+    %
+    % E.g., \AXO at Parse{\AXO at Line}{double}(x1,y1)(x2,y2)
+    %      \AXO at Parse{\AXO at Line}{double}[arrow](x1,y1)(x2,y2)
+    %
+    % I will 
+    %   (a) Set standard initial settings (arrows, etc)
+    %   (b) Parse the keyword settings in #2 and #3, e.g., scale = 3,
+    %   (c) Call #1 to make the object
+    \AXO at arrowfalse
+    \AXO at clockfalse
+    \AXO at dashfalse
+    \AXO at doublefalse
+    \AXO at flipfalse
+    \AXO at linecolorfalse
+    \let\AXO at CurrentWidth\axowidth
+    \let\AXO at CurrentArrowPos\AXO at ArrowPos
+    \let\AXO at CurrentArrowWidth\relax
+    \let\AXO at CurrentArrowLength\relax
+    \let\AXO at CurrentArrowInset\AXO at ArrowInset
+    \let\AXO at CurrentArrowScale\AXO at DefaultArrowScale
+    \let\AXO at CurrentArrowStroke\AXO at DefaultArrowStroke
+    \let\AXO at CurrentArrowAspect\AXO at DefaultArrowAspect
+    \let\AXO at CurrentDashSize\AXO at DashSize
+    \let\AXO at CurrentSep=\AXO at Sep
+    \@ifnextchar[{\AXO at Options{#1}{#2}}%
+                 {\AXO at Options{#1}{#2}[]}%
+}
+%
+%		#] AXO at Parse : 
+%		#[ AXO at Options :
+%  
+\def\AXO at Options#1#2[#3]{%
+    % #1 is command to execute, #2 and #3 are options.
+    \setkeys{axo}{#2}%
+    \setkeys{axo}{#3}%
+    \ifx\AXO at CurrentArrowLength\relax
+        \def\AXO at CurrentArrowLength{0 }%
+    \fi
+    \ifx\AXO at CurrentArrowWidth\relax
+        \def\AXO at CurrentArrowWidth{0 }%
+    \fi
+    \ifAXO at arrow
+        \def\AXO at ArrowArg{
+            \AXO at CurrentArrowStroke \space %
+            \AXO at CurrentArrowWidth \space %
+            \AXO at CurrentArrowLength \space %
+            \AXO at CurrentArrowInset \space %
+            \AXO at CurrentArrowScale \space %
+            \AXO at CurrentArrowAspect \space %
+            \AXO at CurrentArrowPos \space %
+            \ifcase\axo at pdfoutput
+             true \space % Indicates that an arrow should be drawn.
+            \else
+             1 \space % Indicates that an arrow should be drawn.
+            \fi
+        }%
+    \else
+        \ifcase\axo at pdfoutput
+            \def\AXO at ArrowArg{ 0 0 0 0 0 0 0 false }%
+        \else
+            \def\AXO at ArrowArg{ 0 0 0 0 0 0 0 0 }%
+        \fi
+    \fi
+    #1%
+}
+%
+\def\AXO at useopts{%
+  % Override global settings by those from options
+  % HACK: The \@killglue solves problem that setting color
+  % causes a shift in horizontal position.
+  % Motivation: From definition of \put.
+  \@killglue
+  \ifAXO at linecolor \SetColor{\AXO at CurrentColor}\fi
+}
+%
+% Now ensure there is a setting for the current arrow
+\AXO at Parse{}{}
+%
+%		#] AXO at Options : 
+%		#[ AXO at varia :
+%
+% Now ensure there is a setting for the current arrow
+\AXO at Parse{}{}
+
+\def\AXO at PrependOption#1#2{%
+    % Run command #1, which has an optional argument, with #2 prepended
+    % to the command's optional arguments.  If there are no optional
+    % arguments, just run the command with #2 as the optional arguments
+    \@ifnextchar[{\AXO at TwoOption{#1}{#2}}%
+                 {#1[#2]}%
+}
+\def\AXO at TwoOption#1#2[#3]{%
+    #1[#2,#3]%
+}
+%
+% Copied from graphicx.sty, for use with boolean keys
+% Modified to do lower casing here
+\def\AXO at boolkey#1#2{%
+    \lowercase{\AXO at boolkeyA{#1}}{#2}%
+}
+\def\AXO at boolkeyA#1#2{%
+    \csname AXO@#2\ifx\relax#1\relax true\else#1\fi\endcsname
+}
+%
+%		#] AXO at varia : 
+%		#[ Colors :
+%
+%       Here we make an interface, compatible with both: color.sty,
+%       with the commands of axodraw v. 1, and with the commands of
+%       colordvi.sty (used by axodraw v. 1).
+%
+%       1. We make a set of named colors suitable for use with both
+%          axodraw's commands that take color arguments and with
+%          color.sty's \color command.
+%       2. We define a command \SetColor to set a named color as the
+%          current color.  It is now identical to \color.
+%       3. For each of the colors that we define here, we make 
+%          named color setting commands, e.g., \Red
+%          \textRed.  \Red sets its (one) argument in Red, \textRed
+%          is a "declaration" that changes the current color.
+%       All the commands for setting color apply to both regular LaTeX
+%       material and to axodraw objects. Their setting of color
+%       respects LaTeX environments and TeX groups. 
+%
+%       We also define
+%          a. Named-color commands like \textRed and \Red for named
+%             colors to give the same interface as the colordvi
+%             package (and hence axodraw v. 1).
+%          b. \SetColor command to set a named color. 
+
+
+\let\SetColor=\color
+
+% For v. 1 compatibility:
+\def\IfColor#1#2{#1}
+
+\newcommand\newcolor[2]{%
+    % Define a named color both in the color.sty style
+    % and in the colordvi.sty, with also a command giving the CMYK value.
+    % #1 is the color's name, #2 is its CMYK definition, space
+    % separated. 
+    % 
+    % Invoke color.sty's \definecolor after change of argument format:
+    \axo at new@color #1 #2\@%
+    % Define commands to use this color,
+    % E.g., if #1 is Red, then define \Red and \textRed:
+    \expandafter\def\csname #1\endcsname##1{{\SetColor{#1}##1}\ignorespaces}
+    \expandafter\def\csname text#1\endcsname{\SetColor{#1}\ignorespaces}
+    % The following to give the cmyk value of a color, e.g., \cmykRed,
+    % is no longer needed, since we no longer do color setting in
+    % postscript and pdf code:
+%%   \expandafter\def\csname cmyk#1\endcsname{#2}
+}
+
+% Command to invoke color.sty's \definecolor, which needs a translation
+% of our space-separated CMYK vector to a comma-separated vector:
+\def\axo at new@color #1 #2 #3 #4 #5\@{\definecolor{#1}{cmyk}{#2,#3,#4,#5}}
+
+
+%   For consistency we define our named colors here, rather than
+%   using color.sty's mechanisms.  The
+%   first 68 are standard colors, as defined by dvips, and
+%   implemented in both colordvi.ps, and in color.sty with its
+%   usenames and dvipsnames options (in the file dvipsnam.def
+%   provided by the LaTeX graphics package). 
+%
+%       We define an extra 5 colors at the end
+%
+% The 68 dvips-defined colors are:
+%
+\newcolor{GreenYellow}{0.15 0 0.69 0}
+\newcolor{Yellow}{0 0 1 0}
+\newcolor{Goldenrod}{0 0.10 0.84 0}
+\newcolor{Dandelion}{0 0.29 0.84 0}
+\newcolor{Apricot}{0 0.32 0.52 0}
+\newcolor{Peach}{0 0.50 0.70 0}
+\newcolor{Melon}{0 0.46 0.50 0}
+\newcolor{YellowOrange}{0 0.42 1 0}
+\newcolor{Orange}{0 0.61 0.87 0}
+\newcolor{BurntOrange}{0 0.51 1 0}
+\newcolor{Bittersweet}{0 0.75 1 0.24}
+\newcolor{RedOrange}{0 0.77 0.87 0}
+\newcolor{Mahogany}{0 0.85 0.87 0.35}
+\newcolor{Maroon}{0 0.87 0.68 0.32}
+\newcolor{BrickRed}{0 0.89 0.94 0.28}
+\newcolor{Red}{0 1 1 0}
+\newcolor{OrangeRed}{0 1 0.50 0}
+\newcolor{RubineRed}{0 1 0.13 0}
+\newcolor{WildStrawberry}{0 0.96 0.39 0}
+\newcolor{Salmon}{0 0.53 0.38 0}
+\newcolor{CarnationPink}{0 0.63 0 0}
+\newcolor{Magenta}{0 1 0 0}
+\newcolor{VioletRed}{0 0.81 0 0}
+\newcolor{Rhodamine}{0 0.82 0 0}
+\newcolor{Mulberry}{0.34 0.90 0 0.02}
+\newcolor{RedViolet}{0.07 0.90 0 0.34}
+\newcolor{Fuchsia}{0.47 0.91 0 0.08}
+\newcolor{Lavender}{0 0.48 0 0}
+\newcolor{Thistle}{0.12 0.59 0 0}
+\newcolor{Orchid}{0.32 0.64 0 0}
+\newcolor{DarkOrchid}{0.40 0.80 0.20 0}
+\newcolor{Purple}{0.45 0.86 0 0}
+\newcolor{Plum}{0.50 1 0 0}
+\newcolor{Violet}{0.79 0.88 0 0}
+\newcolor{RoyalPurple}{0.75 0.90 0 0}
+\newcolor{BlueViolet}{0.86 0.91 0 0.04}
+\newcolor{Periwinkle}{0.57 0.55 0 0}
+\newcolor{CadetBlue}{0.62 0.57 0.23 0}
+\newcolor{CornflowerBlue}{0.65 0.13 0 0}
+\newcolor{MidnightBlue}{0.98 0.13 0 0.43}
+\newcolor{NavyBlue}{0.94 0.54 0 0}
+\newcolor{RoyalBlue}{1 0.50 0 0}
+\newcolor{Blue}{1 1 0 0}
+\newcolor{Cerulean}{0.94 0.11 0 0}
+\newcolor{Cyan}{1 0 0 0}
+\newcolor{ProcessBlue}{0.96 0 0 0}
+\newcolor{SkyBlue}{0.62 0 0.12 0}
+\newcolor{Turquoise}{0.85 0 0.20 0}
+\newcolor{TealBlue}{0.86 0 0.34 0.02}
+\newcolor{Aquamarine}{0.82 0 0.30 0}
+\newcolor{BlueGreen}{0.85 0 0.33 0}
+\newcolor{Emerald}{1 0 0.50 0}
+\newcolor{JungleGreen}{0.99 0 0.52 0}
+\newcolor{SeaGreen}{0.69 0 0.50 0}
+\newcolor{Green}{1 0 1 0}
+\newcolor{ForestGreen}{0.91 0 0.88 0.12}
+\newcolor{PineGreen}{0.92 0 0.59 0.25}
+\newcolor{LimeGreen}{0.50 0 1 0}
+\newcolor{YellowGreen}{0.44 0 0.74 0}
+\newcolor{SpringGreen}{0.26 0 0.76 0}
+\newcolor{OliveGreen}{0.64 0 0.95 0.40}
+\newcolor{RawSienna}{0 0.72 1 0.45}
+\newcolor{Sepia}{0 0.83 1 0.70}
+\newcolor{Brown}{0 0.81 1 0.60}
+\newcolor{Tan}{0.14 0.42 0.56 0}
+\newcolor{Gray}{0 0 0 0.50}
+\newcolor{Black}{0 0 0 1}
+\newcolor{White}{0 0 0 0}
+%
+%   Our extra colors
+%
+\newcolor{LightYellow}{0 0 0.7 0}
+\newcolor{LightRed}{0 0.75 0.7 0}
+\newcolor{LightBlue}{0.7 0.5 0 0}
+\newcolor{LightGray}{0 0 0 0.1}
+\newcolor{VeryLightBlue}{0.15 0.07 0 0}
+%
+\SetColor{Black}
+%
+%		#] Colors : 
+% 	#] Common LaTeX code : 
+% 	#[ LaTeX primitives :
+%
+%    #[ Putting material
+%
+
+% Some utilities that remove extra space that creeps in, particularly
+% when extra groups are inserted before the use of \put.
+% Use the definition of \@killglue used in latex.ltx for \put,
+% but copy it here, since \@killglue is internal and not documented.
+\gdef\AXO at killglue{\unskip\@whiledim \lastskip >\z@\do{\unskip}}
+
+% Special purpose versions of \put and \special
+\long\gdef\putLen(#1,#2)#3{%
+  % Like LaTeX's \put, except that #1 and #2 are lengths instead of numbers
+  % giving lengths in units of \unitlength.
+  \AXO at killglue\raise#2\relax
+  \hbox to 0pt{\kern#1\relax #3\hss}%
+  \ignorespaces
+}
+%
+\def\AxoPut(#1,#2)#3{%
+  % Like \put, but shifted by axodraw's offsets.
+  % This provides a way of coding the offsets in one place.
+  % But we are only using it in a limited set of cases so far.
+  \AXO at killglue
+  \bgroup
+    \axounitlength = \axoscale pt
+    \axo at x = \axoxoff \unitlength
+    \advance\axo at x by \axoxo \axounitlength
+    \advance\axo at x by #1 \axounitlength
+    \axo at y = \axoyoff \unitlength
+    \advance\axo at y by \axoyo \axounitlength
+    \advance\axo at y by #2 \axounitlength
+    \putLen(\axo at x,\axo at y){%
+                           % If there are axodraw objects in #3, they should not also
+                           % apply shifts, that would be double
+                           % counting! Hence:
+                           \SetOffset(0,0)%
+                           \SetScaledOffset(0,0)%
+                           #3%
+                          }%
+  \egroup
+\ignorespaces
+}
+
+\def\AXOspecial#1{%
+  % Insertion of postscript code:
+  % Replacement for \special{" ...}, with the color initialized
+  % to the color befor the \special.  (Ordinary \special{"...}
+  % initializes color to black.)
+  % Definitions made by \special{!...} are in dictionary SDict
+  % (as stated in dvips documentation), and we save color there.
+  \special{ps:: SDict begin savecolor end }%
+  \special{" restorecolor #1 }%
+}
+
+\def\AXOputPS#1{%
+    % Insert postscript code after allowing for offsets.
+    \AxoPut(0,0){\AXOspecial{#1}}%
+}
+
+\def\AXOputPDF#1{
+    % Insert pdf code after allowing for offsets.
+    \AxoPut(0,0){\axo at pdfliteral{#1}}%
+}
+
+%
+%  Now variables and routines for setting material in boxes (used by
+%  the BText etc commands.
+%
+\newdimen\tmpX
+\newdimen\tmpY
+\newsavebox{\tmpBox}
+\newsavebox{\tmpBoxA}
+%
+\newcount\axo at tmp
+\newcount\axo at tmpA
+\newcount\axo at tmpB
+
+\newcount\bpinsp
+\bpinsp = 65782
+\newcount\ptinsp
+\ptinsp = 65536
+
+\def\AssignDecDiv#1#2#3{%
+    % Assign the variable of name #1 to the result of dividing integer
+    % #2 by integer #3, with result as a textual decimal.  Absolute
+    % accuracy: 0.001. 
+    % Typical use: conversion of lengths to points and big points.
+    %      \AssignDecDiv{cachedscale}{\unitlength}{65536}
+    %      \AssignDecDiv{cachedscale}{\unitlength}{\ptinsp}
+    % to get length in points.
+    % Notes on conversion
+    % 1 sp = 2^{-16} pt = (1/65536) pt
+    % 1 pt = (1/72.27) in
+    % 1 bp = (1/72) in
+    % 1 sp = (1/65781.76) bp
+    % Use \relax at end of lines setting count registers.
+    % This ensures that the code works both when the arguments are
+    % given as numbers, e.g., \AxoDecDiv{100}{3}, as well as when they are
+    % given as lengths, etc, e.g., \AxoDecDiv{\unitlength}{256}
+    % 
+    \axo at tmp = #2\relax
+    \axo at tmpA = \axo at tmp
+    \divide \axo at tmpA by #3\relax
+    \axo at tmpB=\axo at tmpA
+    \multiply \axo at tmpA by #3\relax
+    \advance \axo at tmp by -\axo at tmpA
+    \multiply \axo at tmp by 1000
+    \divide \axo at tmp by #3\relax
+    \expandafter\edef\csname #1\endcsname{\the\axo at tmpB.\the\axo at tmp}%
+}
+
+\def\SetTmpBox#1{%
+    % Sets the box \tmpBox to the contents of #1 set with current PS
+    % font and size. Sets \tmpX and \tmpY to the dimensions of the box
+    % plus some space around it, suitable for drawing an enclosing box.
+    %
+    % The vertical box setting numbers agree with those in axodraw's
+    % postscript code, but not (28 July 2014) with the axohelp pdf code.
+    % The reverse is true for the horizontal box settings.
+    % We can tweak them further.
+    % This is a standardized routine for use in all versions of postscript
+    % textbox routines.
+    % N.B. Use LaTeX's \sbox at first step, not TeX primitives to set
+    % box contents; it works properly with color.
+    \sbox{\tmpBox}{\UseCurrentPSFont #1}%
+    \tmpX = \axofontsize pt
+    \advance \tmpX by \wd\tmpBox
+    \tmpY = \axofontsize pt
+    \tmpY = 0.33333 \tmpY
+    \advance \tmpY by \ht\tmpBox
+    \advance \tmpY by \dp\tmpBox
+    \AssignDecDiv{tmpXT}{\tmpX}{\ptinsp}%
+    \AssignDecDiv{tmpYT}{\tmpY}{\ptinsp}%
+}
+
+\def\SetTmpBoxTwo#1#2{%
+    % Equivalent of \SetTmpBox for two line commands.
+    %
+    % N.B. Use LaTeX's \sbox at first step, not TeX primitives to set
+    % box contents; it works properly with color.
+    \sbox{\tmpBox}{\UseCurrentPSFont  #1}%
+    \sbox{\tmpBoxA}{\UseCurrentPSFont #2}%
+    \ifdim \wd\tmpBox > \wd\tmpBoxA 
+        \tmpX = \wd\tmpBox
+    \else
+        \tmpX = \wd\tmpBoxA
+    \fi 
+    \advance \tmpX by \axofontsize pt
+    \tmpY = \axofontsize pt
+    \setbox\tmpBox=%
+        \vbox{% 
+           \lineskip = 0.1 \tmpY
+           \baselineskip = 1.1 \tmpY
+           \vskip 0.3 \tmpY
+           \hbox{\makebox[0pt]{\box\tmpBox}}%
+           \hbox{\makebox[0pt]{\box\tmpBoxA}}%
+           \vskip 0.3 \tmpY
+        }%
+    \tmpY = \ht\tmpBox
+    \advance \tmpY by \dp\tmpBox
+    \AssignDecDiv{tmpXT}{\tmpX}{\ptinsp}%
+    \AssignDecDiv{tmpYT}{\tmpY}{\ptinsp}%
+}
+%
+%    #] Putting
+%	 #[ Point setting and using :
+%
+\def\SetPoint#1(#2,#3){%
+    % Define a named point in 2D
+    \@namedef{AXO at p.X@#1}{#2}%
+    \@namedef{AXO at p.Y@#1}{#3}%
+}
+\def\useX#1{%
+    % Use a named point
+    \@nameuse{AXO at p.X@#1}%
+}
+\def\useY#1{%
+    % Use a named point
+    \@nameuse{AXO at p.Y@#1}%
+}
+%
+%	 #] Point setting and using : 
+%	 #[ Particle routines :
+%		#[ Gluon :
+%
+\def\Gluon{%
+%
+%   Draws a gluon from (x1,y1) to (x2,y2) with amplitude and number of windings
+%
+    \AXO at Parse{\AXO at Gluon}{}%
+}
+%
+%		#] Gluon : 
+%		#[ DoubleGluon :
+%
+\defWithOption{DoubleGluon}{(#2,#3)(#4,#5)#6#7#8}{%
+%
+%   Draws a gluon from (x1,y1) to (x2,y2) with amplitude and number of windings
+%
+    \Gluon[double,sep=#8,#1](#2,#3)(#4,#5){#6}{#7}%
+}
+%
+%		#] DoubleGluon : 
+%		#[ DashGluon :
+%
+\defWithOption{DashGluon}{(#2,#3)(#4,#5)#6#7#8}{%
+%
+%   Draws a gluon from (x1,y1) to (x2,y2) with amplitude and number of windings
+%
+    \Gluon[dash,dashsize=#8,#1](#2,#3)(#4,#5){#6}{#7}%
+}
+%
+%		#] DashGluon : 
+%		#[ DashDoubleGluon :
+%
+\defWithOption{DashDoubleGluon}{(#2,#3)(#4,#5)#6#7#8#9}{%
+%
+%   Draws a gluon from (x1,y1) to (x2,y2) with amplitude and number of windings
+%
+    \Gluon[double,sep=#8,dash,dashsize=#9,#1](#2,#3)(#4,#5){#6}{#7}%
+}
+%
+%		#] DashDoubleGluon : 
+%		#[ GluonCirc :
+%
+%   Draws a gluon on a circle. The center of the circle is at (#1,#2)
+%   The radius and the phase angle are (#3,#4), #5 is the
+%   amplitude of the gluon, and #6 is the number of windings.
+%
+\def\GluonCirc{%
+%
+%   Draws a gluon from (x1,y1) to (x2,y2) with amplitude and number of windings
+%
+    \AXO at Parse{\AXO at GluonCirc}{}%
+}
+%
+%		#] GluonCirc : 
+%		#[ DoubleGluonCirc :
+%
+\defWithOption{DoubleGluonCirc}{(#2,#3)(#4,#5)#6#7#8}{%
+%
+%   Draws a gluon from (x1,y1) to (x2,y2) with amplitude and number of windings
+%
+    \GluonCirc[double,sep=#8,#1](#2,#3)(#4,#5){#6}{#7}%
+}
+%
+%		#] DoubleGluonCirc : 
+%		#[ DashGluonCirc :
+%
+\defWithOption{DashGluonCirc}{(#2,#3)(#4,#5)#6#7#8}{%
+%
+%   Draws a gluon from (x1,y1) to (x2,y2) with amplitude and number of windings
+%
+    \GluonCirc[dash,dashsize=#8,#1](#2,#3)(#4,#5){#6}{#7}%
+}
+%
+%		#] DashGluonCirc : 
+%		#[ DashDoubleGluonCirc :
+%
+\defWithOption{DashDoubleGluonCirc}{(#2,#3)(#4,#5)#6#7#8#9}{%
+%
+%   Draws a gluon from (x1,y1) to (x2,y2) with amplitude and number of windings
+%
+    \GluonCirc[double,sep=#8,dash,dashsize=#9,#1](#2,#3)(#4,#5){#6}{#7}%
+}
+%
+%		#] DashDoubleGluonCirc : 
+%		#[ GluonArc :
+%
+\def\GluonArc{%
+%   \GluonArc(x,y)(r,theta1,theta2){amplitude}{numwind}
+%   draws a gluon on an arc centered at (x,y) of radius r, starting
+%   at theta1, and ending at theta2, with given amplitude and
+%   number of windings 
+%
+    \AXO at Parse{\AXO at GluonArc}{}%
+}
+%
+\let\GlueArc=\GluonArc  % For backward compatibility
+%
+%		#] GluonArc : 
+%		#[ DoubleGluonArc :
+%
+\defWithOption{DoubleGluonArc}{(#2)(#3)#4#5#6}{%
+%
+%   \DoubleGluonArc(x,y)(r,theta1,theta2){amplitude}{numwind}{sep}
+%   draws a gluon on an arc centered at (x,y) of radius r, starting
+%   at theta1, and ending at theta2, with given amplitude and
+%   number of windings 
+%
+    \GluonArc[double,sep=#6,#1](#2)(#3){#4}{#5}%
+}
+%
+\let\DoubleGlueArc=\DoubleGluonArc  % For backward compatibility
+%
+%		#] DoubleGluonArc : 
+%		#[ DashGluonArc :
+%
+\defWithOption{DashGluonArc}{(#2)(#3)#4#5#6}{%
+%
+%   \DashGluonArc(x,y)(r,theta1,theta2){amplitude}{numwind}{dashsize}
+%   draws a gluon on an arc centered at (x,y) of radius r, starting
+%   at theta1, and ending at theta2, with given amplitude and
+%   number of windings 
+%
+    \GluonArc[dash,dashsize=#6,#1](#2)(#3){#4}{#5}%
+}
+%
+\let\DashGlueArc=\DashGluonArc  % For backward compatibility
+%
+%		#] DashGluonArc : 
+%		#[ DashDoubleGluonArc :
+%
+\defWithOption{DashDoubleGluonArc}{(#2)(#3)#4#5#6#7}{%
+%
+%   \DashGluonArc(x,y)(r,theta1,theta2){amplitude}{numwind}{dashsize}
+%   draws a gluon on an arc centered at (x,y) of radius r, starting
+%   at theta1, and ending at theta2, with given amplitude and
+%   number of windings 
+%
+    \GluonArc[double,sep=#6,dash,dashsize=#7,#1](#2)(#3){#4}{#5}%
+}
+%
+\let\DashDoubleGlueArc=\DashDoubleGluonArc  % For backward compatibility
+%
+%		#] DashDoubleGluonArc : 
+%		#[ GluonArcn :
+%
+\defWithOption{GluonArcn}{(#2)(#3)#4#5}{%
+%   \GluonArcn(x,y)(r,theta1,theta2){amplitude}{numwind}
+%   draws a gluon on an arc centered at (x,y) of radius r, starting
+%   at theta1, and ending at theta2, with given amplitude and
+%   number of windings. The n stands for clockwise
+%
+    \GluonArc[clockwise,#1](#2)(#3){#4}{#5}%
+}
+%
+\let\GlueArcn=\GluonArcn  % For backward compatibility
+%
+%		#] GluonArcn : 
+%		#[ DoubleGluonArcn :
+%
+\defWithOption{DoubleGluonArcn}{(#2)(#3)#4#5#6}{%
+%
+%   \DoubleGluonArcn(x,y)(r,theta1,theta2){amplitude}{numwind}{sep}
+%   draws a gluon on an arc centered at (x,y) of radius r, starting
+%   at theta1, and ending at theta2, with given amplitude and
+%   number of windings. Clockwise.
+%
+    \GluonArc[clockwise,double,sep=#6,#1](#2)(#3){#4}{#5}%
+}
+%
+\let\DoubleGlueArcn=\DoubleGluonArcn  % For backward compatibility
+%
+%		#] DoubleGluonArcn : 
+%		#[ DashGluonArcn :
+%
+\defWithOption{DashGluonArcn}{(#2)(#3)#4#5#6}{%
+%
+%   \DashGluonArc(x,y)(r,theta1,theta2){amplitude}{numwind}{dashsize}
+%   draws a gluon on an arc centered at (x,y) of radius r, starting
+%   at theta1, and ending at theta2, with given amplitude and
+%   number of windings. Clockwise.
+%
+    \GluonArc[clockwise,dash,dashsize=#6,#1](#2)(#3){#4}{#5}%
+}
+%
+\let\DashGlueArcn=\DashGluonArcn  % For backward compatibility
+%
+%		#] DashGluonArcn : 
+%		#[ DashDoubleGluonArcn :
+%
+\defWithOption{DashDoubleGluonArcn}{(#2)(#3)#4#5#6#7}{%
+%
+%   \DashGluonArcn(x,y)(r,theta1,theta2){amplitude}{numwind}{dashsize}
+%   draws a gluon on an arc centered at (x,y) of radius r, starting
+%   at theta1, and ending at theta2, with given amplitude and
+%   number of windings. Clockwise.
+%
+    \GluonArc[clockwise,double,sep=#6,dash,dashsize=#7,#1](#2)(#3){#4}{#5}%
+}
+%
+\let\DashDoubleGlueArcn=\DashDoubleGluonArcn  % For backward compatibility
+%
+%		#] DashDoubleGluonArcn : 
+%		#[ Photon :
+%
+\def\Photon{%
+%   \Photon[opt](x1,y1)(x2,y2){amplitude}{numwind}
+%   Draws a photon from (x1,y1) to (x2,y2) with given amplitude and
+%   number of windings 
+%   Supported options: double, sep, linesep
+%
+    \AXO at Parse{\AXO at Photon}{}%
+}
+%
+%		#] Photon : 
+%		#[ DoublePhoton :
+%
+\defWithOption{DoublePhoton}{(#2,#3)(#4,#5)#6#7#8}{%
+%
+%   Draws a photon from (x1,y1) to (x2,y2) with amplitude and number of windings
+%
+    \Photon[double,sep=#8,#1](#2,#3)(#4,#5){#6}{#7}%
+}
+%
+%		#] DoublePhoton : 
+%		#[ DashPhoton :
+%
+\defWithOption{DashPhoton}{(#2,#3)(#4,#5)#6#7#8}{%
+%
+%   Draws a photon from (x1,y1) to (x2,y2) with amplitude and number of windings
+%
+    \Photon[dash,dashsize=#8,#1](#2,#3)(#4,#5){#6}{#7}%
+}
+%
+%		#] DashPhoton : 
+%		#[ DashDoublePhoton :
+%
+\defWithOption{DashDoublePhoton}{(#2,#3)(#4,#5)#6#7#8#9}{%
+%
+%   Draws a photon from (x1,y1) to (x2,y2) with amplitude and number of windings
+%
+    \Photon[double,sep=#8,dash,dashsize=#9,#1](#2,#3)(#4,#5){#6}{#7}%
+}
+%
+%		#] DashDoublePhoton : 
+%		#[ PhotonArc :
+%
+\def\PhotonArc{%
+%   \PhotonArc(x,y)(r,theta1,theta2){amplitude}{numwind}
+%   draws a photon on an arc centered at (x,y) of radius r, starting
+%   at theta1, and ending at theta2, with given amplitude and
+%   number of windings 
+%
+    \AXO at Parse{\AXO at PhotonArc}{}%
+}
+%
+%		#] PhotonArc : 
+%		#[ DoublePhotonArc :
+%
+\defWithOption{DoublePhotonArc}{(#2,#3)(#4,#5,#6)#7#8#9}{%
+%
+%   \PhotonArc(x,y)(r,theta1,theta2){amplitude}{numwind}{sep}
+%   draws a photon on an arc centered at (x,y) of radius r, starting
+%   at theta1, and ending at theta2, with given amplitude and
+%   number of windings 
+%
+    \PhotonArc[double,sep=#9,#1](#2,#3)(#4,#5,#6){#7}{#8}%
+}
+%
+%		#] DoublePhotonArc : 
+%		#[ DashPhotonArc :
+%
+\defWithOption{DashPhotonArc}{(#2,#3)(#4,#5,#6)#7#8#9}{%
+%
+%   \DashPhotonArc(x,y)(r,theta1,theta2){amplitude}{numwind}{dashsize}
+%   draws a photon on an arc centered at (x,y) of radius r, starting
+%   at theta1, and ending at theta2, with given amplitude and
+%   number of windings 
+%
+    \PhotonArc[dash,dashsize=#9,#1](#2,#3)(#4,#5,#6){#7}{#8}%
+}
+%
+%
+%		#] DashPhotonArc : 
+%		#[ DashDoublePhotonArc :
+%
+\defWithOption{DashDoublePhotonArc}{(#2)(#3)#4#5#6#7}{%
+% Note that there are actually ten arguments with the optional #1,
+% which LaTeX/TeX can't handle.  I consolidate the comma separated
+% arguments into one, and then pass them to \PhotonArc
+%
+%   \DashPhotonArc(x,y)(r,theta1,theta2){amplitude}{numwind}{dashsize}
+%   draws a photon on an arc centered at (x,y) of radius r, starting
+%   at theta1, and ending at theta2, with given amplitude and
+%   number of windings 
+%
+    \PhotonArc[double,sep=#6,dash,dashsize=#7,#1](#2)(#3){#4}{#5}%
+}
+%
+%
+%		#] DashDoublePhotonArc : 
+%		#[ PhotonArcn :
+%
+\defWithOption{PhotonArcn}{(#2,#3)(#4,#5,#6)#7#8}{%
+%   \PhotonArcn(x,y)(r,theta1,theta2){amplitude}{numwind}
+%   draws a photon on an arc centered at (x,y) of radius r, starting
+%   at theta1, and ending at theta2, with given amplitude and
+%   number of windings 
+%
+    \PhotonArc[clockwise,#1](#2,#3)(#4,#5,#6){#7}{#8}%
+}
+%
+%		#] PhotonArcn : 
+%		#[ DoublePhotonArcn :
+%
+\defWithOption{DoublePhotonArcn}{(#2)(#3)#4#5#6}{%
+% I consolidate the comma separated arguments into one, and then pass
+% them to \PhotonArc 
+%
+%   \PhotonArcn(x,y)(r,theta1,theta2){amplitude}{numwind}{sep}
+%   draws a photon on an arc centered at (x,y) of radius r, starting
+%   at theta1, and ending at theta2, with given amplitude and
+%   number of windings 
+%
+    \PhotonArc[clockwise,double,sep=#6,#1](#2)(#3){#4}{#5}%
+}
+%
+%		#] DoublePhotonArcn : 
+%		#[ DashPhotonArcn :
+%
+\defWithOption{DashPhotonArcn}{(#2)(#3)#4#5#6}{%
+% I consolidate the comma separated arguments into one, and then pass
+% them to \PhotonArc 
+%
+%   \DashPhotonArcn(x,y)(r,theta1,theta2){amplitude}{numwind}{dashsize}
+%   draws a photon on an arc centered at (x,y) of radius r, starting
+%   at theta1, and ending at theta2, with given amplitude and
+%   number of windings.Clockwise.
+%
+    \PhotonArc[clockwise,dash,dashsize=#6,#1](#2)(#3){#4}{#5}%
+}
+%
+%
+%		#] DashPhotonArcn : 
+%		#[ DashDoublePhotonArcn :
+%
+\defWithOption{DashDoublePhotonArcn}{(#2)(#3)#4#5#6#7}{%
+% I consolidate the comma separated arguments into one, and then pass
+% them to \PhotonArc 
+%
+%   \DashPhotonArcn(x,y)(r,theta1,theta2){amplitude}{numwind}{dashsize}
+%   draws a photon on an arc centered at (x,y) of radius r, starting
+%   at theta1, and ending at theta2, with given amplitude and
+%   number of windings. Clockwise.
+%
+    \PhotonArc[clockwise,double,sep=#6,dash,dashsize=#7,#1](#2)(#3){#4}{#5}%
+}
+%
+%
+%		#] DashDoublePhotonArcn : 
+%		#[ ZigZag :
+%
+\def\ZigZag{%
+%   \ZigZag[opt](x1,y1)(x2,y2){amplitude}{numwind}
+%   Draws a zigzag from (x1,y1) to (x2,y2) with given amplitude and
+%   number of windings 
+%   Supported options: double, sep, linesep
+%
+    \AXO at Parse{\AXO at ZigZag}{}%
+}
+%
+%		#] ZigZag : 
+%		#[ DoubleZigZag :
+%
+\defWithOption{DoubleZigZag}{(#2,#3)(#4,#5)#6#7#8}{%
+%
+%   Draws a zigzag from (x1,y1) to (x2,y2) with amplitude and number of windings
+%
+    \ZigZag[double,sep=#8,#1](#2,#3)(#4,#5){#6}{#7}%
+}
+%
+%		#] DoubleZigZag : 
+%		#[ DashZigZag :
+%
+\defWithOption{DashZigZag}{(#2,#3)(#4,#5)#6#7#8}{%
+%
+%   Draws a zigzag from (x1,y1) to (x2,y2) with amplitude and number of windings
+%
+    \ZigZag[dash,dashsize=#8,#1](#2,#3)(#4,#5){#6}{#7}%
+}
+%
+%		#] DashZigZag : 
+%		#[ DashDoubleZigZag :
+%
+\defWithOption{DashDoubleZigZag}{(#2,#3)(#4,#5)#6#7#8#9}{%
+%
+%   Draws a zigzag from (x1,y1) to (x2,y2) with amplitude and number of windings
+%
+    \ZigZag[double,sep=#8,dash,dashsize=#9,#1](#2,#3)(#4,#5){#6}{#7}%
+}
+%
+%		#] DashDoubleZigZag : 
+%		#[ ZigZagArc :
+%
+\def\ZigZagArc{%
+%   \ZigZagArc(x,y)(r,theta1,theta2){amplitude}{numwind}
+%   draws a zigzag on an arc centered at (x,y) of radius r, starting
+%   at theta1, and ending at theta2, with given amplitude and
+%   number of windings 
+%
+    \AXO at Parse{\AXO at ZigZagArc}{}%
+}
+%
+%		#] ZigZagArc : 
+%		#[ DoubleZigZagArc :
+%
+\defWithOption{DoubleZigZagArc}{(#2,#3)(#4,#5,#6)#7#8#9}{%
+%
+%   \ZigZagArc(x,y)(r,theta1,theta2){amplitude}{numwind}{sep}
+%   draws a zigzag on an arc centered at (x,y) of radius r, starting
+%   at theta1, and ending at theta2, with given amplitude and
+%   number of windings 
+%
+    \ZigZagArc[double,sep=#9,#1](#2,#3)(#4,#5,#6){#7}{#8}%
+}
+%
+%		#] DoubleZigZagArc : 
+%		#[ DashZigZagArc :
+%
+\defWithOption{DashZigZagArc}{(#2)(#3)#4#5#6}{%
+%
+%   \DashZigZagArc(x,y)(r,theta1,theta2){amplitude}{numwind}{dashsize}
+%   draws a zigzag on an arc centered at (x,y) of radius r, starting
+%   at theta1, and ending at theta2, with given amplitude and
+%   number of windings 
+%
+    \ZigZagArc[dash,dashsize=#6,#1](#2)(#3){#4}{#5}%
+}
+%
+%
+%		#] DashZigZagArc : 
+%		#[ DashDoubleZigZagArc :
+%
+\defWithOption{DashDoubleZigZagArc}{(#2)(#3)#4#5#6#7}{%
+%
+%   \DashZigZagArc(x,y)(r,theta1,theta2){amplitude}{numwind}{dashsize}
+%   draws a zigzag on an arc centered at (x,y) of radius r, starting
+%   at theta1, and ending at theta2, with given amplitude and
+%   number of windings 
+%
+    \ZigZagArc[double,sep=#6,dash,dashsize=#7,#1](#2)(#3){#4}{#5}%
+}
+%
+%
+%		#] DashDoubleZigZagArc : 
+%		#[ ZigZagArcn :
+%
+\defWithOption{ZigZagArcn}{(#2)(#3)#4#5}{%
+%   \ZigZagArcn(x,y)(r,theta1,theta2){amplitude}{numwind}
+%   draws a zigzag on an arc centered at (x,y) of radius r, starting
+%   at theta1, and ending at theta2, with given amplitude and
+%   number of windings 
+%
+    \ZigZagArc[clockwise,#1](#2)(#3){#4}{#5}%
+}
+%
+%		#] ZigZagArcn : 
+%		#[ DoubleZigZagArcn :
+%
+\defWithOption{DoubleZigZagArcn}{(#2)(#3)#4#5#6}{%
+%
+%   \ZigZagArcn(x,y)(r,theta1,theta2){amplitude}{numwind}{sep}
+%   draws a zigzag on an arc centered at (x,y) of radius r, starting
+%   at theta1, and ending at theta2, with given amplitude and
+%   number of windings 
+%
+    \ZigZagArc[clockwise,double,sep=#6,#1](#2)(#3){#4}{#5}%
+}
+%
+%		#] DoubleZigZagArcn : 
+%		#[ DashZigZagArcn :
+%
+\defWithOption{DashZigZagArcn}{(#2)(#3)#4#5#6}{%
+%
+%   \DashZigZagArcn(x,y)(r,theta1,theta2){amplitude}{numwind}{dashsize}
+%   draws a zigzag on an arc centered at (x,y) of radius r, starting
+%   at theta1, and ending at theta2, with given amplitude and
+%   number of windings.Clockwise.
+%
+    \ZigZagArc[clockwise,dash,dashsize=#6,#1](#2)(#3){#4}{#5}%
+}
+%
+%
+%		#] DashZigZagArcn : 
+%		#[ DashDoubleZigZagArcn :
+%
+\defWithOption{DashDoubleZigZagArcn}{(#2)(#3)#4#5#6#7}{%
+%
+%   \DashZigZagArcn(x,y)(r,theta1,theta2){amplitude}{numwind}{dashsize}
+%   draws a zigzag on an arc centered at (x,y) of radius r, starting
+%   at theta1, and ending at theta2, with given amplitude and
+%   number of windings. Clockwise.
+%
+    \ZigZagArc[clockwise,double,sep=#6,dash,dashsize=#7,#1](#2)(#3){#4}{#5}%
+}
+%
+%		#] DashDoubleZigZagArcn : 
+%	 #] Particle routines : 
+%	 #[ Line routines :
+%		#[ Line :
+%
+\def\Line{%
+% \Line[opt](x1,y1)(x2,y2)
+% draws a line from (x1,y1) to (x2,y2).  NO arrow by default.
+% Supported options: all arrow settings, all double line settings,
+% all dash line settings.
+%
+    \AXO at Parse{\AXO at Line}{}%
+}
+%
+%		#] Line : 
+%		#[ DoubleLine :
+%
+\defWithOption{DoubleLine}{(#2,#3)(#4,#5)#6}{%
+%
+%   \DoubleLine[opt](x1,y1)(x2,y2){sep}
+%   Draws a double line, with NO arrow by default, from (x1,y1) to (x2,y2),
+%      with separation sep
+%
+    \Line[arrow=false,double,sep=#6,#1](#2,#3)(#4,#5)%
+}
+%
+%		#] DoubleLine : 
+%		#[ DashLine :
+%
+\defWithOption{DashLine}{(#2,#3)(#4,#5)#6}{%
+%   \DashLine[opt](x1,y1)(x2,y2){sep}
+%   Draws a line from (x1,y1) to (x2,y2) with a dash pattern of which the
+%   alternating black and white pieces are approximately sep points long
+%
+    \Line[dash,dashsize=#6,#1](#2,#3)(#4,#5)%
+}
+%
+%		#] DashLine : 
+%		#[ DashDoubleLine :
+%
+\defWithOption{DashDoubleLine}{(#2,#3)(#4,#5)#6#7}{%
+%   \DashDoubleLine[opt](x1,y1)(x2,y2){sep}{dashsize}
+%   Draws a double line from (x1,y1) to (x2,y2) with separation sep,
+%   and with a dash pattern of which the
+%   alternating black and white pieces are approximately sep points long
+%   Arrow off.
+    \Line[arrow=off,dash,dashsize=#7,double,sep=#6,#1](#2,#3)(#4,#5)%
+}
+%
+%		#] DashDoubleLine : 
+%		#[ ArrowLine :
+%
+\defWithOption{ArrowLine}{(#2,#3)(#4,#5)}{%
+% \ArrowLine[opt](x1,y1)(x2,y2)
+% draws a line from (x1,y1) to (x2,y2).  Arrow by default.
+%
+    \Line[arrow,#1](#2,#3)(#4,#5)%
+}
+%
+%		#] ArrowLine : 
+%		#[ ArrowDoubleLine :
+%
+\defWithOption{ArrowDoubleLine}{(#2,#3)(#4,#5)#6}{%
+%
+%   \ArrowDoubleLine[opt](x1,y1)(x2,y2){sep}
+%   Draws a double line, with arrow by default, from (x1,y1) to (x2,y2),
+%      with separation sep
+%
+    \Line[arrow,double,sep=#6,#1](#2,#3)(#4,#5)%
+}
+%
+%		#] ArrowDoubleLine : 
+%		#[ DashArrowLine :
+%
+\defWithOption{DashArrowLine}{(#2,#3)(#4,#5)#6}{%
+%   \DashArrowLine[opt](x1,y1)(x2,y2){sep}
+%   Draws a line from (x1,y1) to (x2,y2) with a dash pattern of which the
+%   alternating black and white pieces are approximately sep points
+%   long.   Arrow by default.
+%
+    \Line[arrow,dash,dashsize=#6,#1](#2,#3)(#4,#5)%
+}
+%
+\let\ArrowDashLine=\DashArrowLine%
+%
+%		#] DashArrowLine : 
+%		#[ DashArrowDoubleLine :
+%
+\defWithOption{DashArrowDoubleLine}{(#2,#3)(#4,#5)#6#7}{%
+%   \DashArrowDoubleLine[opt](x1,y1)(x2,y2){sep}{dashsize}
+%   Draws a double line from (x1,y1) to (x2,y2) with separation sep,
+%   and with a dash pattern of which the
+%   alternating black and white pieces are approximately sep points long
+%   Arrow on.
+%
+    \Line[arrow,dash,dashsize=#7,double,sep=#6,#1](#2,#3)(#4,#5)%
+}
+%
+\let\ArrowDashDoubleLine=\DashArrowDoubleLine%
+%
+%		#] DashArrowDoubleLine : 
+%		#[ LongArrow :
+%
+\defWithOption{LongArrow}{(#2,#3)(#4,#5)}{%
+    \Line[arrow,arrowpos=1,#1](#2,#3)(#4,#5)%
+}
+%
+%		#] LongArrow : 
+%		#[ DashLongArrowLine :
+%
+\defWithOption{DashLongArrowLine}{(#2,#3)(#4,#5)#6}{%
+%   \DashLongArrowLine[opt](x1,y1)(x2,y2){sep}
+%   Draws a line from (x1,y1) to (x2,y2) with a dash pattern of which the
+%   alternating black and white pieces are approximately sep points
+%   long.   Arrow by default.
+%
+%
+    \Line[arrow,arrowpos=1,dash,dashsize=#6,#1](#2,#3)(#4,#5)%
+}
+\let\DashLongArrow=\DashLongArrowLine
+\let\LongArrowDash=\DashLongArrowLine
+\let\LongArrowDashLine=\DashLongArrowLine
+%
+%		#] DashLongArrowLine : 
+%	 #] Line routines : 
+%	 #[ Arc routines :
+%		#[ Arc :
+%
+\def\Arc{%
+% \Arc[opt](x,y)(r,theta1,theta2)
+% draws an arc centered at (x,y) of radius r, starting at theta1,
+% and ending at theta2.  By default: no arrow, undashed, single,
+% anticlockwise. 
+% Supported options: all arrow settings, all double line settings,
+% all dash line settings, clock
+%
+    \AXO at Parse{\AXO at Arc}{}%
+}
+%
+%		#] Arc : 
+%		#[ CArc :
+%
+\let\CArc=\Arc
+%
+%		#] CArc : 
+%		#[ DoubleArc :
+%
+\defWithOption{DoubleArc}{(#2,#3)(#4,#5,#6)#7}{%
+%
+%   Draws a double lined arc segment. The center of the curve
+%   is at (1,2).
+%   The radius, start angle and target angle are (#3,#4,#5).
+%   The arc segment runs anticlockwise
+%   #6 is the separation of the lines.
+%
+    \Arc[double,sep=#7,#1](#2,#3)(#4,#5,#6)%
+}
+\let\DoubleCArc=\DoubleArc
+%
+%		#] DoubleArc : 
+%		#[ DashArc :
+%
+\defWithOption{DashArc}{(#2,#3)(#4,#5,#6)#7}{%
+%
+%   Draws a dashed arc segment. The center of the curve
+%   is at (1,2).
+%   The radius, start angle and target angle are (#3,#4,#5).
+%   The arc segment runs anticlockwise
+%   #6 is the dashsize. this is rounded to make things come
+%   out right.
+%
+    \Arc[dash,dsize=#7,#1](#2,#3)(#4,#5,#6)%
+}
+\let\DashCArc=\DashArc
+%
+%		#] DashArc : 
+%		#[ DashDoubleArc :
+%
+\defWithOption{DashDoubleArc}{(#2,#3)(#4,#5,#6)#7#8}{
+%
+%   Draws a dashed arc segment. The center of the curve
+%   is at (1,2).
+%   The radius, start angle and target angle are (#3,#4,#5).
+%   The arc segment runs anticlockwise
+%   #6 is the line separation.
+%   #7 is the dashsize. this is rounded to make things come
+%   out right.
+%
+    \Arc[double,sep=#7,dash,dsize=#8,#1](#2,#3)(#4,#5,#6)%
+}
+\let\DashDoubleCArc=\DashDoubleArc
+%
+%		#] DashDoubleArc : 
+%		#[ ArrowArc :
+%
+\def\ArrowArc{%
+    \AXO at PrependOption{\Arc}{arrow}%
+}
+\let\ArrowCArc=\ArrowArc
+%
+%		#] ArrowArc : 
+%		#[ ArrowDoubleArc :
+%
+\defWithOption{ArrowDoubleArc}{(#2,#3)(#4,#5,#6)#7}{%
+    \Arc[arrow,double,sep=#7,#1](#2,#3)(#4,#5,#6)%
+}
+\let\ArrowDoubleCArc=\ArrowDoubleArc
+%
+%		#] ArrowDoubleArc : 
+%		#[ ArrowDashArc :
+%
+\defWithOption{ArrowDashArc}{(#2,#3)(#4,#5,#6)#7}{%
+    \Arc[arrow,dash,dsize=#7,#1](#2,#3)(#4,#5,#6)%
+}
+\let\ArrowDashCArc=\ArrowDashArc
+\let\DashArrowCArc=\ArrowDashArc
+\let\DashArrowArc=\ArrowDashArc
+%
+%		#] ArrowDashArc : 
+%		#[ ArrowDashDoubleArc :
+%
+\defWithOption{ArrowDashDoubleArc}{(#2,#3)(#4,#5,#6)#7#8}{%
+    \Arc[arrow,double,sep=#7,dash,dsize=#8,#1](#2,#3)(#4,#5,#6)%
+}
+\let\ArrowDashDoubleCArc=\ArrowDashDoubleArc
+\let\DashArrowDoubleCArc=\ArrowDashDoubleArc
+\let\DashArrowDoubleArc=\ArrowDashDoubleArc
+%
+%
+%		#] ArrowDashDoubleArc : 
+%		#[ LongArrowArc :
+%
+\def\LongArrowArc{%
+    \AXO at PrependOption{\Arc}{arrow,arrowpos=1}%
+}
+%
+%		#] LongArrowArc : 
+%		#[ LongDashArrowArc :
+%
+\defWithOption{LongArrowDashArc}{(#2,#3)(#4,#5,#6)#7}{%
+    \Arc[arrow,arrowpos=1,dash,dsize=#7,#1](#2,#3)(#4,#5,#6)%
+}
+\let\LongArrowDashCArc=\LongArrowDashArc
+\let\LongDashArrowCArc=\LongArrowDashArc
+\let\LongDashArrowArc=\LongArrowDashArc
+%
+%
+%		#] LongDashArrowArc : 
+%		#[ ArrowArcn :
+%
+\def\ArrowArcn{%
+    \AXO at PrependOption{\Arc}{arrow,clock}%
+}
+%
+%		#] ArrowArcn : 
+%		#[ LongArrowArcn :
+%
+\def\LongArrowArcn{%
+    % \ArrowArcn, but with arrow at end by default
+    \AXO at PrependOption{\Arc}{arrow, clock, arrowpos=1}%
+}
+%
+%		#] LongArrowArcn : 
+%		#[ DashArrowArcn :
+%
+\defWithOption{DashArrowArcn}{(#2,#3)(#4,#5,#6)#7}{%
+%   (x,y)(radius,start,end){dashsize}
+%   Draws a dashed arc segment with an arrow in it. The center of the curve
+%   is at (x,y), with given radius, start angle, and end angle
+%   The arc segment runs anticlockwise
+    \Arc[clock,arrow,dash,dashsize=#7,#1](#2,#3)(#4,#5,#6)%
+}
+%
+\let\ArrowDashArcn=\DashArrowArcn%
+%
+%
+%		#] DashArrowArcn : 
+%	 #] Arc routines : 
+%	 #[ Bezier :
+%
+\def\Bezier{%
+%   \Bezier[opt](x1,y1)(x2,y2)(x3,y3)(x4,y4)
+%   Draws a Bezier cubic with the control points (x1,y1), (x2,y2), (x3,y3), (x4,y4)
+%   Supported options: dash, dashsize and dashsize
+    \AXO at Parse{\AXO at Bezier}{}%
+}
+%
+\defWithOption{DoubleBezier}{(#2,#3)(#4,#5)(#6,#7)(#8)#9}{%
+%
+%   Draws a Bezier cubic with control points (x1,y1), (x2,y2),
+%   (x3,y3), (x4,y4) in a double line
+%
+    \Bezier[double,sep=#9,#1](#2,#3)(#4,#5)(#6,#7)(#8)%
+}
+%
+\defWithOption{DashBezier}{(#2,#3)(#4,#5)(#6,#7)(#8)#9}{%
+%
+%   Draws a Bezier cubic with control points (x1,y1), (x2,y2),
+%   (x3,y3), (x4,y4) with a dash pattern of which the 
+%   alternating black and white pieces are approximately #9 points long
+%
+    \Bezier[dash,dashsize=#9,#1](#2,#3)(#4,#5)(#6,#7)(#8)%
+}
+%
+\defWithOption{DashDoubleBezier}{(#2,#3)(#4,#5)(#6)(#7)#8#9}{%
+%
+%   Draws a Bezier cubic with control points (x1,y1), (x2,y2),
+%   (x3,y3), (x4,y4) with a dash pattern of which the 
+%   alternating black and white pieces are approximately #9 points long
+%   The line is a double line
+%
+    \Bezier[double,sep=#8,dash,dashsize=#9,#1](#2,#3)(#4,#5)(#6)(#7)%
+}
+%
+%	 #] Bezier : 
+% 	#] LaTeX primitives : 
+% 	#[ Mixed routines :
+%
+%   Here we have routines that make different calls depending on the value
+%   of the variable \axo at pdfoutput
+%
+%	 #[ EBox :
+%
+\def\EBox(#1,#2)(#3,#4){%
+%
+%   Draws a transparent box with the left bottom at (x1,y1) andthe
+%   right top at (x2,y2).
+%
+\ifcase\axo at pdfoutput
+    \put(\axoxoff,\axoyoff){\AXOspecial{%
+    #1 \axoxo\space add #2 \axoyo\space add
+    #3 \axoxo\space add #4 \axoyo\space add \axowidth\space \axoscale\space ebox }}
+\else
+    \getaxohelp{EBox}{#1 #2 #3 #4 \axowidth}
+    \put(\axoxoff,\axoyoff){\axo at pdfliteral{\contentspdf}}
+\fi
+}
+%
+%	 #] EBox : 
+%	 #[ FBox :
+%
+\def\FBox(#1,#2)(#3,#4){%
+%
+%   Draws a filled box with the left bottom at (x1,y1) and the right top
+%   at (x2,y2).
+%
+\ifcase\axo at pdfoutput
+    \put(\axoxoff,\axoyoff){\AXOspecial{%
+    #1 \axoxo\space add #2 \axoyo\space add
+    #3 \axoxo\space add #4 \axoyo\space add \axowidth\space \axoscale\space fbox }}
+\else
+    \getaxohelp{FBox}{#1 #2 #3 #4 \axowidth}
+    \put(\axoxoff,\axoyoff){\axo at pdfliteral{\contentspdf}}
+\fi
+}
+%
+%	 #] FBox : 
+%	 #[ BBox : 
+%
+\def\BBox(#1,#2)(#3,#4){%
+%
+%   Draws a box with the left bottom at (x1,y1) and the right top
+%   at (x2,y2). The contents are blanked out.
+%
+    {%
+      \SetColor{White}%
+      \FBox(#1,#2)(#3,#4)%
+    }%
+    \EBox(#1,#2)(#3,#4)%
+}
+%
+%	 #] BBox : 
+%	 #[ GBox :
+%
+\def\GBox(#1,#2)(#3,#4)#5{%
+%
+%   Draws a box with the left bottom at (x1,y1) and the right top
+%   at (x2,y2). The contents are in Grayscale#5 (0=black,1=white).
+%
+    {%
+      \color[gray]{#5}%
+      \FBox(#1,#2)(#3,#4)%
+      \color[gray]{0}%
+      \EBox(#1,#2)(#3,#4)%
+    }%
+\ignorespaces
+}
+%
+%	 #] GBox : 
+%	 #[ CBox :
+%
+\def\CBox(#1,#2)(#3,#4)#5#6{%
+%
+%   Draws a box with the left bottom at (x1,y1) and the right top
+%   at (x2,y2). The outside is color#5 and the inside color #6.
+%
+    {%
+      \SetColor{#6}%
+      \FBox(#1,#2)(#3,#4)%
+      \SetColor{#5}%
+      \EBox(#1,#2)(#3,#4)%
+    }%
+\ignorespaces
+}
+%
+%	 #] CBox : 
+%	 #[ EBoxc :
+%
+\def\EBoxc(#1,#2)(#3,#4){%
+%
+%   Draws a centered box with the center at (x1,y1).
+%   The other parameters are the width and the height.
+%   Uses current color  
+%
+\ifcase\axo at pdfoutput
+    \put(\axoxoff,\axoyoff){\AXOspecial{%
+    #1 \axoxo\space add #3 2 div sub #2 \axoyo\space add
+    #4 2 div sub #1 \axoxo\space add #3 2 div add #2
+    \axoyo\space add #4 2 div add \axowidth\space \axoscale\space ebox }}
+\else
+    \getaxohelp{Boxc}{#1 #2 #3 #4 \axowidth}
+    \put(\axoxoff,\axoyoff){\axo at pdfliteral{\contentspdf}}
+\fi
+}
+%
+\let\Boxc=\EBoxc
+%
+%	 #] EBoxc : 
+%	 #[ FBoxc :
+%
+\def\FBoxc(#1,#2)(#3,#4){%
+%
+%   Draws a filled centered box with the center at (x1,y1).
+%   The other parameters are the width and the height.
+%   Current color  
+%
+\ifcase\axo at pdfoutput
+    \put(\axoxoff,\axoyoff){\AXOspecial{%
+    #1 \axoxo\space add #3 2 div sub #2 \axoyo\space add
+    #4 2 div sub #1 \axoxo\space add #3 2 div add #2 \axoyo\space add #4 2 div add
+    \axowidth\space \axoscale\space fbox }}
+\else
+    \getaxohelp{FBoxc}{#1 #2 #3 #4 \axowidth}
+    \put(\axoxoff,\axoyoff){\axo at pdfliteral{\contentspdf}}
+\fi
+}
+%
+%	 #] FBoxc : 
+%	 #[ BBoxc :
+%
+\def\BBoxc(#1,#2)(#3,#4){%
+%
+%   Draws a centered box with the center at (x1,y1).
+%   The other parameters are the width and the height.
+%   The contents are blanked out.
+%
+\bgroup
+    \SetColor{White}%
+    \FBoxc(#1,#2)(#3,#4)%
+\egroup
+\EBoxc(#1,#2)(#3,#4)%
+}
+%
+%	 #] BBoxc : 
+%	 #[ GBoxc :
+%
+\def\GBoxc(#1,#2)(#3,#4)#5{%
+%
+%   Draws a centered box with the center at (x1,y1).
+%   The other parameters are the width and the height.
+%   The contents are in Grayscale#5 (0=black,1=white).
+%
+  {%
+    \color[gray]{#5}%
+    \FBoxc(#1,#2)(#3,#4)%
+    \color[gray]{0}%
+    \EBoxc(#1,#2)(#3,#4)%
+  }%
+\ignorespaces
+}
+%
+%	 #] GBoxc : 
+%	 #[ CBoxc :
+%
+\def\CBoxc(#1,#2)(#3,#4)#5#6{%
+%
+%   Draws a centered box with the center at (x1,y1).
+%   The other parameters are the width and the height.
+%   The outside is color#5 and the inside color #6.
+%
+  {%
+    \SetColor{#6}%
+    \FBoxc(#1,#2)(#3,#4)%
+    \SetColor{#5}%
+    \EBoxc(#1,#2)(#3,#4)%
+  }%
+\ignorespaces
+}
+%
+%	 #] CBoxc : 
+%	 #[ RotatedBox :
+%
+\def\RotatedBox(#1,#2)(#3,#4)#5#6{%
+%
+%   Draws a centered box with the center at (#1,#2)
+%   with width #3, height #4, anticlockwise rotated by #5, and in
+%   color #6.
+%
+    \AxoPut(#1,#2){%
+        {\SetColor{#6}%
+         \rotatebox{#5}{\EBoxc(0,0)(#3,#4)}%
+    }}%
+}
+%
+%	 #] RotatedBox : 
+%	 #[ FilledRotatedBox :
+%
+\def\FilledRotatedBox(#1,#2)(#3,#4)#5#6{%
+%
+%   Draws a filled centered box with the center at (#1,#2)
+%   with width #3, height #4, anticlockwise rotated by #5, and in
+%   color #6.
+%
+    \AxoPut(#1,#2){%
+        {\SetColor{#6}%
+         \rotatebox{#5}{\FBoxc(0,0)(#3,#4)}%
+    }}%
+}
+%
+%	 #] FilledRotatedBox : 
+%	 #[ ETri :
+%
+%   Draws a triangle. No filling.
+%   The corners are (x1,y1), (x2,y2), (x3,y3)
+%
+\def\ETri(#1,#2)(#3,#4)(#5,#6){%
+%
+\ifcase\axo at pdfoutput
+    \put(\axoxoff,\axoyoff){\AXOspecial{%
+    #1 \axoxo\space add #2 \axoyo\space add
+    #3 \axoxo\space add #4 \axoyo\space add
+    #5 \axoxo\space add #6 \axoyo\space add
+    \axowidth\space \axoscale\space triangle }}
+\else
+    \getaxohelp{ETri}{#1 #2 #3 #4 #5 #6 \axowidth}
+    \put(\axoxoff,\axoyoff){\axo at pdfliteral{\contentspdf}}
+\fi
+}
+%
+%	 #] ETri : 
+%	 #[ FTri :
+%
+%   Draws a filled triangle.
+%   The corners are (x1,y1), (x2,y2), (x3,y3)
+%
+\def\FTri(#1,#2)(#3,#4)(#5,#6){%
+%
+\ifcase\axo at pdfoutput
+    \put(\axoxoff,\axoyoff){\AXOspecial{%
+    #1 \axoxo\space add #2 \axoyo\space add
+    #3 \axoxo\space add #4 \axoyo\space add
+    #5 \axoxo\space add #6 \axoyo\space add
+    \axowidth\space \axoscale\space ftriangle }}
+\else
+    \getaxohelp{FTri}{#1 #2 #3 #4 #5 #6 \axowidth}
+    \put(\axoxoff,\axoyoff){\axo at pdfliteral{\contentspdf}}
+\fi
+}
+%
+%	 #] FTri : 
+%	 #[ BTri :
+%
+%   Draws a triangle. The contents are blanked out.
+%   The corners are (x1,y1), (x2,y2), (x3,y3)
+%
+\def\BTri(#1,#2)(#3,#4)(#5,#6){%
+    {%
+        \SetColor{White}%
+        \FTri(#1,#2)(#3,#4)(#5,#6)%
+    }%
+    \ETri(#1,#2)(#3,#4)(#5,#6)%
+}
+%
+%	 #] BTri : 
+%	 #[ GTri :
+%
+%   Draws a triangle. The contents are given in Grayscale #7 (0=black,1=white)
+%   The corners are (x1,y1), (x2,y2), (x3,y3)
+%
+\def\GTri(#1,#2)(#3,#4)(#5,#6)#7{%
+%
+    {%
+        \color[gray]{#7}%
+        \FTri(#1,#2)(#3,#4)(#5,#6)%
+        \color[gray]{0}%
+        \ETri(#1,#2)(#3,#4)(#5,#6)%
+    }%
+\ignorespaces
+}
+%
+%	 #] GTri : 
+%	 #[ CTri :
+%
+%   Draws a colored(#7) triangle. The contents are blanked out in color #8
+%   The corners are (x1,y1), (x2,y2), (x3,y3)
+%
+\def\CTri(#1,#2)(#3,#4)(#5,#6)#7#8{%
+    {%
+        \SetColor{#7}%
+        \FTri(#1,#2)(#3,#4)(#5,#6)%
+        \SetColor{#8}%
+        \ETri(#1,#2)(#3,#4)(#5,#6)%
+    }%
+\ignorespaces
+}
+%
+%	 #] CTri : 
+%	 #[ Vertex :
+%
+\def\Vertex(#1,#2)#3{%
+%
+%   Draws a fat dot at (1,2). The radius of the dot is given by 3.
+%
+\ifcase\axo at pdfoutput
+    \put(\axoxoff,\axoyoff){\AXOspecial{%
+    #1 \axoxo\space add #2 \axoyo\space add #3
+    \axoscale\space vertex }}
+\else
+    \getaxohelp{Vertex}{#1 #2 #3 \axowidth}
+    \put(\axoxoff,\axoyoff){\axo at pdfliteral{\contentspdf}}
+\fi
+}
+%
+%	 #] Vertex : 
+%	 #[ ECirc :
+%
+\def\ECirc(#1,#2)#3{%
+%
+%   Draws a circle at (1,2) and radius 3, with current color.
+%   Nothing is written inside.
+%
+\ifcase\axo at pdfoutput
+    \put(\axoxoff,\axoyoff){\AXOspecial{%
+    #1 \axoxo\space add #2 \axoyo\space add #3
+    \axowidth\space \axoscale\space ecirc }}%
+\else
+    \getaxohelp{ECirc}{#1 #2 #3 \axowidth}%
+    \put(\axoxoff,\axoyoff){\axo at pdfliteral{\contentspdf}}%
+\fi
+}
+%
+%	 #] ECirc : 
+%	 #[ FCirc :
+%
+\let\FCirc=\Vertex
+%
+%	 #] FCirc : 
+%	 #[ BCirc :
+%
+\def\BCirc(#1,#2)#3{%
+%
+%   Draws a circle at (1,2) and radius 3 that is blanked out.
+    {%
+        \SetColor{White}%
+        \FCirc(#1,#2){#3}
+    }%
+    \ECirc(#1,#2){#3}%
+}
+%
+%	 #] BCirc : 
+%	 #[ GCirc :
+%
+\def\GCirc(#1,#2)#3#4{%
+%
+%   Draws a circle at (1,2) and radius 3 that is blanked out.
+%   Then it fills the circle with a gray scale 4 (0 = black, 1 is white)
+%
+    {%
+        \color[gray]{#4}%
+        \FCirc(#1,#2){#3}%
+        \color[gray]{0}%
+        \ECirc(#1,#2){#3}%
+    }%
+\ignorespaces
+}
+%
+%	 #] GCirc : 
+%	 #[ CCirc :
+%
+%   Draws a circle at (1,2) and radius 3 that is blanked out.
+%   #4 is the color of the circle, #5 the color of the contents
+%
+\def\CCirc(#1,#2)#3#4#5{%
+%
+%   Draws a circle at (1,2) and radius 3 that is blanked out.
+%   #4 is the color of the circle, #5 the color of the contents
+%
+{%
+    \SetColor{#5}%
+    \FCirc(#1,#2){#3}%
+    \SetColor{#4}%
+    \ECirc(#1,#2){#3}%
+}%
+\ignorespaces
+}
+%
+%	 #] CCirc : 
+%	 #[ GOval :
+%
+\def\GOval(#1,#2)(#3,#4)(#5)#6{%
+%
+%   Draws a gray oval that overwrites whatever was there.
+%   \GOval(x_center,y_center)(height,width)(rotation)(grayscale)
+%   The grayscale: (0 = black, 1 is white)
+%
+    {%
+        \color[gray]{#6}%
+        \FOval(#1,#2)(#3,#4)(#5)%
+        \color[gray]{0}%
+        \Oval(#1,#2)(#3,#4)(#5)%
+    }%
+    \ignorespaces
+}
+%
+%	 #] GOval : 
+%	 #[ COval :
+%
+\def\COval(#1,#2)(#3,#4)(#5)#6#7{%
+%
+%   Draws a colored oval that overwrites whatever was there.
+%   \COval(x_center,y_center)(height,width)(rotation){color1}{color2}
+%
+    {%
+        \SetColor{#7}%
+        \FOval(#1,#2)(#3,#4)(#5)%
+        \SetColor{#6}%
+        \Oval(#1,#2)(#3,#4)(#5)%
+    }%
+    \ignorespaces
+}
+%
+%	 #] COval : 
+%	 #[ FOval :
+%
+\def\FOval(#1,#2)(#3,#4)(#5){%
+%
+%   Draws a colored oval that overwrites whatever was there.
+%   \FOval(x_center,y_center)(height,width)(rotation)
+%   Uses current color  
+%
+    \ifcase\axo at pdfoutput
+        \put(\axoxoff,\axoyoff)%
+            {\AXOspecial{#1 \axoxo\space add #2 \axoyo\space add #3 #4 #5
+            \axowidth\space \axoscale\space foval 
+            }}%
+    \else
+        \getaxohelp{FOval}{#1 #2 #3 #4 #5 \axowidth}%
+        \put(\axoxoff,\axoyoff){\axo at pdfliteral{\contentspdf}}%
+    \fi
+}
+%
+%	 #] FOval : 
+%	 #[ Oval :
+%
+\def\Oval(#1,#2)(#3,#4)(#5){%
+%
+%   Draws an oval that does not overwrite whatever was there.
+%   \Oval(x_center,y_center)(height,width)(rotation)
+%
+\ifcase\axo at pdfoutput
+    \put(\axoxoff,\axoyoff)%
+    {\AXOspecial{#1 \axoxo\space add #2 \axoyo\space add #3 #4 #5
+     \axowidth\space \axoscale\space oval 
+    }}%
+\else
+    \getaxohelp{Oval}{#1 #2 #3 #4 #5 \axowidth}%
+    \put(\axoxoff,\axoyoff){\axo at pdfliteral{\contentspdf}}%
+\fi
+}
+%
+%	 #] Oval : 
+%	 #[ Polygon :
+%
+%       Draws a curve through the points in argument 1.
+%       The points are given as coordinates (x1,y1)(x2,y2)(x3,y3).....
+%       The curve is continous and continuous in its first and second
+%       derivatives. The method is linear interpolation of
+%               quadratic curves.
+%               Color name is argument 2.
+%
+\def\Polygon#1#2{%
+    {%
+        \SetColor{#2}%
+        \ifcase\axo at pdfoutput
+            \put(\axoxoff,\axoyoff){\AXOspecial{%
+               [ \axoparray#1] \axowidth\space \axoscale\space polygon }}%
+        \else
+            \getaxohelp{Polygon}{"#1" \axowidth}%
+            \put(\axoxoff,\axoyoff){\axo at pdfliteral{\contentspdf}}%
+        \fi
+    }%
+    \ignorespaces
+}
+%
+%	 #] Polygon : 
+%	 #[ FilledPolygon :
+%
+%       Draws a curve through the points in argument 1.
+%       The points are given as coordinates (x1,y1)(x2,y2)(x3,y3).....
+%       The curve is continous and continuous in its first and second
+%       derivatives. The method is linear interpolation of
+%               quadratic curves. 
+%               Color name is argument 2.
+%
+\def\FilledPolygon#1#2{%
+    {%
+        \SetColor{#2}%
+        \ifcase\axo at pdfoutput
+            \put(\axoxoff,\axoyoff){\AXOspecial{%
+              [ \axoparray#1] \axowidth\space \axoscale\space filledpolygon }}
+        \else
+            \getaxohelp{FilledPolygon}{"#1" \axowidth}%
+            \put(\axoxoff,\axoyoff){\axo at pdfliteral{\contentspdf}}%
+        \fi
+    }%
+    \ignorespaces
+}
+%
+%	 #] FilledPolygon : 
+%	 #[ Curve :
+%
+%       Draws a curve through the points in argument 1.
+%       The points are given as coordinates (x1,y1)(x2,y2)(x3,y3).....
+%       The curve is continous and continuous in its first and second
+%       derivatives. The method is linear interpolation of quadratic curves.
+%
+\def\Curve#1{%
+\ifcase\axo at pdfoutput
+    \put(\axoxoff,\axoyoff){\AXOspecial{[ \axoparray#1]
+    \axowidth\space \axoscale\space makecurve }}
+\else
+    \getaxohelp{Curve}{"#1" \axowidth}
+    \put(\axoxoff,\axoyoff){\axo at pdfliteral{\contentspdf}}
+\fi
+}
+%
+%	 #] Curve : 
+%	 #[ DashCurve :
+%
+%       Draws a curve through the points in argument 1.
+%       The points are given as coordinates (x1,y1)(x2,y2)(x3,y3).....
+%       The curve is continous and continuous in its first and second
+%       derivatives. The method is linear interpolation of quadratic curves.
+%       Argument 2 gives a dash size.
+%
+\def\DashCurve#1#2{%
+\ifcase\axo at pdfoutput
+    \put(\axoxoff,\axoyoff){\AXOspecial{[ \axoparray#1] #2
+    \axowidth\space \axoscale\space makedashcurve }}
+\else
+    \getaxohelp{DashCurve}{"#1" #2 \axowidth}
+    \put(\axoxoff,\axoyoff){\axo at pdfliteral{\contentspdf}}
+\fi
+}
+%
+%	 #] DashCurve : 
+%	 #[ LinAxis :
+%
+\def\LinAxis(#1,#2)(#3,#4)(#5,#6,#7,#8,#9){%
+%
+%   Draws a line with linear hash marks along it.
+%   LinAxis(x1,y1)(x2,y2)(num_decs,per_dec,hashsize,offset,width)
+%   The line is from (x1,y1) to (x2,y2) and the marks are on the left side
+%   when hashsize is positive, and right when it is negative.
+%   num_decs is the number of accented marks, per_dec the number of
+%   divisions between them and offset is the number
+%   at which one starts at (x1,y1) (like if offset=2 we start at the second
+%   small mark) Width is the linewidth.
+%
+\ifcase\axo at pdfoutput
+    \put(\axoxoff,\axoyoff){\AXOspecial{%
+      #1 \axoxo\space add #2 \axoyo\space add
+      #3 \axoxo\space add #4 \axoyo\space add
+      #5 #6 #7 #8 #9 \axoscale\space linaxis }}
+\else
+    \getaxohelp{LinAxis}{#1 #2 #3 #4 #5 #6 #7 #8 #9}
+    \put(\axoxoff,\axoyoff){\axo at pdfliteral{\contentspdf}}
+\fi
+}
+%
+%	 #] LinAxis : 
+%	 #[ LogAxis :
+%
+\def\LogAxis(#1,#2)(#3,#4)(#5,#6,#7,#8){%
+%
+%   Draws a line with logarithmic hash marks along it.
+%   LogAxis(x1,y1)(x2,y2)(num_logs,hashsize,offset,width)
+%   The line is from (x1,y1) to (x2,y2) and the marks are on the left side
+%   when hashsize is positive, and right when it is negative.
+%   num_logs is the number of orders of magnitude and offset is the number
+%   at which one starts at (x1,y1) (like if offset=2 we start at 2)
+%   When offset is 0 we start at 1. Width is the linewidth.
+%
+\ifcase\axo at pdfoutput
+    \put(\axoxoff,\axoyoff){\AXOspecial{%
+    #1 \axoxo\space add #2 \axoyo\space add
+    #3 \axoxo\space add #4 \axoyo\space add
+    #5 #6 #7 #8 \axoscale\space logaxis }}
+\else
+    \getaxohelp{LogAxis}{#1 #2 #3 #4 #5 #6 #7 #8}
+    \put(\axoxoff,\axoyoff){\axo at pdfliteral{\contentspdf}}
+\fi
+}
+%
+%	 #] LogAxis : 
+%	 #[ AxoGrid :
+%
+\def\AxoGrid(#1,#2)(#3,#4)(#5,#6)#7#8{%
+%
+%   Makes a grid with the left bottom at #1,#2
+%   The increments in x and y are #3,#4
+%   The number of steps in each direction are #5,#6 (there are n+1 lines)
+%   #7 is the color and #8 the linewidth
+%
+{\SetColor{#7}%
+    \ifcase\axo at pdfoutput
+        \put(\axoxoff,\axoyoff){%
+            \AXOspecial{%
+               #3 #4 #5 #6
+               #1 \axoxo\space add #2 \axoyo\space add 
+               #8 \axoscale\space axogrid
+        }}%
+    \else
+        \getaxohelp{Grid}{#1 #2 #3 #4 #5 #6 #8}%
+        \put(\axoxoff,\axoyoff){\axo at pdfliteral{\contentspdf}}%
+    \fi   
+}%
+\ignorespaces
+}
+%
+%	 #] AxoGrid : 
+%	 #[ AXO at Arc :
+%
+%       Generic Arc segment with many options.
+%
+%
+\def\AXO at Arc(#1,#2)(#3,#4,#5){%
+%
+%   Draws arc centered at (#1,#2), radius #3, starting and ending
+%   angles #4, #5.
+%   Double, dashing, arrow, clockwise according to current settings
+%
+{\AXO at useopts
+\ifcase\axo at pdfoutput
+    \put(\axoxoff,\axoyoff){%
+        \AXOspecial{%
+        \AXO at ArrowArg \space
+        \ifAXO at flip true \else false \fi
+        \ifAXO at double \AXO at CurrentSep \space \else 0 \fi
+        \ifAXO at dash \AXO at CurrentDashSize \space \else 0 \fi
+        \ifAXO at clock true \else false \fi
+        #3 #4 #5
+        #1 \axoxo\space add #2 \axoyo\space add 
+        \AXO at CurrentWidth\space \axoscale\space arc2
+    }}%
+\else
+    \getaxohelp{AxoArc}{#1 #2 #3 #4 #5
+        \ifAXO at double \AXO at CurrentSep \space \else 0 \fi
+        \ifAXO at dash \AXO at CurrentDashSize \space \else 0 \fi
+        \AXO at ArrowArg \space
+        \ifAXO at flip 1 \else 0 \fi
+        \ifAXO at clock 1 \else 0 \fi
+        \AXO at CurrentWidth}
+    \put(\axoxoff,\axoyoff){\axo at pdfliteral{\contentspdf}}
+\fi
+}\ignorespaces
+}
+%
+%	 #] AXO at Arc : 
+%	 #[ AXO at Bezier :
+%
+\def\AXO at Bezier(#1,#2)(#3,#4)(#5,#6)(#7,#8){%
+%
+%   Draws a Bezier cubic with the control points (x1,y1), (x2,y2),
+%   (x3,y3), (x4,y4)
+%   Assumes options have been set
+%
+{\AXO at useopts
+\ifcase\axo at pdfoutput
+    \put(\axoxoff,\axoyoff){\AXOspecial{%
+        #1 \axoxo\space add #2 \axoyo\space add
+        #3 \axoxo\space add #4 \axoyo\space add
+        #5 \axoxo\space add #6 \axoyo\space add
+        #7 \axoxo\space add #8 \axoyo\space add
+           \AXO at ArrowArg \space 
+           \ifAXO at flip true \else false \fi
+    \ifAXO at double \AXO at CurrentSep \space \else 0 \fi
+    \ifAXO at dash \AXO at CurrentDashSize \space \else 0 \fi
+    \AXO at CurrentWidth\space \axoscale\space dashdoublebezier 
+    }}%
+\else
+    \getaxohelp{AxoBezier}{#1 #2 #3 #4 #5 #6 #7 #8
+        \ifAXO at double \AXO at CurrentSep \space \else 0 \fi
+        \ifAXO at dash \AXO at CurrentDashSize \space \else 0 \fi
+        \AXO at ArrowArg \space
+        \ifAXO at flip 1 \else 0 \fi
+        \AXO at CurrentWidth}
+    \put(\axoxoff,\axoyoff){\axo at pdfliteral{\contentspdf}}
+\fi
+}\ignorespaces
+}
+%
+%	 #] AXO at Bezier : 
+%	 #[ AXO at GluonHelper :
+%
+\def\AXO at GluonHelper(#1,#2)(#3,#4)#5#6#7#8{%
+%
+%   Draws a single gluon from (x1,y1) to (x2,y2) with amplitude #5 and number
+%   of windings #6. Width #7 + #8
+%   Assumes options have been set.
+%   Used as helper from \AXO at Gluon
+  %
+\ifAXO at arrow\AXO at NOTIMPLEMENTED{arrow not implemented for gluon}\fi
+\ifcase\axo at pdfoutput
+    \put(\axoxoff,\axoyoff){%
+        \AXOspecial{%
+                  #1 \axoxo\space add #2 \axoyo\space add
+                  #3 \axoxo\space add #4 \axoyo\space add 
+                  #5 #6
+                  \ifAXO at dash \AXO at CurrentDashSize \space \else 0 \fi
+                  #7 #8 add \axoscale \space dashgluon
+        }%
+    }%
+\else
+    \getaxohelp{AxoGluon}{#1 #2 #3 #4 #5 #6 
+             #7
+             \ifAXO at dash \AXO at CurrentDashSize \space \else 0 \fi
+            #8}%
+    \put(\axoxoff,\axoyoff){\axo at pdfliteral{\contentspdf}}
+\fi
+}
+%
+\def\AXO at GluonHelperNEW(#1,#2)(#3,#4)#5#6#7#8{%
+% IDEA: Showing cleaner code
+%
+%   Draws a single gluon from (x1,y1) to (x2,y2) with amplitude #5 and number
+%   of windings #6. Width #7 + #8
+%   Assumes options have been set.
+%   Used as helper from \AXO at Gluon
+%
+    \ifAXO at arrow\AXO at NOTIMPLEMENTED{arrow not implemented for gluon}\fi
+    \ifcase\axo at pdfoutput
+        \AXOputPS{%
+                  #1 #2 #3 #4 #5 #6
+                  \ifAXO at dash \AXO at CurrentDashSize \space \else 0 \fi
+                  #7 #8 add \axoscale \space dashgluon
+        }%
+    \else
+        \getaxohelp{AxoGluon}{#1 #2 #3 #4 #5 #6 
+             #7
+             \ifAXO at dash \AXO at CurrentDashSize \space \else 0 \fi
+            #8}%
+        \AXOputPDF{\contentspdfNoOffset}%
+    \fi
+}
+%
+%	 #] AXO at GluonHelper : 
+%	 #[ AXO at Gluon :
+%
+\def\AXO at Gluon(#1,#2)(#3,#4)#5#6{%
+%
+%   Draws a gluon from (x1,y1) to (x2,y2) with amplitude #5 and number
+%   of windings #6.
+%   Assumes options have been set
+%
+{\AXO at useopts
+    \ifAXO at arrow\AXO at NOTIMPLEMENTED{arrow not implemented for gluon}\fi
+    \AXO at arrowfalse  % To avoid repeated errors
+    \ifAXO at double
+        \AXO at GluonHelper(#1,#2)(#3,#4){#5}{#6}{\AXO at CurrentWidth}{\AXO at CurrentSep}%
+        \SetColor{White}%
+        \AXO at dashfalse
+        \AXO at GluonHelper(#1,#2)(#3,#4){#5}{#6}{-\AXO at CurrentWidth}{\AXO at CurrentSep}%
+    \else
+        \AXO at GluonHelper(#1,#2)(#3,#4){#5}{#6}{0}{\AXO at CurrentWidth}%
+    \fi
+  }%
+\ignorespaces
+}
+%	 #] AXO at Gluon : 
+%	 #[ AXO at GluonArcHelper :
+%
+\def\AXO at GluonArcHelper(#1,#2)(#3,#4,#5)#6#7#8#9{%
+%
+%   Draws a gluon on an arc segment. The center of the curve is at (1,2)
+%   The radius, start angle and target angle are (#3,#4,#5), #6 is the
+%   amplitude of the gluon, and #7 is the number of windings.
+%   Assumes options have been set
+%   Width #8 + #9
+%   Assumes options have been set.
+%   Used as helper from \AXO at GluonArc
+\ifAXO at arrow\AXO at NOTIMPLEMENTED{arrow not implemented for gluon arc}\fi
+\ifcase\axo at pdfoutput
+    \put(\axoxoff,\axoyoff){\AXOspecial{#6 #7 
+        \ifAXO at dash \AXO at CurrentDashSize \space \else 0 \fi
+        \ifAXO at clock true \else false \fi
+        #3 #4 #5
+        #1 \axoxo\space add #2 \axoyo\space add 
+        #8 #9 add \axoscale\space dashgluearc
+    }}%
+\else
+    \getaxohelp{AxoGluonArc}{#1 #2 #3 #4 #5 #6 #7 
+        #8
+        \ifAXO at dash \AXO at CurrentDashSize \space \else 0 \fi
+        \ifAXO at clock 1 \else 0 \fi
+        #9}
+    \put(\axoxoff,\axoyoff){\axo at pdfliteral{\contentspdf}}
+\fi
+}
+%	 #] AXO at GluonArcHelper : 
+%	 #[ AXO at GluonArc :
+%
+\def\AXO at GluonArc(#1,#2)(#3,#4,#5)#6#7{%
+%
+%   Draws a gluon on an arc segment. The center of the curve is at (1,2)
+%   The radius, start angle and target angle are (#3,#4,#5), #6 is the
+%   amplitude of the gluon, and #7 is the number of windings.
+%   Assumes options have been set
+%
+    {\AXO at useopts
+        \ifAXO at arrow\AXO at NOTIMPLEMENTED{arrow not implemented for gluon}\fi
+        \AXO at arrowfalse  % To avoid repeated errors
+        \ifAXO at double
+            \AXO at GluonArcHelper(#1,#2)(#3,#4,#5){#6}{#7}{\AXO at CurrentWidth}{\AXO at CurrentSep}%
+            \SetColor{White}%
+            \AXO at dashfalse
+            \AXO at GluonArcHelper(#1,#2)(#3,#4,#5){#6}{#7}{-\AXO at CurrentWidth}{\AXO at CurrentSep}%
+        \else
+            \AXO at GluonArcHelper(#1,#2)(#3,#4,#5){#6}{#7}{0}{\AXO at CurrentWidth}%
+        \fi
+    }%
+\ignorespaces
+}
+%	 #] AXO at GluonArc : 
+%	 #[ AXO at GluonCircHelper :
+%
+\def\AXO at GluonCircHelper(#1,#2)(#3,#4)#5#6#7#8{%
+%
+%   Draws a gluon on a circle. The center of the circle is at (1,2)
+%   The radius and the phase angle are (#3,#4), 5 is the
+%   amplitude of the gluon, and 6 is the number of windings.
+%   Width #7 + #8
+%   Assumes options have been set.
+%   Used as helper from \AXO at GluonCirc
+\ifAXO at arrow\AXO at NOTIMPLEMENTED{arrow not implemented for gluon arc}\fi
+\ifcase\axo at pdfoutput
+    \put(\axoxoff,\axoyoff){\AXOspecial{%
+       #5 #6
+       \ifAXO at dash \AXO at CurrentDashSize \space \else 0 \fi
+       #3 #4
+       #1 \axoxo\space add #2 \axoyo\space add 
+       #7 #8 add \axoscale\space dashgluoncirc
+    }}%
+\else
+    \getaxohelp{AxoGluonCirc}{#1 #2 #3 #4 #5 #6
+       #7
+       \ifAXO at dash \AXO at CurrentDashSize \space \else 0 \fi
+       #8}
+    \put(\axoxoff,\axoyoff){\axo at pdfliteral{\contentspdf}}
+\fi
+}
+%	 #] AXO at GluonCicHelper : 
+%	 #[ AXO at GluonCirc :
+%
+\def\AXO at GluonCirc(#1,#2)(#3,#4)#5#6{%
+%
+%   Draws a gluon on a circle. The center of the circle is at (1,2)
+%   The radius and the phase angle are (#3,#4), 5 is the
+%   amplitude of the gluon, and 6 is the number of windings.
+%
+    {\AXO at useopts
+        \ifAXO at arrow\AXO at NOTIMPLEMENTED{arrow not implemented for gluon}\fi
+        \AXO at arrowfalse  % To avoid repeated errors
+        \ifAXO at double
+            \AXO at GluonCircHelper(#1,#2)(#3,#4){#5}{#6}{\AXO at CurrentWidth}{\AXO at CurrentSep}%
+            \SetColor{White}%
+            \AXO at dashfalse
+            \AXO at GluonCircHelper(#1,#2)(#3,#4){#5}{#6}{-\AXO at CurrentWidth}{\AXO at CurrentSep}%
+        \else
+            \AXO at GluonCircHelper(#1,#2)(#3,#4){#5}{#6}{0}{\AXO at CurrentWidth}%
+        \fi
+    }%
+\ignorespaces
+}
+%
+% 	#] AXO at GluonCirc : 
+%	 #[ AXO at Line :
+%
+\def\AXO at Line(#1,#2)(#3,#4){%
+%
+%   Draws a line from (x1,y1) to (x2,y2)
+%   Double, dashing, arrow according to current settings
+%
+{\AXO at useopts
+\ifcase\axo at pdfoutput
+    \put(\axoxoff,\axoyoff){%
+        \AXOspecial{%
+            \AXO at ArrowArg \space
+            \ifAXO at flip true \else false \fi
+            \ifAXO at double \AXO at CurrentSep \space \else 0 \fi
+            \ifAXO at dash \AXO at CurrentDashSize \space \else 0 \fi
+            #1 \axoxo\space add #2 \axoyo\space add
+            #3 \axoxo\space add #4 \axoyo\space add 
+            \AXO at CurrentWidth \space \axoscale \space
+            dasharrowdoubleline
+    }}%
+\else
+    \getaxohelp{AxoLine}{#1 #2 #3 #4 
+        \ifAXO at double \AXO at CurrentSep \space \else 0 \fi
+        \ifAXO at dash \AXO at CurrentDashSize \space \else 0 \fi
+        \AXO at ArrowArg \space
+        \ifAXO at flip 1 \else 0 \fi
+        \AXO at CurrentWidth}
+    \put(\axoxoff,\axoyoff){\axo at pdfliteral{\contentspdf}}%
+\fi
+}\ignorespaces
+}
+%
+%	 #] AXO at Line : 
+%	 #[ AXO at Photon :
+%
+\def\AXO at Photon(#1,#2)(#3,#4)#5#6{%
+%
+%   Draws a photon from (x1,y1) to (x2,y2) with amplitude #5 and number
+%   of windings #6.
+%   Assumes options have been set
+%
+{\AXO at useopts
+\ifAXO at arrow\AXO at NOTIMPLEMENTED{arrow not implemented for photon}\fi
+\ifcase\axo at pdfoutput
+    \put(\axoxoff,\axoyoff){\AXOspecial{%
+    #1 \axoxo\space add #2 \axoyo\space add
+    #3 \axoxo\space add #4 \axoyo\space add #5 #6 
+    \ifAXO at double \AXO at CurrentSep \space \else 0 \fi
+    \ifAXO at dash \AXO at CurrentDashSize \space \else 0 \fi
+    \AXO at CurrentWidth\space \axoscale\space dashdoublephoton }}%
+\else
+    \getaxohelp{AxoPhoton}{#1 #2 #3 #4 #5 #6 
+        \ifAXO at double \AXO at CurrentSep \space \else 0 \fi
+        \ifAXO at dash \AXO at CurrentDashSize \space \else 0 \fi
+        \AXO at CurrentWidth}
+    \put(\axoxoff,\axoyoff){\axo at pdfliteral{\contentspdf}}
+\fi
+}\ignorespaces
+}
+%	 #] AXO at Photon : 
+%	 #[ AXO at PhotonArc :
+%
+\def\AXO at PhotonArc(#1,#2)(#3,#4,#5)#6#7{%
+%
+%   Draws a photon on an arc segment. The center of the curve is at (1,2)
+%   The radius, start angle and target angle are (#3,#4,#5), #6 is the
+%   amplitude of the gluon, and #7 is the number of wiggles.
+%   Assumes options have been set
+%
+{\AXO at useopts
+\ifAXO at arrow\AXO at NOTIMPLEMENTED{arrow not implemented for photon arc}\fi
+\ifcase\axo at pdfoutput
+    \put(\axoxoff,\axoyoff){\AXOspecial{%
+        #6 #7 
+        \ifAXO at double \AXO at CurrentSep \space \else 0 \fi
+        \ifAXO at dash \AXO at CurrentDashSize \space \else 0 \fi
+        \ifAXO at clock true \else false \fi
+        #3 #4 #5
+        #1 \axoxo\space add #2 \axoyo\space add 
+        \AXO at CurrentWidth\space \axoscale\space dashdoublephotonarc
+    }}%
+\else
+    \getaxohelp{AxoPhotonArc}{#1 #2 #3 #4 #5 #6 #7 
+        \ifAXO at double \AXO at CurrentSep \space \else 0 \fi
+        \ifAXO at dash \AXO at CurrentDashSize \space \else 0 \fi
+        \ifAXO at clock 1 \else 0 \fi
+        \AXO at CurrentWidth}
+    \put(\axoxoff,\axoyoff){\axo at pdfliteral{\contentspdf}}
+\fi
+}\ignorespaces
+}
+%
+%	 #] AXO at PhotonArc : 
+%	 #[ AXO at ZigZag :
+%
+\def\AXO at ZigZag(#1,#2)(#3,#4)#5#6{%
+%
+%   Draws a zigzag from (x1,y1) to (x2,y2) with amplitude #5 and number
+%   of windings #6.
+%   Assumes options have been set
+%
+{\AXO at useopts
+\ifAXO at arrow\AXO at NOTIMPLEMENTED{arrow not implemented for zigzag}\fi
+\ifcase\axo at pdfoutput
+    \put(\axoxoff,\axoyoff){\AXOspecial{%
+    #1 \axoxo\space add #2 \axoyo\space add
+    #3 \axoxo\space add #4 \axoyo\space add #5 #6 
+    \ifAXO at double \AXO at CurrentSep \space \else 0 \fi
+    \ifAXO at dash \AXO at CurrentDashSize \space \else 0 \fi
+    \AXO at CurrentWidth\space \axoscale\space dashdoublezigzag }}%
+\else
+    \getaxohelp{AxoZigZag}{#1 #2 #3 #4 #5 #6 
+         \ifAXO at double \AXO at CurrentSep \space \else 0 \fi
+         \ifAXO at dash \AXO at CurrentDashSize \space \else 0 \fi
+         \AXO at CurrentWidth}
+    \put(\axoxoff,\axoyoff){\axo at pdfliteral{\contentspdf}}%
+\fi
+}\ignorespaces
+}
+%	 #] AXO at ZigZag : 
+%	 #[ AXO at ZigZagArc :
+%
+\def\AXO at ZigZagArc(#1,#2)(#3,#4,#5)#6#7{%
+%
+%   Draws a zigzag on an arc segment. The center of the curve is at (1,2)
+%   The radius, start angle and target angle are (#3,#4,#5), #6 is the
+%   amplitude of the gluon, and #7 is the number of wiggles.
+%   Assumes options have been set
+%
+{\AXO at useopts
+\ifAXO at arrow\AXO at NOTIMPLEMENTED{arrow not implemented for zigzag arc}\fi
+\ifcase\axo at pdfoutput
+    \put(\axoxoff,\axoyoff){\AXOspecial{%
+        #6 #7 
+        \ifAXO at double \AXO at CurrentSep \space \else 0 \fi
+        \ifAXO at dash \AXO at CurrentDashSize \space \else 0 \fi
+        \ifAXO at clock true \else false \fi
+        #3 #4 #5
+        #1 \axoxo\space add #2 \axoyo\space add 
+        \AXO at CurrentWidth\space \axoscale\space dashdoublezigzagarc
+    }}%
+\else
+    \getaxohelp{AxoZigZagArc}{#1 #2 #3 #4 #5 #6 #7 
+        \ifAXO at double \AXO at CurrentSep \space \else 0 \fi
+        \ifAXO at dash \AXO at CurrentDashSize \space \else 0 \fi
+        \ifAXO at clock 1 \else 0 \fi
+        \AXO at CurrentWidth}
+    \put(\axoxoff,\axoyoff){\axo at pdfliteral{\contentspdf}}
+\fi
+}\ignorespaces
+}
+%
+%	 #] AXO at ZigZagArc : 
+%	 #[ Text and boxes :
+%		#[ SetPFont :
+%
+%               To access fonts, from both latex and pdflatex, we need
+%               to define a mapping from the human-readable name to
+%               the name known to (pdf)latex.  Then we can define a
+%               user command for setting the font.  The human-readable
+%               name is the one used by postscript.
+%            Variables used:
+%           \pfontN = human name of current PS font (e.g., Helvetica).
+%           \pfontC = TeX code for the font (e.g., phvr).
+%           Both are \relax to use regular document font
+%           \axofontsize = size of font (text command with unit)
+
+
+\def\defineaxofont#1#2{%
+    % #1 is user visible name of font, #2 is LaTex name.
+    % Define a command of name #1 to return #2
+    \expandafter\def\csname #1\endcsname{#2}
+}
+
+\def\SetPFont#1#2{%
+    \ifthenelse{ \equal{#1}{} }%
+        {\let\pfontN=\relax  \let\pfontC=\relax}%
+        {\@ifundefined{#1}%
+            {\PackageWarning{axodraw2}{trying to set undefined font `#1'}}%
+            {\def\pfontN{#1}%             Human name (postscript)
+             \def\pfontC{\@nameuse{#1}}%  Code name
+            }%
+        }%
+    \ifthenelse{ \equal{#2}{} }%
+        {%   Use the value of LaTeX's fontsize when the font is used:
+            \def\axofontsize{\f at size}%
+        }%
+        {\def\axofontsize{#2}}%
+\ignorespaces
+}
+
+\def\UseCurrentPSFont{%
+    % Set regular size of regular font, so math has rational size
+    \fontsize{\axofontsize}{\axofontsize}%
+    \selectfont
+    \ifx\pfontC\relax
+    \else
+        \font\axofont = \pfontC \space at \axofontsize pt
+        \axofont
+    \fi
+}
+
+\defineaxofont{AvantGarde-Book}{pagk}
+\defineaxofont{AvantGarde-BookOblique}{pagko}
+\defineaxofont{AvantGarde-Demi}{pagd}
+\defineaxofont{AvantGarde-DemiOblique}{pagdo}
+\defineaxofont{Bookman-Demi}{pbkd}
+\defineaxofont{Bookman-DemiItalic}{pbkdi}
+\defineaxofont{Bookman-Light}{pbkl}
+\defineaxofont{Bookman-LightItalic}{pbkli}
+\defineaxofont{Courier-Bold}{pcrb}
+\defineaxofont{Courier-BoldOblique}{pcrbo}
+\defineaxofont{Courier}{pcrr}
+\defineaxofont{Courier-Oblique}{pcrro}
+\defineaxofont{Helvetica-Bold}{phvb}
+\defineaxofont{Helvetica-BoldOblique}{phvbo}
+\defineaxofont{Helvetica-NarrowBold}{phvbrn}
+\defineaxofont{Helvetica-NarrowBoldOblique}{phvbon}
+\defineaxofont{Helvetica}{phvr}
+\defineaxofont{Helvetica-Oblique}{phvro}
+\defineaxofont{Helvetica-Narrow}{phvrrn}
+\defineaxofont{Helvetica-NarrowOblique}{phvron}
+\defineaxofont{NewCenturySchlbk-Bold}{pncb}
+\defineaxofont{NewCenturySchlbk-BoldItalic}{pncbi}
+\defineaxofont{NewCenturySchlbk-Italic}{pncri}
+\defineaxofont{NewCenturySchlbk-Roman}{pncr}
+\defineaxofont{Palatino-Bold}{pplb}
+\defineaxofont{Palatino-BoldItalic}{pplbi}
+\defineaxofont{Palatino-Italic}{pplri}
+\defineaxofont{Palatino-Roman}{pplr}
+\defineaxofont{Symbol}{psyr}
+\defineaxofont{Times-Bold}{ptmb}
+\defineaxofont{Times-BoldItalic}{ptmbi}
+\defineaxofont{Times-Italic}{ptmri}
+\defineaxofont{Times-Roman}{ptmr}
+\defineaxofont{ZapfChancery-MediumItalic}{pzcmi}
+\defineaxofont{ZapfDingbats}{pzdr}
+
+% Now we can set the default:
+
+\SetPFont{Times-Roman}{10}
+
+%
+%		#] SetPFont : 
+%	 #[ Text :
+%
+% Aim:  \Text(#1,#2)(#3)[#4]#5, to set text #5 at position (#1,#2)
+%       with angle #3 and positioning #4.  
+%       But the presence of (#3) and [#3] is to be optional (with
+%       defaults being equivalent to (0) and []
+%
+\def\Text(#1,#2){%
+    \@ifnextchar(%  )
+        {\Text at A(#1,#2)}%
+        {\Text at A(#1,#2)(0)}%
+}
+%
+\def\Text at A(#1,#2)(#3){%
+    \@ifnextchar[%  ]
+        {\Text at Z(#1,#2)(#3)}%
+        {\Text at Z(#1,#2)(#3)[]}%
+}
+%
+\def\axoscaleTT{\ifPSTextScalesLikeGraphics 1\else \axotextscale \fi}
+\def\axoscalePT{\ifPSTextScalesLikeGraphics \axoscale\else \axotextscale \fi}
+%
+\def\Text at Z(#1,#2)(#3)[#4]#5{%
+    %
+    %   Draws text at (#1,#2). Argument #3 is combination of l, r, t, b to
+    %   indicate positioning instead of default (which is horizontally and
+    %   vertically centered --- these are same as \makebox 
+    %   the text is left adjusted, right adjusted or centered. Or b or t.
+    %   4 is of course the text.
+    %
+    \AxoPut(#1,#2){%
+        \scalebox{\axoscaleTT}%
+                 {\rotatebox{#3}{\makebox(0,0)[#4]{#5}}}%
+    }%
+    \ignorespaces
+}
+%
+%	 #] Text : 
+%		#[ PText : *+
+%
+\def\PText(#1,#2)(#3)[#4]#5{%
+%
+%   Draws a postscript text in a postscript font.
+%   Focal point is (1,2), rotation angle is 3, 4 is the mode (as in text)
+%   and 5 is the text.
+%
+    \begingroup
+        \UseCurrentPSFont
+        \AxoPut(#1,#2){%
+              \scalebox{\axoscalePT}%
+                       {\rotatebox{#3}{\makebox(0,0)[#4]{#5}}}%
+            }%
+    \endgroup
+    \ignorespaces
+}
+%
+%		#] PText : 
+%		#[ RText :
+%
+\def\RText(#1,#2)[#3](#4)#5{%
+%
+%   Draws rotated text at (1,2). Argument 3 is l,r or c indicating whether
+%   the text is left adjusted, right adjusted or centered.
+%   4 is the rotation angle and 5 is of course the text.
+%
+    \Text(#1,#2)(#4)[#3]{#5}%
+    \ignorespaces
+}
+%
+%		#] RText : 
+%		#[ rText : *
+%
+\def\rText(#1,#2)[#3][#4]#5{%
+%
+%   Draws rotated text at (1,2). Argument 3 is l,r or c indicating whether
+%   the text is left adjusted, right adjusted or centered.
+%   4 is the rotation angle (specified as l, r, u, or blank,
+%    and 5 is of course the text.
+%
+    \begingroup
+    \def\this at angle{0}%
+    \ifx#4l%
+        \def\this at angle{90}%
+    \else 
+        \ifx#4r%
+            \def\this at angle{-90}%
+        \else
+            \ifx#4u%
+                \def\this at angle{180}%
+            \fi
+        \fi
+    \fi
+    \Text(#1,#2)(\this at angle)[#3]{#5}%
+    \endgroup
+    \ignorespaces
+}
+%
+%		#] rText : 
+%		#[ BText :
+%
+\def\BText(#1,#2)#3{%
+%
+%   Draws a box with the center at (x1,y1) and postscript text #3 in it.
+%
+    \AxoPut(#1,#2){%
+        \edef\axoscale{\axoscalePT}%
+        \SetTmpBox{#3}%
+        \BBoxc(0,0)(\tmpXT,\tmpYT)%
+        \PText(0,0)(0)[]{\usebox{\tmpBox}}%
+    }%
+    \ignorespaces
+}
+%
+%		#] BText : 
+%		#[ GText :
+%
+\def\GText(#1,#2)#3#4{%
+%
+%   Draws a box with the center at (x1,y1) and postscript(#4) text in it.
+%   The grayness of the box is given by #3
+%
+    \AxoPut(#1,#2){%
+        \edef\axoscale{\axoscalePT}%
+        \SetTmpBox{#4}%
+        \GBoxc(0,0)(\tmpXT,\tmpYT){#3}%
+        \PText(0,0)(0)[]{\usebox{\tmpBox}}%
+    }%
+    \ignorespaces
+}
+%
+%		#] GText : 
+%		#[ CText :
+%
+\def\CText(#1,#2)#3#4#5{%
+%
+%   Draws a box with the center at (x1,y1) and postscript(#5) text in it.
+%   The color of box and text is in #3
+%   The color of the background is in #4
+%
+    \AxoPut(#1,#2){%
+        \edef\axoscale{\axoscalePT}%
+        \SetTmpBox{\SetColor{#3}{#5}}%
+        \CBoxc(0,0)(\tmpXT,\tmpYT){#3}{#4}%
+        \PText(0,0)(0)[]{\usebox{\tmpBox}}%
+    }%
+}
+%
+%		#] CText : 
+%		#[ BTwoText :
+%
+\def\BTwoText(#1,#2)#3#4{%
+%
+%   Draws a box with the center at (x1,y1) and two lines of postscript
+%   text in it.
+%
+    \AxoPut(#1,#2){%
+        \edef\axoscale{\axoscalePT}%
+        \SetTmpBoxTwo{#3}{#4}%
+        \BBoxc(0,0)(\tmpXT,\tmpYT)%
+        \PText(0,0)(0)[]{\usebox{\tmpBox}}%
+    }%
+    \ignorespaces
+}
+%
+%		#] BTwoText : 
+%		#[ GTwoText :
+%
+\def\GTwoText(#1,#2)#3#4#5{%
+%
+%   Draws a box with the center at (x1,y1) and two lines of postscript
+%   text (#4 and #5) in it.
+%   The grayness of the box is given by #3
+%
+    \AxoPut(#1,#2){%
+        \edef\axoscale{\axoscalePT}%
+        \SetTmpBoxTwo{#4}{#5}%
+        \GBoxc(0,0)(\tmpXT,\tmpYT){#3}%
+        \PText(0,0)(0)[]{\usebox{\tmpBox}}%
+    }%
+    \ignorespaces
+}
+%
+%		#] GTwoText : 
+%		#[ CTwoText :
+%
+\def\CTwoText(#1,#2)#3#4#5#6{%
+%
+%   Draws a box with the center at (x1,y1) and two lines of postscript
+%   text (#5 and #6) in it.
+%   The color of the box and the text is given by #3
+%   The background color is given by #4
+%
+    \AxoPut(#1,#2){%
+        \edef\axoscale{\axoscalePT}%
+        \SetTmpBoxTwo{\SetColor{#3}#5}{\SetColor{#3}#6}%
+        \CBoxc(0,0)(\tmpXT,\tmpYT){#3}{#4}%
+        \PText(0,0)(0)[]{\usebox{\tmpBox}}%
+    }%
+    \ignorespaces
+}
+%
+%		#] CTwoText : 
+%	 #] Text and boxes : 
+% 	#] Mixed routines : 
+% 	#[ Postscript specific :
+%
+%   The code here is used only when we need Postscript output. This concerns
+%   mainly the Postscript library.
+%
+\ifcase\axo at pdfoutput
+%
+%		#[ PostScript preamble :
+%
+\AtBeginDvi{
+%
+%    This forces the PostScript preamble commands to be put into the
+%       dvi file.  Without this, revtex4 can remove them by funny
+%       stuff with manipulating the first page.
+%
+%		#[ inventory :
+%
+%   The variables in here are:
+%   num,num1,ampi,ampi1,x1,y1,x2,y2,x3,y3,x4,y4,dx,dy,dr
+%   width, arrowpos, arrowspec, arrowwidth, arrowlength, arrowinset
+%   arcend, arcmid, arcstart, radius, linesep, angdsize, dsize,
+%   clockwise, dotsize, inc, pi, sign
+%   darc,const,amp1, amp2, amp3, amp4, amp5, amp6, amp7, amp8, amp1i
+%   gcolor,xx2
+%
+%   NOTE: blank lines are not allowed inside the postscript code!!!!!
+%   (LaTeX sneaks \par commands in and the postscript goes boink)
+%
+\special{color}  % Provoke dvips into including color.pro
+                 % Revtex4 in 2-column mode fails to force that
+%
+\special{!
+  /savecolor { %/cmyk [ currentcmykcolor ]  def 
+               /oldcolor [ [ currentcolor ] currentcolorspace ] def
+             } def
+  /restorecolor { oldcolor aload pop setcolorspace aload pop setcolor } def
+%  /savecolor { [ currentcmykcolor ] /cmyk ed } def
+%  /restorecolor { cmyk aload pop setcmykcolor } def
+%  % Do a save color now, to ensure default variables are defined:
+  savecolor
+}
+%
+\special{! 
+    /pi 3.141592 def
+    /ed{exch def}def 
+% Implement conversion of length unit from pt to bp by scaling
+    /gs{gsave 1.00375 div dup scale}def
+    /gsw{ gs
+          /width ed
+          width setlinewidth
+    }def
+    /p1{/y1 ed /x1 ed}def
+    /p2{/y2 ed /x2 ed}def
+    /p3{/y3 ed /x3 ed}def
+    /p4{/y4 ed /x4 ed}def
+    /pp1{/yy1 ed /xx1 ed}def
+    /pp2{/yy2 ed /xx2 ed}def
+    /pp3{/yy3 ed /xx3 ed}def
+    /setabs{
+        % Usage /var setabs
+        % Sets variable to its absolute value
+        dup load abs def
+    }def
+    %
+    /normalizearc {
+        % Usage: clockwise r angle1 angle2 x y normalizearc
+        % Adjusts coordinate system for anticlockwize arc from angle
+        % zero, centered at origin.
+        % Left on stack: r d_angle, with 0<d_angle <=360.
+        % Zero angle arc converted to loop
+        translate
+        exch dup rotate  % Origin of arc now at angle 0
+        sub              % Change angle2 to dangle
+        3 2 roll
+        { % Clockwise arc: obtain from anticlockwise arc
+          neg
+          1 -1 scale
+        } if
+        dup abs 360 ge 
+        {  %Outside 360 degrees, make exactly a loop
+           pop 360 
+        }
+        { % Convert to positive angle mod 360.  
+           dup
+           dup 0 lt { 360 sub } if
+           360 div truncate 360 mul sub
+           dup 0.1 lt { pop 360 } if
+        }ifelse
+    } def
+    %
+    /normalizeline {
+        % Usage: x1 y1 x2 y2 normalizeline
+        % Adjusts coordinate system for line from origin in x direction
+        % Left on stack: dr = length of line
+        3 index 3 index translate
+        2 index sub exch 3 index sub
+        2 copy atan rotate
+        dup mul exch dup mul add sqrt
+        3 1 roll pop pop
+    } def
+    %
+    /abox{
+        newpath 
+            x1 y1 moveto
+            x1 y2 lineto
+            x2 y2 lineto
+            x2 y1 lineto
+         closepath
+    }def
+    /atriangle{
+        newpath
+            x1 y1 moveto
+            x2 y2 lineto
+            x3 y3 lineto
+        closepath
+   }def
+   /abezier{
+       newpath
+           x1 y1 moveto
+           x2 y2 x3 y3 x4 y4 curveto
+   }def
+   /distance{
+      %   Usage: x1 y1 x2 y2 distance -> x1 y1 x2 y2 r
+      %   Pure stack based: computes distance between points.  Keeps points
+     dup
+     3 index sub dup mul 
+     2 index 5 index sub dup mul add sqrt
+   } def
+   /setbackgroundcolor{
+     0 0 0 0 setcmykcolor
+   } def
+}
+%
+%		#] inventory : 
+%		#[ Arrows :
+%
+% Define better arrows
+%
+\special{!
+% Arrow making routines
+%
+    /getarrow {
+        /witharrow ed
+        /arrowpos ed
+        /arrowaspect ed
+        /arrowscale ed
+        /arrowinset ed
+        /arrowlength ed
+        /arrowwidth ed
+        /arrowstroke ed
+    } def
+    /drawarrow {
+        gsave
+            [] 0 setdash
+            rotate
+            arrowwidth 0 eq {
+                arrowlength 0 eq {
+                    linewidth linesep 0.7 mul add 1 add 1.2 mul dup
+                    2.5 lt {
+                        pop
+                        2.5
+                    } if
+                    arrowscale mul
+                    /arrowwidth ed
+                    /arrowlength arrowwidth 2 mul arrowaspect mul def
+                } {
+                    /arrowlength arrowlength arrowscale mul def
+                    /arrowwidth arrowlength 2 div arrowaspect div def
+                } ifelse
+            } {
+                arrowlength 0 eq {
+                    /arrowwidth arrowwidth arrowscale mul def
+                    /arrowlength arrowwidth 2 mul arrowaspect mul def
+                } {
+                    /arrowwidth arrowwidth arrowscale mul def
+                    /arrowlength arrowlength arrowscale mul def
+                } ifelse
+            } ifelse
+            arrowstroke 0 ne {
+              arrowstroke setlinewidth
+              gsave
+              setbackgroundcolor
+              newpath
+                0           arrowlength -0.5 mul moveto         
+                arrowwidth  arrowlength          rlineto
+                arrowwidth -1  mul  arrowlength arrowinset mul -1 mul rlineto
+                arrowwidth -1  mul  arrowlength arrowinset mul rlineto
+              closepath fill
+              grestore
+              newpath
+                0           arrowlength -0.5 mul moveto         
+                arrowwidth  arrowlength          rlineto
+                arrowwidth -1  mul  arrowlength arrowinset mul -1 mul rlineto
+                arrowwidth -1  mul  arrowlength arrowinset mul rlineto
+              closepath stroke
+            } {
+              newpath
+                0           arrowlength -0.5 mul moveto         
+                arrowwidth  arrowlength          rlineto
+                arrowwidth -1  mul  arrowlength arrowinset mul -1 mul rlineto
+                arrowwidth -1  mul  arrowlength arrowinset mul rlineto
+              closepath fill
+            } ifelse
+        grestore
+    } def
+%
+}
+%
+%		#] Arrows : 
+%
+% Basic line drawing
+%		#[ fixdash :
+%
+\special{! /fixdash{
+%   Usage: r dashsize fixdash
+%   Sets renormalized dashsize, doing
+%      [rdsize rdsize] 0 setdash
+%   so that n+1/2 patterns fit in length r
+%   If dsize is too big or if dsize is zero, use continuous line
+%   Uses stack, no named variables.
+    2 copy gt 
+    1 index 0 ne 
+    and 
+    {
+       2 copy 
+       2 mul div 0.5 sub round 
+       dup 0 le { pop 0 } if
+       2 mul 1 add exch pop div
+       dup 2 array astore 0 setdash
+    } 
+    { pop pop [] 0 setdash }
+    ifelse
+} def }
+%
+%		#] fixdash : 
+%		#[ dashline :
+%
+\special{! /dashline{
+%   Draws a straight dashed line: x1,y1,x2,y2
+%   Assumes dsize already set
+%   The pattern is ideally [dsize dsize] 0 setdash
+%   but we want to have (2*n+1)/2 patterns, so dsize must be rounded
+%   If dsize is too large or zero, use a continuous line
+%   Pure stack operation. 
+    gsave
+    distance dsize fixdash   % Function distance leaves points on stack
+    newpath
+      moveto
+      lineto
+    stroke
+    grestore
+} def }
+%		#] dashline : 
+%		#[ dasharc :
+%
+\special{! /dasharc{
+%   Draws an arc segment anticlockwise:
+%   x_center, y_center, radius, start_angle, end_angle
+%   Assumes angdsize (radians) set elsewhere
+    gsave
+    3 copy sub abs
+    % Top of stack is copy of radius, start_angle, end_angle
+    pi mul 180 div mul 
+    % Top of stack is arc length
+    3 index angdsize mul fixdash
+    newpath  arc stroke
+    grestore
+} def }
+%
+%		#] dasharc : 
+%		#[ dashgluon :
+%
+\special{! /dashgluon{
+%
+%   Draw gluon, possibly dashed
+%   We have a 'head' and a 'tail' and in between the 'body'
+%   The head + tail is 2 windings. The body is num-1 windings.
+%
+    gsw
+    /dsize ed
+    /num ed /ampi ed 
+    normalizeline /dr ed
+    /num num 0.5 sub round def
+%
+    dsize 0 eq {
+    [] 0 setdash
+    } {
+        /amp8 ampi abs 0.9 mul def
+    /size amp8 neg 0 amp8 neg ampi 2 mul dup dr num 2 mul 2 add div exch
+    1 lengthofbezier def
+%
+    /ndash size dsize 2 mul div truncate def
+    ndash 0 eq { /ndash 1 def } if
+    size 2 dsize ndash mul mul sub abs
+    size 2 dsize ndash 1 add mul mul sub abs gt { /ndash ndash 1 add def } if
+    /dsize size 2 ndash mul div def
+    [ dsize dsize ] dsize 2 div setdash
+    } ifelse
+%
+    /inc dr num 2 mul 2 add div def         % increment per half winding
+    /amp8 ampi 0.9 mul def
+    amp8 0 lt {/amp8 amp8 neg def} if
+%
+    /x1 inc 2 mul def
+%
+    newpath
+    x1 ampi neg moveto
+        x1 amp8 add dup ampi neg exch ampi inc 1.4 mul ampi curveto
+        inc 0.5 mul ampi inc 0.1 mul ampi 0.5 mul 0 0 curveto
+    stroke
+    newpath
+    x1 ampi neg moveto
+        2 1 num {
+            pop
+            x1 amp8 sub dup ampi neg exch ampi dup x1 inc add exch curveto
+            /x1 x1 inc dup add add def
+            x1 amp8 add dup ampi exch ampi neg dup x1 exch curveto
+        } for
+%
+        x1 amp8 sub dup ampi neg exch ampi dup x1 inc 0.6 mul add exch curveto
+        x1 inc 1.5 mul add ampi dr inc 0.1 mul sub ampi 0.5 mul dr 0 curveto
+    stroke
+%
+    grestore
+} def }
+%
+%		#] dashgluon : 
+%		#[ dashdoublephoton :
+%
+\special{! /dashdoublephoton{
+%
+%   Draws a photon from x1,y1 to x2,y2 with amplitude A and n wiggles
+%   Possibly double
+%
+    gsw 
+    /dsize ed
+    /linesep ed
+    /num ed /ampi ed 
+    normalizeline /dr ed
+    /num num 2 mul 0.5 sub round def
+%
+    dsize 0 eq {
+        [] 0 setdash
+    } {
+%       Compute the dash size
+       /xdd dr num div def
+       /size 4 3 div xdd mul pi div dup neg xdd add
+             4 3 div ampi mul dup 3 1 roll xdd 0 1 lengthofbezier 2 div def
+       /ndash size dsize 2 mul div truncate def
+       ndash 0 eq { /ndash 1 def } if
+       size 2 dsize ndash mul mul sub abs
+       size 2 dsize ndash 1 add mul mul sub abs gt { /ndash ndash 1 add def } if
+       /dsize size 2 ndash mul div def
+       [ dsize dsize ] dsize 2 div setdash
+    } ifelse
+%
+    linesep 0 eq 
+       { 0 0 dr 0 ampi num photon1 }
+       {
+%         0 linesep 2 div  dup dr exch  ampi num photon1 
+%         0 linesep -2 div dup dr exch  ampi num photon1 
+%
+          linesep width add setlinewidth 0 0 dr 0 ampi num photon1
+          [] 0 setdash
+          0 0 0 0 setcmykcolor
+          linesep width sub setlinewidth 0 0 dr 0 ampi num photon1
+%
+       }
+    ifelse
+    grestore
+} def }
+%
+%		#] dashdoublephoton : 
+%		#[ photon1 :
+%
+\special{! /photon1{
+%
+%   Draws a single photon from x1,y1 to x2,y2 with amplitude A and n wiggles
+%
+    gsave
+    /num1 ed /ampi1 ed 
+    normalizeline /dr ed
+%
+    /x2 dr num1 div def
+    /sign 1 def
+    1 1 num1 {
+        pop
+        newpath
+        0 0 moveto
+        4 3 div x2 mul pi div dup neg x2 add
+        4 3 div ampi1 sign mul mul dup 3 1 roll
+        x2 0 curveto
+        stroke
+        /sign sign neg def
+        x2 0 translate
+    } for
+%
+    grestore
+} def }
+%
+%		#] photon1 : 
+%		#[ dashdoublezigzag :
+%
+\special{! /dashdoublezigzag{
+%
+%   Draws a zigzag from x1,y1 to x2,y2 with amplitude A and n wiggles
+%   Possibly double
+%
+    gsw 
+    /dsize ed
+    /linesep ed
+    /num ed /ampi ed 
+    normalizeline /dr ed
+    /num num 2 mul 0.5 sub round def
+%
+    dsize 0 eq {
+        [] 0 setdash
+    } {
+%       Compute the dash size
+       /size dr num 2 mul div dup mul ampi dup mul add sqrt def
+       /ndash size dsize 2 mul div truncate def
+       ndash 0 eq { /ndash 1 def } if
+       size 2 dsize ndash mul mul sub abs
+       size 2 dsize ndash 1 add mul mul sub abs gt { /ndash ndash 1 add def } if
+       /dsize size 2 ndash mul div def
+       [ dsize dsize ] dsize 2 div setdash
+    } ifelse
+%
+    linesep 0 eq 
+       { 0 0 dr 0 ampi num zigzag1 }
+       {
+%         0 linesep 2 div  dup dr exch  ampi num zigzag1 
+%         0 linesep -2 div dup dr exch  ampi num zigzag1 
+%
+          linesep width add setlinewidth 0 0 dr 0 ampi num zigzag1
+          [] 0 setdash
+          0 0 0 0 setcmykcolor
+          linesep width sub setlinewidth 0 0 dr 0 ampi num zigzag1
+%
+       }
+    ifelse
+    grestore
+} def }
+%
+%		#] dashdoublezigzag : 
+%		#[ zigzag1 :
+%
+\special{! /zigzag1{
+%
+%   Draws a single zigzag from x1,y1 to x2,y2 with amplitude A and n wiggles
+%
+    gsave
+    /num1 ed /ampi1 ed 
+    normalizeline /dr ed
+%
+    /x2 dr num1 div def
+    /sign 1 def
+    1 1 num1 {
+        pop
+        newpath
+        0 0 moveto
+        x2 2 div ampi1 sign mul lineto
+        x2 0 lineto
+        stroke
+        /sign sign neg def
+        x2 0 translate
+    } for
+%
+    grestore
+} def }
+%
+%		#] zigzag1 : 
+%		#[ dashgluearc :
+%
+\special{! /dashgluearc{
+%
+%   Draws a gluon on an arcsegment
+%   gluon_radius, num, linesep (0 for no-double), dsize (0 for no dashes)
+%   clock, radius, start_angle, end_angle, x_center, y_center
+%   in which num is the number of windings of the gluon.
+%
+%   Method for the gluon arc itself:
+%   1:  compute length of arc.
+%   2:  generate gluon in x and y as if the arc is a straight line
+%   3:  x' = (radius+y)*cos(x*const)
+%       y' = (radius+y)*sin(x*const)
+%
+    gsw 
+    normalizearc
+    /darc ed  /radius ed /dsize ed /num ed /ampi ed
+    /num num 0.5 sub round def
+%
+    dsize 0 eq {
+    [] 0 setdash
+    } {
+    /dr radius darc mul pi mul 180 div def  % length of segment.
+        /const darc dr div def                  % conversion constant
+        /inc dr num 2 mul 2 add div def    % increment per half winding
+        /amp8 ampi 0.9 mul def
+        /amp1 radius ampi add def
+    /amp2 radius ampi sub def
+    /amp4 amp1 inc amp8 add const mul cos div def
+    /amp5 amp2 amp8 const mul cos div def
+    amp8 0 lt {/amp8 amp8 neg def} if
+    /x1 inc 2 mul def
+    /x0 x1 const mul cos amp2 mul def
+    /y0 x1 const mul sin amp2 mul def
+    x1 amp8 sub const mul dup cos amp5 mul x0 sub exch sin amp5 mul y0 sub
+    x1 amp8 sub const mul dup cos amp4 mul x0 sub exch sin amp4 mul y0 sub
+    x1 inc add const mul dup cos amp1 mul x0 sub exch sin amp1 mul y0 sub
+    1 lengthofbezier
+    /size ed
+%
+    /ndash size dsize 2 mul div truncate def
+    ndash 0 eq { /ndash 1 def } if
+    size 2 dsize ndash mul mul sub abs
+    size 2 dsize ndash 1 add mul mul sub abs gt { /ndash ndash 1 add def } if
+    /dsize size 2 ndash mul div def
+    [ dsize dsize ] dsize 2 div setdash
+    } ifelse
+%
+    /dr radius darc mul pi mul 180 div def  % length of segment.
+    /const darc dr div def                  % conversion constant
+    /inc dr num 2 mul 2 add div def    % increment per half winding
+    /amp8 ampi 0.9 mul def
+    /amp1 radius ampi add def
+    /amp2 radius ampi sub def
+    /amp3 radius ampi 2 div add def
+    /amp4 amp1 inc amp8 add const mul cos div def
+    /amp5 amp2 amp8 const mul cos div def
+    /amp6 amp1 inc 0.6 mul amp8 add const mul cos div def
+    /amp7 amp1 inc 0.9 mul const mul cos div def
+    amp8 0 lt {/amp8 amp8 neg def} if
+%
+    newpath
+        /x1 inc 2 mul def
+        x1 const mul dup cos amp2 mul exch sin amp2 mul
+    moveto
+        x1 amp8 add const mul dup cos amp5 mul exch sin amp5 mul
+        x1 amp8 add const mul dup cos amp6 mul exch sin amp6 mul
+        inc 1.4 mul const mul dup cos amp1 mul exch sin amp1 mul
+    curveto
+        inc 0.5 mul const mul dup cos amp7 mul exch sin amp7 mul
+        inc 0.1 mul const mul dup cos amp3 mul exch sin amp3 mul
+        radius 0
+    curveto
+    stroke
+    newpath
+        x1 const mul dup cos amp2 mul exch sin amp2 mul moveto
+        2 1 num { pop
+            x1 amp8 sub const mul dup cos amp5 mul exch sin amp5 mul
+            x1 amp8 sub const mul dup cos amp4 mul exch sin amp4 mul
+            x1 inc add const mul dup cos amp1 mul exch sin amp1 mul
+                curveto
+            /x1 x1 inc dup add add def
+            x1 amp8 add const mul dup cos amp4 mul exch sin amp4 mul
+            x1 amp8 add const mul dup cos amp5 mul exch sin amp5 mul
+            x1 const mul dup cos amp2 mul exch sin amp2 mul
+                curveto
+        } for
+        x1 amp8 sub const mul dup cos amp5 mul exch sin amp5 mul
+        x1 amp8 sub const mul dup cos amp6 mul exch sin amp6 mul
+        x1 inc 0.6 mul add const mul dup cos amp1 mul exch sin amp1 mul
+        curveto
+        x1 inc 1.5 mul add const mul dup cos amp7 mul exch sin amp7 mul
+        dr inc 0.1 mul sub const mul dup cos amp3 mul exch sin amp3 mul
+        dr const mul dup cos radius mul exch sin radius mul
+        curveto
+    stroke
+%
+    grestore
+} def
+}
+%
+%		#] dashgluearc : 
+%		#[ dashdoublephotonarc :
+%
+\special{! /dashdoublephotonarc{
+%
+%   Draws a photon on an arcsegment
+%   photon_radius, num, linesep (0 for no-double), dsize (0 for no dashes),
+%   clock, radius, start_angle, end_angle, x_center, y_center
+%   in which num is the number of wiggles of the photon.
+%
+    gsw 
+    normalizearc
+    /darc ed  /radius ed /dsize ed /linesep ed /num ed /ampli ed
+%
+    /num num 2 mul round def    % number of half wiggles
+    /darc1 darc num div def
+    /cp darc1 cos def
+    /sp darc1 sin def
+    darc1 2 div dup
+    /cp2 exch cos def
+    /sp2 exch sin def
+%
+    dsize 0 eq {
+        [] 0 setdash
+    } {
+%
+%       Compute the length of the outer curve and the inner curve.
+%       There must be an integer number of patterns in half the sum.
+%       The we use half of the first to determine where in the pattern
+%       we should start.
+%
+        /ampli1 ampli def
+        /beta radius darc1 mul 180 ampli1 mul div def
+        /tt sp cp beta mul sub cp sp beta mul add div def
+        /amp1 radius ampli1 add 8 mul beta cp2 mul sp2 sub mul beta 4 cp add mul
+            tt cp mul 3 mul sp 4 mul sub add radius mul sub
+            beta tt sub 3 mul div def           % this is x2
+        radius ampli1 add 8 mul cp2 mul 1 cp add radius mul sub 3 div amp1 sub
+            dup radius sub exch radius sub beta mul             % x1,y1
+        amp1 radius sub amp1 radius cp mul sub tt mul radius sp mul add     % x2,y2
+        radius cp mul radius sub radius sp mul             % x3 y3
+                1 lengthofbezier
+        /len1 ed
+        /ampli1 ampli1 neg def
+        /beta radius darc1 mul 180 ampli1 mul div def
+        /tt sp cp beta mul sub cp sp beta mul add div def
+        /amp1 radius ampli1 add 8 mul beta cp2 mul sp2 sub mul beta 4 cp add mul
+            tt cp mul 3 mul sp 4 mul sub add radius mul sub
+            beta tt sub 3 mul div def           % this is x2
+        radius ampli1 add 8 mul cp2 mul 1 cp add radius mul sub 3 div amp1 sub
+            dup radius sub exch radius sub beta mul             % x1,y1
+        amp1 radius sub amp1 radius cp mul sub tt mul radius sp mul add     % x2,y2
+        radius cp mul radius sub radius sp mul             % x3 y3
+                1 lengthofbezier
+        /len2 ed
+        /size len1 len2 add 2 div def
+        /size2 len1 2 div def
+%
+        /ndash size dsize 2 mul div truncate def
+        ndash 0 eq { /ndash 1 def } if
+        size 2 dsize ndash mul mul sub abs
+        size 2 dsize ndash 1 add mul mul sub abs gt { /ndash ndash 1 add def } if
+        /dsize size 2 ndash mul div def
+        /numd size2 dsize 2 mul div truncate def
+        /dstart dsize 2 div size2 sub 2 numd dsize mul mul add def
+        dstart 0 lt { /dstart dstart dsize 2 mul add def } if
+        [ dsize dsize ] dstart setdash
+    } ifelse
+%
+    linesep 0 eq { 
+        radius photonarc1 
+    } {
+        linesep width add setlinewidth radius photonarc1
+        [] 0 setdash
+        0 0 0 0 setcmykcolor
+        linesep width sub setlinewidth radius photonarc1
+    } ifelse
+%
+    grestore
+} def }
+%
+%		#] dashdoublephotonarc : 
+%		#[ photonarc1 :
+%
+\special{! /photonarc1{
+%   Usage: radius photonarc1
+%   Draws a single photon on an arcsegment.
+%   Called from dashdoublephotonarc with coordinates centered on center,
+%   start on x-axis.  
+%   Assume the following are set: num, ampli, arcend phi, arcstart phi/2, cp,
+%      cp2, sp, sp2.
+%   Draws a photonarc center at x1,y1, radius arcstart,arcend, amplitude
+%       number of wiggles,  width, scale
+%
+    gsave
+    /radius1 ed
+    % Local copy of amplitude, since I change it
+    /ampli1 ampli def
+%
+    newpath
+    radius1 0 moveto
+    1 1 num { 1 sub /ii ed
+        /cpi darc1 ii mul cos def
+        /spi darc1 ii mul sin def
+        /beta radius1 darc1 mul 180 ampli1 mul div def
+        /tt sp cp beta mul sub cp sp beta mul add div def
+        /x2 radius1 ampli1 add 8 mul beta cp2 mul sp2 sub mul beta 4 cp add mul
+            tt cp mul 3 mul sp 4 mul sub add radius1 mul sub
+            beta tt sub 3 mul div def
+        /x1 radius1 ampli1 add 8 mul cp2 mul 1 cp add radius1 mul sub 3 div x2 sub def
+        /y1 x1 radius1 sub beta mul def
+        /y2 x2 radius1 cp mul sub tt mul radius1 sp mul add def
+        /x3 radius1 cp mul def
+        /y3 radius1 sp mul def
+        x1 cpi mul y1 spi mul sub y1 cpi mul x1 spi mul add
+        x2 cpi mul y2 spi mul sub y2 cpi mul x2 spi mul add
+        x3 cpi mul y3 spi mul sub y3 cpi mul x3 spi mul add
+                curveto
+        /ampli1 ampli1 neg def
+    } for
+    stroke
+%
+    grestore
+} def }
+%
+%		#] photonarc1 : 
+%		#[ dashdoublezigzagarc :
+%
+\special{! /dashdoublezigzagarc{
+%
+%   Draws a zigzag on an arcsegment
+%   zigzag_radius, num, linesep (0 for no-double), dsize (0 for no dashes),
+%   clock, radius, start_angle, end_angle, x_center, y_center
+%   in which num is the number of wiggles of the zigzag.
+%
+    gsw 
+    normalizearc
+    /darc ed  /radius ed /dsize ed /linesep ed /num ed /ampli ed
+%
+    /num num 2 mul round def    % number of half wiggles
+    /darc1 darc num div def
+    /cp darc1 cos def
+    /sp darc1 sin def
+    darc1 2 div dup
+    /cp2 exch cos def
+    /sp2 exch sin def
+%
+    dsize 0 eq {
+        [] 0 setdash
+    } {
+        /size ampli dup mul radius dup mul add radius dup mul ampli dup mul sub
+            cp mul sub 2 div sqrt def
+        /size2 ampli dup mul ampli radius add radius mul 2 mul 1 cp2 sub mul
+            add sqrt def
+%
+        /ndash size dsize 2 mul div truncate def
+        ndash 0 eq { /ndash 1 def } if
+        size 2 dsize ndash mul mul sub abs
+        size 2 dsize ndash 1 add mul mul sub abs gt { /ndash ndash 1 add def } if
+        /dsize size 2 ndash mul div def
+        /numd size2 dsize 2 mul div truncate def
+        /dstart dsize 2 div size2 sub 2 numd dsize mul mul add def
+        dstart 0 lt { /dstart dstart dsize 2 mul add def } if
+        [ dsize dsize ] dstart setdash
+    } ifelse
+%
+    linesep 0 eq { 
+          radius zigzagarc1 
+    } {
+        linesep width add setlinewidth radius zigzagarc1
+        [] 0 setdash
+        0 0 0 0 setcmykcolor
+        linesep width sub setlinewidth radius zigzagarc1
+    } ifelse
+%
+    grestore
+} def }
+%
+%		#] dashdoublezigzagarc : 
+%		#[ zigzagarc1 :
+%
+\special{! /zigzagarc1{
+%   Usage: radius zigzagarc1
+%   Draws a single zigzag on an arcsegment.
+%   Called from dashdoublezigzagarc with coordinates centered on center,
+%   start on x-axis.  
+%   Assume the following are set: num, ampli, arcend phi, arcstart phi/2, cp,
+%      cp2, sp, sp2.
+%   Draws a zigzagarc center at x1,y1, radius arcstart,arcend, amplitude
+%       number of wiggles,  width, scale
+%
+    gsave
+    /radius1 ed
+%   Local copy of amplitude, since I change it
+    /ampli1 ampli def
+%
+%   Num is the number of half wiggles. We like to start and end with
+%   quarter wiggles though.
+%
+    /darc2 darc1 2 div def
+    newpath
+    radius1 0 moveto
+    darc2 dup sin exch cos
+    radius1 ampli1 add mul exch radius1 ampli1 add mul lineto
+    /ampli1 ampli1 neg def
+    /num1 num 1 sub def
+    1 1 num1 {
+        darc1 mul darc2 add dup sin exch cos
+        radius1 ampli1 add mul exch radius1 ampli1 add mul lineto
+        /ampli1 ampli1 neg def
+    } for
+    num darc1 mul dup sin exch cos
+    radius1 mul exch radius1 mul lineto
+    stroke
+%
+    grestore
+} def }
+%
+%		#] zigzagarc1 : 
+%		#[ dashgluoncirc :
+%
+\special{! /dashgluoncirc{
+%
+%   Draws a gluon on a complete circle
+%   cmyk color setting
+%   gluon_ampl, num, linesep (0 for no-double), dsize (0 for no dashes)
+%   radius, phase_angle, x_center, y_center
+%   in which num is the number of windings of the gluon.
+%
+    gsw 
+    translate
+    /phase ed /radius ed /dsize ed /num ed /ampi ed
+    /num num 0.5 sub round def
+    /darc 180 num div def
+%
+%   We rotate in such a way that 0 angle becomes more accessible.
+%
+    darc phase add rotate
+%
+    dsize 0 eq {
+        [] 0 setdash
+    } {
+        /dr radius 2 mul pi mul def  % 2*pi*r
+        /inc dr 2 num mul div def    % 2*pi*r/(2*num)
+        /const 360 dr div def        % 360/(2*pi*r)
+        /amp8 ampi 0.9 mul def
+        /amp1 radius ampi add def
+        /amp2 radius ampi sub def
+        /amp4 amp1 inc amp8 add const mul cos div def
+        /amp5 amp2 amp8 const mul cos div def
+        amp8 0 lt {/amp8 amp8 neg def} if
+        /xx inc 2 mul def
+        /x0 amp1 inc const mul cos mul def
+        /y0 amp1 inc const mul sin mul def
+        amp4 xx amp8 add const mul cos mul x0 sub
+        amp4 xx amp8 add const mul sin mul y0 sub
+        amp5 xx amp8 add const mul cos mul x0 sub
+        amp5 xx amp8 add const mul sin mul y0 sub
+        amp2 xx const mul cos mul x0 sub
+        amp2 xx const mul sin mul y0 sub
+        1 lengthofbezier
+        /size ed
+%
+        /ndash size dsize 2 mul div truncate def
+        ndash 0 eq { /ndash 1 def } if
+        size 2 dsize ndash mul mul sub abs
+        size 2 dsize ndash 1 add mul mul sub abs gt { /ndash ndash 1 add def } if
+        /dsize size 2 ndash mul div def
+        [ dsize dsize ] dsize 2 div setdash
+    } ifelse
+%
+    /dr radius 2 mul pi mul def  % 2*pi*r
+    /inc dr 2 num mul div def    % 2*pi*r/(2*num)
+    /const 360 dr div def        % 360/(2*pi*r)
+    /amp8 ampi 0.9 mul def
+    /amp1 radius ampi add def
+    /amp2 radius ampi sub def
+    /amp4 amp1 inc amp8 add const mul cos div def
+    /amp5 amp2 amp8 const mul cos div def
+    amp8 0 lt {/amp8 amp8 neg def} if
+%
+    newpath
+%
+    /xx inc 2 mul def
+    amp1 inc const mul cos mul amp1 inc const mul sin mul moveto
+%
+    1 1 num { pop
+        amp4 xx amp8 add const mul cos mul
+        amp4 xx amp8 add const mul sin mul
+        amp5 xx amp8 add const mul cos mul
+        amp5 xx amp8 add const mul sin mul
+        amp2 xx const mul cos mul
+        amp2 xx const mul sin mul
+            curveto
+        amp5 xx amp8 sub const mul cos mul
+        amp5 xx amp8 sub const mul sin mul
+        amp4 xx amp8 sub const mul cos mul
+        amp4 xx amp8 sub const mul sin mul
+        amp1 xx inc add const mul cos mul
+        amp1 xx inc add const mul sin mul
+            curveto
+        /xx xx inc 2 mul add def
+    } for
+%
+    stroke
+%
+    grestore
+} def }
+%
+%		#] dashgluoncirc : 
+%		#[ arc2 :
+%
+\special{! /arc2{
+%   Draws an arc segment:
+%   arrowspec, arrowpos, flip, linesep, dsize,
+%       clock, radius, start_angle, end_angle, x_center, y_center, width, scale
+%   If linesep == 0, then single line, else double with separation linesep. 
+%
+    gsw
+    normalizearc
+    /darc ed /radius ed
+    /dsize ed /linesep ed 
+    /angdsize dsize radius div def
+    /flip ed
+    getarrow
+    /arcmid darc arrowpos mul def
+    /linewidth width def
+    dsize 0 eq 
+    { linesep 0 eq 
+         { 0 0 radius 0 darc dasharc }
+         {  gsave
+                linesep linewidth add setlinewidth
+                0 0 radius 0 darc dasharc
+                setbackgroundcolor
+                [] 0 setdash
+                linesep linewidth sub setlinewidth
+                0 0 radius 0 darc dasharc
+            grestore
+         } ifelse
+    }
+    { linesep 0 eq 
+         { 0 0 radius 0 arcmid dasharc 
+           0 0 radius arcmid darc dasharc
+         } {
+            gsave
+                linesep linewidth add setlinewidth
+                0 0 radius 0 arcmid dasharc
+                0 0 radius arcmid darc dasharc
+                setbackgroundcolor
+                [] 0 setdash
+                linesep linewidth sub setlinewidth
+                0 0 radius 0 darc dasharc
+            grestore
+         } ifelse
+    } ifelse
+    arcmid rotate 
+    radius 0 translate 
+    flip { 0 } { 180 } ifelse
+    witharrow { drawarrow } if
+    grestore
+} def }
+%
+%		#] arc2 : 
+%		#[ dasharrowdoubleline :
+%
+\special{! /dasharrowdoubleline{
+%
+%   arrowspec, arrowpos, flip, linesep, dsize,
+%       x1, y1, x2, y2, width, scale
+%   If linesep == 0, then single line, else double with separation linesep. 
+%   Draws a dashed double straight line with arrow. 
+%   If dsize==0, then continuous line.
+%   If linesep==0, then single line.
+    gsw 
+    normalizeline
+    /dr ed
+    /dsize ed 
+    /linesep ed
+    /flip ed
+    getarrow
+%
+    % If linesep is negative, that means the arrow is flipped.
+    % But the lineend coordinates are already flipped, so there is
+    % no need to make any adjustment; i.e., replace linesep by
+    % absolute value.
+    /linesep setabs
+    /linewidth width def
+    linesep 0 eq {
+        0 0 dr 0 dashline
+    } {
+        gsave
+            linesep linewidth add setlinewidth 0 0 dr 0 dashline
+            setbackgroundcolor
+            [] 0 setdash
+            linesep linewidth sub setlinewidth 0 0 dr 0 newpath moveto lineto stroke
+        grestore
+    } ifelse
+    dr arrowpos mul 0 translate
+    flip { -90 }{ 90 } ifelse
+    witharrow { drawarrow } if
+    grestore
+} def }
+%
+%		#] dasharrowdoubleline : 
+%		#[ vertex :
+%
+\special{! /vertex{
+%
+%   Puts a fat dot at x,y  size is the radius of the dot
+%
+    gs
+    /dotsize ed
+    translate
+    newpath
+        0 0 dotsize 0 360 arc
+    fill stroke
+    grestore
+} def }
+%
+%		#] vertex : 
+%		#[ ecirc :
+%
+\special{! /ecirc{
+%
+%   Draws an anti-clockwise circle :
+%   x_center, y_center, radius
+%   Transparent interior
+%
+    gsw /radius ed
+    translate                               % x and y are still on stack
+    newpath 0 0 radius 0 360 arc stroke
+    grestore
+} def }
+%
+%		#] ecirc : 
+%		#[ ebox :
+%
+\special{! /ebox{
+%
+%   Draws a transparent box x1,y1,x2,y2
+%
+    gsw p2 p1
+    abox stroke
+    grestore
+} def }
+%
+%		#] ebox : 
+%		#[ fbox :
+%
+\special{! /fbox{
+%
+%   Draws a filled box x1,y1,x2,y2
+%
+    gsw p2 p1
+    abox fill
+    grestore
+} def }
+%
+%		#] fbox : 
+%		#[ triangle :
+%
+\special{! /triangle{
+%
+%   Draws a triangle x1,y1,x2,y2,x3,y3
+%
+    gsw p3 p2 p1
+    atriangle stroke
+    grestore
+} def }
+%
+%		#] triangle : 
+%		#[ ftriangle :
+%
+\special{! /ftriangle{
+%
+%   Draws a triangle x1,y1,x2,y2,x3,y3
+%
+    gsw p3 p2 p1
+    atriangle fill
+    grestore
+} def }
+%
+%		#] ftriangle : 
+%		#[ ellipse:
+%
+\special{! /ellipse {
+    % Draw an ellipse
+    % RedGrittyBrick 20/10/2003
+    % From http://www.redgrittybrick.org/postscript/ellipse.html. 2011/03/22
+    % draw an ellipse using four bezier curves
+    %
+    /r2 exch def % 2nd parameter
+    /r1 exch def % 1st parameter
+    /kappa 0.5522847498 def
+    %
+    newpath
+    0 r2 moveto % start point of curve
+    %
+    % top clockwise
+    kappa r1 mul r2 % 1st Bezier control point
+    r1 kappa r2 mul % 2nd Bezier control point
+    r1 0 curveto % end point of curve
+    %
+    % right clockwise
+    r1 kappa r2 mul neg
+    kappa r1 mul r2 neg
+    0 r2 neg curveto
+    %
+    % bottom clockwise
+    kappa r1 mul neg r2 neg
+    r1 neg kappa r2 mul neg
+    r1 neg 0 curveto
+    %
+    % left clockwise
+    r1 neg kappa r2 mul
+    kappa r1 mul neg r2
+    0 r2 curveto
+    %
+    } def % ellipse
+}
+%
+%		#] ellipse: 
+%		#[ goval :
+%
+\special{! /goval{
+%
+%   Draws a gray oval that overwrites whatever was there.
+%   x_center y_center height width rotation color linewidth scale
+%
+    gsw /gcolor ed /angle ed /width ed /height ed
+%
+    translate                            % x and y are still on stack
+    angle rotate
+    1 setgray      width height ellipse fill
+    gcolor setgray width height ellipse fill
+    0 setgray      width height ellipse stroke
+    grestore
+} def }
+%
+%		#] goval : 
+%		#[ fcoval :
+%
+\special{! /foval{
+%
+%   Draws an oval that overwrites whatever was there.
+%   x_center y_center height width rotation linewidth scale
+%
+    gsw /angle ed /width ed /height ed
+%
+    translate                            % x and y are still on stack
+    angle rotate
+    width height ellipse fill
+    grestore
+} def }
+%
+%		#] foval :
+%		#[ oval :
+%
+\special{! /oval{
+%
+%   Draws an oval that does not overwrite whatever was there.
+%   x_center y_center height width rotation linewidth scale
+%
+    gsw /angle ed /width ed /height ed
+%
+    translate                         % x and y are still on stack
+    angle rotate
+    width height ellipse stroke
+    grestore
+} def }
+%
+%		#] oval : 
+%		#[ polygon :
+%
+%   Incoming stack:
+%   [array of x,y pairs] width scale
+%
+\special{! /polygon{
+    gsw /points ed
+    /ss points length 2 idiv 2 mul def
+    ss 4 gt {
+        newpath
+        points 0 get points 1 get moveto
+        0 2 ss 4 sub { /ii ed
+            /x1 points ii 2 add get def
+            /y1 points ii 3 add get def
+            x1 y1 lineto
+        } for
+        closepath
+        stroke
+    } if
+    grestore
+} def }
+%
+%		#] polygon : 
+%		#[ filledpolygon :
+%
+%   Incoming stack:
+%   [array of x,y pairs] width scale
+%
+\special{! /filledpolygon{
+    gsw /points ed
+    /ss points length 2 idiv 2 mul def
+    ss 4 gt {
+        newpath
+        points 0 get points 1 get moveto
+        0 2 ss 4 sub { /ii ed
+            /x1 points ii 2 add get def
+            /y1 points ii 3 add get def
+            x1 y1 lineto
+        } for
+        closepath
+        fill
+    } if
+    grestore
+} def }
+%
+%		#] filledpolygon : 
+%		#[ makecurve :
+%
+\special{! /docurve{
+    x1 2 mul x2 add 3 div
+        y1 y0 sub x1 x0 sub div x2 x0 sub mul
+        y2 y0 sub x2 x0 sub div x1 x0 sub mul add
+        y1 add y0 2 mul add 3 div
+    x1 x2 2 mul add 3 div
+        y2 y3 sub x2 x3 sub div x1 x3 sub mul
+        y1 y3 sub x1 x3 sub div x2 x3 sub mul add
+        y2 add y3 2 mul add 3 div
+    x2 y2 curveto
+} def }
+%
+\special{! /makecurve{
+%
+%   Incoming stack:
+%   [array of x,y pairs] width scale
+%
+    gsw /points ed
+    /ss points length 2 idiv 2 mul def
+    newpath
+    ss 4 gt {
+        /x1 points 0 get def
+        /y1 points 1 get def
+        /x2 points 2 get def
+        /y2 points 3 get def
+        /x3 points 4 get def
+        /y3 points 5 get def
+        /x0 x1 2 mul x2 sub def
+        /y0 y3 y2 sub x3 x2 sub div y2 y1 sub x2 x1 sub div sub 2 mul
+            x2 x1 sub dup mul x3 x1 sub div mul
+            y1 2 mul add y2 sub def
+        x1 y1 moveto
+        docurve
+        0 2 ss 8 sub { /ii ed
+            /x0 points ii       get def
+            /y0 points ii 1 add get def
+            /x1 points ii 2 add get def
+            /y1 points ii 3 add get def
+            /x2 points ii 4 add get def
+            /y2 points ii 5 add get def
+            /x3 points ii 6 add get def
+            /y3 points ii 7 add get def
+            docurve
+        } for
+        /x0 points ss 6 sub get def
+        /y0 points ss 5 sub get def
+        /x1 points ss 4 sub get def
+        /y1 points ss 3 sub get def
+        /x2 points ss 2 sub get def
+        /y2 points ss 1 sub get def
+        /x3 x2 2 mul x1 sub def
+        /y3 y2 y1 sub x2 x1 sub div y1 y0 sub x1 x0 sub div sub 2 mul
+            x2 x1 sub dup mul x2 x0 sub div mul
+            y2 2 mul add y1 sub def
+        docurve
+    } {
+        ss 4 eq {
+            points 0 get points 1 get moveto
+            points 2 get points 3 get lineto
+        } if
+    } ifelse
+    stroke
+    grestore
+} def }
+%
+%		#] makecurve : 
+%		#[ makedashcurve :
+%
+\special{! /makedashcurve{
+%
+%   Incoming stack:
+%   [array of x,y pairs] dashsize width scale
+%
+    gsw /dsize ed /points ed
+    /ss points length 2 idiv 2 mul def
+    newpath
+    ss 4 gt {
+        /x1 points 0 get def
+        /y1 points 1 get def
+        /x2 points 2 get def
+        /y2 points 3 get def
+        /x3 points 4 get def
+        /y3 points 5 get def
+        /x0 x1 2 mul x2 sub def
+        /y0 y3 y2 sub x3 x2 sub div y2 y1 sub x2 x1 sub div sub 2 mul
+            x2 x1 sub dup mul x3 x1 sub div mul
+            y1 2 mul add y2 sub def
+        x1 y1 moveto
+        docurve
+        0 2 ss 8 sub { /ii ed
+            /x0 points ii       get def
+            /y0 points ii 1 add get def
+            /x1 points ii 2 add get def
+            /y1 points ii 3 add get def
+            /x2 points ii 4 add get def
+            /y2 points ii 5 add get def
+            /x3 points ii 6 add get def
+            /y3 points ii 7 add get def
+            docurve
+        } for
+        /x0 points ss 6 sub get def
+        /y0 points ss 5 sub get def
+        /x1 points ss 4 sub get def
+        /y1 points ss 3 sub get def
+        /x2 points ss 2 sub get def
+        /y2 points ss 1 sub get def
+        /x3 x2 2 mul x1 sub def
+        /y3 y2 y1 sub x2 x1 sub div y1 y0 sub x1 x0 sub div sub 2 mul
+            x2 x1 sub dup mul x2 x0 sub div mul
+            y2 2 mul add y1 sub def
+        docurve
+    } {
+        ss 4 eq {
+            points 0 get points 1 get moveto
+            points 2 get points 3 get lineto
+        } if
+    } ifelse
+    centerdash
+    stroke
+    grestore
+} def }
+%
+\special{! /pathlength{
+    flattenpath
+    /dist 0 def
+    { /yfirst ed /xfirst ed /ymoveto yfirst def /xmoveto xfirst def }
+    { /ynext ed /xnext ed /dist dist ynext yfirst sub dup mul
+        xnext xfirst sub dup mul add sqrt add def
+        /yfirst ynext def /xfirst xnext def }
+    {}
+    {/ynext ymoveto def /xnext xmoveto def
+        /dist ynext yfirst sub dup mul
+              xnext xfirst sub dup mul add sqrt add def
+        /yfirst ynext def /xfirst xnext def }
+    pathforall
+    dist
+} def }
+%
+\special{! /centerdash{
+    /pathlen pathlength def
+    /jj pathlen dsize div 2.0 div cvi def
+    /ddsize pathlen jj 2.0 mul div def
+    [ddsize] ddsize 2 div setdash
+} def }
+%
+%		#] makedashcurve : 
+%		#[ logaxis :
+%
+\special{! /logaxis{
+%
+%   Draws an axis from x1,y1 to x2,y2 with nl log divisions
+%   size of the hashes hs, offset F
+%   and width W. The stack looks like
+%   x1,y1,x2,y2,nl,hs,F,W,scale
+%   After the rotation the hash marks are on top if nl is positive and
+%   on the bottom if nl is negative
+%
+    gsw /offset ed /hashsize ed /nlogs ed
+    normalizeline /rr ed
+    offset 0 ne { /offset offset ln 10 ln div def } if
+    /offset offset dup cvi sub def
+    newpath
+        0 0 moveto
+        rr 0 lineto
+    /lsize rr nlogs div def
+    0 1 nlogs { /x2 ed
+        x2 offset ge {
+            /y2 x2 offset sub lsize mul def
+            y2 rr le {
+                y2 0 moveto
+                y2 hashsize 1.2 mul lineto
+            } if
+        } if
+    } for
+    stroke
+    width 0.6 mul setlinewidth
+    newpath
+    0 1 nlogs { /x2 ed
+        2 1 9 {
+            ln 10 ln div x2 add
+            /xx2 ed
+            xx2 offset ge {
+                /y2 xx2 offset sub lsize mul def
+                y2 rr le {
+                    y2 0 moveto
+                    y2 hashsize 0.8 mul lineto
+                } if
+            } if
+        } for
+    } for
+    stroke
+    grestore
+} def }
+%
+%		#] logaxis : 
+%		#[ linaxis :
+%
+\special{! /linaxis{
+%
+%   x1,y1,x2,y2,num_decs,per_dec,hashsize,offset,width,scale
+%
+    gsw /offset ed /hashsize ed /perdec ed /numdec ed 
+    normalizeline
+    /rr ed
+    /perdec perdec round def
+    /offset offset
+    % Do real equivalent of offset perdec mod
+            dup cvi perdec idiv
+            sub
+            dup 0 lt {perdec add} if
+            dup perdec ge {perdec sub} if
+    def
+    newpath
+        0 0 moveto
+        rr 0 lineto
+    /x1 rr numdec perdec mul div def
+    /y1 rr numdec div def
+    offset 0 eq {0} {1} ifelse 1 numdec 
+       { y1 mul offset x1 mul sub
+         dup 0 moveto
+         hashsize 1.2 mul lineto
+    } for
+    stroke
+    width 0.6 mul setlinewidth
+    newpath
+    /offset offset dup cvi sub def
+    offset 0 eq {0} {1} ifelse  1 numdec perdec mul  {
+        offset sub x1 mul 
+        dup 0 ge {
+            dup rr le {
+                dup 0 moveto
+                hashsize 0.8 mul lineto
+            } if
+        } if 
+    } for
+    stroke
+    grestore
+} def }
+%
+%		#] linaxis : 
+%		#[ dashbezier :
+%
+\special{! /dashbezier{
+%
+%   Draws a dashed Bezier with control points x1,y1,x2,y2,x3,y3,x4,y4
+%
+    gsw /dsize ed p4 p3 p2 p1
+    dsize 0 ne {
+        /size x2 x1 sub y2 y1 sub x3 x1 sub y3 y1 sub x4 x1 sub y4 y1 sub
+            1 lengthofbezier def
+        /numdashes size dsize 2 mul div def
+        numdashes 0 eq { /numdashes 1 def } if
+        size dsize 2 mul numdashes mul sub abs
+        size dsize 2 mul numdashes 1 add mul sub abs
+            gt { /numdashes 1 add def } if
+        /dsize size numdashes 2 mul div def
+        [dsize dsize] dsize 2 div setdash
+    } if
+    abezier stroke
+    grestore
+} def }
+%
+%		#] dashbezier : 
+%		#[ dashdoublebezier :
+%
+\special{! /dashdoublebezier{
+%
+%   Draws a dashed Bezier with control points x1,y1,x2,y2,x3,y3,x4,y4
+%
+    gsw /dsize ed /linesep ed
+    /flip ed
+    getarrow
+    p4 p3 p2 p1
+    /linewidth width def
+    /bsize x2 x1 sub y2 y1 sub x3 x1 sub y3 y1 sub x4 x1 sub y4 y1 sub
+        1 lengthofbezier def
+    dsize 0 ne {
+        /numdashes bsize dsize 2 mul div def
+        numdashes 0 eq { /numdashes 1 def } if
+        bsize dsize 2 mul numdashes mul sub abs
+        bsize dsize 2 mul numdashes 1 add mul sub abs
+            gt { /numdashes 1 add def } if
+        /dsize bsize numdashes 2 mul div def
+        [dsize dsize] dsize 2 div setdash
+    } if
+    linesep 0 ne {
+        linesep linewidth add setlinewidth abezier stroke
+        gsave
+            0 0 0 0 setcmykcolor
+            linesep linewidth sub setlinewidth abezier stroke
+        grestore
+    } {
+        abezier stroke
+    } ifelse
+%
+    witharrow {
+        /tb arrowpos def
+        /tbmax 1 def /tbmin 0 def
+        {
+            /sizeb x2 x1 sub y2 y1 sub x3 x1 sub y3 y1 sub x4 x1 sub y4 y1 sub
+                tb lengthofbezier def
+            sizeb bsize div arrowpos sub abs 0.0001 le { exit } if
+            sizeb bsize div arrowpos gt
+                { /tbmax tb def /tb tb tbmin add 2 div def }
+                { /tbmin tb def /tb tb tbmax add 2 div def } ifelse
+        } loop
+        /ub 1 tb sub def
+        x1 ub ub ub mul mul mul tb x2 3 mul ub mul ub mul tb x3 3 mul ub mul
+            x4 tb mul add mul add mul add
+        y1 ub ub ub mul mul mul tb y2 3 mul ub mul ub mul tb y3 3 mul ub mul
+            y4 tb mul add mul add mul add translate
+        y4 tb dup mul mul y3 tb mul 2 3 tb mul sub mul add y2 ub mul 1 3 tb mul
+            sub mul add y1 ub dup mul mul sub 3 mul
+        x4 tb dup mul mul x3 tb mul 2 3 tb mul sub mul add x2 ub mul 1 3 tb mul
+            sub mul add x1 ub dup mul mul sub 3 mul
+        atan rotate
+        flip { -90 }{ 90 } ifelse
+        drawarrow
+    } if
+%
+    grestore
+} def }
+%
+%		#] dashdoublebezier : 
+%		#[ lengthofbezier :
+%
+%       Calculates the length of a Bezier curve assuming that we start
+%       in the point 0,0. We use a Gaussian quadrature with 16 points.
+%       If, at any time, more precision is needed we have the 32 points
+%       numbers in axohelp.c. (and there is more commentary in that file)
+%
+\special{!
+    /g16x1 { 0.095012509837637440185 } def
+    /g16x2 { 0.281603550779258913230 } def
+    /g16x3 { 0.458016777657227386342 } def
+    /g16x4 { 0.617876244402643748447 } def
+    /g16x5 { 0.755404408355003033895 } def
+    /g16x6 { 0.865631202387831743880 } def
+    /g16x7 { 0.944575023073232576078 } def
+    /g16x8 { 0.989400934991649932596 } def
+    /g16w1 { 0.189450610455068496285 } def
+    /g16w2 { 0.182603415044923588867 } def
+    /g16w3 { 0.169156519395002538189 } def
+    /g16w4 { 0.149595988816576732081 } def
+    /g16w5 { 0.124628971255533872052 } def
+    /g16w6 { 0.095158511682492784810 } def
+    /g16w7 { 0.062253523938647892863 } def
+    /g16w8 { 0.027152459411754094852 } def
+    /onepoint {
+         /gpt ed
+         /tpt 1 gpt add 2 div tmax mul def
+         xc tpt mul xb add tpt mul xa add dup mul
+         yc tpt mul yb add tpt mul ya add dup mul
+         add sqrt
+         /tpt 1 gpt sub 2 div tmax mul def
+         xc tpt mul xb add tpt mul xa add dup mul
+         yc tpt mul yb add tpt mul ya add dup mul
+         add sqrt add 2 div
+    } def
+    /lengthofbezier {
+         /tmax ed
+         pp3 pp2 pp1
+         /xa xx1 3 mul def /xb xx2 xx1 2 mul sub 6 mul def
+         /xc xx3 xx2 xx1 sub 3 mul sub 3 mul def
+         /ya yy1 3 mul def /yb yy2 yy1 2 mul sub 6 mul def
+         /yc yy3 yy2 yy1 sub 3 mul sub 3 mul def
+%
+         g16x1 onepoint g16w1 mul
+         g16x2 onepoint g16w2 mul add
+         g16x3 onepoint g16w3 mul add
+         g16x4 onepoint g16w4 mul add
+         g16x5 onepoint g16w5 mul add
+         g16x6 onepoint g16w6 mul add
+         g16x7 onepoint g16w7 mul add
+         g16x8 onepoint g16w8 mul add
+         tmax mul
+    } def
+}
+%		#] lengthofbezier : 
+%		#[ axogrid :
+%
+\special{! /axogrid{
+    gsw translate
+    /ny ed /nx ed /dy ed /dx ed
+    /maxx nx dx mul def
+    /maxy ny dy mul def
+    0 1 nx {
+        newpath dx mul dup 0 moveto maxy lineto stroke
+    } for
+    0 1 ny {
+        newpath maxx exch dy mul dup 0 exch moveto lineto stroke
+    } for
+} def }
+%
+%		#] axogrid : 
+} 
+%		#] PostScript preamble : 
+%		#[ axoparray : Puts an array of 2-dim points
+%
+%       Puts a sequence of points in the notation (x1,y1)(x2,y2)....
+%       on the Postscript stack. This is for Curve and DashCurve.
+%
+\let\eind=]
+%
+\def\axoparray(#1,#2)#3{#1 \axoxo\space add #2 \axoyo\space add \ifx #3\eind\else
+\expandafter\axoparray\fi#3}
+%
+%		#] axoparray : 
+%
+\fi
+% 	#] Postscript specific : 
+% 	#[ PDF specific :
+%
+%   Here are the routines that are used purely for the PDF output.
+%   The main concern here is the communication with the axohelp program.
+%
+\ifcase\axo at pdfoutput\else
+%
+%		#[ getaxohelp :
+%
+%       This is the command that makes the PDF work. Use as in
+%           getaxohelp{NameOfFunction}{parameters to be passed}
+%       The format is very precise. If axohelp is not happy there will
+%       be no output. The most common error is that the parameters are
+%       not separated by black spaces. Some \space might have to be inserted.
+%       The reason we do not separate the parameters by comma's is that
+%       both Postscript and PDF want their objects separated by blanks.
+%       Also a separation by blanks makes the parameters into separate
+%       arguments in the call to axohelp. Our colors need blanks....
+%
+%
+\def\getoneline#1#2{%
+    % Set the command of name #1 to the next line of the file
+    % for which the input stream number is #2.
+    \def\tmpfh{#2}%
+    \ifeof\tmpfh
+    \else
+       \read\tmpfh to \tmpline
+    \fi
+    \ifeof\tmpfh
+       \@namedef{#1}{}%
+    \else
+       \expandafter \let \csname #1\endcsname = \tmpline
+    \fi
+}
+%
+\def\getaxohelp#1#2{%
+    \def\axohelp{}%
+    \stepcounter{axo at objectIndex}%
+    \def\axo at currentInput{#1 #2;}%
+    \immediate\write\axo at spec{[\arabic{axo at objectIndex}]\space \axo at currentInput}%
+    \ifaxo at axohelpRerun%
+    \else%
+        \def\axo at currentInput{{#1 #2;}}%
+        \getoneline{axo at partOne}\axo at axohelpFile%
+        \catcode`\ =13%
+        \getoneline{axo at partTwo}\axo at axohelpFile%
+        \catcode`\ =10%
+        \getoneline{axo at partThree}\axo at axohelpFile%
+        \ifeof\axo at axohelpFile
+            \rlap{New object; rerun axohelp}%
+            \global\axo at axohelpReruntrue
+        \else
+            \ifthenelse{\equal{\axo at partTwo}{\axo at currentInput}}%
+             {%  Current definition is same as the one processed
+              %  by axohelp, so it is safe to use
+                 \expandafter\def\expandafter\axohelp\axo at partThree%
+             }%
+             {%
+                 \rlap{Changed object; rerun axohelp}%
+                 \global\axo at axohelpReruntrue
+             }%
+        \fi
+    \fi%
+}
+%
+%		#] getaxohelp : 
+%		#[ Use the axohelp output :
+%
+% Implement conversion of length unit from pt to bp by scaling
+\def\contentspdf{q \axoscale\space 0 0 \axoscale\space 0 0 cm 
+                   0.99626401 0 0 0.99626401 0 0 cm
+                   1 0 0 1 \axoxo\space \axoyo\space cm
+                   \axohelp\space
+                 Q}
+\def\contentspdfNoOffset{q \axoscale\space 0 0 \axoscale\space 0 0 cm
+                           0.99626401 0 0 0.99626401 0 0 cm
+                           \axohelp\space
+                         Q}
+%
+%		#] Use the axohelp output : 
+%
+\fi
+% 	#] PDF specific : 
+
+% Process options now, after all potentially necessary commands have
+% been defined.  Use starred form, so that the options are processed
+% in the order the user writes them.  Also set defaults here.
+\PSTextScalesLikeGraphicstrue
+\canvasScaleObjectScale
+\ProcessOptions*


Property changes on: trunk/Build/source/utils/axodraw2/axodraw2-src/axodraw2.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Build/source/utils/axodraw2/axodraw2-src/axohelp.1
===================================================================
--- trunk/Build/source/utils/axodraw2/axodraw2-src/axohelp.1	                        (rev 0)
+++ trunk/Build/source/utils/axodraw2/axodraw2-src/axohelp.1	2018-02-10 23:30:32 UTC (rev 46590)
@@ -0,0 +1,48 @@
+.TH "axohelp" "1.1" "22 Jan 2018" ""
+.SH NAME
+axohelp - helper program for use of LaTeX package axodraw2 with
+pdflatex. 
+.SH SYNOPSIS
+.B axohelp [options] [filename]
+.SH DESCRIPTION
+Axohelp is a program used with the axodraw2, which is a LaTeX package
+for drawing Feynman graphs (and some other simple graphics) in LaTeX
+documents.
+
+When the axodraw2 package is used with pdflatex (or lualatex or
+xelatex) it creates a file with extension .ax1.  This contains
+specifications of the graphics elements.  Axohelp converts this to a
+file with extension ax2 that contains the necessary pdf code.
+The .ax2 file is read by pdflatex (etc) on its next run, and the
+contents of the .ax2 file are used in the final .pdf output file to
+draw the desired graphics.
+
+The files processed are specified as follows: When the filename on the
+command line is of the form file.ax1, then the input file is file.ax1
+and the output file is file.ax2. If the filename on the command line
+does not have extension .ax1, then this extension is appended.
+
+
+.SH OPTIONS
+Options can be introduced by single or double hyphen characters. The
+possible options are:
+
+.TP
+.B -h, --help
+Gives usage information
+
+.TP
+.B -v, --version
+Gives version information
+
+.TP
+.B -V
+NOT CURRENTLY IMPLEMENTED: Give information on each function used.
+
+.SH AUTHOR
+Current version, by John Collins (username jcc8 at node psu.edu) and
+Jos Vermaseren (username t68 at nikhef dot nl).
+
+The released version can be obtained from CTAN:
+<http://www.ctan.org/pkg/axodraw2/>, and an author's website
+<https://www.nikhef.nl/~form/maindir/others/axodraw2/axodraw2.html>.


Property changes on: trunk/Build/source/utils/axodraw2/axodraw2-src/axohelp.1
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Build/source/utils/axodraw2/axodraw2-src/axohelp.c
===================================================================
--- trunk/Build/source/utils/axodraw2/axodraw2-src/axohelp.c	                        (rev 0)
+++ trunk/Build/source/utils/axodraw2/axodraw2-src/axohelp.c	2018-02-10 23:30:32 UTC (rev 46590)
@@ -0,0 +1,3732 @@
+/*
+  	#[ License :
+
+    (C) 2016-2018 by authors:
+            John Collins (jcc8 at psu dot edu)
+            Jos Vermaseren (t68 at nikhef dot nl) 
+
+    axohelp is free software: you can redistribute it and/or modify it under 
+    the terms of the GNU General Public License as published by the Free 
+    Software Foundation, either version 3 of the License, or (at your option) 
+    any later version.
+
+    axohelp is distributed in the hope that it will be useful, but WITHOUT ANY
+    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+    FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+    details.
+
+    For the GNU General Public License see <http://www.gnu.org/licenses/>.
+
+  	#] License : 
+  	#[ Commentary + Modifications :
+
+    This file contains the source code of the axohelp program that is used
+    together with axopdf.sty and pdflatex. It is a conversion of the postscript
+    code of axodraw.sty.
+
+    input file contains objects of the type
+    [number] axohelp input
+    the output contains objects:
+      \axo at setObject{label}%
+        {input data}%
+        {output}
+    There may be blank lines and commentary.
+
+ 		#[ About folds : (this line starts with one blank and two tabs)
+
+    The internals of the file have been organized in folds.
+    These are defined as a range of lines if which the first and last
+    lines have a special format. Each starts with any three characters
+    (may include tabs), then #[ for the start line and #] for the closing
+    line, then both lines need identical name fields, closed by a colon.
+    After the colon can be anything. When a fold is closed one should see
+    only the first line but with the #[ replaced by ## as in
+ 		## About folds : (this line starts with one blank and two tabs)
+    Folds can be nested.
+    This fold concept comes originally from the occam compiler for the
+    transputer in the second half of the 1980's although there it was
+    implemented differently. It was taken over by the STedi editor in its
+    current form. The sources of this editor are available from the form
+    home site: http://www.nikhef.nl/~form
+    Some people have managed to emulate these folds in editors like emacs
+    and vim.
+
+ 		#] About folds : 
+  	#] Commentary + Modifications :
+  	#[ Includes :
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include <string.h>
+
+/*
+  	#] Includes : 
+  	#[ Defines :
+*/
+
+#define NAME "axohelp"
+#define VERSIONDATE "2018 Jan 23"
+#define VERSION 1
+#define SUBVERSION 1
+
+#define COMMENTCHAR '%'
+#define TERMCHAR ';'
+ 
+#define STROKING 0
+#define NONSTROKING 1
+ 
+char **inputs;
+long *inputsizes;
+double **inargs;
+long numinputs = 0;
+long inputallocations = 0;
+char *axohelp;
+FILE *outfile;
+char *inname, *outname;
+int VerboseFlag = 0;
+char outputbuffer[1000000];
+char *outpos;
+long numobject;
+char *nameobject;
+int witharrow = 0;
+int identification = 0;
+
+static int lastlinefeed = 1;
+static double axolinewidth = 0.5;
+static struct aRRow {
+    double stroke;
+    double width;
+    double length;
+    double inset;
+    double where;
+    double scale;
+    double aspect;
+    int    type;     /* 0: old style arrow; 1: Jaxodraw style arrow */
+    int    adjust;   /* whether the line length should be adjusted */
+} arrow;
+double linesep = 0;
+int flip = 0;
+int clockwise = 0;
+ 
+void OutputString(char *);
+void ArrowHead();
+void GetArrow(double *);
+void BezierArrow(double *);
+void ArcSegment(double,double,double);
+double *ReadArray(char *,int *,int *);
+double *ReadTail(char *,int *);
+double LengthBezier(double,double,double,double,double,double,double);
+
+double M_pi;
+double torad;
+#define COS(x) cos((x)*torad)
+#define SIN(x) sin((x)*torad)
+#define TAN(x) tan((x)*torad)
+ 
+typedef void (*TFUN)(double *);
+
+typedef struct {
+    char *name;
+    TFUN func;
+    int numargs;
+    int colortype;
+} KEYWORD;
+
+void GluonHelp(double *,double);
+void DoubleGluonHelp(double *,double,double,double,double);
+void GluonCircHelp(double *);
+void GluonArcHelp(double *,double,double);
+void PhotonHelp(double *,double);
+void PhotonArcHelp(double *,double,int);
+void ZigZagHelp(double *,double);
+void ZigZagArcHelp(double *);
+double ComputeDash(double *,double,double);
+double ComputeDashCirc(double *,double);
+
+void ArrowArc(double *);
+void ArrowArcn(double *);
+void ArrowDoubleArc(double *);
+void ArrowLine(double *);
+void ArrowDoubleLine(double *);
+void AxoArc(double *);
+void AxoBezier(double *);
+void AxoGluon(double *);
+void AxoGluonArc(double *);
+void AxoGluonCirc(double *);
+void AxoLine(double *);
+void AxoPhoton(double *);
+void AxoPhotonArc(double *);
+void AxoZigZag(double *);
+void AxoZigZagArc(double *);
+void BezierCurve(double *);
+void Boxc(double *);
+void CArc(double *);
+void DashArrowArc(double *);
+void DashArrowArcn(double *);
+void DashArrowLine(double *);
+void DashArrowDoubleArc(double *);
+void DashArrowDoubleLine(double *);
+void DashBezier(double *);
+void DashCArc(double *);
+void DashDoubleArc(double *);
+void DashDoubleBezier(double *);
+void DashDoubleLine(double *);
+void DashDoublePhoton(double *);
+void DashDoublePhotonArc(double *);
+void DashDoubleZigZag(double *);
+void DashDoubleZigZagArc(double *);
+void DashGluon(double *);
+void DashGluonArc(double *);
+void DashGluonCirc(double *);
+void DashPhoton(double *);
+void DashPhotonArc(double *);
+void DashZigZag(double *);
+void DashZigZagArc(double *);
+void DashLine(double *);
+void DoubleArc(double *);
+void DoubleBezier(double *);
+void DoubleLine(double *);
+void DoublePhoton(double *);
+void DoublePhotonArc(double *);
+void DoubleZigZag(double *);
+void DoubleZigZagArc(double *);
+void EBox(double *);
+void EBoxc(double *);
+void ECirc(double *);
+void ETri(double *);
+void FBox(double *);
+void FBoxc(double *);
+void FOval(double *);
+void FTri(double *);
+void GluonArc(double *);
+void GluonCirc(double *);
+void Gluon(double *);
+void Grid(double *);
+void LinAxis(double *);
+void Line(double *);
+void LogAxis(double *);
+void Oval(double *);
+void Photon(double *);
+void PhotonArc(double *);
+void Rotate(double *);
+void Vertex(double *);
+void ZigZag(double *);
+void ZigZagArc(double *);
+
+void Curve(double *,int);
+void DashCurve(double *,int);
+void Polygon(double *,int,int);
+
+void Inivars(void);
+
+KEYWORD commands[] = {
+     { "Line",               Line,               4,    STROKING }
+    ,{ "ArrowArc",           ArrowArc,           7,    STROKING }
+    ,{ "ArrowArcn",          ArrowArcn,          7,    STROKING }
+    ,{ "ArrowDoubleArc",     ArrowDoubleArc,     8,    STROKING }
+    ,{ "ArrowLine",          ArrowLine,          6,    STROKING }
+    ,{ "ArrowDoubleLine",    ArrowDoubleLine,    7,    STROKING }
+    ,{ "AxoArc",             AxoArc,             17,   STROKING }
+    ,{ "AxoBezier",          AxoBezier,          19,   STROKING }
+    ,{ "AxoGluon",           AxoGluon,           8,    STROKING }
+    ,{ "AxoGluonArc",        AxoGluonArc,        10,   STROKING }
+    ,{ "AxoGluonCirc",       AxoGluonCirc,       8,    STROKING }
+    ,{ "AxoLine",            AxoLine,            15,   STROKING }
+    ,{ "AxoPhoton",          AxoPhoton,          8,    STROKING }
+    ,{ "AxoPhotonArc",       AxoPhotonArc,       10,   STROKING }
+    ,{ "AxoZigZag",          AxoZigZag,          8,    STROKING }
+    ,{ "AxoZigZagArc",       AxoZigZagArc,       10,   STROKING }
+    ,{ "Bezier",             BezierCurve,        8,    STROKING }
+    ,{ "Boxc",               Boxc,               4,    STROKING }
+    ,{ "CArc",               CArc,               5,    STROKING }
+    ,{ "DashArrowArc",       DashArrowArc,       8,    STROKING }
+    ,{ "DashArrowArcn",      DashArrowArcn,      8,    STROKING }
+    ,{ "DashArrowDoubleArc", DashArrowDoubleArc, 9,    STROKING }
+    ,{ "DashArrowDoubleLine",DashArrowDoubleLine,8,    STROKING }
+    ,{ "DashArrowLine",      DashArrowLine,      7,    STROKING }
+    ,{ "DashBezier",         DashBezier,         9,    STROKING }
+    ,{ "DashCArc",           DashCArc,           6,    STROKING }
+    ,{ "DashDoubleArc",      DashDoubleArc,      7,    STROKING }
+    ,{ "DashDoubleBezier",   DashDoubleBezier,   10,   STROKING }
+    ,{ "DashDoubleLine",     DashDoubleLine,     6,    STROKING }
+    ,{ "DashDoublePhoton",   DashDoublePhoton,   8,    STROKING }
+    ,{ "DashDoublePhotonArc",DashDoublePhotonArc,10,   STROKING }
+    ,{ "DashDoubleZigZag",   DashDoubleZigZag,   8,    STROKING }
+    ,{ "DashDoubleZigZagArc",DashDoubleZigZagArc,10,   STROKING }
+    ,{ "DashGluon",          DashGluon,          7,    STROKING }
+    ,{ "DashGluonArc",       DashGluonArc,       10,   STROKING }
+    ,{ "DashGluonCirc",      DashGluonCirc,      7,    STROKING }
+    ,{ "DashLine",           DashLine,           5,    STROKING }
+    ,{ "DashPhoton",         DashPhoton,         7,    STROKING }
+    ,{ "DashPhotonArc",      DashPhotonArc,      10,   STROKING }
+    ,{ "DashZigZag",         DashZigZag,         7,    STROKING }
+    ,{ "DashZigZagArc",      DashZigZagArc,      10,   STROKING }
+    ,{ "DoubleArc",          DoubleArc,          6,    STROKING }
+    ,{ "DoubleBezier",       DoubleBezier,       9,    STROKING }
+    ,{ "DoubleLine",         DoubleLine,         5,    STROKING }
+    ,{ "DoublePhoton",       DoublePhoton,       7,    STROKING }
+    ,{ "DoublePhotonArc",    DoublePhotonArc,    8,    STROKING }
+    ,{ "DoubleZigZag",       DoubleZigZag,       7,    STROKING }
+    ,{ "DoubleZigZagArc",    DoubleZigZagArc,    8,    STROKING }
+    ,{ "EBox",               EBox,               4,    STROKING }
+    ,{ "FBox",               FBox,               4,    STROKING }
+    ,{ "FBoxc",              FBoxc,              4,    STROKING }
+    ,{ "ECirc",              ECirc,              3,    STROKING }
+    ,{ "ETri",               ETri,               6,    STROKING }
+    ,{ "FOval",              FOval,              5,    NONSTROKING }
+    ,{ "FTri",               FTri,               6,    NONSTROKING }
+    ,{ "GluonArc",           GluonArc,           7,    STROKING }
+    ,{ "GluonCirc",          GluonCirc,          6,    STROKING }
+    ,{ "Gluon",              Gluon,              6,    STROKING }
+    ,{ "Grid",               Grid,               6,    STROKING }
+    ,{ "LinAxis",            LinAxis,            8,    STROKING }
+    ,{ "LogAxis",            LogAxis,            7,    STROKING }
+    ,{ "Oval",               Oval,               5,    STROKING }
+    ,{ "Photon",             Photon,             6,    STROKING }
+    ,{ "PhotonArc",          PhotonArc,          7,    STROKING }
+    ,{ "Rotate",             Rotate,             7,    NONSTROKING }
+    ,{ "Vertex",             Vertex,             3,    NONSTROKING }
+    ,{ "ZigZag",             ZigZag,             6,    STROKING }
+    ,{ "ZigZagArc",          ZigZagArc,          7,    STROKING }
+};
+
+/*
+  	#] Defines : 
+  	#[ SetDefaults :
+*/
+
+void SetDefaults()
+{
+    lastlinefeed = 1;
+    axolinewidth = 0.5;
+    linesep = 0;
+    flip = 0;
+    clockwise = 0;
+    witharrow = 0;
+}
+
+/*
+  	#] SetDefaults : 
+  	#[ PDF utilities :
+
+    These routines are included to make the program more readable and easier
+    to write. It also allows the easy use of the OutputString routine that
+    compactifies the output.
+*/
+
+#define Stroke outpos += sprintf(outpos," S")
+#define CloseAndStroke outpos += sprintf(outpos," h S")
+#define Fill outpos += sprintf(outpos," f")
+#define CloseAndFill outpos += sprintf(outpos," h f")
+#define SaveGraphicsState outpos += sprintf(outpos," q")
+#define RestoreGraphicsState outpos += sprintf(outpos," Q")
+
+void Bezier(double x1,double y1,double x2,double y2,double x3,double y3) {
+    outpos +=
+    sprintf(outpos,"\n %12.3f %12.3f %12.3f %12.3f %12.3f %12.3f c",x1,y1,x2,y2,x3,y3);
+}
+
+void LineTo(double x1,double y1) {
+    outpos +=
+    sprintf(outpos,"\n %12.3f %12.3f l",x1,y1);
+}
+
+void MoveTo(double x1,double y1) {
+    outpos +=
+    sprintf(outpos,"\n %12.3f %12.3f m",x1,y1);
+}
+
+void SetLineWidth(double w) {
+    outpos +=
+    sprintf(outpos," %12.3f w",w);
+}
+
+void SetDashSize(double dashsize,double phase) {
+    if ( dashsize ) outpos += sprintf(outpos," [%12.3f] %12.3f d",dashsize,phase);
+    else outpos += sprintf(outpos," [] 0 d");
+}
+
+void SetTransferMatrix(double x11,double x12,double x21,double x22,double x,double y)
+{
+    if ( ( fabs(x11-1.) > 0.001 ) || ( fabs(x22-1.) > 0.001 )
+         || ( fabs(x12) > 0.001 ) || ( fabs(x21) > 0.001 )
+         || ( fabs(x) > 0.001 ) || ( fabs(y) > 0.001 ) ) {
+        outpos +=
+        sprintf(outpos,"%12.3f %12.3f %12.3f %12.3f %12.3f %12.3f cm\n",x11,x12,x21,x22,x,y);
+    }
+}
+
+static double BzK;
+
+void BezierCircle(double r,char *action)
+{
+    outpos +=
+    sprintf(outpos," %12.3f 0 m %12.3f %12.3f %12.3f %12.3f 0 %12.3f c\n",-r,-r,r*BzK,-r*BzK,r,r);
+    outpos +=
+    sprintf(outpos," %12.3f %12.3f %12.3f %12.3f %12.3f 0 c\n",r*BzK,r,r,r*BzK,r);
+    outpos +=
+    sprintf(outpos," %12.3f %12.3f %12.3f %12.3f 0 %12.3f c\n",r,-r*BzK,r*BzK,-r,-r);
+    outpos +=
+    sprintf(outpos," %12.3f %12.3f %12.3f %12.3f %12.3f 0 c %s\n",-r*BzK,-r,-r,-r*BzK,-r,action);
+}
+
+void BezierOval(double w, double h, char *action)
+{
+    outpos +=
+    sprintf(outpos," %12.3f 0 m %12.3f %12.3f %12.3f %12.3f 0 %12.3f c\n",-w,-w,h*BzK,-w*BzK,h,h);
+    outpos +=
+    sprintf(outpos," %12.3f %12.3f %12.3f %12.3f %12.3f 0 c\n",w*BzK,h,w,h*BzK,w);
+    outpos +=
+    sprintf(outpos," %12.3f %12.3f %12.3f %12.3f 0 %12.3f c\n",w,-h*BzK,w*BzK,-h,-h);
+    outpos +=
+    sprintf(outpos," %12.3f %12.3f %12.3f %12.3f %12.3f 0 c %s\n",-w*BzK,-h,-w,-h*BzK,-w,action);
+}
+
+void SetGray(double grayscale,int par)
+{
+    if ( par == STROKING ) {
+        outpos += sprintf(outpos," %12.3f G",grayscale);
+    }
+    else {
+        outpos += sprintf(outpos," %12.3f g",grayscale);
+    }
+}
+
+void SetColor(double c, double m, double y, double k,int par)
+{
+    if ( par == STROKING ) {
+        outpos += sprintf(outpos," %12.3f %12.3f %12.3f %12.3f K",c,m,y,k);
+    }
+    else {
+        outpos += sprintf(outpos," %12.3f %12.3f %12.3f %12.3f k",c,m,y,k);
+    }
+}
+
+void SetBackgroundColor(int par)
+{
+    if ( par == STROKING ) { outpos += sprintf(outpos," 0 0 0 0 K"); }
+    else                   { outpos += sprintf(outpos," 0 0 0 0 k"); }
+}
+
+void Rectangle(double x,double y,double w,double h) {
+    outpos += sprintf(outpos,"\n %12.3f %12.3f %12.3f %12.3f re",x,y,w,h);
+}
+
+void Triangle(double x1,double y1,double x2,double y2,double x3,double y3) {
+    outpos +=
+    sprintf(outpos,"\n %12.3f %12.3f m %12.3f %12.3f l %12.3f %12.3f l h",x1,y1,x2,y2,x3,y3);
+}
+
+/*
+  	#] PDF utilities : 
+  	#[ Service routines :
+ 		#[ GetArrow :
+*/
+
+void GetArrow(double *args)
+{
+    witharrow = args[7];
+    arrow.stroke = args[0];
+    arrow.width  = args[1];
+    arrow.length = args[2];
+    arrow.inset  = args[3];
+    arrow.scale  = args[4];
+    arrow.aspect = args[5];
+    arrow.where  = args[6];
+    arrow.type   = 1;
+    arrow.adjust  = 0;
+    if ( args[8] ) flip = 1;
+    if ( witharrow ) {
+        if ( arrow.length == 0 && arrow.width == 0 ) {
+                arrow.width = (axolinewidth + 0.7*linesep + 1 ) * 1.2;
+            if (arrow.width < 2.5) arrow.width = 2.5;
+            arrow.length = 2*arrow.width*arrow.aspect;
+        }
+        else if ( arrow.width == 0 ) {
+            arrow.width = arrow.length/(2*arrow.aspect);
+        }
+        else if ( arrow.length == 0 ) {
+            arrow.length = 2*arrow.width*arrow.aspect;
+        }
+        arrow.width *= arrow.scale;
+        arrow.length *= arrow.scale;
+        if ( arrow.where > 1 ) { arrow.where = 1; arrow.adjust = 1; }
+        if ( arrow.where < 0 ) { arrow.where = 0; arrow.adjust = 1; }
+    }
+}
+
+/*
+ 		#] GetArrow : 
+ 		#[ ArrowHead :
+
+    Places an arrowhead of a given size at 0 in the +x direction
+    The size: Full width is 2*size and full length is also 2*size.
+*/
+
+void ArrowHead()
+/*
+    Jaxodraw style arrows
+*/
+{
+    int k;
+    double length;
+    SaveGraphicsState;
+    if ( flip ) length = -arrow.length;
+    else        length =  arrow.length;
+    SetDashSize(0,0);
+    if ( arrow.stroke ) {
+        SetLineWidth(arrow.stroke);
+        for (k = 1; k <= 2; k++ ) {
+            SaveGraphicsState;
+            MoveTo(length*0.5,0);
+            LineTo(-length*0.5,arrow.width);
+            LineTo(-length*0.5+length*arrow.inset,0);
+            LineTo(-length*0.5,-arrow.width);
+            if (k == 1) {
+                SetBackgroundColor(NONSTROKING);
+                outpos += sprintf(outpos," h f");
+            }
+            else {
+                outpos += sprintf(outpos," s");
+            }
+            RestoreGraphicsState;
+        }
+    }
+    else {
+        MoveTo(length*0.5,0);
+        LineTo(-length*0.5,arrow.width);
+        LineTo(-length*0.5+length*arrow.inset,0);
+        LineTo(-length*0.5,-arrow.width);
+        outpos += sprintf(outpos," h f");
+    }
+    RestoreGraphicsState;
+}
+
+/*
+ 		#] ArrowHead : 
+ 		#[ BezierArrow :
+
+        We compute the length of the curve.
+        Then we try to find the t value for which holds:
+            Length(t)/Length(1) = arrow.where
+*/
+
+void BezierArrow(double *args)
+{
+    double t,u,x,y,dx,dy,dr,len,tlen,tmin=0,tmax=1.0;
+    double x1=args[2]-args[0],x2=args[4]-args[0],x3=args[6]-args[0];
+    double y1=args[3]-args[1],y2=args[5]-args[1],y3=args[7]-args[1];
+    len = LengthBezier(x1,y1,x2,y2,x3,y3,1.0);
+    t = arrow.where;
+    tlen = LengthBezier(x1,y1,x2,y2,x3,y3,t);
+    while ( fabs(tlen/len-arrow.where) > 0.0001 ) {
+        if ( tlen/len > arrow.where ) {
+            tmax = t;
+            t = 0.5*(tmin+t);
+        }
+        else {
+            tmin = t;
+            t = 0.5*(tmax+t);
+        }
+        tlen = LengthBezier(x1,y1,x2,y2,x3,y3,t);
+    }
+    u = 1-t;
+    x = args[0]*u*u*u+(3*args[2]*u*u+(3*args[4]*u+args[6]*t)*t)*t;
+    y = args[1]*u*u*u+(3*args[3]*u*u+(3*args[5]*u+args[7]*t)*t)*t;
+    dx = 3*(-args[0]*u*u+args[2]*u*(1-3*t)+args[4]*t*(2-3*t)+args[6]*t*t);
+    dy = 3*(-args[1]*u*u+args[3]*u*(1-3*t)+args[5]*t*(2-3*t)+args[7]*t*t);
+    dr = sqrt(dx*dx+dy*dy);
+    SetTransferMatrix(1,0,0,1,x,y);
+    SetTransferMatrix(dx/dr,dy/dr,-dy/dr,dx/dr,0,0);
+    ArrowHead();
+}
+
+/*
+ 		#] BezierArrow : 
+ 		#[ ArcSegment :
+*/
+
+void ArcSegment(double r, double phi1, double dphi)
+{
+    double xphi, d, x, y, phia, phib, x1,y1,x2,y2,x3,y3;
+    int num, i;
+
+    num = dphi/90.0001+1.;  /* number of segments we should use. */
+    xphi = dphi/num;        /* arc size of each segment */
+    d = 4.*TAN(xphi/4.)/3.; /* the magic distance for the control points */
+
+    x = r*COS(phi1); y = r*SIN(phi1);
+    MoveTo(x,y);
+    for ( i = 0; i < num; i++ ) {
+        phia = phi1+i*xphi; /* Start of segment */
+        phib = phia+xphi;   /* End of segment */
+        x3 = r*COS(phib); y3 = r*SIN(phib);
+        x1 = x - y*d;     y1 = y + x*d;
+        x2 = x3+y3*d;     y2 = y3-x3*d;
+
+        Bezier(x1,y1,x2,y2,x3,y3);
+
+        x = x3; y = y3;
+    }
+}
+
+/*
+ 		#] ArcSegment : 
+ 		#[ ReadNumber :
+*/
+
+char *ReadNumber(char *s,double *num)
+{
+    double x3,minus = 1;
+    int x1,x2;
+    while ( *s == '+' || *s == '-' ) {
+        if ( *s == '-' ) minus = -minus;
+        s++;
+    }
+    x1 = x2 = 0; x3 = 1;
+    while ( *s <= '9' && *s >= '0' ) { x1 = 10*x1 + *s++ - '0'; }
+    if ( *s == 0 ) { *num = x1*minus; return(s); }
+    if ( *s == '.' ) {
+        s++;
+        while ( *s >= '0' && *s <= '9' ) { x2 = 10*x2 + *s++ - '0'; x3 *= 10; }
+    }
+    *num = minus*((double)x1 + x2/x3);
+    return(s);
+}
+
+/*
+ 		#] ReadNumber : 
+ 		#[ ReadArray :
+
+    Reads a tail of floats of the type (x1,y1)(x2,y2),...,(xn,yn) or
+    (x1,y1)(x2,y2),...,(xn,yn) f1 ... fm
+    The floats may be written as integers.
+    Normally they are in the format ####.###
+    In num1 we return the number of coordinates encountered.
+    In num2 we return the number of extra floats encountered.
+    The array of the return value should be freed after it has been used.
+*/
+
+double *ReadArray(char *inbuf, int *num1, int *num2)
+{
+    int argsize = 0, newsize, num = 0, i;
+    double *args = 0, *newargs = 0, *extraargs, x, y;
+    char *s;
+    *num2 = 0;
+    s = inbuf;
+    while ( *s == ' ' || *s == '\t' || *s == '\n' ) s++;
+    if ( *s == '"' ) {
+        s++;
+        while ( *s == ' ' || *s == '\t' || *s == '\n' ) s++;
+    }
+    while ( *s == '(' ) { /* We need to read (x,y) */
+        s++;
+        while ( *s == ' ' || *s == '\n' || *s == '\t' ) s++;
+        s = ReadNumber(s,&x);
+        while ( *s == ' ' ) s++;
+        if ( *s != ',' ) {
+            fprintf(stderr,"%s: Illegal format for array of numbers in object %ld of type %s in file %s\n"
+                ,axohelp,numobject,nameobject,inname);
+            free(args);
+            return(0);
+        }
+        s++;
+        while ( *s == ' ' || *s == '\n' || *s == '\t' ) s++;
+        s = ReadNumber(s,&y);
+        while ( *s == ' ' || *s == '\n' || *s == '\t' ) s++;
+        if ( *s != ')' ) {
+            fprintf(stderr,"%s: Illegal format for array of numbers in object %ld of type %s in file %s\n"
+                ,axohelp,numobject,nameobject,inname);
+            free(args);
+            return(0);
+        }
+        s++;
+        while ( *s == ' ' ) s++;
+        num += 2;
+        if ( num >= argsize ) {
+            if ( argsize == 0 ) newsize = 20;
+            else newsize = 2*argsize;
+            newargs = (double *)malloc(sizeof(double)*newsize);
+            if ( args == 0 ) { args = newargs; argsize = newsize; }
+            else {
+                for ( i = 0; i < argsize; i++ ) newargs[i] = args[i];
+                free(args);
+                args = newargs; argsize = newsize;
+            }
+        }
+        args[num-2] = x; args[num-1] = y;
+    }
+    if ( *s == '"' ) s++;
+    while ( *s == ' ' || *s == '\t' || *s == '\n' ) s++;
+    *num1 = num/2;
+
+    if ( *s ) {
+        if ( ( extraargs = ReadTail(s,num2) ) == 0 ) {
+            return(0);
+        }
+        if ( num+*num2 > argsize ) {
+            newargs = (double *)malloc(sizeof(double)*(num+*num2));
+            for ( i = 0; i < num; i++ ) newargs[i] = args[i];
+            free(args);
+            args = newargs;
+            argsize = num+*num2;
+        }
+        for ( i = 0; i < *num2; i++ ) args[num+i] = extraargs[i];
+        free(extraargs);
+    }
+    return(args);
+}
+
+/*
+ 		#] ReadArray : 
+ 		#[ ReadTail :
+
+    Reads a command tail that consists of floating point numbers in the
+    notation xxx.yyy or just as integers without even the decimal point.
+    The output array is allocated and should be returned in a well behaved
+    program.
+*/
+
+double *ReadTail(char *buff,int *number)
+{
+    char *s;
+    int num = 1, i;
+    double *outargs;
+    s = buff;
+    while ( *s ) {
+        if ( *s == ' ' || *s == '\t' || *s == '\n' ) {
+            num++; *s++ = 0;
+            while ( *s == ' ' || *s == '\t' || *s == '\n' ) *s++ = 0;
+        }
+        else s++;
+    }
+    outargs = (double *)malloc(num*sizeof(double));
+    s = buff;
+    for ( i = 0; i < num; i++ ) {
+        while ( *s == 0 ) s++;
+        s = ReadNumber(s,outargs+i);
+        if ( *s == 'p' && s[1] == 't' ) s += 2;
+        if ( *s != 0 ) {
+            fprintf(stderr,"%s: Illegal format for number in command %ld (%s) in file %s.\n"
+                ,axohelp,numobject,nameobject,inname);
+            free(outargs);
+            return(0);
+        }
+    }
+    *number = num;
+    return(outargs);
+}
+
+/*
+ 		#] ReadTail : 
+ 		#[ DoCurve :
+
+        Interpolation curve expressed as a Bezier curve.
+*/
+
+void DoCurve(double x0, double y0, double x1, double y1,
+             double x2, double y2, double x3, double y3)
+{
+    double xx1, yy1, xx2, yy2;
+    xx1 = (2*x1+x2)/3;
+    yy1 = ((y1-y0)/(x1-x0)*(x2-x0)+(y2-y0)/(x2-x0)*(x1-x0)+y1+2*y0)/3;
+    xx2 = (x1+2*x2)/3;
+    yy2 = ((y2-y3)/(x2-x3)*(x1-x3)+(y1-y3)/(x1-x3)*(x2-x3)+y2+2*y3)/3;
+
+    Bezier(xx1,yy1,xx2,yy2,x2,y2);
+}
+
+/*
+ 		#] DoCurve : 
+ 		#[ LengthBezier :
+
+        Routine computes the length of a Bezier curve.
+        Method:
+            x = x0*(1-t)^3+3*x1*t*(1-t)^2+3*x2*t^2*(1-t)+x3*t^3
+            y = y0*(1-t)^3+3*y1*t*(1-t)^2+3*y2*t^2*(1-t)+y3*t^3
+            We assume that x0=y0=0. (Hence call with x1-x0 etc)
+        --> dx/dt = 3*x1*(1-t)*(1-3*t)+3*x2*t*(2-3*t)+3*x3*t^2
+                  = 3*(x1+2*t*(x2-2*x1)+t^2*(x3-3*x2+3*x1))
+        --> L = int_0^1 dt * sqrt(dx^2+dy^2)
+        We use ordinary Gaussian quadratures over the domain -1,...,+1
+
+        We have here quadratures for 8, 16 or 32 points.
+        For the moment we use the 16 point quadrature. It seems to work well.
+        The numbers were taken from Abramowitz and Stegun.
+*/
+
+typedef struct quad {
+    double x;
+    double w;
+} QUAD;
+
+QUAD g8[4] = {
+     { 0.183434642495650, 0.362683783378362 }
+    ,{ 0.525532409916329, 0.313706645877887 }
+    ,{ 0.796666477413627, 0.222381034453374 }
+    ,{ 0.960289856497536, 0.101228536290376 }
+    };
+QUAD g16[8] = {
+     { 0.095012509837637440185, 0.189450610455068496285 }
+    ,{ 0.281603550779258913230, 0.182603415044923588867 }
+    ,{ 0.458016777657227386342, 0.169156519395002538189 }
+    ,{ 0.617876244402643748447, 0.149595988816576732081 }
+    ,{ 0.755404408355003033895, 0.124628971255533872052 }
+    ,{ 0.865631202387831743880, 0.095158511682492784810 }
+    ,{ 0.944575023073232576078, 0.062253523938647892863 }
+    ,{ 0.989400934991649932596, 0.027152459411754094852 }
+    };
+QUAD g32[16] = {
+     { 0.048307665687738316235, 0.096540088514727800567 }
+    ,{ 0.144471961582796493485, 0.095638720079274859419 }
+    ,{ 0.239287362252137074545, 0.093844399080804565639 }
+    ,{ 0.331868602282127649780, 0.091173878695763884713 }
+    ,{ 0.421351276130635345364, 0.087652093004403811143 }
+    ,{ 0.506899908932229390024, 0.083311924226946755222 }
+    ,{ 0.587715757240762329041, 0.078193895787070306472 }
+    ,{ 0.663044266930215200975, 0.072345794108848506225 }
+    ,{ 0.732182118740289680387, 0.065822222776361846838 }
+    ,{ 0.794483795967942406963, 0.058684093478535547145 }
+    ,{ 0.849367613732569970134, 0.050998059262376176196 }
+    ,{ 0.896321155766052123965, 0.042835898022226680657 }
+    ,{ 0.934906075937739689171, 0.034273862913021433103 }
+    ,{ 0.964762255587506430774, 0.025392065309262059456 }
+    ,{ 0.985611511545268335400, 0.016274394730905670605 }
+    ,{ 0.997263861849481563545, 0.007018610009470096600 }
+    };
+
+double LengthBezier(double x1,double y1,double x2,double y2,double x3,double y3,double tmax)
+{
+    double xa = 3*x1, xb = 6*(x2-2*x1), xc = 3*(x3-3*x2+3*x1);
+    double ya = 3*y1, yb = 6*(y2-2*y1), yc = 3*(y3-3*y2+3*y1);
+    double t, sum = 0, dx, dy;
+    int j;
+
+    for ( j = 0; j < 8; j++ ) {
+        t = 0.5*(1+g16[j].x)*tmax;
+        dx = xa+t*(xb+t*xc);
+        dy = ya+t*(yb+t*yc);
+        sum += 0.5*g16[j].w*sqrt(dx*dx+dy*dy);
+        t = 0.5*(1-g16[j].x)*tmax;
+        dx = xa+t*(xb+t*xc);
+        dy = ya+t*(yb+t*yc);
+        sum += 0.5*g16[j].w*sqrt(dx*dx+dy*dy);
+    }
+    return(sum*tmax);
+}
+
+/*
+ 		#] LengthBezier : 
+  	#] Service routines : 
+  	#[ ScanForObjects :
+
+    Routine reads the input buffer and sets up pointers to the commands.
+    Basically it is responsible for checking the input syntax and making
+    sure all commands will have the proper number of arguments.
+*/
+
+long ScanForObjects(char *buffer)
+{
+    char *s = buffer, *t;
+    if ( *s == COMMENTCHAR ) { while ( *s && *s != '\n' ) s++; }
+    while ( *s ) { /* here we are to look for a new command */
+        if ( *s != '[' ) { /* for the case of the very first character */
+            while ( *s && ( *s != '[' || ( *s == '[' && s[-1] == '\\' ) ) ) {
+                if ( *s == ' ' || *s == '\n' ) {
+                    while ( *s == ' ' || *s == '\n' ) s++; /* Skip blank lines */
+                }
+                else if ( *s == COMMENTCHAR && s[-1] != '\\' ) {
+                    while ( *s && *s != '\n' ) s++;
+                }
+                else s++;
+            }
+        }
+        if ( *s == 0 ) break;
+/*
+        if everything is correct we are now on a [
+        a: look for matching ] in the same line. This defines the label.
+*/
+        t = s+1;
+        while ( *t && *t != ']' && *t != '\n' && ( *t != COMMENTCHAR ||
+            ( *t == COMMENTCHAR && t[-1] != '\\' ) ) ) t++;
+        if ( *t == 0 ) {
+            fprintf(stderr,"%s: irregular end of file %s.\n",axohelp,inname);
+            return(-1);
+        }
+        else if ( *t == '\n' ) {
+            fprintf(stderr,"%s: a label in file %s should inside a single line.\n",axohelp,inname);
+            return(-1);
+        }
+        else if ( *t == COMMENTCHAR ) {
+            fprintf(stderr,"%s: illegal comment character inside a label in file %s.\n",axohelp,inname);
+            return(-1);
+        }
+        else if ( *t != ']' ) {
+            fprintf(stderr,"%s: internal error reading a label in file %s.\n",axohelp,inname);
+            return(-1);
+        }
+/*
+        Store the address of this command
+*/
+        if ( numinputs >= inputallocations ) {  /* we need more space */
+            long newnum, i;
+            char **newadd;
+            if ( inputallocations == 0 ) { newnum = 100; }
+            else { newnum = 2*inputallocations; }
+            if ( ( newadd = (char **)malloc(newnum*sizeof(char *)) ) == 0 ) {
+                fprintf(stderr,"%s: memory error reading file %s\n",axohelp,inname);
+                return(-1);
+            }
+            for ( i = 0; i < inputallocations; i++ ) { newadd[i] = inputs[i]; }
+            if ( inputs != 0 ) free(inputs);
+            inputs = newadd;
+            inputallocations = newnum;
+        }
+        inputs[numinputs++] = s;
+/*
+        Now scan for the first comment character. That is the end of the object.
+*/
+        while ( *t && ( *t != TERMCHAR || ( *t == TERMCHAR && t[-1] == '\\' ) )
+        && *t != '[' ) t++;
+        if ( *t != '[' ) {
+            while ( t[-1] == ' ' || t[-1] == '\n' ) t--;
+            *t++ = 0;
+        }
+        s = t;
+    }
+    return(numinputs);
+}
+
+/*
+  	#] ScanForObjects : 
+  	#[ ReadInput :
+*/
+
+char *ReadInput(char *filename)
+{
+    FILE *finput;
+    long filesize, num;
+    char *buffer;
+    if ( ( finput = fopen(filename,"r") ) == 0 ) {
+        fprintf(stderr,"%s: Cannot open file %s\n",axohelp,filename);
+        exit(-1);
+    }
+    if ( ( fseek(finput,0,SEEK_END) != 0 )
+      || ( ( filesize = ftell(finput) ) < 0 )
+      || ( fseek(finput,0,SEEK_SET) != 0 ) ) {
+        fprintf(stderr,"%s: File error in file %s\n",axohelp,filename);
+        exit(-1);
+    }
+    if ( ( buffer = malloc((filesize+1)*sizeof(char)) ) == 0 ) {
+        fprintf(stderr,"%s: Error allocating %ld bytes of memory",axohelp,filesize+1);
+        exit(-1);
+    }
+/*
+        Assume character in file is 1 byte, which is true for all cases
+        we currently encounter.
+*/
+    num = fread( buffer, 1, filesize, finput );
+    if ( ferror(finput) ) {
+        fprintf(stderr,"%s: Error reading file %s\n",axohelp,filename);
+        exit(-1);
+    }
+/*
+        By definition, fread reads ALL the items specified, or it gets to
+        end-of-file, or there is an error.
+        It returns the actual number of items successfully read, which
+        is less than the number given in the 3rd argument ONLY if a
+        read error or end-of-file is encountered.
+        We have already tested for an error.
+        But num could legitimately be less than filesize, because of
+        translation of CRLF to LF (on MSWindows with MSWindows text file).
+*/
+    buffer[num] = 0;
+    fclose(finput);
+    return(buffer);
+}
+
+/*
+  	#] ReadInput : 
+  	#[ CleanupOutput :
+*/
+
+void CleanupOutput(char *str)
+{
+    char *s, *t;
+    int period = 0;
+    s = t = str;
+    while ( *s && *s != '}' ) {
+        if ( *s == '\n' ) *s = ' ';
+        if ( ( *s == ' ' || *s == '\n' ) && ( s[1] == ' ' || s[1] == '\n' ) ) s++;
+        else *t++ = *s++;
+    }
+    while ( *s ) *t++ = *s++;
+    *t = 0;
+    s = t = str;
+    while ( *s ) {
+        if ( *s == '.' ) { period = 1; *t++ = *s++; }
+        else if ( *s == '-' && s[1] == '0' && s[2] == ' ' ) { s++; }
+        else if ( *s <= '9' && *s >= '0' ) { *t++ = *s++; }
+        else if ( *s == '\n' && ( t > str && t[-1] == '\n' ) ) { s++; }
+        else if ( period ) {
+            while ( t > str && t[-1] == '0' ) t--;
+            if ( t > str && t[-1] == '.' ) t--;
+            while ( *s == ' ' && s[1] == ' ' ) s++;
+            period = 0; *t++ = *s++;
+        }
+        else if ( *s == ' ' && s[1] == ' ' ) s++;
+        else {
+            period = 0; *t++ = *s++;
+        }
+    }
+    *t = 0;
+    s = t = str;
+    while ( *s ) {
+        if ( *s == '-' && s[1] == '0' && s[2] == ' ' ) { s++; }
+        else *t++ = *s++;
+    }
+    *t = 0;
+}
+
+/*
+  	#] CleanupOutput : 
+  	#[ DoOneObject :
+*/
+
+int DoOneObject(char *cinput)
+{
+    int num, i, num1, num2;
+    char *s, *t, *StartClean;
+    double *argbuf = 0;
+    SetDefaults();
+    s = cinput; while ( *s != '[' ) s++;
+    s++; t = s; while ( *t != ']' ) t++;
+    *t++ = 0; while ( *t == ' ' || *t == '\t' || *t == '\n' ) t++;
+    outpos = outputbuffer;
+    outpos += sprintf(outpos,"\\axo at setObject{%s}%%\n{%s%c}%%\n{",s,t,TERMCHAR);
+    if ( *s == '0' && s[1] == ']' ) {
+/*
+        The identification line.
+        In due time we might add more options here.
+*/
+        if ( strcmp(nameobject,"AxodrawWantsPDF") == 0 ) {
+            identification = 1;
+            outpos += sprintf(outpos,"Axohelp version %d.%d. PDF output.}",VERSION,SUBVERSION);
+            fprintf(outfile,"%s",outputbuffer);
+            return(0);
+        }
+        else {
+            fprintf(stderr,"%s: Illegal request in identification string [0]: %s\n"
+                        ,axohelp,nameobject);
+            if ( argbuf ) free(argbuf);
+            return(-1); 
+        }
+    }
+/*
+    if ( identification == 0 ) {
+        fprintf(stderr,"%s: No identification string. Check versions.\n",axohelp);
+        if ( argbuf ) free(argbuf);
+        return(-1); 
+    }
+*/
+    StartClean = outpos;
+
+    nameobject = t; while ( *t != ' ' && *t != '\t' && *t != '\n' && *t ) t++;
+    *t++ = 0; while ( *t == ' ' || *t == '\t' || *t == '\n' ) t++;
+/*
+        Now nameobject is the name of the command and t points at the first parameter.
+*/
+    if ( ( strcmp(nameobject,"Curve") == 0 )
+      || ( strcmp(nameobject,"Polygon") == 0 )
+      || ( strcmp(nameobject,"FilledPolygon") == 0 ) ) {
+/*
+ 		#[ Curve,Polygons :
+*/
+        if ( ( argbuf = ReadArray(t,&num1,&num2) ) == 0 ) return(-1);
+        if ( num2-1 != 0 ) {
+            fprintf(stderr,"%s: Command %s should have no extra numbers in %s.\n",
+                    axohelp,nameobject,inname);
+            free(argbuf);
+            return(-1);
+        }
+        else {
+/*
+            First some 'fixed' operations to set the state right
+            1: scale      2: linewidth      3: color
+            Then the function.
+            Finally the trailer and cleanup.
+*/
+            axolinewidth = argbuf[2*num1+num2-1];
+            SetLineWidth(axolinewidth);
+            if ( strcmp(nameobject,"Curve") == 0 ) {
+                Curve(argbuf,num1);
+            }
+            else if ( strcmp(nameobject,"Polygon") == 0 ) {
+                Polygon(argbuf,num1,0);
+            }
+            else if ( strcmp(nameobject,"FilledPolygon") == 0 ) {
+                Polygon(argbuf,num1,1);
+            }
+            free(argbuf);
+        }
+/*
+ 		#] Curve,Polygons : 
+*/
+    }
+    else if ( strcmp(nameobject,"DashCurve") == 0 ) {
+/*
+ 		#[ DashCurve :
+*/
+        if ( ( argbuf = ReadArray(t,&num1,&num2) ) == 0 ) return(-1);
+        if ( num2 != 2 ) {
+            fprintf(stderr,"%s: Command %s does not have two numbers after the coordinates\n  in file %s.\n",
+                    axohelp,nameobject,inname);
+            free(argbuf);
+            return(-1);
+        }
+        else {
+/*
+            First some 'fixed' operations to set the state right
+            1: scale      2: linewidth      3: color
+            Then the function.
+            Finally the trailer and cleanup.
+*/
+            axolinewidth = argbuf[2*num1+num2-1];
+            SetLineWidth(axolinewidth);
+            DashCurve(argbuf,num1);
+            free(argbuf);
+        }
+/*
+ 		#] DashCurve : 
+*/
+    }
+    else {
+/*
+ 		#[ Regular command :
+*/
+        if ( ( argbuf = ReadTail(t,&num) ) == 0 ) return(-1);
+        for ( i = 0; i < sizeof(commands)/sizeof(KEYWORD); i++ ) {
+            if ( strcmp(nameobject,commands[i].name) == 0 ) {
+                if ( num == commands[i].numargs+1 ) {
+/*
+                    First some 'fixed' operations to set the state right
+                    1: scale      2: linewidth      3: color
+                    Then the function.
+                    Finally the trailer and cleanup.
+*/
+                    axolinewidth = argbuf[num-1];
+                    SetLineWidth(axolinewidth);
+                    (*(commands[i].func))(argbuf);
+                    free(argbuf);
+                    break;
+                }
+                else {
+                    fprintf(stderr,"%s: Command %s should have %d(+1) arguments in %s.\n"
+                        ,axohelp,nameobject,commands[i].numargs,inname);
+                    free(argbuf);
+                    return(-1); 
+                }
+            }
+        }
+/*
+ 		#] Regular command : 
+*/
+        if ( i >= sizeof(commands)/sizeof(KEYWORD) ) {
+            fprintf(stderr,"%s: Command %s not recognized in file %s.\n",
+                    axohelp,nameobject,inname);
+            free(argbuf);
+            return(-1); 
+        }
+    }
+    outpos += sprintf(outpos,"}\n");
+    CleanupOutput(StartClean);
+    fprintf(outfile,"%s",outputbuffer);
+    return(0);
+}
+
+/*
+  	#] DoOneObject : 
+  	#[ PrintHelp :
+*/
+
+void PrintHelp(char *name)
+{
+    fprintf(stderr,"This is %s v. %d.%d of %s\n", NAME, VERSION, SUBVERSION, VERSIONDATE);
+    fprintf(stderr,"Usage: %s [OPTION] filename\n",name);
+    fprintf(stderr,"Input will then be from filename.ax1, output to filename.ax2.\n");
+    fprintf(stderr,"-h, --help : prints this help information and terminates.\n");
+    fprintf(stderr,"-v, --version : prints version information and terminates.\n");
+    fprintf(stderr,"-V : prints information about each function treated in stdout.\n");
+    fprintf(stderr,"     (NOT CURRENTLY IMPLEMENTED)\n\n");
+    fprintf(stderr,"Please report bugs to jcc8 at psu.edu.\n");
+    fprintf(stderr,"axodraw2 web page: https://ctan.org/pkg/axodraw2\n");
+}
+
+/*
+  	#] PrintHelp : 
+  	#[ PrintHelpPrompt :
+*/
+
+void PrintHelpPrompt(char *name)
+{
+    fprintf(stderr,"Try '%s --help' for more information.\n", name);
+}
+
+/*
+  	#] PrintHelpPrompt : 
+  	#[ Inivars :
+*/
+
+void Inivars()
+{
+    M_pi = acos(-1.);
+    torad = M_pi/180.;
+    BzK = 4.*(sqrt(2.)-1.)/3.;
+}
+
+/*
+  	#] Inivars : 
+  	#[ main :
+*/
+
+int main(int argc,char **argv)
+{
+    char *s, *inbuffer;
+    int length, error = 0;
+    long num,i;
+
+    Inivars();
+    argc--;
+    axohelp = *argv++;
+    if ( argc <= 0 ) {
+        PrintHelp(axohelp);
+	return -1;
+    }
+    while ( (*argv)[0] == '-' ) {   /* we have options */
+        s = *argv;
+        if ( s[1] == '-' ) {
+  	    /* Double "--", treat as "-" */
+	    s++;
+        }
+        if ( ( strcmp(s,"-h") == 0) || ( strcmp(s,"-help") == 0 ) ) {
+  	    PrintHelp(axohelp);
+	    return 0;
+	}
+        else if ( ( strcmp(s,"-v") == 0 ) || ( strcmp(s,"-version") == 0 ) ) {
+            fprintf(stderr,
+		    "%s %d.%d\n(release date %s)\n"
+		    "Copyright 2018 John Collins and Jos Vermaseren.\n"
+                    "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.\n"
+                    "There is NO WARRANTY, to the extent permitted by law.\n",
+		    axohelp, VERSION, SUBVERSION, VERSIONDATE);
+   	    return 0;
+	}
+        else if ( strcmp( s, "-V" ) == 0 ) {
+            VerboseFlag = 1;
+        }
+        else {
+ 	    fprintf(stderr,"%s: Illegal option %s\n", axohelp, *argv);
+            PrintHelpPrompt(axohelp);
+	    return -1;
+        }
+        argc--; argv++;
+        if ( argc <= 0 ) {
+            fprintf(stderr,"%s: Not enough arguments\n",axohelp);
+            PrintHelpPrompt(axohelp);
+	    return -1;
+        }
+    }
+    if ( argc != 1 ) {
+        fprintf(stderr,"%s: Too many arguments\n",axohelp);
+        PrintHelpPrompt(axohelp);
+        return -1;
+    }
+/*
+    The filename is now in s. We copy it to a separate string and
+    paste on the extension .ax1 (if needed), and construct the
+    name of the output file.
+*/
+    s = *argv;
+    length = strlen(s);
+    inname  = strcpy(malloc((length+5)*sizeof(char)),s);
+    outname = strcpy(malloc((length+5)*sizeof(char)),s);
+    s = inname + length;
+    if ( (length > 4) && (strcmp(s+length-4, ".ax1") == 0) ) {
+        outname[length-1] = '2';
+    }
+    else {
+        strcpy( inname+length, ".ax1" );
+        strcpy( outname+length, ".ax2" );
+    }
+    if ( ( inbuffer = ReadInput(inname) ) == 0 ) return(-1);
+    if ( ( outfile = fopen(outname,"w") ) == 0 ) {
+        fprintf(stderr,"%s: Cannot create file %s\n",axohelp,outname);
+        exit(-1);
+    }
+    num = ScanForObjects(inbuffer);
+    for ( i = 0; i < num; i++ ) {
+        numobject = i+1;
+        if ( DoOneObject(inputs[i]) < 0 ) { error++; }
+    }
+    fclose(outfile);
+    if ( error > 0 ) {
+        fprintf(stderr,"%s: %d objects in %s were not translated correctly.\n",
+            axohelp,error,inname);
+        return(-1);
+    }
+    return(0);
+}
+
+/*
+  	#] main : 
+  	#[ routines :
+ 		#[ Line routines :
+			#[ Line : *
+
+            Line(x1,y1)(x2,y2)
+*/
+
+void Line(double *args)
+{
+    MoveTo(args[0],args[1]);
+    LineTo(args[2],args[3]);
+    Stroke;
+}
+
+/*
+			#] Line : 
+			#[ DoubleLine : *
+
+            DoubleLine(x1,y1)(x2,y2){sep}
+*/
+
+void DoubleLine(double *args)
+{
+    SaveGraphicsState;
+    if ( args[4] > 0 ) {
+        SetLineWidth(args[4]+axolinewidth);
+        Line(args);
+        SetLineWidth(args[4]-axolinewidth);
+        SetBackgroundColor(STROKING);
+    }
+    Line(args);
+    RestoreGraphicsState;
+}
+
+/*
+			#] DoubleLine : 
+			#[ DashLine : *
+
+            DashLine(x1,y1)(x2,y2){dashsize}
+*/
+
+void DashLine(double *args)
+{
+    double dx = args[2]-args[0], dy = args[3]-args[1], dr = sqrt(dx*dx+dy*dy);
+    double dashsize = args[4];
+    int num;
+    num = dr/dashsize;
+    if ( ( num%2 ) == 1 ) num++;
+    dashsize = dr/num;
+    SetDashSize(dashsize,dashsize/2);
+    Line(args);
+}
+
+/*
+			#] DashLine : 
+			#[ DashDoubleLine : *
+
+            DashDoubleLine(x1,y1)(x2,y2){sep}{dashsize}
+*/
+
+void DashDoubleLine(double *args)
+{
+    double dx = args[2]-args[0], dy = args[3]-args[1], dr = sqrt(dx*dx+dy*dy);
+    double dashsize = args[5];
+    int num;
+    num = dr/dashsize;
+    if ( ( num%2 ) == 1 ) num++;
+    dashsize = dr/num;
+    SetDashSize(dashsize,dashsize/2);
+    DoubleLine(args);
+}
+
+/*
+			#] DashDoubleLine : 
+			#[ ArrowLine : *
+
+            ArrowLine(x1,y1)(x2,y2){size}{where}
+
+            where: x of arrowhead is x1+where*(x2-x1). Same for y.
+            serves both ArrowLine and LongArrowLine
+*/
+
+void ArrowLine(double *args)
+{
+    double dx, dy, dr, where;
+    Line(args);
+    if ( arrow.type == 0 ) where = args[5];
+    else where = arrow.where;
+    dx = args[2]-args[0];
+    dy = args[3]-args[1];
+    dr = sqrt(dx*dx+dy*dy);
+    SetTransferMatrix(1,0,0,1,args[0],args[1]);
+    SetTransferMatrix(dx/dr,dy/dr,-dy/dr,dx/dr,0,0);
+    SetTransferMatrix(1,0,0,1,dr*where,0);
+    if ( arrow.type == 0 ) arrow.width = args[4];
+    ArrowHead();
+}
+
+/*
+			#] ArrowLine : 
+			#[ ArrowDoubleLine : *
+
+            ArrowDoubleLine(x1,y1)(x2,y2){sep}{size}{where}
+
+            where: x of arrowhead is x1+where*(x2-x1). Same for y.
+            serves both ArrowLine and LongArrowLine
+*/
+
+void ArrowDoubleLine(double *args)
+{
+    double dx, dy, dr, where;
+    DoubleLine(args);
+    if ( arrow.type == 0 ) where = args[6];
+    else where = arrow.where;
+    dx = args[2]-args[0];
+    dy = args[3]-args[1];
+    dr = sqrt(dx*dx+dy*dy);
+    SetTransferMatrix(1,0,0,1,args[0],args[1]);
+    SetTransferMatrix(dx/dr,dy/dr,-dy/dr,dx/dr,0,0);
+    SetTransferMatrix(1,0,0,1,dr*where,0);
+    if ( arrow.type == 0 ) arrow.width = args[5]+args[4];
+    ArrowHead();
+}
+
+/*
+			#] ArrowDoubleLine : 
+			#[ DashArrowLine : *
+
+        DashArrowLine(x1,y1)(x2,y2){dashsize}{amplitude}{where}
+
+        where: x of arrowhead is x1+where*(x2-x1). Same for y.
+        we re-adjust the position of the arrow to place it on a dash.
+*/
+
+void DashArrowLine(double *args)
+{
+    double dx = args[2]-args[0], dy = args[3]-args[1], dr = sqrt(dx*dx+dy*dy);
+    double dashsize = args[4], where;
+    int num, nw;
+    if ( arrow.type == 0 ) where = args[6];
+    else where = arrow.where;
+    num = dr/dashsize;
+    if ( ( num%2 ) == 1 ) num++;
+    if ( num%4 != 0 && where > 0.499 && where < 0.501 ) num += 2;
+    dashsize = dr/num;
+    SetDashSize(dashsize,dashsize/2);
+    Line(args);
+    nw = where*(num/2)+0.5;
+    where = (2.0*nw)/num;
+    SetTransferMatrix(1,0,0,1,args[0],args[1]);
+    SetTransferMatrix(dx/dr,dy/dr,-dy/dr,dx/dr,0,0);
+    SetTransferMatrix(1,0,0,1,dr*where,0);
+    if ( arrow.type == 0 ) arrow.width = args[5];
+    ArrowHead();
+}
+
+/*
+			#] DashArrowLine : 
+			#[ DashArrowDoubleLine : *
+
+        DashArrowDoubleLine(x1,y1)(x2,y2){sep}{dashsize}{amplitude}{where}
+
+        where: x of arrowhead is x1+where*(x2-x1). Same for y.
+        we re-adjust the position of the arrow to place it on a dash.
+*/
+
+void DashArrowDoubleLine(double *args)
+{
+    double dx = args[2]-args[0], dy = args[3]-args[1], dr = sqrt(dx*dx+dy*dy);
+    double dashsize = args[5], where;
+    int num, nw;
+    if ( arrow.type == 0 ) where = args[7];
+    else where = arrow.where;
+    num = dr/dashsize;
+    if ( ( num%2 ) == 1 ) num++;
+    if ( num%4 != 0 && where > 0.499 && where < 0.501 ) num += 2;
+    dashsize = dr/num;
+    SetDashSize(dashsize,dashsize/2);
+    DoubleLine(args);
+    nw = where*(num/2)+0.5;
+    where = (2.0*nw)/num;
+    SetTransferMatrix(1,0,0,1,args[0],args[1]);
+    SetTransferMatrix(dx/dr,dy/dr,-dy/dr,dx/dr,0,0);
+    SetTransferMatrix(1,0,0,1,dr*where,0);
+    if ( arrow.type == 0 ) arrow.width = args[6]+args[4];
+    ArrowHead();
+}
+
+/*
+			#] DashArrowDoubleLine : 
+ 		#] Line routines : 
+ 		#[ Arc routines :
+			#[ CArc : *
+
+        CArc(x1,y1)(r,phi1,phi2)
+
+        The arc segment runs anticlockwise
+
+        We divide the segment into a number of equal segments, each less
+        than 90 degrees. Then the control points are at distance
+        4*tan(90/n)/3 from the endpoints, in which n=360/(phi2-phi1)
+        (note that if n=4 we get tan(22.5)=sqrt(2)-1).
+*/
+
+void CArc(double *args)
+{
+    double phi1 = args[3], phi2 = args[4], r = args[2];
+    double dphi;
+    while ( phi2 < phi1 ) phi2 += 360;
+    dphi = phi2-phi1;
+    if ( dphi <= 0 ) { return; }
+    if ( dphi >= 360 ) { ECirc(args); return; }
+    SetTransferMatrix(1,0,0,1,args[0],args[1]);
+    ArcSegment(r,phi1,dphi);
+    Stroke;
+}
+
+/*
+			#] CArc : 
+			#[ DoubleArc : *
+
+        DoubleArc(x1,y1)(r,phi1,phi2){sep}
+
+        The arc segment runs anticlockwise
+
+        We divide the segment into a number of equal segments, each less
+        than 90 degrees. Then the control points are at distance
+        4*tan(90/n)/3 from the endpoints, in which n=360/(phi2-phi1)
+        (note that if n=4 we get tan(22.5)=sqrt(2)-1).
+*/
+
+void DoubleArc(double *args)
+{
+    double phi1 = args[3], phi2 = args[4], r = args[2];
+    double dphi, sep = args[5];
+    while ( phi2 < phi1 ) phi2 += 360;
+    dphi = phi2-phi1;
+    if ( dphi <= 0 ) { return; }
+    SetTransferMatrix(1,0,0,1,args[0],args[1]);
+    ArcSegment(r+sep/2,phi1,dphi);
+    Stroke;
+    ArcSegment(r-sep/2,phi1,dphi);
+    Stroke;
+}
+
+/*
+			#] DoubleArc : 
+			#[ DashCArc : *
+
+        DashCArc(x1,y1)(r,phi1,phi2){dashsize}
+
+        The arc segment runs anticlockwise
+*/
+
+void DashCArc(double *args)
+{
+    double arcsize = args[4]-args[3];
+    double r = args[2], dr, dashsize = args[5];
+    int num;
+    if ( arcsize <= 0 ) arcsize += 360;
+    if ( arcsize > 360 ) arcsize = 360;
+    dr = 2*M_pi*r*(arcsize/360);
+    num = dr/dashsize;
+    if ( (num%2) == 1 ) num++;
+    dashsize = dr/num;
+    SetDashSize(dashsize,dashsize/2);
+    CArc(args);
+}
+
+/*
+			#] DashCArc : 
+			#[ DashDoubleArc : *
+
+        DashDoubleArc(x1,y1)(r,phi1,phi2){sep}{dashsize}
+
+        The arc segment runs anticlockwise
+        The trouble here is to synchronize the two dash patterns.
+        This is done by a rescaling. We assume that the rescaling is
+        sufficiently small that the linewidth does not suffer from it.
+*/
+
+void DashDoubleArc(double *args)
+{
+    double phi1 = args[3], r = args[2];
+    double arcsize = args[4]-args[3];
+    double dr, dashsize = args[6], sep = args[5];
+    int num;
+    linesep = sep;
+    SetTransferMatrix(1,0,0,1,args[0],args[1]);
+    if ( arcsize <= 0 ) arcsize += 360;
+    if ( arcsize > 360 ) arcsize = 360;
+    dr = 2*M_pi*r*(arcsize/360);
+    num = dr/dashsize;
+    if ( (num%2) == 1 ) num++;
+    dashsize = dr/num;
+    SetDashSize(dashsize,dashsize/2);
+    SaveGraphicsState;
+    SetTransferMatrix(1+0.5*sep/r,0,0,1+0.5*sep/r,0,0);
+    ArcSegment(r,phi1,arcsize);
+    Stroke;
+    RestoreGraphicsState;
+    SaveGraphicsState;
+    SetTransferMatrix(1-0.5*sep/r,0,0,1-0.5*sep/r,0,0);
+    ArcSegment(r,phi1,arcsize);
+    Stroke;
+    RestoreGraphicsState;
+}
+
+/*
+			#] DashDoubleArc : 
+			#[ ArrowArc : *
+
+        ArrowArc(x1,y1)(r,phi1,phi2){amplitude}{where}
+
+        where: phi of arrowhead is phi1+where*(phi2-phi1)
+        The arc segment runs anticlockwise
+        serves both ArrowArc and LongArrowArc and ... (Jaxodraw addition)
+*/
+
+void ArrowArc(double *args)
+{
+    double phi1 = args[3], phi2 = args[4], r = args[2];
+    double dphi, x, y, phi;
+    if ( arrow.type == 0 ) {
+        arrow.width = args[5];
+        arrow.where = args[6];
+    }
+
+    while ( phi2 < phi1 ) phi2 += 360;
+    dphi = phi2-phi1;
+    SetTransferMatrix(1,0,0,1,args[0],args[1]);
+
+    if ( dphi <= 0 ) { return; }
+    ArcSegment(r,phi1,dphi);
+    Stroke;
+/*
+    Now compute the position and angle of the arrowhead
+*/
+    phi = phi1 + arrow.where*dphi;
+    x = r*COS(phi); y = r*SIN(phi);
+    SetTransferMatrix(1,0,0,1,x,y);
+    SetTransferMatrix(COS(phi+90),SIN(phi+90),-SIN(phi+90),COS(phi+90),0,0);
+    ArrowHead();
+}
+
+/*
+			#] ArrowArc : 
+			#[ ArrowDoubleArc : *
+
+        ArrowDoubleArc(x1,y1)(r,phi1,phi2){sep}{amplitude}{where}
+
+        where: phi of arrowhead is phi1+where*(phi2-phi1)
+        The arc segment runs anticlockwise
+        serves both ArrowArc and LongArrowArc and ... (Jaxodraw addition)
+*/
+
+void ArrowDoubleArc(double *args)
+{
+    double phi1 = args[3], phi2 = args[4], r = args[2];
+    double dphi, x, y, phi;
+    linesep = args[5];
+    while ( phi2 < phi1 ) phi2 += 360;
+    dphi = phi2-phi1;
+    if ( dphi <= 0 ) { return; }
+    SetTransferMatrix(1,0,0,1,args[0],args[1]);
+    ArcSegment(r+linesep/2,phi1,dphi);
+    Stroke;
+    ArcSegment(r-linesep/2,phi1,dphi);
+    Stroke;
+/*
+    Now compute the position and angle of the arrowhead
+*/
+    if ( arrow.type == 0 ) {
+        arrow.width = args[6];
+        arrow.where = args[7];
+    }
+    phi = phi1 + arrow.where*dphi;
+    x = r*COS(phi); y = r*SIN(phi);
+    SetTransferMatrix(1,0,0,1,x,y);
+    SetTransferMatrix(COS(phi+90),SIN(phi+90),-SIN(phi+90),COS(phi+90),0,0);
+    ArrowHead();
+}
+
+/*
+			#] ArrowDoubleArc : 
+			#[ DashArrowArc : +
+
+        DashArrowArc(x1,y1)(r,phi1,phi2){dashsize}{amplitude}{where}
+
+        where: phi of arrowhead is phi1+where*(phi2-phi1)
+        The arc segment runs anticlockwise
+*/
+
+void DashArrowArc(double *args)
+{
+    double dphi, x, y, phi, phi1 = args[3], phi2 = args[4];
+    double r = args[2], dr, dashsize = args[5];
+    int num;
+    if ( arrow.type == 0 ) {
+        arrow.width = args[6];
+        arrow.where = args[7];
+    }
+
+    while ( phi2 < phi1 ) phi2 += 360;
+    dphi = phi2-phi1;
+    if ( dphi > 360 ) dphi = 360;
+    dr = 2*M_pi*r*(dphi/360);
+    num = dr/dashsize;
+    if ( (num%2) == 1 ) num++;
+    if ( num%4 != 0 && arrow.where > 0.499 && arrow.where < 0.501 ) num += 2;
+    dashsize = dr/num;
+    SetDashSize(dashsize,dashsize/2);
+    SetTransferMatrix(1,0,0,1,args[0],args[1]);
+    if ( dphi <= 0 ) { return; }
+    ArcSegment(r,phi1,dphi);
+    Stroke;
+/*
+    Now compute the position and angle of the arrowhead
+*/
+    phi = phi1 + arrow.where*dphi;
+    x = r*COS(phi); y = r*SIN(phi);
+    SetTransferMatrix(1,0,0,1,x,y);
+    SetTransferMatrix(COS(phi+90),SIN(phi+90),-SIN(phi+90),COS(phi+90),0,0);
+    ArrowHead();
+}
+
+/*
+			#] DashArrowArc : 
+			#[ DashArrowDoubleArc : +
+
+        DashArrowDoubleArc(x1,y1)(r,phi1,phi2){sep}{dashsize}{amplitude}{where}
+
+        where: phi of arrowhead is phi1+where*(phi2-phi1)
+        The arc segment runs anticlockwise
+*/
+
+void DashArrowDoubleArc(double *args)
+{
+    double dphi, x, y, phi, phi1 = args[3], phi2 = args[4];
+    double r = args[2], dr, dashsize = args[6];
+    int num;
+    linesep = args[5];
+    if ( arrow.type == 0 ) {
+        arrow.width = args[7];
+        arrow.where = args[8];
+    }
+
+    while ( phi2 < phi1 ) phi2 += 360;
+    dphi = phi2-phi1;
+    if ( dphi > 360 ) dphi = 360;
+    dr = 2*M_pi*r*(dphi/360);
+    num = dr/dashsize;
+    if ( (num%2) == 1 ) num++;
+    if ( num%4 != 0 && arrow.where > 0.499 && arrow.where < 0.501 ) num += 2;
+    dashsize = dr/num;
+    SetDashSize(dashsize,dashsize/2);
+    SetTransferMatrix(1,0,0,1,args[0],args[1]);
+    if ( dphi <= 0 ) { return; }
+    SaveGraphicsState;
+    SetTransferMatrix(1+0.5*linesep/r,0,0,1+0.5*linesep/r,0,0);
+    ArcSegment(r,phi1,dphi);
+    Stroke;
+    RestoreGraphicsState;
+    SaveGraphicsState;
+    SetTransferMatrix(1-0.5*linesep/r,0,0,1-0.5*linesep/r,0,0);
+    ArcSegment(r,phi1,dphi);
+    Stroke;
+    RestoreGraphicsState;
+/*
+    Now compute the position and angle of the arrowhead
+*/
+    phi = phi1 + arrow.where*dphi;
+    x = r*COS(phi); y = r*SIN(phi);
+    SetTransferMatrix(1,0,0,1,x,y);
+    SetTransferMatrix(COS(phi+90),SIN(phi+90),-SIN(phi+90),COS(phi+90),0,0);
+    ArrowHead();
+}
+
+/*
+			#] DashArrowDoubleArc : 
+			#[ ArrowArcn : +
+
+        ArrowArcn(x1,y1)(r,phi1,phi2){amplitude}{where}
+
+        where: phi of arrowhead is phi1+where*(phi2-phi1)
+        The arc segment runs clockwise
+*/
+
+void ArrowArcn(double *args)
+{
+    double newargs[7], a;
+    int i;
+    for ( i = 0; i < 7; i++ ) newargs[i] = args[i];
+    newargs[6] = 1-newargs[6];
+    a = newargs[3]; newargs[3] = newargs[4]; newargs[4] = a;
+    ArrowArc(newargs);
+}
+
+/*
+			#] ArrowArcn : 
+			#[ DashArrowArcn : +
+
+        DashArrowArc(x1,y1)(r,phi1,phi2){amplitude}{where}{dashsize}
+
+        where: phi of arrowhead is phi1+where*(phi2-phi1)
+        The arc segment runs clockwise
+*/
+
+void DashArrowArcn(double *args)
+{
+    double newargs[8], a;
+    int i;
+    for ( i = 0; i < 8; i++ ) newargs[i] = args[i];
+    newargs[6] = 1-newargs[6];
+    a = newargs[3]; newargs[3] = newargs[4]; newargs[4] = a;
+    DashArrowArc(newargs);
+}
+
+/*
+			#] DashArrowArcn : 
+ 		#] Arc routines : 
+ 		#[ Circle routines :
+			#[ ECirc : +
+
+        ECirc(x,y){radius}
+        Draws a circle
+*/
+
+void ECirc(double *args)
+{
+    SetTransferMatrix(1,0,0,1,args[0],args[1]);
+    BezierCircle(args[2],"S");
+}
+
+/*
+			#] ECirc : 
+			#[ FOval : +
+
+        FOval(x1,y1)(h,w) filled oval in default color
+
+*/
+
+void FOval(double *args)
+{
+    SetTransferMatrix(1,0,0,1,args[0],args[1]);  /* Move to center of oval */
+    SetTransferMatrix(COS(args[4]),SIN(args[4]),-SIN(args[4]),COS(args[4]),0,0);
+    BezierOval(args[3],args[2],"f");
+    BezierOval(args[3],args[2],"S");
+}
+
+/*
+			#] COval : 
+			#[ Oval : +
+
+        Oval(x1,y1)(h,w)(phi)
+
+        One way would be with different scales in the x and y direction,
+        but that messes up the linewidth.
+        We need to describe quarter ovals with Bezier curves. The proper
+        parameters for the curves we can obtain from the circle with scaling.
+*/
+
+void Oval(double *args)
+{
+    SetTransferMatrix(1,0,0,1,args[0],args[1]);  /* Move to center of oval */
+    SetTransferMatrix(COS(args[4]),SIN(args[4]),-SIN(args[4]),COS(args[4]),0,0);
+    BezierOval(args[3],args[2],"S");
+}
+
+/*
+			#] Oval : 
+ 		#] Circle routines : 
+ 		#[ Box routines :
+			#[ EBox : *
+
+        \EBox(#1,#2)(#3,#4)
+
+        Draws a box with the left bottom at (x1,y1) and the right top
+        at (x2,y2).
+                Transparent interior. Current color for edge.
+*/
+
+void EBox(double *args)
+{
+    Rectangle(args[0],args[1],args[2]-args[0],args[3]-args[1]);
+    Stroke;
+}
+
+/*
+			#] EBox : 
+			#[ FBox : *
+
+        \FBox(#1,#2)(#3,#4)
+
+        Draws a filled box with the left bottom at (x1,y1) and 
+                the right top at (x2,y2).
+                Current color.
+*/
+
+void FBox(double *args)
+{
+    Rectangle(args[0],args[1],args[2]-args[0],args[3]-args[1]);
+    Fill;
+}
+
+/*
+			#] FBox : 
+			#[ Boxc : *
+
+        \Boxc(#1,#2)(#3,#4)
+
+    Draws a transparent box with the center at (x1,y1).
+    The width and height are (3,4).  Uses current color.
+*/
+
+void Boxc(double *args)
+{
+    Rectangle(args[0]-args[2]/2,args[1]-args[3]/2,args[2],args[3]);
+    Stroke;
+}
+
+/*
+			#] Boxc : 
+			#[ FBoxc : *
+
+        \FBoxc(#1,#2)(#3,#4)
+
+    Draws a filled box with the center at (x1,y1).
+    The width and height are (3,4). Uses current color.
+*/
+
+void FBoxc(double *args)
+{
+    Rectangle(args[0]-args[2]/2,args[1]-args[3]/2,args[2],args[3]);
+    Fill;
+}
+
+/*
+			#] FBoxc : 
+ 		#] Box routines : 
+ 		#[ Triangle routines :
+			#[ ETri : *
+
+        \ETri(#1,#2)(#3,#4)(#5,#6)
+
+        Draws a triangle with the three corners.
+*/
+
+void ETri(double *args)
+{
+    Triangle(args[0],args[1],args[2],args[3],args[4],args[5]);
+    Stroke;
+}
+
+/*
+			#] ETri : 
+			#[ FTri : *
+
+        \FTri(#1,#2)(#3,#4)(#5,#6)
+
+        Draws a triangle with the three corners.
+*/
+
+void FTri(double *args)
+{
+    Triangle(args[0],args[1],args[2],args[3],args[4],args[5]);
+    Fill;
+}
+
+/*
+			#] FTri : 
+ 		#] Triangle routines : 
+ 		#[ Particle routines :
+			#[ Vertex : +
+
+        Vertex(x,y){radius}
+        Draws a filled circle
+*/
+
+void Vertex(double *args)
+{
+    SetTransferMatrix(1,0,0,1,args[0],args[1]);
+    BezierCircle(args[2],"f");
+}
+
+/*
+			#] Vertex : 
+			#[ ComputeDash :
+*/
+
+double ComputeDash(double *args,double dr,double indash)
+{
+    int numwindings = args[5]+0.5, numdashes;
+    int numhalfwindings = 2*numwindings+2.1;
+    double onehalfwinding = dr/numhalfwindings; 
+    double amp8 = fabs(args[4])*0.9;
+    double size = LengthBezier(-amp8,0, -amp8,2*args[4], onehalfwinding,2*args[4],1.0);
+
+    numdashes = size/(2*indash);
+    if ( numdashes == 0 ) numdashes = 1;
+    if ( fabs(size-2*indash*numdashes) > fabs(size-2*indash*(numdashes+1)) )
+        numdashes++;
+    return(size/(2*numdashes));
+}
+
+/*
+			#] ComputeDash : 
+			#[ ComputeDashCirc :
+*/
+
+double ComputeDashCirc(double *args,double indash)
+{
+    int num = args[5]+0.5, numdashes;
+    double ampi = args[4], radius = args[2];
+    double darc;
+    double dr,conv,inc;
+    double amp1,amp2,amp4,amp5,amp8;
+    double x0,x1,x2,x3,y0,y1,y2,y3,xx,size;
+    darc = 360.;
+    dr = darc*torad*radius;
+    conv = 1.0/radius;
+    inc = dr/(2*num);      /* increment per half winding */
+    amp8 = ampi*0.9;
+    amp1 = radius+ampi;
+    amp2 = radius-ampi;
+    amp4 = amp1/cos((inc+amp8)*conv);
+    amp5 = amp2/cos(amp8*conv);
+    if ( amp8 < 0 ) amp8 = -amp8;
+    xx = 2*inc;
+    x0 = amp1*cos(inc*conv);
+    y0 = amp1*sin(inc*conv);
+    x1 = amp4*cos((xx+amp8)*conv)-x0;
+    y1 = amp4*sin((xx+amp8)*conv)-y0;
+    x2 = amp5*cos((xx+amp8)*conv)-x0;
+    y2 = amp5*sin((xx+amp8)*conv)-y0;
+    x3 = amp2*cos(xx*conv)-x0;
+    y3 = amp2*sin(xx*conv)-y0;
+    size = LengthBezier(x1,y1,x2,y2,x3,y3,1.0);
+    numdashes = size/(2*indash);
+    if ( numdashes == 0 ) numdashes = 1;
+    if ( fabs(size-2*indash*numdashes) > fabs(size-2*indash*(numdashes+1)) )
+        numdashes++;
+    return(size/(2*numdashes));
+}
+
+/*
+			#] ComputeDashCirc : 
+			#[ ComputeDashPhotonArc :
+*/
+
+double ComputeDashPhotonArc(double *args,double darc,double dashsize,double *dashstart)
+{
+    int numdashes, numd;
+    double len1, len2, size, size2, ampli = args[5], radius = args[2];
+    double cp = cos(darc);
+    double sp = sin(darc);
+    double cp2 = cos(darc/2.);
+    double sp2 = sin(darc/2.);
+    double beta = radius*darc/(M_pi*ampli);
+    double tt = (sp-cp*beta)/(cp+sp*beta);
+    double x2 = ((radius+ampli)*8*(beta*cp2-sp2)-(beta*(4+cp)
+        +(tt*cp*3.-sp*4.))*radius)/((beta-tt)*3.);
+    double x1 = ((radius+ampli)*8.*cp2-(1+cp)*radius)/3.-x2;
+    double y1 = (x1-radius)*beta;
+    double y2 = (x2-radius*cp)*tt+radius*sp;
+    double x3 = radius*cp;
+    double y3 = radius*sp;
+    len1 = LengthBezier(x1-radius,y1,x2-radius,y2,x3-radius,y3,1.0);
+    ampli = -ampli;
+    beta = radius*darc/(M_pi*ampli);
+    tt = (sp-cp*beta)/(cp+sp*beta);
+    x2 = ((radius+ampli)*8*(beta*cp2-sp2)-(beta*(4+cp)
+        +(tt*cp*3.-sp*4.))*radius)/((beta-tt)*3.);
+    x1 = ((radius+ampli)*8.*cp2-(1+cp)*radius)/3.-x2;
+    y1 = (x1-radius)*beta;
+    y2 = (x2-radius*cp)*tt+radius*sp;
+    x3 = radius*cp;
+    y3 = radius*sp;
+    len2 = LengthBezier(x1-radius,y1,x2-radius,y2,x3-radius,y3,1.0);
+    size = (len1+len2)/2;
+    size2 = len1/2;
+    numdashes = size/(2*dashsize);
+    if ( numdashes == 0 ) numdashes = 1;
+    if ( fabs(size-2*dashsize*numdashes) > fabs(size-2*dashsize*(numdashes+1)) )
+        numdashes++;
+    dashsize = size/(2*numdashes);
+    numd = size2/(2*dashsize);
+    *dashstart = -(size2 - 2*numd*dashsize) + dashsize/2;
+    if ( *dashstart < 0 ) *dashstart += 2*dashsize;
+    return(dashsize);
+}
+
+/*
+			#] ComputeDashPhotonArc : 
+			#[ ComputeDashGluonArc :
+*/
+
+double ComputeDashGluonArc(double *args,double darc,double dashsize)
+{
+    int numdashes, num = args[6];
+    double radius = args[2], ampi = args[5];
+    double dr,conv,inc, size;
+    double amp1,amp2,amp4,amp5,amp8;
+    double x1,x2,x3,y1,y2,y3,xx,x3p,y3p;
+    dr = darc*torad*radius;
+    conv = 1.0/radius;
+    inc = dr/(2*num+2);      /* increment per half winding */
+    amp8 = ampi*0.9;
+    amp1 = radius+ampi;
+    amp2 = radius-ampi;
+    amp4 = amp1/cos((inc+amp8)*conv);
+    amp5 = amp2/cos(amp8*conv);
+    if ( amp8 < 0 ) amp8 = -amp8;
+
+    xx = 2*inc;
+    x3p = amp2*cos(xx*conv);
+    y3p = amp2*sin(xx*conv);
+    x1 = amp5*cos((xx-amp8)*conv)-x3p;
+    y1 = amp5*sin((xx-amp8)*conv)-y3p;
+    x2 = amp4*cos((xx-amp8)*conv)-x3p;
+    y2 = amp4*sin((xx-amp8)*conv)-y3p;
+    x3 = amp1*cos((xx+inc)*conv)-x3p;
+    y3 = amp1*sin((xx+inc)*conv)-y3p;
+    size = LengthBezier(x1,y1,x2,y2,x3,y3,1.0);
+
+    numdashes = size/(2*dashsize);
+    if ( numdashes == 0 ) numdashes = 1;
+    if ( fabs(size-2*dashsize*numdashes) > fabs(size-2*dashsize*(numdashes+1)) )
+        numdashes++;
+    dashsize = size/(2*numdashes);
+    return(dashsize);
+}
+
+/*
+			#] ComputeDashGluonArc : 
+			#[ GluonHelp :
+
+        We draw the gluon in two strokes. This is due to the possibility
+        of a dash pattern. We want the dashes to be nicely symmetric on
+        the central windings. That means that either the start and end need
+        a different size dashes, or we draw the start 'backwards'.
+        We have chosen for the last solution.
+*/
+
+void GluonHelp(double *args,double dr)
+{
+    int numwindings = args[5]+0.5;
+    int numhalfwindings = 2*numwindings+2.1;
+    double onehalfwinding = dr/numhalfwindings; 
+    double amp8 = fabs(args[4])*0.9;
+    double xx = 2*onehalfwinding;
+    int i;
+    MoveTo(xx,-args[4]);
+    Bezier(xx+amp8,-args[4],xx+amp8,args[4],1.4*onehalfwinding,args[4]);
+    Bezier(0.5*onehalfwinding,args[4],
+           0.1*onehalfwinding,args[4]*0.5,0,0);
+    Stroke;
+    MoveTo(xx,-args[4]);
+    for ( i = 0; i < numwindings-1; i++ ) {
+        Bezier(xx-amp8,-args[4], xx-amp8,args[4], xx+onehalfwinding,args[4]);
+        xx += 2*onehalfwinding;
+        Bezier(xx+amp8,args[4], xx+amp8,-args[4], xx,-args[4]);
+    }
+    Bezier(xx-amp8,-args[4], xx-amp8,args[4], xx+onehalfwinding*0.6,args[4]);
+    Bezier(dr-onehalfwinding*0.5,args[4],
+           dr-onehalfwinding*0.1,args[4]*0.5,
+           dr,0);
+    Stroke;
+}
+
+/*
+			#] GluonHelp : 
+			#[ GluonCircHelp :
+*/
+
+void GluonCircHelp(double *args)
+{
+    int num = args[5], i;
+    double ampi = args[4], radius = args[2];
+    double darc;
+    double dr,conv,inc;
+    double amp1,amp2,amp4,amp5,amp8;
+    double x1,x2,x3,y1,y2,y3,xx;
+    darc = 360.;
+    dr = darc*torad*radius;
+    conv = 1.0/radius;
+    inc = dr/(2*num);      /* increment per half winding */
+    amp8 = ampi*0.9;
+    amp1 = radius+ampi;
+    amp2 = radius-ampi;
+    amp4 = amp1/cos((inc+amp8)*conv);
+    amp5 = amp2/cos(amp8*conv);
+    if ( amp8 < 0 ) amp8 = -amp8;
+    xx = 2*inc;
+    x3 = amp1*cos(inc*conv);
+    y3 = amp1*sin(inc*conv);
+    MoveTo(x3,y3);
+/*
+    Now the loop
+*/
+    for ( i = 0; i < num; i++ ) {
+        x1 = amp4*cos((xx+amp8)*conv);
+        y1 = amp4*sin((xx+amp8)*conv);
+        x2 = amp5*cos((xx+amp8)*conv);
+        y2 = amp5*sin((xx+amp8)*conv);
+        x3 = amp2*cos(xx*conv);
+        y3 = amp2*sin(xx*conv);
+            Bezier(x1,y1,x2,y2,x3,y3);
+        x1 = amp5*cos((xx-amp8)*conv);
+        y1 = amp5*sin((xx-amp8)*conv);
+        x2 = amp4*cos((xx-amp8)*conv);
+        y2 = amp4*sin((xx-amp8)*conv);
+        x3 = amp1*cos((xx+inc)*conv);
+        y3 = amp1*sin((xx+inc)*conv);
+            Bezier(x1,y1,x2,y2,x3,y3);
+        xx += 2*inc;
+    }
+    Stroke;
+}
+
+/*
+			#] GluonCircHelp : 
+			#[ GluonArcHelp :
+*/
+
+void GluonArcHelp(double *args, double darc, double ampi)
+{
+    int num = args[6], i;
+    double radius = args[2];
+    double dr,conv,inc;
+    double amp1,amp2,amp3,amp4,amp5,amp6,amp7,amp8;
+    double x1,x2,x3,y1,y2,y3,xx,x1p,y1p,x2p,y2p,x3p,y3p;
+    dr = darc*torad*radius;
+    conv = 1.0/radius;
+    inc = dr/(2*num+2);      /* increment per half winding */
+    amp8 = ampi*0.9;
+    amp1 = radius+ampi;
+    amp2 = radius-ampi;
+    amp3 = radius+ampi/2;
+    amp4 = amp1/cos((inc+amp8)*conv);
+    amp5 = amp2/cos(amp8*conv);
+    amp6 = amp1/cos((inc*0.6+amp8)*conv);
+    amp7 = amp1/cos(inc*0.9*conv);
+    if ( amp8 < 0 ) amp8 = -amp8;
+    xx = 2*inc;
+/*
+    First the starting part. We draw it separately because there could
+    be a dashing pattern. This way the windings come out best.
+*/
+    x1 = amp3*cos(inc*0.1*conv);
+    y1 = amp3*sin(inc*0.1*conv);
+    x2 = amp7*cos(inc*0.5*conv);
+    y2 = amp7*sin(inc*0.5*conv);
+    x3 = amp1*cos(inc*1.4*conv);
+    y3 = amp1*sin(inc*1.4*conv);
+    x1p = amp6*cos((xx+amp8)*conv);
+    y1p = amp6*sin((xx+amp8)*conv);
+    x2p = amp5*cos((xx+amp8)*conv);
+    y2p = amp5*sin((xx+amp8)*conv);
+    x3p = amp2*cos(xx*conv);
+    y3p = amp2*sin(xx*conv);
+    MoveTo(x3p,y3p);
+    Bezier(x2p,y2p,x1p,y1p,x3,y3);
+    Bezier(x2,y2,x1,y1,radius,0);
+    Stroke;
+/*
+    Now the loop
+*/
+    MoveTo(x3p,y3p);
+    for ( i = 1; i < num; i++ ) {
+        x1 = amp5*cos((xx-amp8)*conv);
+        y1 = amp5*sin((xx-amp8)*conv);
+        x2 = amp4*cos((xx-amp8)*conv);
+        y2 = amp4*sin((xx-amp8)*conv);
+        x3 = amp1*cos((xx+inc)*conv);
+        y3 = amp1*sin((xx+inc)*conv);
+            Bezier(x1,y1,x2,y2,x3,y3);
+        xx += 2*inc;
+        x1 = amp4*cos((xx+amp8)*conv);
+        y1 = amp4*sin((xx+amp8)*conv);
+        x2 = amp5*cos((xx+amp8)*conv);
+        y2 = amp5*sin((xx+amp8)*conv);
+        x3 = amp2*cos(xx*conv);
+        y3 = amp2*sin(xx*conv);
+            Bezier(x1,y1,x2,y2,x3,y3);
+    }
+/*
+    And now the end point
+*/
+    x1 = amp5*cos((xx-amp8)*conv);
+    y1 = amp5*sin((xx-amp8)*conv);
+    x2 = amp6*cos((xx-amp8)*conv);
+    y2 = amp6*sin((xx-amp8)*conv);
+    x3 = amp1*cos((xx+inc*0.6)*conv);
+    y3 = amp1*sin((xx+inc*0.6)*conv);
+        Bezier(x1,y1,x2,y2,x3,y3);
+    x1 = amp7*cos((xx+inc*1.5)*conv);
+    y1 = amp7*sin((xx+inc*1.5)*conv);
+    x2 = amp3*cos((dr-inc*0.1)*conv);
+    y2 = amp3*sin((dr-inc*0.1)*conv);
+    x3 = radius*cos(dr*conv);
+    y3 = radius*sin(dr*conv);
+
+    Bezier(x1,y1,x2,y2,x3,y3);
+
+    Stroke;
+}
+
+/*
+			#] GluonArcHelp : 
+			#[ PhotonHelp :
+*/
+
+void PhotonHelp(double *args, double dr)
+{
+    int numhalfwindings = args[5]*2+0.5;
+    double onehalfwinding = dr/numhalfwindings; 
+    double y = 4.*args[4]/3;
+    double x, xx;
+    int i;
+    MoveTo(0,0);
+/*
+    Now loop over the half windings, alternating the sign of the y's
+*/
+    x = (4*onehalfwinding)/3/M_pi; xx = 0;
+    for ( i = 0; i < numhalfwindings; i++, y = -y ) {
+        Bezier(xx+x,y, xx+onehalfwinding-x,y, xx+onehalfwinding,0);
+        xx += onehalfwinding;
+    }
+    Stroke;
+}
+/*
+			#] PhotonHelp : 
+			#[ PhotonArcHelp :
+*/
+
+void PhotonArcHelp(double *args,double arcend,int num)
+{
+    int i;
+    double ampli = args[5], radius = args[2];
+    double cp,sp,cp2,sp2,cpi,spi;
+    double x1,x2,x3,y1,y2,y3,beta,tt;
+
+    cp = cos(arcend);
+    sp = sin(arcend);
+    cp2 = cos(arcend/2.);
+    sp2 = sin(arcend/2.);
+
+    MoveTo(radius,0);
+    for ( i = 0; i < num; i++, ampli = -ampli ) {
+        cpi = cos(i*arcend);
+        spi = sin(i*arcend);
+        beta = radius*arcend/(M_pi*ampli);
+        tt = (sp-cp*beta)/(cp+sp*beta);
+        x2 = ((radius+ampli)*8*(beta*cp2-sp2)-(beta*(4+cp)
+            +(tt*cp*3.-sp*4.))*radius)/((beta-tt)*3.);
+        x1 = ((radius+ampli)*8.*cp2-(1+cp)*radius)/3.-x2;
+        y1 = (x1-radius)*beta;
+        y2 = (x2-radius*cp)*tt+radius*sp;
+        x3 = radius*cp;
+        y3 = radius*sp;
+        Bezier(cpi*x1-spi*y1,cpi*y1+spi*x1,
+               cpi*x2-spi*y2,cpi*y2+spi*x2,
+               cpi*x3-spi*y3,cpi*y3+spi*x3);
+    }
+    Stroke;
+}
+
+/*
+			#] PhotonArcHelp : 
+			#[ ZigZagHelp :
+*/
+
+void ZigZagHelp(double *args, double dr)
+{
+    int numhalfwindings = args[5]*2+0.5;
+    double onehalfwinding = dr/numhalfwindings; 
+    double x = onehalfwinding, y = args[4];
+    int i;
+    MoveTo(0,0);
+/*
+    Now loop over the half windings, alternating the sign of the y's
+*/
+    for ( i = 0; i < numhalfwindings; i++, y = -y ) {
+        LineTo(x-onehalfwinding/2.,y); LineTo(x,0);
+        x += onehalfwinding;
+    }
+    Stroke;
+}
+
+/*
+			#] ZigZagHelp : 
+			#[ ZigZagArcHelp :
+*/
+
+void ZigZagArcHelp(double *args)
+{
+    int num = 2*args[6]-0.5, i;
+    double amp = args[5], r = args[2];
+    double arcstart = args[3], arcend = args[4], darc;
+    if ( arcend < arcstart ) arcend += 360.;
+    darc = (arcend-arcstart)/(num+1);
+    MoveTo(r*COS(arcstart),r*SIN(arcstart));
+    arcstart += darc/2;
+    for ( i = 0; i <= num; i++, amp = -amp ) {
+        LineTo((r+amp)*COS(arcstart+darc*i),(r+amp)*SIN(arcstart+darc*i));
+    }
+    LineTo(r*COS(arcend),r*SIN(arcend));
+    Stroke;
+}
+
+/*
+			#] ZigZagArcHelp : 
+			#[ Gluon : *
+
+        Gluon(x1,y1)(x2,y2){amplitude}{windings}
+
+        Each half winding is one cubic Bezier curve.
+        In addition the end points are different Bezier curves.
+*/
+
+void Gluon(double *args)
+{
+    double dx = args[2] - args[0];
+    double dy = args[3] - args[1];
+    double dr = sqrt(dx*dx+dy*dy);
+ 
+    SetTransferMatrix(1,0,0,1,args[0],args[1]);
+    SetTransferMatrix(dx/dr,dy/dr,-dy/dr,dx/dr,0,0);
+    GluonHelp(args,dr);
+}
+
+/*
+			#] Gluon : 
+			#[ DashGluon : *
+
+        DashGluon(x1,y1)(x2,y2){amplitude}{windings}{dashsize}
+
+        Each half winding is one cubic Bezier curve.
+        In addition the end points are different Bezier curves.
+*/
+
+void DashGluon(double *args)
+{
+    double dx = args[2] - args[0];
+    double dy = args[3] - args[1];
+    double dr = sqrt(dx*dx+dy*dy);
+    double dashsize;
+ 
+    SetTransferMatrix(1,0,0,1,args[0],args[1]);
+    SetTransferMatrix(dx/dr,dy/dr,-dy/dr,dx/dr,0,0);
+
+    dashsize = ComputeDash(args,dr,args[6]);
+    SetDashSize(dashsize,dashsize/2);
+    GluonHelp(args,dr);
+}
+
+/*
+			#] DashGluon : 
+			#[ GluonCirc : *
+
+        GluonCirc(x1,y1)(r,phi){amplitude}{windings}
+
+        Draws a gluon on a circle
+        x_center,y_center,radius,phase_angle,gluon_radius,num
+        in which num is the number of windings of the gluon.
+        Method: Same as GluonArc, but without special start and end
+*/
+
+void GluonCirc(double *args)
+{
+    int num = args[5];
+    double arcstart = args[3];
+
+    SetTransferMatrix(1,0,0,1,args[0],args[1]);  /* Move to center of circle */
+
+    arcstart += 360./(2*num);  /* extra phase to make 0 angle more accessible */
+
+    SetTransferMatrix(COS(arcstart),SIN(arcstart)
+                    ,-SIN(arcstart),COS(arcstart),0,0);
+
+    GluonCircHelp(args);
+}
+
+/*
+			#] GluonCirc : 
+			#[ DashGluonCirc : *
+
+        DashGluonCirc(x1,y1)(r,phi){amplitude}{windings}{dashsize}
+
+        Draws a gluon on a circle
+        x_center,y_center,radius,phase_angle,gluon_radius,num
+        in which num is the number of windings of the gluon.
+        Method: Same as GluonArc, but without special start and end
+*/
+
+void DashGluonCirc(double *args)
+{
+    int num = args[5];
+    double arcstart = args[3], dashsize;
+
+    SetTransferMatrix(1,0,0,1,args[0],args[1]);  /* Move to center of circle */
+
+    arcstart += 360./(2*num);  /* extra phase to make 0 angle more accessible */
+
+    SetTransferMatrix(COS(arcstart),SIN(arcstart)
+                    ,-SIN(arcstart),COS(arcstart),0,0);
+
+    dashsize = ComputeDashCirc(args,args[6]);
+
+    SetDashSize(dashsize,dashsize/2);
+    GluonCircHelp(args);
+}
+
+/*
+			#] DashGluonCirc : 
+			#[ GluonArc : *
+
+        GluonArc(x1,y1)(r,phi1,phi2){amplitude}{windings}
+
+        Draws a gluon on an arcsegment
+        x_center,y_center,radius,stat_angle,end_angle,gluon_radius,num
+        in which num is the number of windings of the gluon.
+        Method:
+        1:  compute length of arc.
+        2:  generate gluon in x and y as if the arc is a straight line
+        3:  x' = (radius+y)*cos(x*const)
+            y' = (radius+y)*sin(x*const)
+*/
+
+void GluonArc(double *args)
+{
+    double darc, arcstart = args[3],arcend = args[4], ampi = args[5];
+/*  
+        When arcend comes before arcstart we have a problem. The solution is
+        to flip the order and change the sign on ampi
+*/
+    if ( arcend < arcstart ) {
+        darc = arcstart; arcstart = arcend; arcend = darc; ampi = -ampi;
+    }
+
+    SetTransferMatrix(1,0,0,1,args[0],args[1]);  /* Move to center of circle */
+
+    SetTransferMatrix(COS(arcstart),SIN(arcstart)
+                    ,-SIN(arcstart),COS(arcstart),0,0);
+    darc = arcend-arcstart;
+    GluonArcHelp(args,darc,ampi);
+}
+
+/*
+			#] GluonArc : 
+			#[ DashGluonArc : *
+
+        DashGluonArc(x1,y1)(r,phi1,phi2){amplitude}{windings}{dashsize}
+
+        Draws a gluon on an arcsegment
+        x_center,y_center,radius,stat_angle,end_angle,gluon_radius,num
+        in which num is the number of windings of the gluon.
+        Method:
+        1:  compute length of arc.
+        2:  generate gluon in x and y as if the arc is a straight line
+        3:  x' = (radius+y)*cos(x*const)
+            y' = (radius+y)*sin(x*const)
+*/
+
+void DashGluonArc(double *args)
+{
+    double darc, arcstart = args[3],arcend = args[4], ampi = args[5];
+    double dashsize = args[7];
+/*  
+        When arcend comes before arcstart we have a problem. The solution is
+        to flip the order and change the sign on ampi
+*/
+    if ( arcend < arcstart ) {
+        darc = arcstart; arcstart = arcend; arcend = darc; ampi = -ampi;
+    }
+
+    SetTransferMatrix(1,0,0,1,args[0],args[1]);  /* Move to center of circle */
+
+    SetTransferMatrix(COS(arcstart),SIN(arcstart)
+                    ,-SIN(arcstart),COS(arcstart),0,0);
+    darc = arcend-arcstart;
+    dashsize = ComputeDashGluonArc(args,darc,dashsize);
+    SetDashSize(dashsize,dashsize/2);
+    GluonArcHelp(args,darc,ampi);
+}
+
+/*
+			#] DashGluonArc : 
+			#[ Photon : *
+
+        Photon(x1,y1)(x2,y2){amplitude}{windings}
+
+        Each half winding is one cubic Bezier curve.
+*/
+
+void Photon(double *args)
+{
+    double dx = args[2] - args[0];
+    double dy = args[3] - args[1];
+    double dr = sqrt(dx*dx+dy*dy);
+
+    SetTransferMatrix(1,0,0,1,args[0],args[1]);
+    SetTransferMatrix(dx/dr,dy/dr,-dy/dr,dx/dr,0,0);
+
+    PhotonHelp(args,dr);
+}
+
+/*
+			#] Photon : 
+			#[ DoublePhoton : *
+
+        DoublePhoton(x1,y1)(x2,y2){amplitude}{windings}{sep}
+
+        Each half winding is one cubic Bezier curve.
+*/
+
+void DoublePhoton(double *args)
+{
+    double dx = args[2] - args[0];
+    double dy = args[3] - args[1];
+    double dr = sqrt(dx*dx+dy*dy);
+    linesep = args[6];
+
+    SetTransferMatrix(1,0,0,1,args[0],args[1]);
+    SetTransferMatrix(dx/dr,dy/dr,-dy/dr,dx/dr,0,0);
+
+    SaveGraphicsState;
+    SetLineWidth(linesep+axolinewidth);
+    PhotonHelp(args,dr);
+    RestoreGraphicsState;
+
+    SaveGraphicsState;
+    SetLineWidth(linesep-axolinewidth);
+    SetBackgroundColor(STROKING);
+    PhotonHelp(args,dr);
+    RestoreGraphicsState;
+}
+
+/*
+			#] DoublePhoton : 
+			#[ DashPhoton : *
+
+        DashPhoton(x1,y1)(x2,y2){amplitude}{windings}{dashsize}
+
+        Each half winding is one cubic Bezier curve.
+*/
+
+void DashPhoton(double *args)
+{
+    double dx = args[2] - args[0];
+    double dy = args[3] - args[1];
+    double dr = sqrt(dx*dx+dy*dy);
+    int numdashes, numhalfwindings = args[5]*2+0.5;
+    double x, y, size;
+    double dashsize = args[6], onehalfwinding = dr/numhalfwindings; 
+    x = (4*onehalfwinding)/3/M_pi; y = 4.*args[4]/3;
+    size = 0.5*LengthBezier(x,y, onehalfwinding-x,y, onehalfwinding,0,1.0);
+    numdashes = size/(2*args[6]);
+    if ( numdashes == 0 ) numdashes = 1;
+    if ( fabs(size-2*dashsize*numdashes) > fabs(size-2*dashsize*(numdashes+1)) )
+        numdashes++;
+    dashsize = size/(2*numdashes);
+
+    SetTransferMatrix(1,0,0,1,args[0],args[1]);
+    SetTransferMatrix(dx/dr,dy/dr,-dy/dr,dx/dr,0,0);
+
+    SetDashSize(dashsize,dashsize/2);
+    PhotonHelp(args,dr);
+}
+
+/*
+			#] DashPhoton : 
+			#[ DashDoublePhoton : *
+
+        DashDoublePhoton(x1,y1)(x2,y2){amplitude}{windings}{sep}{dashsize}
+
+        Each half winding is one cubic Bezier curve.
+*/
+
+void DashDoublePhoton(double *args)
+{
+    double dx = args[2] - args[0];
+    double dy = args[3] - args[1];
+    double dr = sqrt(dx*dx+dy*dy);
+    int numdashes, numhalfwindings = args[5]*2+0.5;
+    double x, y, size;
+    double dashsize = args[7], onehalfwinding = dr/numhalfwindings; 
+    x = (4*onehalfwinding)/3/M_pi; y = 4.*args[4]/3;
+    size = 0.5*LengthBezier(x,y, onehalfwinding-x,y, onehalfwinding,0,1.0);
+    numdashes = size/(2*args[6]);
+    if ( numdashes == 0 ) numdashes = 1;
+    if ( fabs(size-2*dashsize*numdashes) > fabs(size-2*dashsize*(numdashes+1)) )
+        numdashes++;
+    dashsize = size/(2*numdashes);
+
+    linesep = args[6];
+
+    SetTransferMatrix(1,0,0,1,args[0],args[1]);
+    SetTransferMatrix(dx/dr,dy/dr,-dy/dr,dx/dr,0,0);
+    SetDashSize(dashsize,dashsize/2);
+
+    SaveGraphicsState;
+    SetLineWidth(linesep+axolinewidth);
+    PhotonHelp(args,dr);
+    RestoreGraphicsState;
+
+/*  SetDashSize(0,0); */
+    SaveGraphicsState;
+    SetLineWidth(linesep-axolinewidth);
+    SetBackgroundColor(STROKING);
+    PhotonHelp(args,dr);
+    RestoreGraphicsState;
+}
+
+/*
+			#] DashDoublePhoton : 
+			#[ PhotonArc : *
+
+        PhotonArc(x1,y1)(r,phi1,phi2){amplitude}{windings}
+
+        This routine follows the Postscript routine closely, except for that
+        we do not put a transfer matrix inside the loop. The corresponding
+        moveto messes up the path. One would have to put stroking operations
+        in there each time.
+*/
+
+void PhotonArc(double *args)
+{
+    double arcstart = args[3],arcend = args[4];
+    int num = 2*args[6]+0.5;
+
+    if ( arcend < arcstart ) arcend += 360.;
+
+    SetTransferMatrix(1,0,0,1,args[0],args[1]);  /* Move to center of circle */
+
+    arcend = torad*(arcend-arcstart)/num;
+
+    SetTransferMatrix(COS(arcstart),SIN(arcstart)
+                    ,-SIN(arcstart),COS(arcstart),0,0);
+
+    PhotonArcHelp(args,arcend,num);
+}
+
+/*
+			#] PhotonArc : 
+			#[ DoublePhotonArc : *
+
+        DoublePhotonArc(x1,y1)(r,phi1,phi2){amplitude}{windings}{sep}
+*/
+
+void DoublePhotonArc(double *args)
+{
+    double arcstart = args[3],arcend = args[4];
+    int num = 2*args[6]+0.5;
+    linesep = args[7];
+
+    if ( arcend < arcstart ) arcend += 360.;
+
+    SetTransferMatrix(1,0,0,1,args[0],args[1]);  /* Move to center of circle */
+
+    arcend = torad*(arcend-arcstart)/num;
+
+    SetTransferMatrix(COS(arcstart),SIN(arcstart)
+                    ,-SIN(arcstart),COS(arcstart),0,0);
+
+    SaveGraphicsState;
+    SetLineWidth(linesep+axolinewidth);
+    PhotonArcHelp(args,arcend,num);
+    RestoreGraphicsState;
+
+    SaveGraphicsState;
+    SetLineWidth(linesep-axolinewidth);
+    SetBackgroundColor(STROKING);
+    PhotonArcHelp(args,arcend,num);
+    RestoreGraphicsState;
+}
+
+/*
+			#] DoublePhotonArc : 
+			#[ DashPhotonArc : *
+
+        DashPhotonArc(x1,y1)(r,phi1,phi2){amplitude}{windings}{dashsize}
+*/
+
+void DashPhotonArc(double *args)
+{
+    double arcstart = args[3],arcend = args[4];
+    double dashsize = args[7], dashstart;
+    int num = 2*args[6]+0.5;
+
+    if ( arcend < arcstart ) arcend += 360.;
+
+    SetTransferMatrix(1,0,0,1,args[0],args[1]);  /* Move to center of circle */
+
+    arcend = torad*(arcend-arcstart)/num;
+
+    SetTransferMatrix(COS(arcstart),SIN(arcstart)
+                    ,-SIN(arcstart),COS(arcstart),0,0);
+
+    dashsize = ComputeDashPhotonArc(args,arcend,dashsize,&dashstart);
+    SetDashSize(dashsize,dashstart);
+    PhotonArcHelp(args,arcend,num);
+}
+
+/*
+			#] DashPhotonArc : 
+			#[ DashDoublePhotonArc : *
+
+        DashDoublePhotonArc(x1,y1)(r,phi1,phi2){amplitude}{windings}{sep}{dashsize}
+*/
+
+void DashDoublePhotonArc(double *args)
+{
+    double arcstart = args[3],arcend = args[4];
+    double dashsize = args[8], dashstart;
+    int num = 2*args[6]+0.5;
+    linesep = args[7];
+
+    if ( arcend < arcstart ) arcend += 360.;
+
+    SetTransferMatrix(1,0,0,1,args[0],args[1]);  /* Move to center of circle */
+
+    arcend = torad*(arcend-arcstart)/num;
+
+    SetTransferMatrix(COS(arcstart),SIN(arcstart)
+                    ,-SIN(arcstart),COS(arcstart),0,0);
+    dashsize = ComputeDashPhotonArc(args,arcend,dashsize,&dashstart);
+
+    SaveGraphicsState;
+    SetDashSize(dashsize,dashstart);
+    SetLineWidth(linesep+axolinewidth);
+    PhotonArcHelp(args,arcend,num);
+    RestoreGraphicsState;
+
+    SaveGraphicsState;
+    SetDashSize(0,0);
+    SetLineWidth(linesep-axolinewidth);
+    SetBackgroundColor(STROKING);
+    PhotonArcHelp(args,arcend,num);
+    RestoreGraphicsState;
+}
+
+/*
+			#] DashDoublePhotonArc : 
+			#[ ZigZag : *
+
+        ZigZag(x1,y1)(x2,y2){amplitude}{windings}
+
+        We draw each half winding as two straight lines.
+        This can be done better!
+*/
+
+void ZigZag(double *args)
+{
+    double dx = args[2] - args[0];
+    double dy = args[3] - args[1];
+    double dr = sqrt(dx*dx+dy*dy);
+
+    SetTransferMatrix(1,0,0,1,args[0],args[1]);
+    SetTransferMatrix(dx/dr,dy/dr,-dy/dr,dx/dr,0,0);
+    ZigZagHelp(args,dr);
+}
+
+/*
+			#] ZigZag : 
+			#[ DoubleZigZag : *
+
+        DoubleZigZag(x1,y1)(x2,y2){amplitude}{windings}{sep}
+
+        We draw each half winding as two straight lines.
+        This can be done better!
+*/
+
+void DoubleZigZag(double *args)
+{
+    double dx = args[2] - args[0];
+    double dy = args[3] - args[1];
+    double dr = sqrt(dx*dx+dy*dy);
+    linesep = args[6];
+
+    SetTransferMatrix(1,0,0,1,args[0],args[1]);
+    SetTransferMatrix(dx/dr,dy/dr,-dy/dr,dx/dr,0,0);
+
+    SaveGraphicsState;
+    SetLineWidth(linesep+axolinewidth);
+    ZigZagHelp(args,dr);
+    RestoreGraphicsState;
+
+    SaveGraphicsState;
+    SetLineWidth(linesep-axolinewidth);
+    SetBackgroundColor(STROKING);
+    ZigZagHelp(args,dr);
+    RestoreGraphicsState;
+}
+
+/*
+			#] DoubleZigZag : 
+			#[ DashZigZag : *
+
+        DashZigZag(x1,y1)(x2,y2){amplitude}{windings}{dashsize}
+
+        We should recalculate the size of the dashes. Otherwise the points
+        of the teeth can become messy.
+*/
+
+void DashZigZag(double *args)
+{
+    double dx = args[2] - args[0];
+    double dy = args[3] - args[1];
+    double dr = sqrt(dx*dx+dy*dy);
+    double dashsize = args[6];
+    int n = args[5]*2+0.5;
+    double size = dr/(n*2);
+
+    SetTransferMatrix(1,0,0,1,args[0],args[1]);
+    SetTransferMatrix(dx/dr,dy/dr,-dy/dr,dx/dr,0,0);
+
+    size = sqrt(size*size+args[4]*args[4]);
+    n = size/(2*dashsize);   /* number of complete dash patterns rounded down */
+/*
+    Now test what is closer to dash: size/n or size/(n+1)
+*/
+    if ( n == 0 ) n = 1;
+    if ( fabs(size-2*dashsize*n) > fabs(size-2*dashsize*(n+1)) ) n++;
+    dashsize = size/(2*n);
+
+    SetDashSize(dashsize,dashsize/2);
+    ZigZagHelp(args,dr);
+}
+
+/*
+			#] DashZigZag : 
+			#[ DashDoubleZigZag : *
+
+        DashDoubleZigZag(x1,y1)(x2,y2){amplitude}{windings}{sep}{dashsize}
+
+        We draw each half winding as two straight lines.
+        This can be done better!
+*/
+
+void DashDoubleZigZag(double *args)
+{
+    double dx = args[2] - args[0];
+    double dy = args[3] - args[1];
+    double dr = sqrt(dx*dx+dy*dy);
+    double dashsize = args[7];
+    int n = args[5]*2+0.5;
+    double size = dr/(n*2);
+    linesep = args[6];
+
+    SetTransferMatrix(1,0,0,1,args[0],args[1]);
+    SetTransferMatrix(dx/dr,dy/dr,-dy/dr,dx/dr,0,0);
+
+    size = sqrt(size*size+args[4]*args[4]);
+    n = size/(2*dashsize);   /* number of complete dash patterns rounded down */
+/*
+    Now test what is closer to dash: size/n or size/(n+1)
+*/
+    if ( n == 0 ) n = 1;
+    if ( fabs(size-2*dashsize*n) > fabs(size-2*dashsize*(n+1)) ) n++;
+    dashsize = size/(2*n);
+
+    SetDashSize(dashsize,dashsize/2);
+
+    SaveGraphicsState;
+    SetLineWidth(linesep+axolinewidth);
+    ZigZagHelp(args,dr);
+    RestoreGraphicsState;
+
+    SetDashSize(0,0);
+
+    SaveGraphicsState;
+    SetLineWidth(linesep-axolinewidth);
+    SetBackgroundColor(STROKING);
+    ZigZagHelp(args,dr);
+    RestoreGraphicsState;
+}
+
+/*
+			#] DashDoubleZigZag : 
+			#[ ZigZagArc : *
+
+        ZigZagArc(x1,y1)(r,phi1,phi2){amplitude}{windings}
+*/
+
+void ZigZagArc(double *args)
+{
+    SetTransferMatrix(1,0,0,1,args[0],args[1]);  /* Move to center of circle */
+    ZigZagArcHelp(args);
+}
+
+/*
+			#] ZigZagArc : 
+			#[ DoubleZigZagArc : *
+
+        DoubleZigZagArc(x1,y1)(r,phi1,phi2){amplitude}{windings}{sep}
+*/
+
+void DoubleZigZagArc(double *args)
+{
+    SetTransferMatrix(1,0,0,1,args[0],args[1]);  /* Move to center of circle */
+    linesep = args[7];
+
+    SaveGraphicsState;
+    SetLineWidth(linesep+axolinewidth);
+    ZigZagArcHelp(args);
+    RestoreGraphicsState;
+
+    SaveGraphicsState;
+    SetLineWidth(linesep-axolinewidth);
+    SetBackgroundColor(STROKING);
+    ZigZagArcHelp(args);
+    RestoreGraphicsState;
+}
+
+/*
+			#] DoubleZigZagArc : 
+			#[ DashZigZagArc : *
+
+        DashZigZagArc(x1,y1)(r,phi1,phi2){amplitude}{windings}{dashsize}
+*/
+
+void DashZigZagArc(double *args)
+{
+    double dashsize = args[7], dashstart;
+    SetTransferMatrix(1,0,0,1,args[0],args[1]);  /* Move to center of circle */
+    {
+        int num = 2*args[6]-0.5, numdashes;
+        double amp = args[5], r = args[2], size, size2;
+        double arcstart = args[3], arcend = args[4], darc;
+        if ( arcend < arcstart ) arcend += 360.;
+        darc = (arcend-arcstart)/(num+1);
+        size = sqrt(0.5*(amp*amp+r*r-(r*r-amp*amp)*COS(darc)));
+        size2 = sqrt(amp*amp+2*(amp+r)*r*(1-COS(darc/2)));
+        numdashes = size/(2*dashsize);
+        if ( numdashes == 0 ) numdashes = 1;
+        if ( fabs(size-2*dashsize*numdashes) > fabs(size-2*dashsize*(numdashes+1)) )
+                numdashes++;
+        dashsize = size/(2*numdashes);
+        num = size2/(2*dashsize);
+        dashstart = -(size2 - 2*num*dashsize) + dashsize/2;
+        if ( dashstart < 0 ) dashstart += 2*dashsize;
+    }
+    SetDashSize(dashsize,dashstart);
+    ZigZagArcHelp(args);
+}
+
+/*
+			#] DashZigZagArc : 
+			#[ DashDoubleZigZagArc : *
+
+        DashDoubleZigZagArc(x1,y1)(r,phi1,phi2){amplitude}{windings}{sep}{dashsize}
+*/
+
+void DashDoubleZigZagArc(double *args)
+{
+    double dashsize = args[8], dashstart;
+    SetTransferMatrix(1,0,0,1,args[0],args[1]);  /* Move to center of circle */
+    linesep = args[7];
+    {
+        int num = 2*args[6]-0.5, numdashes;
+        double amp = args[5], r = args[2], size, size2;
+        double arcstart = args[3], arcend = args[4], darc;
+        if ( arcend < arcstart ) arcend += 360.;
+        darc = (arcend-arcstart)/(num+1);
+        size = sqrt(0.5*(amp*amp+r*r-(r*r-amp*amp)*COS(darc)));
+        size2 = sqrt(amp*amp+2*(amp+r)*r*(1-COS(darc/2)));
+        numdashes = size/(2*dashsize);
+        if ( numdashes == 0 ) numdashes = 1;
+        if ( fabs(size-2*dashsize*numdashes) > fabs(size-2*dashsize*(numdashes+1)) )
+                numdashes++;
+        dashsize = size/(2*numdashes);
+        num = size2/(2*dashsize);
+        dashstart = -(size2 - 2*num*dashsize) + dashsize/2;
+        if ( dashstart < 0 ) dashstart += 2*dashsize;
+    }
+
+    SaveGraphicsState;
+    SetDashSize(dashsize,dashstart);
+    SetLineWidth(linesep+axolinewidth);
+    ZigZagArcHelp(args);
+    RestoreGraphicsState;
+
+    SaveGraphicsState;
+    SetDashSize(0,0);
+    SetLineWidth(linesep-axolinewidth);
+    SetBackgroundColor(STROKING);
+    ZigZagArcHelp(args);
+    RestoreGraphicsState;
+}
+
+/*
+			#] DashDoubleZigZagArc : 
+ 		#] Particle routines : 
+ 		#[ Drawing routines :
+			#[ Polygon :
+*/
+
+void Polygon(double *args,int num,int type)
+{
+    int i;
+    MoveTo(args[0],args[1]);
+    args += 2;
+    for ( i = 1; i < num; i++, args += 2 ) {
+        LineTo(args[0],args[1]);
+    }
+    if ( type == 0 ) { CloseAndStroke; }
+    else if ( type ==  1 ) { CloseAndFill; }
+}
+
+/*
+			#] Polygon : 
+			#[ Curve : +
+
+        Curve{(x1,y1),...,(xn,yn)}
+
+        num is the number of pairs in points.
+*/
+
+void Curve(double *points,int num)
+{
+    int i, ss;
+    double x0,y0,x1,y1,x2,y2,x3,y3;
+
+    if ( num < 2 ) return;
+    if ( num == 2 ) { Line(points); return; }
+
+    ss = 2*num;
+
+    x1 = points[0]; y1 = points[1];
+    x2 = points[2]; y2 = points[3];
+    x3 = points[4]; y3 = points[5];
+    x0 = 2*x1-x2;
+    y0 = 2*((y3-y2)/(x3-x2)-(y2-y1)/(x2-x1))*((x2-x1)*(x2-x1)/(x3-x1))+2*y1-y2;
+
+    MoveTo(x1,y1);
+    DoCurve(x0,y0,x1,y1,x2,y2,x3,y3);
+
+    for ( i = 0; i < ss-6; i += 2 ) {
+        DoCurve(points[i  ],points[i+1],points[i+2],points[i+3],
+                points[i+4],points[i+5],points[i+6],points[i+7]);
+    }
+    if ( ss > 6 ) {
+        x0 = points[ss-6]; y0 = points[ss-5];
+        x1 = points[ss-4]; y1 = points[ss-3];
+        x2 = points[ss-2]; y2 = points[ss-1];
+        x3 = 2*x2-x1;
+        y3 = 2*((y2-y1)/(x2-x1)-(y1-y0)/(x1-x0))*((x2-x1)*(x2-x1)/(x2-x0))+2*y2-y1;
+
+        DoCurve(x0,y0,x1,y1,x2,y2,x3,y3);
+    }
+    Stroke;
+}
+
+/*
+			#] Curve : 
+			#[ DashCurve : +
+
+        DashCurve{(x1,y1),...,(xn,yn)}{dashsize}
+*/
+
+void DashCurve(double *args,int num1)
+{
+    double dashsize = args[2*num1];
+    if ( num1 == 2 ) {
+        DashLine(args);
+    }
+    else if ( num1 > 2 ) {
+        SetDashSize(dashsize,dashsize/2);
+        Curve(args,num1);
+    }
+}
+
+/*
+			#] DashCurve : 
+			#[ LogAxis :
+
+        Draws a line with logarithmic hash marks along it.
+        LogAxis(x1,y1)(x2,y2)(num_logs,hashsize,offset,width)
+        The line is from (x1,y1) to (x2,y2) and the marks are on the left side
+        when hashsize is positive, and right when it is negative.
+        num_logs is the number of orders of magnitude and offset is the number
+        at which one starts at (x1,y1) (like if offset=2 we start at 2)
+        When offset is 0 we start at 1. Width is the linewidth.
+*/
+
+void LogAxis(double *args)
+{
+    double dx = args[2]-args[0], dy = args[3]-args[1], dr = sqrt(dx*dx+dy*dy);
+    double width = args[7], size, nlogs = args[4], hashsize = args[5];
+    double offset = args[6], x;
+    int i, j;
+    SetTransferMatrix(1,0,0,1,args[0],args[1]);
+    SetTransferMatrix(dx/dr,dy/dr,-dy/dr,dx/dr,0,0);
+    MoveTo(0,0); LineTo(dr,0); Stroke;
+/*
+    Now compute the hash marks.
+*/
+    size = dr/nlogs;
+    if ( offset <= 0 ) { offset = 0; }
+    else { offset = log10(offset); }
+/*
+    Big hash marks
+*/
+    for ( i = 1; i <= nlogs; i++ ) {
+        MoveTo((i-offset)*size,0);
+        LineTo((i-offset)*size,hashsize*1.2);
+        Stroke;
+    }
+/*
+    Little hash marks
+*/
+    SetLineWidth(0.6*width);
+    for ( i = 0; i <= nlogs; i++ ) {
+        for ( j = 2; j < 10; j++ ) {
+            x = (i-offset+log10(j))*size;
+            if ( x >= 0 && x <= dr ) {
+                MoveTo(x,0); LineTo(x,hashsize*0.8); Stroke;
+            }
+        }
+    }
+}
+
+/*
+			#] LogAxis : 
+			#[ LinAxis :
+
+        Draws a line with linear hash marks along it.
+        LinAxis(x1,y1)(x2,y2)(num_decs,per_dec,hashsize,offset,width)
+        The line is from (x1,y1) to (x2,y2) and the marks are on the left side
+        when hashsize is positive, and right when it is negative.
+        num_decs is the number of accented marks, per_dec the number of
+        divisions between them and offset is the number
+        at which one starts at (x1,y1) (like if offset=2 we start at the second
+        small mark) Width is the linewidth.
+*/
+
+void LinAxis(double *args)
+{
+    double width = args[8], hashsize = args[6], x;
+    double dx = args[2]-args[0], dy = args[3]-args[1], dr = sqrt(dx*dx+dy*dy);
+    double num_decs = args[4], per_dec = args[5], size, size2;
+    int i, j, numperdec = per_dec+0.5, offset = args[7];
+    SetTransferMatrix(1,0,0,1,args[0],args[1]);
+    SetTransferMatrix(dx/dr,dy/dr,-dy/dr,dx/dr,0,0);
+    MoveTo(0,0); LineTo(dr,0); Stroke;
+    size = dr/num_decs;
+    if ( numperdec > 1 ) size2 = size / numperdec;
+    else { size2 = size; numperdec = 1; }
+    if ( offset > numperdec ) offset = numperdec;
+    else if ( offset <= 0 ) offset = 0;
+/*
+    Big hashes
+*/
+    for ( i = 0; i <= num_decs; i++ ) {
+        x = i*size-offset*size2;
+        if ( x >= 0 && x <= dr ) {
+            MoveTo(x,0); LineTo(x,hashsize*1.2); Stroke;
+        }
+    }
+/*
+    Little hash marks.
+*/
+    j = num_decs*numperdec+0.5;
+    SetLineWidth(0.6*width);
+    for ( i = 0; i <= j; i++ ) {
+        if ( (i+offset)%numperdec != 0 ) {
+            x = i*size2;
+            if ( x >= 0 && x <= dr ) {
+                MoveTo(x,0); LineTo(x,hashsize*0.8); Stroke;
+            }
+        }
+    }
+}
+
+/*
+			#] LinAxis : 
+			#[ BezierCurve :
+
+            Draws a Bezier curve. Starts at (x1,y1).
+            The control points are (x2,y2),(x3,y3),(x4,y4)
+*/
+
+void BezierCurve(double *args)
+{
+    MoveTo(args[0],args[1]);
+    Bezier(args[2],args[3],args[4],args[5],args[6],args[7]);
+    Stroke;
+    if ( witharrow ) BezierArrow(args);
+}
+
+/*
+			#] BezierCurve : 
+			#[ DoubleBezier :
+
+            Draws a Bezier curve. Starts at (x1,y1).
+            The control points are (x2,y2),(x3,y3),(x4,y4)
+*/
+
+void DoubleBezier(double *args)
+{
+    linesep = args[8];
+    SaveGraphicsState;
+    SetLineWidth(linesep+axolinewidth);
+    MoveTo(args[0],args[1]);
+    Bezier(args[2],args[3],args[4],args[5],args[6],args[7]);
+    Stroke;
+    RestoreGraphicsState;
+    SaveGraphicsState;
+    SetLineWidth(linesep-axolinewidth);
+    SetBackgroundColor(STROKING);
+    MoveTo(args[0],args[1]);
+    Bezier(args[2],args[3],args[4],args[5],args[6],args[7]);
+    Stroke;
+    RestoreGraphicsState;
+    if ( witharrow ) BezierArrow(args);
+}
+
+/*
+			#] DoubleBezier : 
+			#[ DashBezier :
+
+            Draws a Bezier curve. Starts at (x1,y1).
+            The control points are (x2,y2),(x3,y3),(x4,y4)
+*/
+
+void DashBezier(double *args)
+{
+    int numdashes;
+    double size, dashsize = args[8];
+    size = LengthBezier(args[2]-args[0],args[3]-args[1]
+        ,args[4]-args[0],args[5]-args[1],args[6]-args[0],args[7]-args[1],1.0);
+
+    numdashes = size/(2*dashsize);
+    if ( numdashes == 0 ) numdashes = 1;
+    if ( fabs(size-2*dashsize*numdashes) > fabs(size-2*dashsize*(numdashes+1)) )
+        numdashes++;
+    dashsize = (size/(2*numdashes));
+
+    SetDashSize(dashsize,dashsize/2);
+    MoveTo(args[0],args[1]);
+    Bezier(args[2],args[3],args[4],args[5],args[6],args[7]);
+    Stroke;
+    if ( witharrow ) BezierArrow(args);
+}
+
+/*
+			#] DashBezier : 
+			#[ DashDoubleBezier :
+
+            Draws a Bezier curve. Starts at (x1,y1).
+            The control points are (x2,y2),(x3,y3),(x4,y4)
+*/
+
+void DashDoubleBezier(double *args)
+{
+    int numdashes;
+    double size, dashsize = args[9];
+    size = LengthBezier(args[2]-args[0],args[3]-args[1]
+        ,args[4]-args[0],args[5]-args[1],args[6]-args[0],args[7]-args[1],1.0);
+
+    numdashes = size/(2*dashsize);
+    if ( numdashes == 0 ) numdashes = 1;
+    if ( fabs(size-2*dashsize*numdashes) > fabs(size-2*dashsize*(numdashes+1)) )
+        numdashes++;
+    dashsize = (size/(2*numdashes));
+
+    SetDashSize(dashsize,dashsize/2);
+    linesep = args[8];
+    SaveGraphicsState;
+    SetLineWidth(linesep+axolinewidth);
+    MoveTo(args[0],args[1]);
+    Bezier(args[2],args[3],args[4],args[5],args[6],args[7]);
+    Stroke;
+    RestoreGraphicsState;
+    SaveGraphicsState;
+    SetLineWidth(linesep-axolinewidth);
+    SetBackgroundColor(STROKING);
+    MoveTo(args[0],args[1]);
+    Bezier(args[2],args[3],args[4],args[5],args[6],args[7]);
+    Stroke;
+    RestoreGraphicsState;
+    if ( witharrow ) BezierArrow(args);
+}
+
+/*
+			#] DashDoubleBezier : 
+ 		#] Drawing routines : 
+ 		#[ Wrapper routines :
+			#[ AxoArc :
+
+            Draws arc centered at (#1,#2), radius #3, starting and ending
+            angles #4, #5.
+            Double, dashing, arrow, flip, clockwise
+*/
+
+void AxoArc(double *args)
+{
+    double dashsize = args[6];
+    linesep = args[5];
+    GetArrow(args+7);
+    if ( args[16] ) {   /* If clockwise: reverse the angles and the arrow */
+        double e;
+        clockwise = 1;  /* In principle not needed */
+        flip = 1-flip;
+        arrow.where = 1-arrow.where;
+        e = args[3]; args[3] = args[4]; args[4] = e;
+    }
+
+    if ( witharrow ) {
+        if ( arrow.where > 1 ) arrow.where = 1;
+        if ( arrow.where < 0 ) arrow.where = 0;
+        if ( dashsize > 0 ) {
+            if ( linesep > 0 ) {
+                DashArrowDoubleArc(args);
+            }
+            else {
+                args[5] = args[6];
+                DashArrowArc(args);
+            }
+        }
+        else {
+            if ( linesep > 0 ) {
+                ArrowDoubleArc(args);
+            }
+            else {
+                ArrowArc(args);
+            }
+        }
+    }
+    else {
+        if ( dashsize > 0 ) {
+            if ( linesep > 0 ) {
+                DashDoubleArc(args);
+            }
+            else {
+                args[5] = args[6];
+                DashCArc(args);
+            }
+        }
+        else {
+            if ( linesep > 0 ) {
+                DoubleArc(args);
+            }
+            else {
+                CArc(args);
+            }
+        }
+    }
+}
+
+/*
+			#] AxoArc : 
+			#[ AxoBezier :
+*/
+
+void AxoBezier(double *args)
+{
+    linesep = args[8];
+    GetArrow(args+10);
+    if ( witharrow ) {
+        if ( arrow.where > 1 ) arrow.where = 1;
+        if ( arrow.where < 0 ) arrow.where = 0;
+    }
+    if ( args[9] ) {    /* dashes */
+        if ( args[8] ) {    /* double */
+            DashDoubleBezier(args);
+        }
+        else {
+            args[8] = args[9];
+            DashBezier(args);
+        }
+    }
+    else {
+        if ( args[8] ) {    /* double */
+            DoubleBezier(args);
+        }
+        else {
+            BezierCurve(args);  /* The name Bezier was already taken */
+        }
+    }
+}
+
+/*
+			#] AxoBezier : 
+			#[ AxoGluon :
+*/
+
+void AxoGluon(double *args)
+{
+        SetLineWidth(axolinewidth + args[6]);
+    if ( args[7] ) {    /* dashes */
+        args[6] = args[7];
+        DashGluon(args);
+    }
+    else {
+        Gluon(args);
+    }
+}
+
+/*
+			#] AxoGluon : 
+			#[ AxoGluonArc :
+*/
+
+void AxoGluonArc(double *args)
+{
+        SetLineWidth(axolinewidth + args[7]);
+    if ( args[9] ) {    /* Clockwise */
+        double a = args[3]; args[3] = args[4]; args[4] = a;
+    }
+    if ( args[8] ) {  /* Dashes */
+        args[7] = args[8];
+        DashGluonArc(args);
+    }
+    else {
+            GluonArc(args);
+    }
+}
+
+/*
+			#] AxoGluonArc : 
+			#[ AxoGluonCirc :
+*/
+
+void AxoGluonCirc(double *args)
+{
+        SetLineWidth(axolinewidth + args[6]);
+    if ( args[7] ) {    /* dashes */
+        args[6] = args[7];
+        DashGluonCirc(args);
+    }
+    else {
+        GluonCirc(args);
+    }
+}
+
+/*
+			#] AxoGluonCirc : 
+			#[ AxoLine :
+
+        AxoLine(x1,y1)(x2,y2){sep}{dashsize}{stroke width length inset}{where}
+
+        Generic switchyard to the various routines for compatibility
+        with Jaxodraw and axodraw4j
+
+        Note: because the specific routines can be called either in the
+        direct way or by means of the generic routine, they have to know
+        what arrow to use. This is regulated by arrow.type. 0=old arrows.
+*/
+
+void AxoLine(double *args)
+{
+    linesep = args[4];
+    GetArrow(args+6);
+    if ( witharrow ) {
+        if ( arrow.where > 1 ) arrow.where = 1;
+        if ( arrow.where < 0 ) arrow.where = 0;
+        if ( args[5] == 0 ) {
+            if ( linesep == 0 ) ArrowLine(args);
+            else { ArrowDoubleLine(args); }
+        }
+        else {
+            if ( linesep == 0 ) {
+                args[4] = args[5];
+                DashArrowLine(args);
+            }
+            else { DashArrowDoubleLine(args); }
+        }
+    }
+    else {
+        if ( args[5] == 0 ) {  /* No dashing */
+            if ( linesep == 0 ) Line(args);
+            else                DoubleLine(args);
+        }
+        else {
+            if ( linesep == 0 ) {
+                args[4] = args[5]; DashLine(args);
+            }
+            else DashDoubleLine(args);
+        }
+    }
+}
+
+/*
+			#] AxoLine : 
+			#[ AxoPhoton :
+*/
+
+void AxoPhoton(double *args)
+{
+    if ( args[7] ) {    /* dashes */
+        if ( args[6] ) {    /* double */
+            DashDoublePhoton(args);
+        }
+        else {
+            args[6] = args[7];
+            DashPhoton(args);
+        }
+    }
+    else {
+        if ( args[6] ) {    /* double */
+            DoublePhoton(args);
+        }
+        else {
+            Photon(args);
+        }
+    }
+}
+
+/*
+			#] AxoPhoton : 
+			#[ AxoPhotonArc :
+*/
+
+void AxoPhotonArc(double *args)
+{
+    if ( args[9] ) {    /* Clockwise */
+        int num = 2*args[6]+0.5;
+        double a = args[3]; args[3] = args[4]; args[4] = a;
+        if ( ( num & 1 ) == 0 ) args[5] = -args[5];
+    }
+    if ( args[8] ) {  /* dash */
+        if ( args[7] ) {    /* double */
+            DashDoublePhotonArc(args);
+        }
+        else {
+            args[7] = args[8];
+            DashPhotonArc(args);
+        }
+    }
+    else {
+        if ( args[7] ) {    /* double */
+            DoublePhotonArc(args);
+        }
+        else {
+            PhotonArc(args);
+        }
+    }
+}
+
+/*
+			#] AxoPhotonArc : 
+			#[ AxoZigZag :
+*/
+
+void AxoZigZag(double *args)
+{
+    if ( args[7] ) {    /* dashes */
+        if ( args[6] ) {    /* double */
+            DashDoubleZigZag(args);
+        }
+        else {
+            args[6] = args[7];
+            DashZigZag(args);
+        }
+    }
+    else {
+        if ( args[6] ) {    /* double */
+            DoubleZigZag(args);
+        }
+        else {
+            ZigZag(args);
+        }
+    }
+}
+
+/*
+			#] AxoZigZag : 
+			#[ AxoZigZagArc :
+*/
+
+void AxoZigZagArc(double *args)
+{
+    if ( args[9] ) {    /* Clockwise */
+        int num = 2*args[6]+0.5;
+        double a = args[3]; args[3] = args[4]; args[4] = a;
+        if ( ( num & 1 ) == 0 ) args[5] = -args[5];
+    }
+    if ( args[8] ) {  /* dash */
+        if ( args[7] ) {    /* double */
+            DashDoubleZigZagArc(args);
+        }
+        else {
+            args[7] = args[8];
+            DashZigZagArc(args);
+        }
+    }
+    else {
+        if ( args[7] ) {    /* double */
+            DoubleZigZagArc(args);
+        }
+        else {
+            ZigZagArc(args);
+        }
+    }
+}
+
+/*
+			#] AxoZigZagArc : 
+ 		#] Wrapper routines : 
+ 		#[ Various routines :
+			#[ Rotate : +
+
+        Rotate: x y angle hmode vmode textwidth textheight
+        Note, the textwidth/textheight have been scaled already;
+*/
+
+void Rotate(double *args)
+{
+    double textheight = args[6]*args[4]/2/65536.;
+    double textwidth  = args[5]*args[3]/2/65536.;
+    SetTransferMatrix(1,0,0,1,args[0],args[1]);
+    SetTransferMatrix(COS(args[2]),SIN(args[2]),-SIN(args[2]),COS(args[2]),0,0);
+    SetTransferMatrix(1,0,0,1,-textwidth,textheight);
+}
+
+/*
+			#] Rotate : 
+			#[ Grid :
+
+        Makes a coordinate grid in the indicated color.
+        (x0,y0)(incx,incy)(nx,ny){color}{linewidth}
+*/
+
+void Grid(double *args)
+{
+    int i, nx = args[4]+0.01, ny = args[5]+0.01;
+    double maxx = args[2]*args[4];
+    double maxy = args[3]*args[5];
+    SetTransferMatrix(1,0,0,1,args[0],args[1]);
+    for ( i = 0; i <= nx; i++ ) {
+        MoveTo(i*args[2],0);
+        LineTo(i*args[2],maxy);
+        Stroke;
+    }
+    for ( i = 0; i <= ny; i++ ) {
+        MoveTo(0,i*args[3]);
+        LineTo(maxx,i*args[3]);
+        Stroke;
+    }
+}
+
+/*
+			#] Grid : 
+ 		#] Various routines : 
+  	#] routines : 
+*/


Property changes on: trunk/Build/source/utils/axodraw2/axodraw2-src/axohelp.c
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Build/source/utils/axodraw2/axodraw2-src/axohelp.test
===================================================================
--- trunk/Build/source/utils/axodraw2/axodraw2-src/axohelp.test	                        (rev 0)
+++ trunk/Build/source/utils/axodraw2/axodraw2-src/axohelp.test	2018-02-10 23:30:32 UTC (rev 46590)
@@ -0,0 +1,22 @@
+#!/bin/sh -vx
+
+# Copyright (C) 2018 John Collins (jcc8 at psu.edu)
+# You may freely use, modify and/or distribute this file.
+
+if test -z "$test_srcdir"; then
+  # If not set, then we are not running from `make check'.
+  test_srcdir=`echo "$0" | sed -e 's,/[^\\/]*$,,'`  # == dirname $0
+  test "$test_srcdir" = "$0" && test_srcdir=.       # in case subst failed
+fi
+
+echo Running axohelp on test document ...
+cp $test_srcdir/test* .
+./axohelp test \
+    || { echo axohelp failed to run correctly ; exit 1; }
+
+echo Checking result ...
+diff test.ax2-std test.ax2 \
+    || { echo The .ax2 file created by axohelp was incorrect; exit 1; }
+
+echo Success, so I will remove generated file test.ax2
+rm test.ax2


Property changes on: trunk/Build/source/utils/axodraw2/axodraw2-src/axohelp.test
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/Build/source/utils/axodraw2/axodraw2-src/configure.ac
===================================================================
--- trunk/Build/source/utils/axodraw2/axodraw2-src/configure.ac	                        (rev 0)
+++ trunk/Build/source/utils/axodraw2/axodraw2-src/configure.ac	2018-02-10 23:30:32 UTC (rev 46590)
@@ -0,0 +1,10 @@
+#                                               -*- Autoconf -*-
+# Process this file with autoconf to produce a configure script.
+
+AC_INIT([axohelp], [1], [jcc8 at psu.edu])
+AM_INIT_AUTOMAKE([no-define])
+AC_CHECK_LIB([m], [sqrt],,
+  AC_MSG_ERROR([*** Please install libm on your system ***]))
+AC_PROG_CC
+AC_CONFIG_FILES([Makefile])
+AC_OUTPUT


Property changes on: trunk/Build/source/utils/axodraw2/axodraw2-src/configure.ac
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Build/source/utils/axodraw2/axodraw2-src/example.tex
===================================================================
--- trunk/Build/source/utils/axodraw2/axodraw2-src/example.tex	                        (rev 0)
+++ trunk/Build/source/utils/axodraw2/axodraw2-src/example.tex	2018-02-10 23:30:32 UTC (rev 46590)
@@ -0,0 +1,18 @@
+\documentclass{article}
+\usepackage{axodraw2}
+\begin{document}
+Example of Feynman graph made by axodraw2:
+\begin{center}
+  \begin{axopicture}(200,110)
+    \SetColor{Red}
+    \Arc[arrow](100,50)(40,0,180)
+    \Text(100,100)[]{$\alpha P_1 + \beta P_2 + k_\perp$}
+    \SetColor{Black}
+    \Arc[arrow](100,50)(40,180,360)
+    \Gluon(0,50)(60,50){5}{4}
+    \Vertex(60,50){2} 
+    \Gluon(140,50)(200,50){5}{4}
+    \Vertex(140,50){2}
+  \end{axopicture}
+\end{center}
+\end{document}


Property changes on: trunk/Build/source/utils/axodraw2/axodraw2-src/example.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Build/source/utils/axodraw2/axodraw2-src/test.ax1
===================================================================
--- trunk/Build/source/utils/axodraw2/axodraw2-src/test.ax1	                        (rev 0)
+++ trunk/Build/source/utils/axodraw2/axodraw2-src/test.ax1	2018-02-10 23:30:32 UTC (rev 46590)
@@ -0,0 +1,494 @@
+[1] AxoLine 0 2 35 2 2.5 0  0 0 0 0 0 0 0 0  0 1;
+[2] AxoLine 0 2 30 2 0 0  0  0  0  0.2 1 1.25 0.8  1   0 1;
+[3] AxoArc 100 50 40 0 180 0 0  0  0  0  0.2 1 1.25 0.5 1   0 0 0.5;
+[4] AxoArc 100 50 40 180 360 0 0  0  0  0  0.2 1 1.25 0.5 1   0 0 0.5;
+[5] AxoGluon 0 50 60 50 5 4 0 0 0.5;
+[6] Vertex 60 50 2 0.5;
+[7] AxoGluon 140 50 200 50 5 4 0 0 0.5;
+[8] Vertex 140 50 2 0.5;
+[9] Grid 0 0 10 10 9 14 0.5;
+[10] Grid 0 0 10 10 9 4 0.5;
+[11] AxoLine 10 10 80 30 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[12] Grid 0 0 10 10 9 8 0.5;
+[13] AxoLine 10 70 80 70 0 0  0  0  0  0.2 1 1.25 0.5 1   0 0.5;
+[14] AxoLine 10 50 80 50 0 3  0 0 0 0 0 0 0 0  0 0.5;
+[15] AxoLine 10 30 80 30 2 0  0  0  0  0.2 1 1.25 0.5 1   0 0.5;
+[16] AxoLine 10 10 80 10 2 3  0  0  0  0.2 1 1.25 0.5 1   0 0.5;
+[17] Grid 0 0 10 10 9 4 0.5;
+[18] AxoLine 10 25 80 25 1 0  0 0 0 0 0 0 0 0  0 0.5;
+[19] AxoLine 10 15 80 15 2 0  0 0 0 0 0 0 0 0  0 0.5;
+[20] Grid 0 0 10 10 9 4 0.5;
+[21] AxoLine 10 25 80 25 0 2   0 0 0 0 0 0 0 0  0 0.5;
+[22] AxoLine 10 15 80 15 0 6   0 0 0 0 0 0 0 0  0 0.5;
+[23] Grid 0 0 10 10 9 4 0.5;
+[24] AxoLine 10 25 80 25 1.5 2   0 0 0 0 0 0 0 0  0 0.5;
+[25] AxoLine 10 15 80 15 1.5 6   0 0 0 0 0 0 0 0  0 0.5;
+[26] Grid 0 0 10 10 9 5 0.5;
+[27] AxoArc 45 0 40 20 160 0 0  0 0 0 0 0 0 0 0  0 0 0.5;
+[28] Grid 0 0 10 10 8 8 0.5;
+[29] AxoArc 40 40 30 20 160 0 3  0  0  0  0.2 1 1.25 0.5 1   0 1 0.5;
+[30] Grid 0 0 10 10 9 5 0.5;
+[31] AxoArc 45 0 40 20 160 2 0  0 0 0 0 0 0 0 0  0 0 0.5;
+[32] Grid 0 0 10 10 9 5 0.5;
+[33] AxoArc 45 0 40 20 160 0 4   0 0 0 0 0 0 0 0  0 0 0.5;
+[34] Grid 0 0 10 10 9 5 0.5;
+[35] AxoArc 45 0 40 20 160 2 4   0 0 0 0 0 0 0 0  0 0 0.5;
+[36] Grid 0 0 10 10 6 6 0.5;
+[37] AxoBezier 10 10 75 30 65 40 20 50 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[38] Grid 0 0 10 10 6 6 0.5;
+[39] AxoBezier 10 10 75 30 65 40 20 50 2 0  0  0  0  0.2 1 1.25 1  1   0 0.5;
+[40] Grid 0 0 10 10 6 6 0.5;
+[41] AxoBezier 10 10 75 30 65 40 20 50 1.5 0  0 0 0 0 0 0 0 0  0 0.5;
+[42] Grid 0 0 10 10 6 6 0.5;
+[43] AxoBezier 10 10 75 30 65 40 20 50 0 4   0 0 0 0 0 0 0 0  0 0.5;
+[44] Grid 0 0 10 10 6 6 0.5;
+[45] AxoBezier 10 10 75 30 65 40 20 50 1.5 4   0 0 0 0 0 0 0 0  0 0.5;
+[46] Grid 0 0 10 10 6 6 0.5;
+[47] Curve "(5,55)(10,32.5)(15,23)(20,18)(25,14.65)(30,12.3)(40,9.5)(55,7)" 0.5;
+[48] Grid 0 0 10 10 6 6 0.5;
+[49] DashCurve "(5,55)(10,32.5)(15,23)(20,18)(25,14.65)(30,12.3)(40,9.5)(55,7)" 4 0.5;
+[50] Grid 0 0 10 10 9 4 0.5;
+[51] AxoGluon 10 20 80 20 5 7 0 0 0.5;
+[52] Grid 0 0 10 10 9 4 0.5;
+[53] AxoGluon 10 20 80 20 4 7 0.5 1  2;
+[54] AxoGluon 10 20 80 20 4 7 -0.5 0 2;
+[55] Grid 0 0 10 10 9 4 0.5;
+[56] AxoGluon 10 20 80 20 5 7 0.5 0 1.3;
+[57] AxoGluon 10 20 80 20 5 7 -0.5 0 1.3;
+[58] Grid 0 0 10 10 9 4 0.5;
+[59] AxoGluon 10 20 80 20 5 7 0 1  0.5;
+[60] Grid 0 0 10 10 9 4 0.5;
+[61] AxoGluon 10 20 80 20 5 7 0.5 1  1.3;
+[62] AxoGluon 10 20 80 20 5 7 -0.5 0 1.3;
+[63] Grid 0 0 10 10 9 5 0.5;
+[64] AxoGluonArc 45 0 40 20 160 5 8 0 0 0 0.5;
+[65] Grid 0 0 10 10 9 5 0.5;
+[66] AxoGluonArc 45 0 40 20 160 5 8 0.5 0 0 1.3;
+[67] AxoGluonArc 45 0 40 20 160 5 8 -0.5 0 0 1.3;
+[68] Grid 0 0 10 10 9 5 0.5;
+[69] AxoGluonArc 45 0 40 20 160 5 8 0 1.5  0 0.5;
+[70] Grid 0 0 10 10 9 5 0.5;
+[71] AxoGluonArc 45 0 40 20 160 5 8 0.5 1.5  0 1.3;
+[72] AxoGluonArc 45 0 40 20 160 5 8 -0.5 0 0 1.3;
+[73] Grid 0 0 10 10 8 8 0.5;
+[74] AxoGluonCirc 40 40 30 0 5 16 0 0 0.5;
+[75] Grid 0 0 10 10 8 8 0.5;
+[76] AxoGluonCirc 40 40 30 0 5 16 0.5 0 1.3;
+[77] AxoGluonCirc 40 40 30 0 5 16 -0.5 0 1.3;
+[78] Grid 0 0 10 10 8 8 0.5;
+[79] AxoGluonCirc 40 40 30 0 5 16 0 1.5  0.5;
+[80] Grid 0 0 10 10 8 8 0.5;
+[81] AxoGluonCirc 40 40 30 0 5 16 0.5 1.5  1.3;
+[82] AxoGluonCirc 40 40 30 0 5 16 -0.5 0 1.3;
+[83] Grid 0 0 10 10 9 4 0.5;
+[84] AxoPhoton 10 20 80 20 5 7 0 0 0.5;
+[85] Grid 0 0 10 10 9 4 0.5;
+[86] AxoPhoton 10 20 80 20 5 7 1.3 0 0.5;
+[87] Grid 0 0 10 10 9 4 0.5;
+[88] AxoPhoton 10 20 80 20 5 7 0 1  0.5;
+[89] Grid 0 0 10 10 9 4 0.5;
+[90] AxoPhoton 10 20 80 20 5 7 1.3 1  0.5;
+[91] Grid 0 0 10 10 9 5 0.5;
+[92] AxoPhotonArc 45 0 40 20 160 5 8 0 0 0 0.5;
+[93] Grid 0 0 10 10 9 5 0.5;
+[94] AxoPhotonArc 45 0 40 20 160 5 8 1.3 0 0 0.5;
+[95] Grid 0 0 10 10 9 5 0.5;
+[96] AxoPhotonArc 45 0 40 20 160 5 8 0 1.5  0 0.5;
+[97] Grid 0 0 10 10 9 5 0.5;
+[98] AxoPhotonArc 45 0 40 20 160 5 8 1.3 1.5  0 0.5;
+[99] Grid 0 0 10 10 9 4 0.5;
+[100] AxoZigZag 10 20 80 20 5 7.5 0 0 0.5;
+[101] Grid 0 0 10 10 9 4 0.5;
+[102] AxoZigZag 10 20 80 20 5 7 1.5 0 0.5;
+[103] Grid 0 0 10 10 9 4 0.5;
+[104] AxoZigZag 10 20 80 20 5 7 1.3 0 0.5;
+[105] Grid 0 0 10 10 9 4 0.5;
+[106] AxoZigZag 10 20 80 20 5 7 0 1  0.5;
+[107] Grid 0 0 10 10 9 4 0.5;
+[108] AxoZigZag 10 20 80 20 5 7 1.3 1  0.5;
+[109] Grid 0 0 10 10 9 5 0.5;
+[110] AxoZigZagArc 45 0 40 20 160 5 8 0 0 0 0.5;
+[111] Grid 0 0 10 10 9 5 0.5;
+[112] AxoZigZagArc 45 0 40 20 160 5 8 1.3 0 0 0.5;
+[113] Grid 0 0 10 10 9 5 0.5;
+[114] AxoZigZagArc 45 0 40 20 160 5 8 0 1.5  0 0.5;
+[115] Grid 0 0 10 10 9 5 0.5;
+[116] AxoZigZagArc 45 0 40 20 160 5 8 1.3 1.5  0 0.5;
+[117] Grid 0 0 10 10 8 5 0.5;
+[118] AxoLine 10 10 70 10 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[119] AxoPhoton 40 10 40 40 4 3 0 0 0.5;
+[120] Vertex 40 10 1.5 0.5;
+[121] Grid 0 0 10 10 6 6 0.5;
+[122] AxoLine 0 0 60 60 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[123] ECirc 30 30 20 0.5;
+[124] Grid 0 0 10 10 6 6 0.5;
+[125] AxoLine 0 0 60 60 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[126] Vertex 30 30 20 0.5;
+[127] ECirc 30 30 20 0.5;
+[128] AxoLine 60 0 0 60 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[129] Grid 0 0 10 10 6 6 0.5;
+[130] AxoLine 0 0 60 60 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[131] Vertex 30 30 20 0.5;
+[132] ECirc 30 30 20 0.5;
+[133] AxoLine 60 0 0 60 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[134] Grid 0 0 10 10 6 6 0.5;
+[135] AxoLine 0 0 60 60 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[136] Vertex 30 30 20 0.5;
+[137] ECirc 30 30 20 0.5;
+[138] AxoLine 60 0 0 60 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[139] Grid 0 0 10 10 8 11 0.5;
+[140] Oval 40 80 20 30 0 0.5;
+[141] Oval 40 30 20 30 30 0.5;
+[142] Grid 0 0 10 10 8 6 0.5;
+[143] FOval 40 30 20 30 30 0.5;
+[144] Grid 0 0 10 10 8 6 0.5;
+[145] AxoLine 0 0 80 60 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[146] FOval 40 30 20 30 0 0.5;
+[147] Oval 40 30 20 30 0 0.5;
+[148] AxoLine 80 0 0 60 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[149] Grid 0 0 10 10 8 6 0.5;
+[150] AxoLine 0 0 80 60 0 0  0 0 0 0 0 0 0 0  0 1;
+[151] FOval 40 30 20 30 20 1;
+[152] Oval 40 30 20 30 20 1;
+[153] AxoLine 80 0 0 60 0 0  0 0 0 0 0 0 0 0  0 1;
+[154] Grid 0 0 10 10 6 5 0.5;
+[155] EBox 10 10 50 40 0.5;
+[156] Grid 0 0 10 10 6 5 0.5;
+[157] FBox 10 10 50 40 0.5;
+[158] Grid 0 0 10 10 6 5 0.5;
+[159] FBox 10 10 50 40 0.5;
+[160] EBox 10 10 50 40 0.5;
+[161] Grid 0 0 10 10 6 5 0.5;
+[162] FBox 10 10 50 40 0.5;
+[163] EBox 10 10 50 40 0.5;
+[164] Grid 0 0 10 10 6 5 0.5;
+[165] FBox 10 10 50 40 1.5;
+[166] EBox 10 10 50 40 1.5;
+[167] Grid 0 0 10 10 6 5 0.5;
+[168] Boxc 30 25 40 30 0.5;
+[169] Grid 0 0 10 10 6 5 0.5;
+[170] FBoxc 30 25 40 30 0.5;
+[171] Boxc 30 25 40 30 0.5;
+[172] Grid 0 0 10 10 6 5 0.5;
+[173] FBoxc 30 25 40 30 0.5;
+[174] Boxc 30 25 40 30 0.5;
+[175] Grid 0 0 10 10 6 5 0.5;
+[176] FBoxc 30 25 40 30 1.5;
+[177] Boxc 30 25 40 30 1.5;
+[178] Grid 0 0 10 10 6 5 0.5;
+[179] Boxc 0 0 40 30 0.5;
+[180] Grid 0 0 10 10 6 5 0.5;
+[181] FBoxc 0 0 40 30 0.5;
+[182] Grid 0 0 10 10 6 5 0.5;
+[183] ETri 10 20 50 10 40 40 0.5;
+[184] Grid 0 0 10 10 6 5 0.5;
+[185] FTri 10 20 50 10 40 40 0.5;
+[186] ETri 10 20 50 10 40 40 0.5;
+[187] Grid 0 0 10 10 6 5 0.5;
+[188] FTri 10 20 50 10 40 40 0.5;
+[189] ETri 10 20 50 10 40 40 0.5;
+[190] Grid 0 0 10 10 6 5 0.5;
+[191] FTri 10 20 50 10 40 40 1;
+[192] ETri 10 20 50 10 40 40 1;
+[193] Grid 0 0 10 10 6 5 0.5;
+[194] Polygon "(10,20)(20,10)(40,20)(50,10)(45,40)(15,30)" 0.5;
+[195] Grid 0 0 10 10 6 5 0.5;
+[196] FilledPolygon "(10,20)(20,10)(40,20)(50,10)(45,40)(15,30)" 0.5;
+[197] Grid 0 0 10 10 10 5 0.5;
+[198] LinAxis 10 30 90 30 4 5 5 0 1;
+[199] LinAxis 10 10 90 10 4 5 5 2 1;
+[200] Grid 0 0 10 10 10 4 0.5;
+[201] LogAxis 0 30 100 30 4 3 0 1;
+[202] LogAxis 0 10 100 10 4 3 3 1;
+[203] Grid 0 0 10 10 9 9 0.5;
+[204] Vertex 10 10 1.5 0.5;
+[205] Vertex 45 45 1.5 0.5;
+[206] Vertex 80 80 1.5 0.5;
+[207] Grid 0 0 10 10 9 9 0.5;
+[208] Vertex 10 10 1.5 0.5;
+[209] Vertex 45 45 1.5 0.5;
+[210] Vertex 80 10 1.5 0.5;
+[211] Grid 0 0 10 10 9 9 0.5;
+[212] Vertex 10 10 1.5 0.5;
+[213] Vertex 45 45 1.5 0.5;
+[214] Vertex 80 80 1.5 0.5;
+[215] Grid 0 0 10 10 10 9 0.5;
+[216] AxoLine 30 65 60 25 0 0  0  0  0  0.2 1 1.25 0.5 1   0 0.5;
+[217] FBoxc 0 0 54.599 15.89 0.5;
+[218] Boxc 0 0 54.599 15.89 0.5;
+[219] FBoxc 0 0 50.559 17.421 0.5;
+[220] Boxc 0 0 50.559 17.421 0.5;
+[221] Grid 0 0 10 10 10 9 0.5;
+[222] AxoLine 30 65 60 25 0 0  0  0  0  0.2 1 1.25 0.5 1   0 0.5;
+[223] FBoxc 0 0 46.799 15.513 0.5;
+[224] Boxc 0 0 46.799 15.513 0.5;
+[225] FBoxc 0 0 71.0 5.444 0.5;
+[226] Boxc 0 0 71.0 5.444 0.5;
+[227] Grid 0 0 10 10 9 9 0.5;
+[228] AxoLine 30 65 60 25 0 0  0  0  0  0.2 1 1.25 0.5 1   0 0.5;
+[229] FBoxc 0 0 53.339 15.424 0.5;
+[230] Boxc 0 0 53.339 15.424 0.5;
+[231] FBoxc 0 0 47.599 12.975 0.5;
+[232] Boxc 0 0 47.599 12.975 0.5;
+[233] Grid 0 0 10 10 9 9 0.5;
+[234] AxoLine 30 65 60 25 0 0  0  0  0  0.2 1 1.25 0.5 1   0 0.5;
+[235] FBoxc 0 0 45.359 34.223 0.5;
+[236] Boxc 0 0 45.359 34.223 0.5;
+[237] FBoxc 0 0 54.176 38.704 0.5;
+[238] Boxc 0 0 54.176 38.704 0.5;
+[239] Grid 0 0 10 10 10 9 0.5;
+[240] AxoLine 30 65 60 25 0 0  0  0  0  0.2 1 1.25 0.5 1   0 0.5;
+[241] FBoxc 0 0 46.931 28.548 0.5;
+[242] Boxc 0 0 46.931 28.548 0.5;
+[243] FBoxc 0 0 63.799 27.10 0.5;
+[244] Boxc 0 0 63.799 27.10 0.5;
+[245] Grid 0 0 10 10 9 9 0.5;
+[246] AxoLine 30 65 60 25 0 0  0  0  0  0.2 1 1.25 0.5 1   0 0.5;
+[247] FBoxc 0 0 49.539 25.840 0.5;
+[248] Boxc 0 0 49.539 25.840 0.5;
+[249] FBoxc 0 0 55.999 31.745 0.5;
+[250] Boxc 0 0 55.999 31.745 0.5;
+[251] Grid 0 0 10 10 12 9 0.5;
+[252] FBoxc 0 0 143.37 62.444 0.5;
+[253] Boxc 0 0 143.37 62.444 0.5;
+[254] Grid 0 0 10 10 13 9 0.5;
+[255] FBoxc 0 0 128.811 61.543 0.5;
+[256] Boxc 0 0 128.811 61.543 0.5;
+[257] Grid 0 0 10 10 9 8 0.5;
+[258] AxoGluon 10 70 80 70 3 5 0 0 0.5;
+[259] AxoGluon 10 50 80 50 3 9 0 0 0.5;
+[260] AxoGluon 10 30 80 30 5 7 0 0 0.5;
+[261] AxoGluon 10 10 80 10 8 9 0 0 0.5;
+[262] Grid 0 0 10 10 9 8 0.5;
+[263] AxoGluon 10 70 80 70 5 7 0.5 0 1.2;
+[264] AxoGluon 10 70 80 70 5 7 -0.5 0 1.2;
+[265] AxoGluon 80 50 10 50 5 7 0.5 0 1.2;
+[266] AxoGluon 80 50 10 50 5 7 -0.5 0 1.2;
+[267] AxoGluon 10 30 80 30 -5 7 0.5 0 1.2;
+[268] AxoGluon 10 30 80 30 -5 7 -0.5 0 1.2;
+[269] AxoGluon 80 10 10 10 -5 7 0.5 0 1.2;
+[270] AxoGluon 80 10 10 10 -5 7 -0.5 0 1.2;
+[271] Grid 0 0 10 10 9 7 0.5;
+[272] AxoGluonArc 45 20 40 20 160 5 8 0 0 0 0.5;
+[273] AxoGluonArc 45 0 40 20 160 -5 8 0 0 0 0.5;
+[274] Grid 0 0 10 10 8 8 0.5;
+[275] AxoGluonCirc 40 40 30 0 5 16 0 0 0.5;
+[276] Grid 0 0 10 10 8 8 0.5;
+[277] AxoGluonArc 40 40 30 0 360 5 16 0 0 0 0.5;
+[278] AxoGluon 7 30 27 30 3 3 0 0 0.5;
+[279] AxoGluonCirc 50 30 20 0 3 16 0 0 0.5;
+[280] AxoGluon 73 30 93 30 3 3 0 0 0.5;
+[281] Vertex 27 30 1.5 0.5;
+[282] Vertex 73 30 1.5 0.5;
+[283] AxoGluon 110 30 130 30 3 3 0 0 0.5;
+[284] AxoGluonArc 150 30 20 0 180 3 8 0 0 0 0.5;
+[285] AxoGluonArc 150 30 20 180 360 3 8 0 0 0 0.5;
+[286] AxoGluon 170 30 190 30 3 3 0 0 0.5;
+[287] Vertex 130 30 1.5 0.5;
+[288] Vertex 170 30 1.5 0.5;
+[289] AxoGluon 210 30 230 30 3 3 0 0 0.5;
+[290] AxoGluonArc 250 30 20 0 180 -3 8 0 0 0 0.5;
+[291] AxoGluonArc 250 30 20 180 360 -3 8 0 0 0 0.5;
+[292] AxoGluon 270 30 290 30 3 3 0 0 0.5;
+[293] Vertex 230 30 1.5 0.5;
+[294] Vertex 270 30 1.5 0.5;
+[295] AxoLine 310 30 330 30 0 3   0 0 0 0 0 0 0 0  0 0.5;
+[296] AxoGluonArc 350 30 20 -180 180 3 16 0 0 0 0.5;
+[297] Vertex 330 30 1.5 0.5;
+[298] AxoLine 387 30 407 30 0 3   0 0 0 0 0 0 0 0  0 0.5;
+[299] AxoGluonCirc 430 30 20 0 3 16 0 0 0.5;
+[300] Vertex 407 30 1.5 0.5;
+[301] Grid 0 0 10 10 15 10 0.5;
+[302] AxoLine 10 50 100 50 0 0  3  40 0  0.3  1 1  1  1   0 3;
+[303] AxoLine 55 50 55 90 0 0  0  0  0  0.2 1 1.25 1  1   0 0.5;
+[304] AxoLine 60 5 84 5 0 0  0  0  0  0.2 1 1.25 1  1   0 0.5;
+[305] AxoLine 60 95 140 95 0 0  0  0  0  0.2 1 1.25 1  1   0 0.5;
+[306] Grid 0 0 10 10 9 8 0.5;
+[307] AxoLine 10 70 80 70 0 0  0  0  0  0.2 2 1.25 0.5 1   0 0.5;
+[308] AxoLine 10 50 80 50 0 0  0  0  0  0.2 1 1.25 0.8  1   1 0.5;
+[309] AxoLine 10 30 80 30 0 0  0  0  0  0.2 1 1.25 0.5 1   0 0.5;
+[310] AxoLine 10 10 80 10 0 0  0  0  0  0.2 1 1.25 0.5 1   0 0.5;
+[311] Grid 0 0 10 10 9 6 0.5;
+[312] AxoLine 10 30 80 30 0 0  0  0  0  0.2 1 1.25 1  1   0 0.5;
+[313] AxoLine 10 10 80 10 0 0  0  0  0  0.2 1 1.25 1  1   0 0.5;
+[314] AxoLine 10 50 70 50 0 0  0  0  0  0.2 0.8 1.25 1  1   0 4;
+[315] Grid 0 0 10 10 9 10 0.5;
+[316] AxoLine 10 90 75 90 5 0  1 0  0  0.2 1.3 1.25 1  1   0 0.5;
+[317] AxoLine 10 70 80 70 2 0  1 0  0  0.2 1.5 1.25 1  1   0 0.5;
+[318] AxoLine 10 50 80 50 2 0  1 0  0  0.2 1 1.25 1  1   0 0.5;
+[319] AxoLine 10 30 80 30 2 0  1 0  0  0.2 1 1.25 0.5 1   0 0.5;
+[320] AxoLine 10 10 80 10 2 0  1 0  0  0.2 1 1.25 0.5 1   0 0.5;
+[321] Grid 0 0 10 10 9 8 0.5;
+[322] AxoLine 10 70 80 70 0 3   0  0  0  0.2 1.5 1.25 0.3  1   0 0.5;
+[323] AxoLine 10 50 80 50 0 3   0  0  0  0.2 1 1.25 0.5 1   0 0.5;
+[324] AxoLine 10 30 80 30 0 3   0  0  0  0.2 1 1.25 0.5 1   0 0.5;
+[325] AxoLine 10 10 80 10 0 3   0  0  0  0.2 1 1.25 0.5 1   0 0.5;
+[326] Grid 0 0 10 10 9 8 0.5;
+[327] AxoLine 10 70 80 70 1.5 3   0.5 0  0  0.2 1.5 1.25 1  1   0 0.5;
+[328] AxoLine 10 50 80 50 1.5 3   0.5 0  0  0.2 1 1.25 0.5 1   0 0.5;
+[329] AxoLine 10 30 80 30 1.5 3   0.5 0  0  0.2 1 1.25 0.5 1   0 0.5;
+[330] AxoLine 10 10 80 10 1.5 3   0.5 0  0  0.2 1 1.25 0.5 1   0 0.5;
+[331] Grid 0 0 10 10 9 8 0.5;
+[332] AxoLine 10 70 80 70 0 3   0  0  0  0.2 1.5 1.25 0  1   1 0.5;
+[333] AxoLine 10 50 80 50 0 3   0  0  0  0.2 1 1.25 1  1   0 0.5;
+[334] AxoLine 10 30 80 30 0 3   0  0  0  0.2 1 1.25 1  1   0 0.5;
+[335] AxoLine 10 10 80 10 0 3   0  0  0  0.2 1 1.25 1  1   0 0.5;
+[336] Grid 0 0 10 10 9 14 0.5;
+[337] AxoArc 45 95 40 160 20 0 0  0  0  0  0.2 1 1.25 1  1   0 1 0.5;
+[338] AxoArc 45 80 40 160 20 0 0  0  0  0  0.2 1 1.25 1  1   0 1 0.5;
+[339] AxoArc 45 65 40 160 20 0 0  0  0  0  0.2 1 1.25 0.5  1   0 1 0.5;
+[340] AxoArc 45 50 40 160 20 0 0  0  0  0  0.2 1 1.25 0.5 1   0 1 0.5;
+[341] AxoArc 45 35 40 20 160 0 0  0  0  0  0.2 1 1.25 1  1   0 0 0.5;
+[342] AxoArc 45 20 40 20 160 0 0  0  0  0  0.2 1 1.25 1  1   0 0 0.5;
+[343] AxoArc 45 5 40 20 160 0 0  0  0  0  0.2 1 1.25 0.5  1   0 0 0.5;
+[344] AxoArc 45 -10 40 20 160 0 0  0  0  0  0.2 1 1.25 0.5 1   0 0 0.5;
+[345] Grid 0 0 10 10 9 11 0.5;
+[346] AxoArc 45 65 40 160 20 0 3   0  0  0  0.2 1 1.25 0.5  1   0 1 0.5;
+[347] AxoArc 45 50 40 160 20 0 3   0  0  0  0.2 1 1.25 0.5 1   0 1 0.5;
+[348] AxoArc 45 35 40 20 160 0 3   0  0  0  0.2 1 1.25 1  1   0 0 0.5;
+[349] AxoArc 45 20 40 20 160 0 3   0  0  0  0.2 1 1.25 1  1   0 0 0.5;
+[350] AxoArc 45 5 40 20 160 0 3   0  0  0  0.2 1 1.25 0.5  1   0 0 0.5;
+[351] AxoArc 45 -10 40 20 160 0 3   0  0  0  0.2 1 1.25 0.5 1   0 0 0.5;
+[352] Grid 0 0 10 10 9 8 0.5;
+[353] AxoArc 45 35 40 20 160 1.5 3   0  0  0  0.2 1 1.25 0.5  1   0 0 0.5;
+[354] AxoArc 45 20 40 20 160 1.5 3   0  0  0  0.2 1 1.25 0.5 1   0 0 0.5;
+[355] AxoArc 45 5 40 20 160 1.5 0  0  0  0  0.2 1 1.25 0.5  1   0 0 0.5;
+[356] AxoArc 45 -10 40 20 160 1.5 0  0  0  0  0.2 1 1.25 0.5 1   0 0 0.5;
+[357] Grid 0 0 10 10 8 8 0.5;
+[358] AxoBezier 10 10 30 30 10 50 30 70 0 0  0  0  0  0.2 1 1.25 0.5 1   0 0.5;
+[359] AxoBezier 30 10 50 30 30 50 50 70 0 3   0  0  0  0.2 1 1.25 0.5 1   0 0.5;
+[360] AxoBezier 50 10 70 30 50 50 70 70 1 0  0.5  0  0  0.2 1 1.25 1  1   0 0.5;
+[361] AxoArc 30 0 30 0 180 0 0  0  0  0  0.2 1 1.25 0.5 1   0 0 0.5;
+[362] FBoxc 0 0 30.0 12.747 0.5;
+[363] Boxc 0 0 30.0 12.747 0.5;
+[364] AxoArc 30 0 30 0 180 0 0  0  0  0  0.2 1 1.25 0.5 1   0 0 0.5;
+[365] FBoxc 0 0 30.0 12.747 0.5;
+[366] Boxc 0 0 30.0 12.747 0.5;
+[367] AxoArc 30 0 30 0 180 0 0  0  0  0  0.2 1 1.25 0.5 1   0 0 0.5;
+[368] FBoxc 0 0 30.0 12.747 0.5;
+[369] Boxc 0 0 30.0 12.747 0.5;
+[370] AxoArc 30 0 30 0 180 0 0  0  0  0  0.2 1 1.25 0.5 1   0 0 0.5;
+[371] FBoxc 0 0 30.0 12.747 0.5;
+[372] Boxc 0 0 30.0 12.747 0.5;
+[373] AxoLine 0 10 40 30 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[374] AxoLine 0 10 40 30 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[375] AxoGluon 0 10 40 10 4 4 0 0 0.5;
+[376] AxoGluon 0 5 30 5 3 4 0 0 0.5;
+[377] AxoLine 0 0 50 0 0 0  0 0 0 0 0 0 0 0  0 2;
+[378] AxoLine 0 0 50 0 0 0  0 0 0 0 0 0 0 0  0 2;
+[379] AxoPhoton 7 70 37 70 4 3 0 0 0.5;
+[380] AxoPhoton 7 70 37 70 -4 3 0 0 0.5;
+[381] AxoGluonArc 70 70 30 90 270 3 10 0 0 0 0.5;
+[382] AxoLine 100 100 70 100 0 0  0.5 0  0  0.2 0.8 1.25 0.5 1   0 0.5;
+[383] AxoLine 130 100 100 100 0 0  0.5 0  0  0.2 0.8 1.25 0.5 1   0 0.5;
+[384] AxoLine 70 100 130 40 0 0  0.5 0  0  0.2 0.8 1.25 0.25  1   0 0.5;
+[385] AxoLine 100 40 70 40 0 0  0.5 0  0  0.2 0.8 1.25 0.5 1   0 0.5;
+[386] AxoLine 130 40 100 40 0 0  0.5 0  0  0.2 0.8 1.25 0.5 1   0 0.5;
+[387] AxoLine 70 40 130 100 0 0  0.5 0  0  0.2 0.8 1.25 0.75  1   0 0.5;
+[388] AxoGluonArc 130 70 30 270 450 3 10 0 0 0 0.5;
+[389] AxoPhoton 163 70 193 70 4 3 0 0 0.5;
+[390] AxoPhoton 163 70 193 70 -4 3 0 0 0.5;
+[391] AxoGluon 100 100 100 130 3 4 0 0 0.5;
+[392] AxoGluon 100 40 100 10 3 4 0 0 0.5;
+[393] Vertex 37 70 2 0.5;
+[394] Vertex 163 70 2 0.5;
+[395] Vertex 70 100 2 0.5;
+[396] Vertex 70 40 2 0.5;
+[397] Vertex 130 100 2 0.5;
+[398] Vertex 130 40 2 0.5;
+[399] Vertex 100 100 2 0.5;
+[400] Vertex 100 40 2 0.5;
+[401] AxoPhoton 7 70 40 70 4 3 0 0 0.5;
+[402] AxoPhoton 7 70 40 70 -4 3 0 0 0.5;
+[403] AxoGluonArc 70 70 30 180 270 3 5 0 0 0 0.5;
+[404] AxoBezier 100 100 55 100 40 95 40 70 0 0  0.5 0  0  0.2 0.8 1.25 0.5 1   0 0.5;
+[405] AxoLine 130 100 100 100 0 0  0.5 0  0  0.2 0.8 1.25 0.5 1   0 0.5;
+[406] AxoBezier 40 70 110 70 130 70 130 40 0 0  0.5 0  0  0.2 0.8 1.25 0.37  1   0 0.5;
+[407] AxoLine 100 40 70 40 0 0  0.5 0  0  0.2 0.8 1.25 0.5 1   0 0.5;
+[408] AxoLine 130 40 100 40 0 0  0.5 0  0  0.2 0.8 1.25 0.5 1   0 0.5;
+[409] AxoLine 70 40 130 100 0 0  0.5 0  0  0.2 0.8 1.25 0.75  1   0 0.5;
+[410] AxoGluonArc 130 70 30 270 450 3 10 0 0 0 0.5;
+[411] AxoPhoton 163 70 193 70 4 3 0 0 0.5;
+[412] AxoPhoton 163 70 193 70 -4 3 0 0 0.5;
+[413] AxoGluon 100 100 100 130 3 4 0 0 0.5;
+[414] AxoGluon 100 40 100 10 3 4 0 0 0.5;
+[415] Vertex 40 70 2 0.5;
+[416] Vertex 163 70 2 0.5;
+[417] Vertex 70 40 2 0.5;
+[418] Vertex 130 100 2 0.5;
+[419] Vertex 130 40 2 0.5;
+[420] Vertex 100 100 2 0.5;
+[421] Vertex 100 40 2 0.5;
+[422] AxoArc 40 35 25 90 270 0 0  0 0 0 0 0 0 0 0  0 0 0.5;
+[423] AxoArc 60 35 25 270 90 0 0  0 0 0 0 0 0 0 0  0 0 0.5;
+[424] AxoLine 40 60 60 60 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[425] AxoLine 40 10 60 10 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[426] AxoLine 50 10 50 60 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[427] AxoLine 0 35 15 35 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[428] AxoLine 85 35 100 35 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[429] AxoLine 50 35 50 60 0 0  0 0 0 0 0 0 0 0  0 3;
+[430] AxoLine 40 60 50 60 0 0  0 0 0 0 0 0 0 0  0 3;
+[431] AxoArc 40 35 25 90 180 0 0  0 0 0 0 0 0 0 0  0 0 3;
+[432] Vertex 50 60 1.3 3;
+[433] AxoArc 40 35 25 90 270 0 0  0 0 0 0 0 0 0 0  0 0 0.5;
+[434] AxoArc 60 35 25 270 90 0 0  0 0 0 0 0 0 0 0  0 0 0.5;
+[435] AxoLine 40 60 60 60 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[436] AxoLine 40 10 60 10 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[437] AxoLine 50 10 50 60 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[438] AxoLine 0 35 15 35 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[439] AxoLine 85 35 100 35 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[440] AxoLine 50 35 50 60 0 0  0 0 0 0 0 0 0 0  0 3;
+[441] AxoLine 40 60 50 60 0 0  0 0 0 0 0 0 0 0  0 3;
+[442] AxoArc 40 35 25 90 180 0 0  0 0 0 0 0 0 0 0  0 0 3;
+[443] Vertex 50 60 1.3 3;
+[444] AxoArc 40 35 25 90 270 0 0  0 0 0 0 0 0 0 0  0 0 0.5;
+[445] AxoArc 60 35 25 270 90 0 0  0 0 0 0 0 0 0 0  0 0 0.5;
+[446] AxoLine 40 60 60 60 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[447] AxoLine 40 10 60 10 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[448] AxoLine 50 10 50 60 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[449] AxoLine 0 35 15 35 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[450] AxoLine 85 35 100 35 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[451] AxoLine 40 60 50 60 0 0  0 0 0 0 0 0 0 0  0 3;
+[452] AxoArc 40 35 25 90 180 0 0  0 0 0 0 0 0 0 0  0 0 3;
+[453] AxoArc 40 35 25 90 270 0 0  0 0 0 0 0 0 0 0  0 0 0.5;
+[454] AxoArc 60 35 25 270 90 0 0  0 0 0 0 0 0 0 0  0 0 0.5;
+[455] AxoLine 40 60 60 60 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[456] AxoLine 40 10 60 10 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[457] AxoLine 50 10 50 60 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[458] AxoLine 0 35 15 35 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[459] AxoLine 85 35 100 35 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[460] AxoLine 50 35 50 60 0 0  0 0 0 0 0 0 0 0  0 3;
+[461] AxoLine 40 60 50 60 0 0  0 0 0 0 0 0 0 0  0 3;
+[462] AxoArc 40 35 25 90 180 0 0  0 0 0 0 0 0 0 0  0 0 3;
+[463] Vertex 50 60 1.3 3;
+[464] AxoArc 40 35 25 90 270 0 0  0 0 0 0 0 0 0 0  0 0 0.5;
+[465] AxoArc 60 35 25 270 90 0 0  0 0 0 0 0 0 0 0  0 0 0.5;
+[466] AxoLine 40 60 60 60 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[467] AxoLine 40 10 60 10 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[468] AxoLine 50 10 50 60 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[469] AxoLine 0 35 15 35 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[470] AxoLine 85 35 100 35 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[471] AxoLine 50 10 50 60 0 0  0 0 0 0 0 0 0 0  0 3;
+[472] Vertex 50 60 1.3 3;
+[473] AxoLine 40 60 50 60 0 0  0 0 0 0 0 0 0 0  0 3;
+[474] AxoArc 40 35 25 90 180 0 0  0 0 0 0 0 0 0 0  0 0 3;
+[475] AxoArc 40 35 25 90 270 0 0  0 0 0 0 0 0 0 0  0 0 0.5;
+[476] AxoArc 60 35 25 270 90 0 0  0 0 0 0 0 0 0 0  0 0 0.5;
+[477] AxoLine 40 60 60 60 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[478] AxoLine 40 10 60 10 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[479] AxoLine 50 10 50 60 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[480] AxoLine 0 35 15 35 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[481] AxoLine 85 35 100 35 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[482] AxoLine 40 60 50 60 0 0  0 0 0 0 0 0 0 0  0 3;
+[483] AxoArc 40 35 25 90 180 0 0  0 0 0 0 0 0 0 0  0 0 3;
+[484] AxoArc 40 35 25 90 270 0 0  0 0 0 0 0 0 0 0  0 0 0.5;
+[485] AxoArc 60 35 25 270 90 0 0  0 0 0 0 0 0 0 0  0 0 0.5;
+[486] AxoLine 40 60 60 60 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[487] AxoLine 40 10 60 10 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[488] AxoLine 50 10 50 60 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[489] AxoLine 0 35 15 35 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[490] AxoLine 85 35 100 35 0 0  0 0 0 0 0 0 0 0  0 0.5;
+[491] AxoLine 50 10 50 60 0 0  0 0 0 0 0 0 0 0  0 3;
+[492] Vertex 50 60 1.3 3;
+[493] AxoLine 40 60 50 60 0 0  0 0 0 0 0 0 0 0  0 3;
+[494] AxoArc 40 35 25 90 180 0 0  0 0 0 0 0 0 0 0  0 0 3;

Added: trunk/Build/source/utils/axodraw2/axodraw2-src/test.ax2-std
===================================================================
--- trunk/Build/source/utils/axodraw2/axodraw2-src/test.ax2-std	                        (rev 0)
+++ trunk/Build/source/utils/axodraw2/axodraw2-src/test.ax2-std	2018-02-10 23:30:32 UTC (rev 46590)
@@ -0,0 +1,1482 @@
+\axo at setObject{1}%
+{AxoLine 0 2 35 2 2.5 0  0 0 0 0 0 0 0 0  0 1;}%
+{ 1 w q 3.5 w 0 2 m 35 2 l S 1.5 w 0 0 0 0 K 0 2 m 35 2 l S Q}
+\axo at setObject{2}%
+{AxoLine 0 2 30 2 0 0  0  0  0  0.2 1 1.25 0.8  1   0 1;}%
+{ 1 w 0 2 m 30 2 l S 1 0 0 1 0 2 cm 1 0 0 1 24 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
+\axo at setObject{3}%
+{AxoArc 100 50 40 0 180 0 0  0  0  0  0.2 1 1.25 0.5 1   0 0 0.5;}%
+{ 0.5 w 1 0 0 1 100 50 cm 40 0 m 40 22.091 22.091 40 0 40 c -22.091 40 -40 22.091 -40 0 c S 1 0 0 1 0 40 cm -1 0 0 -1 0 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
+\axo at setObject{4}%
+{AxoArc 100 50 40 180 360 0 0  0  0  0  0.2 1 1.25 0.5 1   0 0 0.5;}%
+{ 0.5 w 1 0 0 1 100 50 cm -40 0 m -40 -22.091 -22.091 -40 0 -40 c 22.091 -40 40 -22.091 40 0 c S 1 0 0 1 0 -40 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
+\axo at setObject{5}%
+{AxoGluon 0 50 60 50 5 4 0 0 0.5;}%
+{ 0.5 w 0.5 w 1 0 0 1 0 50 cm 12 -5 m 16.5 -5 16.5 5 8.4 5 c 3 5 0.6 2.5 0 0 c S 12 -5 m 7.5 -5 7.5 5 18 5 c 28.5 5 28.5 -5 24 -5 c 19.5 -5 19.5 5 30 5 c 40.5 5 40.5 -5 36 -5 c 31.5 -5 31.5 5 42 5 c 52.5 5 52.5 -5 48 -5 c 43.5 -5 43.5 5 51.6 5 c 57 5 59.4 2.5 60 0 c S}
+\axo at setObject{6}%
+{Vertex 60 50 2 0.5;}%
+{ 0.5 w 1 0 0 1 60 50 cm -2 0 m -2 1.105 -1.105 2 0 2 c 1.105 2 2 1.105 2 0 c 2 -1.105 1.105 -2 0 -2 c -1.105 -2 -2 -1.105 -2 0 c f }
+\axo at setObject{7}%
+{AxoGluon 140 50 200 50 5 4 0 0 0.5;}%
+{ 0.5 w 0.5 w 1 0 0 1 140 50 cm 12 -5 m 16.5 -5 16.5 5 8.4 5 c 3 5 0.6 2.5 0 0 c S 12 -5 m 7.5 -5 7.5 5 18 5 c 28.5 5 28.5 -5 24 -5 c 19.5 -5 19.5 5 30 5 c 40.5 5 40.5 -5 36 -5 c 31.5 -5 31.5 5 42 5 c 52.5 5 52.5 -5 48 -5 c 43.5 -5 43.5 5 51.6 5 c 57 5 59.4 2.5 60 0 c S}
+\axo at setObject{8}%
+{Vertex 140 50 2 0.5;}%
+{ 0.5 w 1 0 0 1 140 50 cm -2 0 m -2 1.105 -1.105 2 0 2 c 1.105 2 2 1.105 2 0 c 2 -1.105 1.105 -2 0 -2 c -1.105 -2 -2 -1.105 -2 0 c f }
+\axo at setObject{9}%
+{Grid 0 0 10 10 9 14 0.5;}%
+{ 0.5 w 0 0 m 0 140 l S 10 0 m 10 140 l S 20 0 m 20 140 l S 30 0 m 30 140 l S 40 0 m 40 140 l S 50 0 m 50 140 l S 60 0 m 60 140 l S 70 0 m 70 140 l S 80 0 m 80 140 l S 90 0 m 90 140 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S 0 60 m 90 60 l S 0 70 m 90 70 l S 0 80 m 90 80 l S 0 90 m 90 90 l S 0 100 m 90 100 l S 0 110 m 90 110 l S 0 120 m 90 120 l S 0 130 m 90 130 l S 0 140 m 90 140 l S}
+\axo at setObject{10}%
+{Grid 0 0 10 10 9 4 0.5;}%
+{ 0.5 w 0 0 m 0 40 l S 10 0 m 10 40 l S 20 0 m 20 40 l S 30 0 m 30 40 l S 40 0 m 40 40 l S 50 0 m 50 40 l S 60 0 m 60 40 l S 70 0 m 70 40 l S 80 0 m 80 40 l S 90 0 m 90 40 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S}
+\axo at setObject{11}%
+{AxoLine 10 10 80 30 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 10 10 m 80 30 l S}
+\axo at setObject{12}%
+{Grid 0 0 10 10 9 8 0.5;}%
+{ 0.5 w 0 0 m 0 80 l S 10 0 m 10 80 l S 20 0 m 20 80 l S 30 0 m 30 80 l S 40 0 m 40 80 l S 50 0 m 50 80 l S 60 0 m 60 80 l S 70 0 m 70 80 l S 80 0 m 80 80 l S 90 0 m 90 80 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S 0 60 m 90 60 l S 0 70 m 90 70 l S 0 80 m 90 80 l S}
+\axo at setObject{13}%
+{AxoLine 10 70 80 70 0 0  0  0  0  0.2 1 1.25 0.5 1   0 0.5;}%
+{ 0.5 w 10 70 m 80 70 l S 1 0 0 1 10 70 cm 1 0 0 1 35 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
+\axo at setObject{14}%
+{AxoLine 10 50 80 50 0 3  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w [ 2.917] 1.458 d 10 50 m 80 50 l S}
+\axo at setObject{15}%
+{AxoLine 10 30 80 30 2 0  0  0  0  0.2 1 1.25 0.5 1   0 0.5;}%
+{ 0.5 w q 2.5 w 10 30 m 80 30 l S 1.5 w 0 0 0 0 K 10 30 m 80 30 l S Q 1 0 0 1 10 30 cm 1 0 0 1 35 0 cm q [] 0 d 4.35 0 m -4.35 3.48 l -2.61 0 l -4.35 -3.48 l h f Q}
+\axo at setObject{16}%
+{AxoLine 10 10 80 10 2 3  0  0  0  0.2 1 1.25 0.5 1   0 0.5;}%
+{ 0.5 w [ 2.917] 1.458 d q 2.5 w 10 10 m 80 10 l S 1.5 w 0 0 0 0 K 10 10 m 80 10 l S Q 1 0 0 1 10 10 cm 1 0 0 1 35 0 cm q [] 0 d 4.35 0 m -4.35 3.48 l -2.61 0 l -4.35 -3.48 l h f Q}
+\axo at setObject{17}%
+{Grid 0 0 10 10 9 4 0.5;}%
+{ 0.5 w 0 0 m 0 40 l S 10 0 m 10 40 l S 20 0 m 20 40 l S 30 0 m 30 40 l S 40 0 m 40 40 l S 50 0 m 50 40 l S 60 0 m 60 40 l S 70 0 m 70 40 l S 80 0 m 80 40 l S 90 0 m 90 40 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S}
+\axo at setObject{18}%
+{AxoLine 10 25 80 25 1 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w q 1.5 w 10 25 m 80 25 l S 0.5 w 0 0 0 0 K 10 25 m 80 25 l S Q}
+\axo at setObject{19}%
+{AxoLine 10 15 80 15 2 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w q 2.5 w 10 15 m 80 15 l S 1.5 w 0 0 0 0 K 10 15 m 80 15 l S Q}
+\axo at setObject{20}%
+{Grid 0 0 10 10 9 4 0.5;}%
+{ 0.5 w 0 0 m 0 40 l S 10 0 m 10 40 l S 20 0 m 20 40 l S 30 0 m 30 40 l S 40 0 m 40 40 l S 50 0 m 50 40 l S 60 0 m 60 40 l S 70 0 m 70 40 l S 80 0 m 80 40 l S 90 0 m 90 40 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S}
+\axo at setObject{21}%
+{AxoLine 10 25 80 25 0 2   0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w [ 1.944] 0.972 d 10 25 m 80 25 l S}
+\axo at setObject{22}%
+{AxoLine 10 15 80 15 0 6   0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w [ 5.833] 2.917 d 10 15 m 80 15 l S}
+\axo at setObject{23}%
+{Grid 0 0 10 10 9 4 0.5;}%
+{ 0.5 w 0 0 m 0 40 l S 10 0 m 10 40 l S 20 0 m 20 40 l S 30 0 m 30 40 l S 40 0 m 40 40 l S 50 0 m 50 40 l S 60 0 m 60 40 l S 70 0 m 70 40 l S 80 0 m 80 40 l S 90 0 m 90 40 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S}
+\axo at setObject{24}%
+{AxoLine 10 25 80 25 1.5 2   0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w [ 1.944] 0.972 d q 2 w 10 25 m 80 25 l S 1 w 0 0 0 0 K 10 25 m 80 25 l S Q}
+\axo at setObject{25}%
+{AxoLine 10 15 80 15 1.5 6   0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w [ 5.833] 2.917 d q 2 w 10 15 m 80 15 l S 1 w 0 0 0 0 K 10 15 m 80 15 l S Q}
+\axo at setObject{26}%
+{Grid 0 0 10 10 9 5 0.5;}%
+{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 70 0 m 70 50 l S 80 0 m 80 50 l S 90 0 m 90 50 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S}
+\axo at setObject{27}%
+{AxoArc 45 0 40 20 160 0 0  0 0 0 0 0 0 0 0  0 0 0.5;}%
+{ 0.5 w 1 0 0 1 45 0 cm 37.588 13.681 m 31.836 29.483 16.816 40 0 40 c -16.816 40 -31.836 29.483 -37.588 13.681 c S}
+\axo at setObject{28}%
+{Grid 0 0 10 10 8 8 0.5;}%
+{ 0.5 w 0 0 m 0 80 l S 10 0 m 10 80 l S 20 0 m 20 80 l S 30 0 m 30 80 l S 40 0 m 40 80 l S 50 0 m 50 80 l S 60 0 m 60 80 l S 70 0 m 70 80 l S 80 0 m 80 80 l S 0 0 m 80 0 l S 0 10 m 80 10 l S 0 20 m 80 20 l S 0 30 m 80 30 l S 0 40 m 80 40 l S 0 50 m 80 50 l S 0 60 m 80 60 l S 0 70 m 80 70 l S 0 80 m 80 80 l S}
+\axo at setObject{29}%
+{AxoArc 40 40 30 20 160 0 3  0  0  0  0.2 1 1.25 0.5 1   0 1 0.5;}%
+{ 0.5 w [ 2.88] 1.44 d 1 0 0 1 40 40 cm -28.191 10.261 m -32.724 -2.195 -28.547 -16.149 -17.915 -24.064 c -7.283 -31.979 7.283 -31.979 17.915 -24.064 c 28.547 -16.149 32.724 -2.195 28.191 10.261 c S 1 0 0 1 0 -30 cm q [] 0 d -3.125 0 m 3.125 2.5 l 1.875 0 l 3.125 -2.5 l h f Q}
+\axo at setObject{30}%
+{Grid 0 0 10 10 9 5 0.5;}%
+{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 70 0 m 70 50 l S 80 0 m 80 50 l S 90 0 m 90 50 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S}
+\axo at setObject{31}%
+{AxoArc 45 0 40 20 160 2 0  0 0 0 0 0 0 0 0  0 0 0.5;}%
+{ 0.5 w 1 0 0 1 45 0 cm 38.527 14.023 m 32.632 30.22 17.236 41 0 41 c -17.236 41 -32.632 30.22 -38.527 14.023 c S 36.648 13.339 m 31.04 28.746 16.396 39 0 39 c -16.396 39 -31.04 28.746 -36.648 13.339 c S}
+\axo at setObject{32}%
+{Grid 0 0 10 10 9 5 0.5;}%
+{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 70 0 m 70 50 l S 80 0 m 80 50 l S 90 0 m 90 50 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S}
+\axo at setObject{33}%
+{AxoArc 45 0 40 20 160 0 4   0 0 0 0 0 0 0 0  0 0 0.5;}%
+{ 0.5 w [ 4.072] 2.036 d 1 0 0 1 45 0 cm 37.588 13.681 m 31.836 29.483 16.816 40 0 40 c -16.816 40 -31.836 29.483 -37.588 13.681 c S}
+\axo at setObject{34}%
+{Grid 0 0 10 10 9 5 0.5;}%
+{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 70 0 m 70 50 l S 80 0 m 80 50 l S 90 0 m 90 50 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S}
+\axo at setObject{35}%
+{AxoArc 45 0 40 20 160 2 4   0 0 0 0 0 0 0 0  0 0 0.5;}%
+{ 0.5 w 1 0 0 1 45 0 cm [ 4.072] 2.036 d q 1.025 0 0 1.025 0 0 cm 37.588 13.681 m 31.836 29.483 16.816 40 0 40 c -16.816 40 -31.836 29.483 -37.588 13.681 c S Q q 0.975 0 0 0.975 0 0 cm 37.588 13.681 m 31.836 29.483 16.816 40 0 40 c -16.816 40 -31.836 29.483 -37.588 13.681 c S Q}
+\axo at setObject{36}%
+{Grid 0 0 10 10 6 6 0.5;}%
+{ 0.5 w 0 0 m 0 60 l S 10 0 m 10 60 l S 20 0 m 20 60 l S 30 0 m 30 60 l S 40 0 m 40 60 l S 50 0 m 50 60 l S 60 0 m 60 60 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S 0 60 m 60 60 l S}
+\axo at setObject{37}%
+{AxoBezier 10 10 75 30 65 40 20 50 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 10 10 m 75 30 65 40 20 50 c S}
+\axo at setObject{38}%
+{Grid 0 0 10 10 6 6 0.5;}%
+{ 0.5 w 0 0 m 0 60 l S 10 0 m 10 60 l S 20 0 m 20 60 l S 30 0 m 30 60 l S 40 0 m 40 60 l S 50 0 m 50 60 l S 60 0 m 60 60 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S 0 60 m 60 60 l S}
+\axo at setObject{39}%
+{AxoBezier 10 10 75 30 65 40 20 50 2 0  0  0  0  0.2 1 1.25 1  1   0 0.5;}%
+{ 0.5 w q 2.5 w 10 10 m 75 30 65 40 20 50 c S Q q 1.5 w 0 0 0 0 K 10 10 m 75 30 65 40 20 50 c S Q 1 0 0 1 20 50 cm -0.976 0.217 -0.217 -0.976 0 0 cm q [] 0 d 4.35 0 m -4.35 3.48 l -2.61 0 l -4.35 -3.48 l h f Q}
+\axo at setObject{40}%
+{Grid 0 0 10 10 6 6 0.5;}%
+{ 0.5 w 0 0 m 0 60 l S 10 0 m 10 60 l S 20 0 m 20 60 l S 30 0 m 30 60 l S 40 0 m 40 60 l S 50 0 m 50 60 l S 60 0 m 60 60 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S 0 60 m 60 60 l S}
+\axo at setObject{41}%
+{AxoBezier 10 10 75 30 65 40 20 50 1.5 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w q 2 w 10 10 m 75 30 65 40 20 50 c S Q q 1 w 0 0 0 0 K 10 10 m 75 30 65 40 20 50 c S Q}
+\axo at setObject{42}%
+{Grid 0 0 10 10 6 6 0.5;}%
+{ 0.5 w 0 0 m 0 60 l S 10 0 m 10 60 l S 20 0 m 20 60 l S 30 0 m 30 60 l S 40 0 m 40 60 l S 50 0 m 50 60 l S 60 0 m 60 60 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S 0 60 m 60 60 l S}
+\axo at setObject{43}%
+{AxoBezier 10 10 75 30 65 40 20 50 0 4   0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w [ 3.95] 1.975 d 10 10 m 75 30 65 40 20 50 c S}
+\axo at setObject{44}%
+{Grid 0 0 10 10 6 6 0.5;}%
+{ 0.5 w 0 0 m 0 60 l S 10 0 m 10 60 l S 20 0 m 20 60 l S 30 0 m 30 60 l S 40 0 m 40 60 l S 50 0 m 50 60 l S 60 0 m 60 60 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S 0 60 m 60 60 l S}
+\axo at setObject{45}%
+{AxoBezier 10 10 75 30 65 40 20 50 1.5 4   0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w [ 3.95] 1.975 d q 2 w 10 10 m 75 30 65 40 20 50 c S Q q 1 w 0 0 0 0 K 10 10 m 75 30 65 40 20 50 c S Q}
+\axo at setObject{46}%
+{Grid 0 0 10 10 6 6 0.5;}%
+{ 0.5 w 0 0 m 0 60 l S 10 0 m 10 60 l S 20 0 m 20 60 l S 30 0 m 30 60 l S 40 0 m 40 60 l S 50 0 m 50 60 l S 60 0 m 60 60 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S 0 60 m 60 60 l S}
+\axo at setObject{47}%
+{Curve "(5,55)(10,32.5)(15,23)(20,18)(25,14.65)(30,12.3)(40,9.5)(55,7)" 0.5;}%
+{ 0.5 w 5 55 m 6.667 45.333 8.333 37.833 10 32.5 c 11.667 27.167 13.333 25.417 15 23 c 16.667 20.583 18.333 19.392 20 18 c 21.667 16.608 23.333 15.6 25 14.65 c 26.667 13.7 28.333 12.978 30 12.3 c 33.333 10.944 36.667 10.282 40 9.5 c 45 8.327 50 7.493 55 7 c S}
+\axo at setObject{48}%
+{Grid 0 0 10 10 6 6 0.5;}%
+{ 0.5 w 0 0 m 0 60 l S 10 0 m 10 60 l S 20 0 m 20 60 l S 30 0 m 30 60 l S 40 0 m 40 60 l S 50 0 m 50 60 l S 60 0 m 60 60 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S 0 60 m 60 60 l S}
+\axo at setObject{49}%
+{DashCurve "(5,55)(10,32.5)(15,23)(20,18)(25,14.65)(30,12.3)(40,9.5)(55,7)" 4 0.5;}%
+{ 0.5 w [ 4] 2 d 5 55 m 6.667 45.333 8.333 37.833 10 32.5 c 11.667 27.167 13.333 25.417 15 23 c 16.667 20.583 18.333 19.392 20 18 c 21.667 16.608 23.333 15.6 25 14.65 c 26.667 13.7 28.333 12.978 30 12.3 c 33.333 10.944 36.667 10.282 40 9.5 c 45 8.327 50 7.493 55 7 c S}
+\axo at setObject{50}%
+{Grid 0 0 10 10 9 4 0.5;}%
+{ 0.5 w 0 0 m 0 40 l S 10 0 m 10 40 l S 20 0 m 20 40 l S 30 0 m 30 40 l S 40 0 m 40 40 l S 50 0 m 50 40 l S 60 0 m 60 40 l S 70 0 m 70 40 l S 80 0 m 80 40 l S 90 0 m 90 40 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S}
+\axo at setObject{51}%
+{AxoGluon 10 20 80 20 5 7 0 0 0.5;}%
+{ 0.5 w 0.5 w 1 0 0 1 10 20 cm 8.75 -5 m 13.25 -5 13.25 5 6.125 5 c 2.188 5 0.438 2.5 0 0 c S 8.75 -5 m 4.25 -5 4.25 5 13.125 5 c 22 5 22 -5 17.5 -5 c 13 -5 13 5 21.875 5 c 30.75 5 30.75 -5 26.25 -5 c 21.75 -5 21.75 5 30.625 5 c 39.5 5 39.5 -5 35 -5 c 30.5 -5 30.5 5 39.375 5 c 48.25 5 48.25 -5 43.75 -5 c 39.25 -5 39.25 5 48.125 5 c 57 5 57 -5 52.5 -5 c 48 -5 48 5 56.875 5 c 65.75 5 65.75 -5 61.25 -5 c 56.75 -5 56.75 5 63.875 5 c 67.812 5 69.562 2.5 70 0 c S}
+\axo at setObject{52}%
+{Grid 0 0 10 10 9 4 0.5;}%
+{ 0.5 w 0 0 m 0 40 l S 10 0 m 10 40 l S 20 0 m 20 40 l S 30 0 m 30 40 l S 40 0 m 40 40 l S 50 0 m 50 40 l S 60 0 m 60 40 l S 70 0 m 70 40 l S 80 0 m 80 40 l S 90 0 m 90 40 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S}
+\axo at setObject{53}%
+{AxoGluon 10 20 80 20 4 7 0.5 1  2;}%
+{ 2 w 2.5 w 1 0 0 1 10 20 cm [ 0.966] 0.483 d 8.75 -4 m 12.35 -4 12.35 4 6.125 4 c 2.188 4 0.438 2 0 0 c S 8.75 -4 m 5.15 -4 5.15 4 13.125 4 c 21.1 4 21.1 -4 17.5 -4 c 13.9 -4 13.9 4 21.875 4 c 29.85 4 29.85 -4 26.25 -4 c 22.65 -4 22.65 4 30.625 4 c 38.6 4 38.6 -4 35 -4 c 31.4 -4 31.4 4 39.375 4 c 47.35 4 47.35 -4 43.75 -4 c 40.15 -4 40.15 4 48.125 4 c 56.1 4 56.1 -4 52.5 -4 c 48.9 -4 48.9 4 56.875 4 c 64.85 4 64.85 -4 61.25 -4 c 57.65 -4 57.65 4 63.875 4 c 67.812 4 69.562 2 70 0 c S}
+\axo at setObject{54}%
+{AxoGluon 10 20 80 20 4 7 -0.5 0 2;}%
+{ 2 w 1.5 w 1 0 0 1 10 20 cm 8.75 -4 m 12.35 -4 12.35 4 6.125 4 c 2.188 4 0.438 2 0 0 c S 8.75 -4 m 5.15 -4 5.15 4 13.125 4 c 21.1 4 21.1 -4 17.5 -4 c 13.9 -4 13.9 4 21.875 4 c 29.85 4 29.85 -4 26.25 -4 c 22.65 -4 22.65 4 30.625 4 c 38.6 4 38.6 -4 35 -4 c 31.4 -4 31.4 4 39.375 4 c 47.35 4 47.35 -4 43.75 -4 c 40.15 -4 40.15 4 48.125 4 c 56.1 4 56.1 -4 52.5 -4 c 48.9 -4 48.9 4 56.875 4 c 64.85 4 64.85 -4 61.25 -4 c 57.65 -4 57.65 4 63.875 4 c 67.812 4 69.562 2 70 0 c S}
+\axo at setObject{55}%
+{Grid 0 0 10 10 9 4 0.5;}%
+{ 0.5 w 0 0 m 0 40 l S 10 0 m 10 40 l S 20 0 m 20 40 l S 30 0 m 30 40 l S 40 0 m 40 40 l S 50 0 m 50 40 l S 60 0 m 60 40 l S 70 0 m 70 40 l S 80 0 m 80 40 l S 90 0 m 90 40 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S}
+\axo at setObject{56}%
+{AxoGluon 10 20 80 20 5 7 0.5 0 1.3;}%
+{ 1.3 w 1.8 w 1 0 0 1 10 20 cm 8.75 -5 m 13.25 -5 13.25 5 6.125 5 c 2.188 5 0.438 2.5 0 0 c S 8.75 -5 m 4.25 -5 4.25 5 13.125 5 c 22 5 22 -5 17.5 -5 c 13 -5 13 5 21.875 5 c 30.75 5 30.75 -5 26.25 -5 c 21.75 -5 21.75 5 30.625 5 c 39.5 5 39.5 -5 35 -5 c 30.5 -5 30.5 5 39.375 5 c 48.25 5 48.25 -5 43.75 -5 c 39.25 -5 39.25 5 48.125 5 c 57 5 57 -5 52.5 -5 c 48 -5 48 5 56.875 5 c 65.75 5 65.75 -5 61.25 -5 c 56.75 -5 56.75 5 63.875 5 c 67.812 5 69.562 2.5 70 0 c S}
+\axo at setObject{57}%
+{AxoGluon 10 20 80 20 5 7 -0.5 0 1.3;}%
+{ 1.3 w 0.8 w 1 0 0 1 10 20 cm 8.75 -5 m 13.25 -5 13.25 5 6.125 5 c 2.188 5 0.438 2.5 0 0 c S 8.75 -5 m 4.25 -5 4.25 5 13.125 5 c 22 5 22 -5 17.5 -5 c 13 -5 13 5 21.875 5 c 30.75 5 30.75 -5 26.25 -5 c 21.75 -5 21.75 5 30.625 5 c 39.5 5 39.5 -5 35 -5 c 30.5 -5 30.5 5 39.375 5 c 48.25 5 48.25 -5 43.75 -5 c 39.25 -5 39.25 5 48.125 5 c 57 5 57 -5 52.5 -5 c 48 -5 48 5 56.875 5 c 65.75 5 65.75 -5 61.25 -5 c 56.75 -5 56.75 5 63.875 5 c 67.812 5 69.562 2.5 70 0 c S}
+\axo at setObject{58}%
+{Grid 0 0 10 10 9 4 0.5;}%
+{ 0.5 w 0 0 m 0 40 l S 10 0 m 10 40 l S 20 0 m 20 40 l S 30 0 m 30 40 l S 40 0 m 40 40 l S 50 0 m 50 40 l S 60 0 m 60 40 l S 70 0 m 70 40 l S 80 0 m 80 40 l S 90 0 m 90 40 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S}
+\axo at setObject{59}%
+{AxoGluon 10 20 80 20 5 7 0 1  0.5;}%
+{ 0.5 w 0.5 w 1 0 0 1 10 20 cm [ 1.008] 0.504 d 8.75 -5 m 13.25 -5 13.25 5 6.125 5 c 2.188 5 0.438 2.5 0 0 c S 8.75 -5 m 4.25 -5 4.25 5 13.125 5 c 22 5 22 -5 17.5 -5 c 13 -5 13 5 21.875 5 c 30.75 5 30.75 -5 26.25 -5 c 21.75 -5 21.75 5 30.625 5 c 39.5 5 39.5 -5 35 -5 c 30.5 -5 30.5 5 39.375 5 c 48.25 5 48.25 -5 43.75 -5 c 39.25 -5 39.25 5 48.125 5 c 57 5 57 -5 52.5 -5 c 48 -5 48 5 56.875 5 c 65.75 5 65.75 -5 61.25 -5 c 56.75 -5 56.75 5 63.875 5 c 67.812 5 69.562 2.5 70 0 c S}
+\axo at setObject{60}%
+{Grid 0 0 10 10 9 4 0.5;}%
+{ 0.5 w 0 0 m 0 40 l S 10 0 m 10 40 l S 20 0 m 20 40 l S 30 0 m 30 40 l S 40 0 m 40 40 l S 50 0 m 50 40 l S 60 0 m 60 40 l S 70 0 m 70 40 l S 80 0 m 80 40 l S 90 0 m 90 40 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S}
+\axo at setObject{61}%
+{AxoGluon 10 20 80 20 5 7 0.5 1  1.3;}%
+{ 1.3 w 1.8 w 1 0 0 1 10 20 cm [ 1.008] 0.504 d 8.75 -5 m 13.25 -5 13.25 5 6.125 5 c 2.188 5 0.438 2.5 0 0 c S 8.75 -5 m 4.25 -5 4.25 5 13.125 5 c 22 5 22 -5 17.5 -5 c 13 -5 13 5 21.875 5 c 30.75 5 30.75 -5 26.25 -5 c 21.75 -5 21.75 5 30.625 5 c 39.5 5 39.5 -5 35 -5 c 30.5 -5 30.5 5 39.375 5 c 48.25 5 48.25 -5 43.75 -5 c 39.25 -5 39.25 5 48.125 5 c 57 5 57 -5 52.5 -5 c 48 -5 48 5 56.875 5 c 65.75 5 65.75 -5 61.25 -5 c 56.75 -5 56.75 5 63.875 5 c 67.812 5 69.562 2.5 70 0 c S}
+\axo at setObject{62}%
+{AxoGluon 10 20 80 20 5 7 -0.5 0 1.3;}%
+{ 1.3 w 0.8 w 1 0 0 1 10 20 cm 8.75 -5 m 13.25 -5 13.25 5 6.125 5 c 2.188 5 0.438 2.5 0 0 c S 8.75 -5 m 4.25 -5 4.25 5 13.125 5 c 22 5 22 -5 17.5 -5 c 13 -5 13 5 21.875 5 c 30.75 5 30.75 -5 26.25 -5 c 21.75 -5 21.75 5 30.625 5 c 39.5 5 39.5 -5 35 -5 c 30.5 -5 30.5 5 39.375 5 c 48.25 5 48.25 -5 43.75 -5 c 39.25 -5 39.25 5 48.125 5 c 57 5 57 -5 52.5 -5 c 48 -5 48 5 56.875 5 c 65.75 5 65.75 -5 61.25 -5 c 56.75 -5 56.75 5 63.875 5 c 67.812 5 69.562 2.5 70 0 c S}
+\axo at setObject{63}%
+{Grid 0 0 10 10 9 5 0.5;}%
+{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 70 0 m 70 50 l S 80 0 m 80 50 l S 90 0 m 90 50 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S}
+\axo at setObject{64}%
+{AxoGluonArc 45 0 40 20 160 5 8 0 0 0 0.5;}%
+{ 0.5 w 0.5 w 1 0 0 1 45 0 cm 0.94 0.342 -0.342 0.94 0 0 cm 33.718 9.386 m 32.658 13.195 42.52 17.18 44.19 8.501 c 45.234 3.075 42.496 0.577 40 0 c S 33.718 9.386 m 34.778 5.577 45.838 7.35 41.32 17.824 c 36.802 28.297 27.923 21.47 29.966 18.084 c 32.009 14.699 42.188 19.373 35.026 28.252 c 27.865 37.13 21.142 28.172 24.018 25.458 c 26.895 22.745 35.447 29.977 26.167 36.61 c 16.887 43.243 12.813 32.809 16.312 30.967 c 19.81 29.124 26.109 38.385 15.391 42.286 c 4.672 46.187 3.545 35.044 7.41 34.207 c 11.274 33.37 14.859 43.981 3.487 44.865 c -7.885 45.749 -5.983 34.711 -2.035 34.941 c 1.912 35.171 2.521 46.355 -8.672 44.156 c -19.865 41.958 -15.072 31.835 -11.331 33.115 c -7.589 34.395 -10.003 45.333 -20.196 40.213 c -30.389 35.094 -23.057 26.627 -19.796 28.864 c -16.535 31.1 -21.529 40.492 -28.387 34.917 c -32.674 31.431 -32.183 27.758 -30.642 25.712 c S}
+\axo at setObject{65}%
+{Grid 0 0 10 10 9 5 0.5;}%
+{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 70 0 m 70 50 l S 80 0 m 80 50 l S 90 0 m 90 50 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S}
+\axo at setObject{66}%
+{AxoGluonArc 45 0 40 20 160 5 8 0.5 0 0 1.3;}%
+{ 1.3 w 1.8 w 1 0 0 1 45 0 cm 0.94 0.342 -0.342 0.94 0 0 cm 33.718 9.386 m 32.658 13.195 42.52 17.18 44.19 8.501 c 45.234 3.075 42.496 0.577 40 0 c S 33.718 9.386 m 34.778 5.577 45.838 7.35 41.32 17.824 c 36.802 28.297 27.923 21.47 29.966 18.084 c 32.009 14.699 42.188 19.373 35.026 28.252 c 27.865 37.13 21.142 28.172 24.018 25.458 c 26.895 22.745 35.447 29.977 26.167 36.61 c 16.887 43.243 12.813 32.809 16.312 30.967 c 19.81 29.124 26.109 38.385 15.391 42.286 c 4.672 46.187 3.545 35.044 7.41 34.207 c 11.274 33.37 14.859 43.981 3.487 44.865 c -7.885 45.749 -5.983 34.711 -2.035 34.941 c 1.912 35.171 2.521 46.355 -8.672 44.156 c -19.865 41.958 -15.072 31.835 -11.331 33.115 c -7.589 34.395 -10.003 45.333 -20.196 40.213 c -30.389 35.094 -23.057 26.627 -19.796 28.864 c -16.535 31.1 -21.529 40.492 -28.387 34.917 c -32.674 31.431 -32.183 27.758 -30.642 25.712 c S}
+\axo at setObject{67}%
+{AxoGluonArc 45 0 40 20 160 5 8 -0.5 0 0 1.3;}%
+{ 1.3 w 0.8 w 1 0 0 1 45 0 cm 0.94 0.342 -0.342 0.94 0 0 cm 33.718 9.386 m 32.658 13.195 42.52 17.18 44.19 8.501 c 45.234 3.075 42.496 0.577 40 0 c S 33.718 9.386 m 34.778 5.577 45.838 7.35 41.32 17.824 c 36.802 28.297 27.923 21.47 29.966 18.084 c 32.009 14.699 42.188 19.373 35.026 28.252 c 27.865 37.13 21.142 28.172 24.018 25.458 c 26.895 22.745 35.447 29.977 26.167 36.61 c 16.887 43.243 12.813 32.809 16.312 30.967 c 19.81 29.124 26.109 38.385 15.391 42.286 c 4.672 46.187 3.545 35.044 7.41 34.207 c 11.274 33.37 14.859 43.981 3.487 44.865 c -7.885 45.749 -5.983 34.711 -2.035 34.941 c 1.912 35.171 2.521 46.355 -8.672 44.156 c -19.865 41.958 -15.072 31.835 -11.331 33.115 c -7.589 34.395 -10.003 45.333 -20.196 40.213 c -30.389 35.094 -23.057 26.627 -19.796 28.864 c -16.535 31.1 -21.529 40.492 -28.387 34.917 c -32.674 31.431 -32.183 27.758 -30.642 25.712 c S}
+\axo at setObject{68}%
+{Grid 0 0 10 10 9 5 0.5;}%
+{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 70 0 m 70 50 l S 80 0 m 80 50 l S 90 0 m 90 50 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S}
+\axo at setObject{69}%
+{AxoGluonArc 45 0 40 20 160 5 8 0 1.5  0 0.5;}%
+{ 0.5 w 0.5 w 1 0 0 1 45 0 cm 0.94 0.342 -0.342 0.94 0 0 cm [ 1.461] 0.731 d 33.718 9.386 m 32.658 13.195 42.52 17.18 44.19 8.501 c 45.234 3.075 42.496 0.577 40 0 c S 33.718 9.386 m 34.778 5.577 45.838 7.35 41.32 17.824 c 36.802 28.297 27.923 21.47 29.966 18.084 c 32.009 14.699 42.188 19.373 35.026 28.252 c 27.865 37.13 21.142 28.172 24.018 25.458 c 26.895 22.745 35.447 29.977 26.167 36.61 c 16.887 43.243 12.813 32.809 16.312 30.967 c 19.81 29.124 26.109 38.385 15.391 42.286 c 4.672 46.187 3.545 35.044 7.41 34.207 c 11.274 33.37 14.859 43.981 3.487 44.865 c -7.885 45.749 -5.983 34.711 -2.035 34.941 c 1.912 35.171 2.521 46.355 -8.672 44.156 c -19.865 41.958 -15.072 31.835 -11.331 33.115 c -7.589 34.395 -10.003 45.333 -20.196 40.213 c -30.389 35.094 -23.057 26.627 -19.796 28.864 c -16.535 31.1 -21.529 40.492 -28.387 34.917 c -32.674 31.431 -32.183 27.758 -30.642 25.712 c S}
+\axo at setObject{70}%
+{Grid 0 0 10 10 9 5 0.5;}%
+{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 70 0 m 70 50 l S 80 0 m 80 50 l S 90 0 m 90 50 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S}
+\axo at setObject{71}%
+{AxoGluonArc 45 0 40 20 160 5 8 0.5 1.5  0 1.3;}%
+{ 1.3 w 1.8 w 1 0 0 1 45 0 cm 0.94 0.342 -0.342 0.94 0 0 cm [ 1.461] 0.731 d 33.718 9.386 m 32.658 13.195 42.52 17.18 44.19 8.501 c 45.234 3.075 42.496 0.577 40 0 c S 33.718 9.386 m 34.778 5.577 45.838 7.35 41.32 17.824 c 36.802 28.297 27.923 21.47 29.966 18.084 c 32.009 14.699 42.188 19.373 35.026 28.252 c 27.865 37.13 21.142 28.172 24.018 25.458 c 26.895 22.745 35.447 29.977 26.167 36.61 c 16.887 43.243 12.813 32.809 16.312 30.967 c 19.81 29.124 26.109 38.385 15.391 42.286 c 4.672 46.187 3.545 35.044 7.41 34.207 c 11.274 33.37 14.859 43.981 3.487 44.865 c -7.885 45.749 -5.983 34.711 -2.035 34.941 c 1.912 35.171 2.521 46.355 -8.672 44.156 c -19.865 41.958 -15.072 31.835 -11.331 33.115 c -7.589 34.395 -10.003 45.333 -20.196 40.213 c -30.389 35.094 -23.057 26.627 -19.796 28.864 c -16.535 31.1 -21.529 40.492 -28.387 34.917 c -32.674 31.431 -32.183 27.758 -30.642 25.712 c S}
+\axo at setObject{72}%
+{AxoGluonArc 45 0 40 20 160 5 8 -0.5 0 0 1.3;}%
+{ 1.3 w 0.8 w 1 0 0 1 45 0 cm 0.94 0.342 -0.342 0.94 0 0 cm 33.718 9.386 m 32.658 13.195 42.52 17.18 44.19 8.501 c 45.234 3.075 42.496 0.577 40 0 c S 33.718 9.386 m 34.778 5.577 45.838 7.35 41.32 17.824 c 36.802 28.297 27.923 21.47 29.966 18.084 c 32.009 14.699 42.188 19.373 35.026 28.252 c 27.865 37.13 21.142 28.172 24.018 25.458 c 26.895 22.745 35.447 29.977 26.167 36.61 c 16.887 43.243 12.813 32.809 16.312 30.967 c 19.81 29.124 26.109 38.385 15.391 42.286 c 4.672 46.187 3.545 35.044 7.41 34.207 c 11.274 33.37 14.859 43.981 3.487 44.865 c -7.885 45.749 -5.983 34.711 -2.035 34.941 c 1.912 35.171 2.521 46.355 -8.672 44.156 c -19.865 41.958 -15.072 31.835 -11.331 33.115 c -7.589 34.395 -10.003 45.333 -20.196 40.213 c -30.389 35.094 -23.057 26.627 -19.796 28.864 c -16.535 31.1 -21.529 40.492 -28.387 34.917 c -32.674 31.431 -32.183 27.758 -30.642 25.712 c S}
+\axo at setObject{73}%
+{Grid 0 0 10 10 8 8 0.5;}%
+{ 0.5 w 0 0 m 0 80 l S 10 0 m 10 80 l S 20 0 m 20 80 l S 30 0 m 30 80 l S 40 0 m 40 80 l S 50 0 m 50 80 l S 60 0 m 60 80 l S 70 0 m 70 80 l S 80 0 m 80 80 l S 0 0 m 80 0 l S 0 10 m 80 10 l S 0 20 m 80 20 l S 0 30 m 80 30 l S 0 40 m 80 40 l S 0 50 m 80 50 l S 0 60 m 80 60 l S 0 70 m 80 70 l S 0 80 m 80 80 l S}
+\axo at setObject{74}%
+{AxoGluonCirc 40 40 30 0 5 16 0 0 0.5;}%
+{ 0.5 w 0.5 w 1 0 0 1 40 40 cm 0.981 0.195 -0.195 0.981 0 0 cm 34.327 6.828 m 31.863 19.217 21.651 13.058 23.097 9.567 c 24.543 6.076 36.119 8.942 29.101 19.445 c 22.084 29.948 15.006 20.349 17.678 17.678 c 20.349 15.006 29.948 22.084 19.445 29.101 c 8.942 36.119 6.076 24.543 9.567 23.097 c 13.058 21.651 19.217 31.863 6.828 34.327 c -5.561 36.792 -3.778 25 0 25 c 3.778 25 5.561 36.792 -6.828 34.327 c -19.217 31.863 -13.058 21.651 -9.567 23.097 c -6.076 24.543 -8.942 36.119 -19.445 29.101 c -29.948 22.084 -20.349 15.006 -17.678 17.678 c -15.006 20.349 -22.084 29.948 -29.101 19.445 c -36.119 8.942 -24.543 6.076 -23.097 9.567 c -21.651 13.058 -31.863 19.217 -34.327 6.828 c -36.792 -5.561 -25 -3.778 -25 0 c -25 3.778 -36.792 5.561 -34.327 -6.828 c -31.863 -19.217 -21.651 -13.058 -23.097 -9.567 c -24.543 -6.076 -36.119 -8.942 -29.101 -19.445 c -22.084 -29.948 -15.006 -20.349 -17.678 -17.678 c -20.349 -15.006 -29.948 -22.084 -19.445 -29.101 c -8.942 -36.119 -6.076 -24.543 -9.567 -23.097 c -13.058 -21.651 -19.217 -31.863 -6.828 -34.327 c 5.561 -36.792 3.778 -25 0 -25 c -3.778 -25 -5.561 -36.792 6.828 -34.327 c 19.217 -31.863 13.058 -21.651 9.567 -23.097 c 6.076 -24.543 8.942 -36.119 19.445 -29.101 c 29.948 -22.084 20.349 -15.006 17.678 -17.678 c 15.006 -20.349 22.084 -29.948 29.101 -19.445 c 36.119 -8.942 24.543 -6.076 23.097 -9.567 c 21.651 -13.058 31.863 -19.217 34.327 -6.828 c 36.792 5.561 25 3.778 25 0 c 25 -3.778 36.792 -5.561 34.327 6.828 c S}
+\axo at setObject{75}%
+{Grid 0 0 10 10 8 8 0.5;}%
+{ 0.5 w 0 0 m 0 80 l S 10 0 m 10 80 l S 20 0 m 20 80 l S 30 0 m 30 80 l S 40 0 m 40 80 l S 50 0 m 50 80 l S 60 0 m 60 80 l S 70 0 m 70 80 l S 80 0 m 80 80 l S 0 0 m 80 0 l S 0 10 m 80 10 l S 0 20 m 80 20 l S 0 30 m 80 30 l S 0 40 m 80 40 l S 0 50 m 80 50 l S 0 60 m 80 60 l S 0 70 m 80 70 l S 0 80 m 80 80 l S}
+\axo at setObject{76}%
+{AxoGluonCirc 40 40 30 0 5 16 0.5 0 1.3;}%
+{ 1.3 w 1.8 w 1 0 0 1 40 40 cm 0.981 0.195 -0.195 0.981 0 0 cm 34.327 6.828 m 31.863 19.217 21.651 13.058 23.097 9.567 c 24.543 6.076 36.119 8.942 29.101 19.445 c 22.084 29.948 15.006 20.349 17.678 17.678 c 20.349 15.006 29.948 22.084 19.445 29.101 c 8.942 36.119 6.076 24.543 9.567 23.097 c 13.058 21.651 19.217 31.863 6.828 34.327 c -5.561 36.792 -3.778 25 0 25 c 3.778 25 5.561 36.792 -6.828 34.327 c -19.217 31.863 -13.058 21.651 -9.567 23.097 c -6.076 24.543 -8.942 36.119 -19.445 29.101 c -29.948 22.084 -20.349 15.006 -17.678 17.678 c -15.006 20.349 -22.084 29.948 -29.101 19.445 c -36.119 8.942 -24.543 6.076 -23.097 9.567 c -21.651 13.058 -31.863 19.217 -34.327 6.828 c -36.792 -5.561 -25 -3.778 -25 0 c -25 3.778 -36.792 5.561 -34.327 -6.828 c -31.863 -19.217 -21.651 -13.058 -23.097 -9.567 c -24.543 -6.076 -36.119 -8.942 -29.101 -19.445 c -22.084 -29.948 -15.006 -20.349 -17.678 -17.678 c -20.349 -15.006 -29.948 -22.084 -19.445 -29.101 c -8.942 -36.119 -6.076 -24.543 -9.567 -23.097 c -13.058 -21.651 -19.217 -31.863 -6.828 -34.327 c 5.561 -36.792 3.778 -25 0 -25 c -3.778 -25 -5.561 -36.792 6.828 -34.327 c 19.217 -31.863 13.058 -21.651 9.567 -23.097 c 6.076 -24.543 8.942 -36.119 19.445 -29.101 c 29.948 -22.084 20.349 -15.006 17.678 -17.678 c 15.006 -20.349 22.084 -29.948 29.101 -19.445 c 36.119 -8.942 24.543 -6.076 23.097 -9.567 c 21.651 -13.058 31.863 -19.217 34.327 -6.828 c 36.792 5.561 25 3.778 25 0 c 25 -3.778 36.792 -5.561 34.327 6.828 c S}
+\axo at setObject{77}%
+{AxoGluonCirc 40 40 30 0 5 16 -0.5 0 1.3;}%
+{ 1.3 w 0.8 w 1 0 0 1 40 40 cm 0.981 0.195 -0.195 0.981 0 0 cm 34.327 6.828 m 31.863 19.217 21.651 13.058 23.097 9.567 c 24.543 6.076 36.119 8.942 29.101 19.445 c 22.084 29.948 15.006 20.349 17.678 17.678 c 20.349 15.006 29.948 22.084 19.445 29.101 c 8.942 36.119 6.076 24.543 9.567 23.097 c 13.058 21.651 19.217 31.863 6.828 34.327 c -5.561 36.792 -3.778 25 0 25 c 3.778 25 5.561 36.792 -6.828 34.327 c -19.217 31.863 -13.058 21.651 -9.567 23.097 c -6.076 24.543 -8.942 36.119 -19.445 29.101 c -29.948 22.084 -20.349 15.006 -17.678 17.678 c -15.006 20.349 -22.084 29.948 -29.101 19.445 c -36.119 8.942 -24.543 6.076 -23.097 9.567 c -21.651 13.058 -31.863 19.217 -34.327 6.828 c -36.792 -5.561 -25 -3.778 -25 0 c -25 3.778 -36.792 5.561 -34.327 -6.828 c -31.863 -19.217 -21.651 -13.058 -23.097 -9.567 c -24.543 -6.076 -36.119 -8.942 -29.101 -19.445 c -22.084 -29.948 -15.006 -20.349 -17.678 -17.678 c -20.349 -15.006 -29.948 -22.084 -19.445 -29.101 c -8.942 -36.119 -6.076 -24.543 -9.567 -23.097 c -13.058 -21.651 -19.217 -31.863 -6.828 -34.327 c 5.561 -36.792 3.778 -25 0 -25 c -3.778 -25 -5.561 -36.792 6.828 -34.327 c 19.217 -31.863 13.058 -21.651 9.567 -23.097 c 6.076 -24.543 8.942 -36.119 19.445 -29.101 c 29.948 -22.084 20.349 -15.006 17.678 -17.678 c 15.006 -20.349 22.084 -29.948 29.101 -19.445 c 36.119 -8.942 24.543 -6.076 23.097 -9.567 c 21.651 -13.058 31.863 -19.217 34.327 -6.828 c 36.792 5.561 25 3.778 25 0 c 25 -3.778 36.792 -5.561 34.327 6.828 c S}
+\axo at setObject{78}%
+{Grid 0 0 10 10 8 8 0.5;}%
+{ 0.5 w 0 0 m 0 80 l S 10 0 m 10 80 l S 20 0 m 20 80 l S 30 0 m 30 80 l S 40 0 m 40 80 l S 50 0 m 50 80 l S 60 0 m 60 80 l S 70 0 m 70 80 l S 80 0 m 80 80 l S 0 0 m 80 0 l S 0 10 m 80 10 l S 0 20 m 80 20 l S 0 30 m 80 30 l S 0 40 m 80 40 l S 0 50 m 80 50 l S 0 60 m 80 60 l S 0 70 m 80 70 l S 0 80 m 80 80 l S}
+\axo at setObject{79}%
+{AxoGluonCirc 40 40 30 0 5 16 0 1.5  0.5;}%
+{ 0.5 w 0.5 w 1 0 0 1 40 40 cm 0.981 0.195 -0.195 0.981 0 0 cm [ 1.524] 0.762 d 34.327 6.828 m 31.863 19.217 21.651 13.058 23.097 9.567 c 24.543 6.076 36.119 8.942 29.101 19.445 c 22.084 29.948 15.006 20.349 17.678 17.678 c 20.349 15.006 29.948 22.084 19.445 29.101 c 8.942 36.119 6.076 24.543 9.567 23.097 c 13.058 21.651 19.217 31.863 6.828 34.327 c -5.561 36.792 -3.778 25 0 25 c 3.778 25 5.561 36.792 -6.828 34.327 c -19.217 31.863 -13.058 21.651 -9.567 23.097 c -6.076 24.543 -8.942 36.119 -19.445 29.101 c -29.948 22.084 -20.349 15.006 -17.678 17.678 c -15.006 20.349 -22.084 29.948 -29.101 19.445 c -36.119 8.942 -24.543 6.076 -23.097 9.567 c -21.651 13.058 -31.863 19.217 -34.327 6.828 c -36.792 -5.561 -25 -3.778 -25 0 c -25 3.778 -36.792 5.561 -34.327 -6.828 c -31.863 -19.217 -21.651 -13.058 -23.097 -9.567 c -24.543 -6.076 -36.119 -8.942 -29.101 -19.445 c -22.084 -29.948 -15.006 -20.349 -17.678 -17.678 c -20.349 -15.006 -29.948 -22.084 -19.445 -29.101 c -8.942 -36.119 -6.076 -24.543 -9.567 -23.097 c -13.058 -21.651 -19.217 -31.863 -6.828 -34.327 c 5.561 -36.792 3.778 -25 0 -25 c -3.778 -25 -5.561 -36.792 6.828 -34.327 c 19.217 -31.863 13.058 -21.651 9.567 -23.097 c 6.076 -24.543 8.942 -36.119 19.445 -29.101 c 29.948 -22.084 20.349 -15.006 17.678 -17.678 c 15.006 -20.349 22.084 -29.948 29.101 -19.445 c 36.119 -8.942 24.543 -6.076 23.097 -9.567 c 21.651 -13.058 31.863 -19.217 34.327 -6.828 c 36.792 5.561 25 3.778 25 0 c 25 -3.778 36.792 -5.561 34.327 6.828 c S}
+\axo at setObject{80}%
+{Grid 0 0 10 10 8 8 0.5;}%
+{ 0.5 w 0 0 m 0 80 l S 10 0 m 10 80 l S 20 0 m 20 80 l S 30 0 m 30 80 l S 40 0 m 40 80 l S 50 0 m 50 80 l S 60 0 m 60 80 l S 70 0 m 70 80 l S 80 0 m 80 80 l S 0 0 m 80 0 l S 0 10 m 80 10 l S 0 20 m 80 20 l S 0 30 m 80 30 l S 0 40 m 80 40 l S 0 50 m 80 50 l S 0 60 m 80 60 l S 0 70 m 80 70 l S 0 80 m 80 80 l S}
+\axo at setObject{81}%
+{AxoGluonCirc 40 40 30 0 5 16 0.5 1.5  1.3;}%
+{ 1.3 w 1.8 w 1 0 0 1 40 40 cm 0.981 0.195 -0.195 0.981 0 0 cm [ 1.524] 0.762 d 34.327 6.828 m 31.863 19.217 21.651 13.058 23.097 9.567 c 24.543 6.076 36.119 8.942 29.101 19.445 c 22.084 29.948 15.006 20.349 17.678 17.678 c 20.349 15.006 29.948 22.084 19.445 29.101 c 8.942 36.119 6.076 24.543 9.567 23.097 c 13.058 21.651 19.217 31.863 6.828 34.327 c -5.561 36.792 -3.778 25 0 25 c 3.778 25 5.561 36.792 -6.828 34.327 c -19.217 31.863 -13.058 21.651 -9.567 23.097 c -6.076 24.543 -8.942 36.119 -19.445 29.101 c -29.948 22.084 -20.349 15.006 -17.678 17.678 c -15.006 20.349 -22.084 29.948 -29.101 19.445 c -36.119 8.942 -24.543 6.076 -23.097 9.567 c -21.651 13.058 -31.863 19.217 -34.327 6.828 c -36.792 -5.561 -25 -3.778 -25 0 c -25 3.778 -36.792 5.561 -34.327 -6.828 c -31.863 -19.217 -21.651 -13.058 -23.097 -9.567 c -24.543 -6.076 -36.119 -8.942 -29.101 -19.445 c -22.084 -29.948 -15.006 -20.349 -17.678 -17.678 c -20.349 -15.006 -29.948 -22.084 -19.445 -29.101 c -8.942 -36.119 -6.076 -24.543 -9.567 -23.097 c -13.058 -21.651 -19.217 -31.863 -6.828 -34.327 c 5.561 -36.792 3.778 -25 0 -25 c -3.778 -25 -5.561 -36.792 6.828 -34.327 c 19.217 -31.863 13.058 -21.651 9.567 -23.097 c 6.076 -24.543 8.942 -36.119 19.445 -29.101 c 29.948 -22.084 20.349 -15.006 17.678 -17.678 c 15.006 -20.349 22.084 -29.948 29.101 -19.445 c 36.119 -8.942 24.543 -6.076 23.097 -9.567 c 21.651 -13.058 31.863 -19.217 34.327 -6.828 c 36.792 5.561 25 3.778 25 0 c 25 -3.778 36.792 -5.561 34.327 6.828 c S}
+\axo at setObject{82}%
+{AxoGluonCirc 40 40 30 0 5 16 -0.5 0 1.3;}%
+{ 1.3 w 0.8 w 1 0 0 1 40 40 cm 0.981 0.195 -0.195 0.981 0 0 cm 34.327 6.828 m 31.863 19.217 21.651 13.058 23.097 9.567 c 24.543 6.076 36.119 8.942 29.101 19.445 c 22.084 29.948 15.006 20.349 17.678 17.678 c 20.349 15.006 29.948 22.084 19.445 29.101 c 8.942 36.119 6.076 24.543 9.567 23.097 c 13.058 21.651 19.217 31.863 6.828 34.327 c -5.561 36.792 -3.778 25 0 25 c 3.778 25 5.561 36.792 -6.828 34.327 c -19.217 31.863 -13.058 21.651 -9.567 23.097 c -6.076 24.543 -8.942 36.119 -19.445 29.101 c -29.948 22.084 -20.349 15.006 -17.678 17.678 c -15.006 20.349 -22.084 29.948 -29.101 19.445 c -36.119 8.942 -24.543 6.076 -23.097 9.567 c -21.651 13.058 -31.863 19.217 -34.327 6.828 c -36.792 -5.561 -25 -3.778 -25 0 c -25 3.778 -36.792 5.561 -34.327 -6.828 c -31.863 -19.217 -21.651 -13.058 -23.097 -9.567 c -24.543 -6.076 -36.119 -8.942 -29.101 -19.445 c -22.084 -29.948 -15.006 -20.349 -17.678 -17.678 c -20.349 -15.006 -29.948 -22.084 -19.445 -29.101 c -8.942 -36.119 -6.076 -24.543 -9.567 -23.097 c -13.058 -21.651 -19.217 -31.863 -6.828 -34.327 c 5.561 -36.792 3.778 -25 0 -25 c -3.778 -25 -5.561 -36.792 6.828 -34.327 c 19.217 -31.863 13.058 -21.651 9.567 -23.097 c 6.076 -24.543 8.942 -36.119 19.445 -29.101 c 29.948 -22.084 20.349 -15.006 17.678 -17.678 c 15.006 -20.349 22.084 -29.948 29.101 -19.445 c 36.119 -8.942 24.543 -6.076 23.097 -9.567 c 21.651 -13.058 31.863 -19.217 34.327 -6.828 c 36.792 5.561 25 3.778 25 0 c 25 -3.778 36.792 -5.561 34.327 6.828 c S}
+\axo at setObject{83}%
+{Grid 0 0 10 10 9 4 0.5;}%
+{ 0.5 w 0 0 m 0 40 l S 10 0 m 10 40 l S 20 0 m 20 40 l S 30 0 m 30 40 l S 40 0 m 40 40 l S 50 0 m 50 40 l S 60 0 m 60 40 l S 70 0 m 70 40 l S 80 0 m 80 40 l S 90 0 m 90 40 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S}
+\axo at setObject{84}%
+{AxoPhoton 10 20 80 20 5 7 0 0 0.5;}%
+{ 0.5 w 1 0 0 1 10 20 cm 0 0 m 2.122 6.667 2.878 6.667 5 0 c 7.122 -6.667 7.878 -6.667 10 0 c 12.122 6.667 12.878 6.667 15 0 c 17.122 -6.667 17.878 -6.667 20 0 c 22.122 6.667 22.878 6.667 25 0 c 27.122 -6.667 27.878 -6.667 30 0 c 32.122 6.667 32.878 6.667 35 0 c 37.122 -6.667 37.878 -6.667 40 0 c 42.122 6.667 42.878 6.667 45 0 c 47.122 -6.667 47.878 -6.667 50 0 c 52.122 6.667 52.878 6.667 55 0 c 57.122 -6.667 57.878 -6.667 60 0 c 62.122 6.667 62.878 6.667 65 0 c 67.122 -6.667 67.878 -6.667 70 0 c S}
+\axo at setObject{85}%
+{Grid 0 0 10 10 9 4 0.5;}%
+{ 0.5 w 0 0 m 0 40 l S 10 0 m 10 40 l S 20 0 m 20 40 l S 30 0 m 30 40 l S 40 0 m 40 40 l S 50 0 m 50 40 l S 60 0 m 60 40 l S 70 0 m 70 40 l S 80 0 m 80 40 l S 90 0 m 90 40 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S}
+\axo at setObject{86}%
+{AxoPhoton 10 20 80 20 5 7 1.3 0 0.5;}%
+{ 0.5 w 1 0 0 1 10 20 cm q 1.8 w 0 0 m 2.122 6.667 2.878 6.667 5 0 c 7.122 -6.667 7.878 -6.667 10 0 c 12.122 6.667 12.878 6.667 15 0 c 17.122 -6.667 17.878 -6.667 20 0 c 22.122 6.667 22.878 6.667 25 0 c 27.122 -6.667 27.878 -6.667 30 0 c 32.122 6.667 32.878 6.667 35 0 c 37.122 -6.667 37.878 -6.667 40 0 c 42.122 6.667 42.878 6.667 45 0 c 47.122 -6.667 47.878 -6.667 50 0 c 52.122 6.667 52.878 6.667 55 0 c 57.122 -6.667 57.878 -6.667 60 0 c 62.122 6.667 62.878 6.667 65 0 c 67.122 -6.667 67.878 -6.667 70 0 c S Q q 0.8 w 0 0 0 0 K 0 0 m 2.122 6.667 2.878 6.667 5 0 c 7.122 -6.667 7.878 -6.667 10 0 c 12.122 6.667 12.878 6.667 15 0 c 17.122 -6.667 17.878 -6.667 20 0 c 22.122 6.667 22.878 6.667 25 0 c 27.122 -6.667 27.878 -6.667 30 0 c 32.122 6.667 32.878 6.667 35 0 c 37.122 -6.667 37.878 -6.667 40 0 c 42.122 6.667 42.878 6.667 45 0 c 47.122 -6.667 47.878 -6.667 50 0 c 52.122 6.667 52.878 6.667 55 0 c 57.122 -6.667 57.878 -6.667 60 0 c 62.122 6.667 62.878 6.667 65 0 c 67.122 -6.667 67.878 -6.667 70 0 c S Q}
+\axo at setObject{87}%
+{Grid 0 0 10 10 9 4 0.5;}%
+{ 0.5 w 0 0 m 0 40 l S 10 0 m 10 40 l S 20 0 m 20 40 l S 30 0 m 30 40 l S 40 0 m 40 40 l S 50 0 m 50 40 l S 60 0 m 60 40 l S 70 0 m 70 40 l S 80 0 m 80 40 l S 90 0 m 90 40 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S}
+\axo at setObject{88}%
+{AxoPhoton 10 20 80 20 5 7 0 1  0.5;}%
+{ 0.5 w 1 0 0 1 10 20 cm [ 0.958] 0.479 d 0 0 m 2.122 6.667 2.878 6.667 5 0 c 7.122 -6.667 7.878 -6.667 10 0 c 12.122 6.667 12.878 6.667 15 0 c 17.122 -6.667 17.878 -6.667 20 0 c 22.122 6.667 22.878 6.667 25 0 c 27.122 -6.667 27.878 -6.667 30 0 c 32.122 6.667 32.878 6.667 35 0 c 37.122 -6.667 37.878 -6.667 40 0 c 42.122 6.667 42.878 6.667 45 0 c 47.122 -6.667 47.878 -6.667 50 0 c 52.122 6.667 52.878 6.667 55 0 c 57.122 -6.667 57.878 -6.667 60 0 c 62.122 6.667 62.878 6.667 65 0 c 67.122 -6.667 67.878 -6.667 70 0 c S}
+\axo at setObject{89}%
+{Grid 0 0 10 10 9 4 0.5;}%
+{ 0.5 w 0 0 m 0 40 l S 10 0 m 10 40 l S 20 0 m 20 40 l S 30 0 m 30 40 l S 40 0 m 40 40 l S 50 0 m 50 40 l S 60 0 m 60 40 l S 70 0 m 70 40 l S 80 0 m 80 40 l S 90 0 m 90 40 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S}
+\axo at setObject{90}%
+{AxoPhoton 10 20 80 20 5 7 1.3 1  0.5;}%
+{ 0.5 w 1 0 0 1 10 20 cm [ 0.958] 0.479 d q 1.8 w 0 0 m 2.122 6.667 2.878 6.667 5 0 c 7.122 -6.667 7.878 -6.667 10 0 c 12.122 6.667 12.878 6.667 15 0 c 17.122 -6.667 17.878 -6.667 20 0 c 22.122 6.667 22.878 6.667 25 0 c 27.122 -6.667 27.878 -6.667 30 0 c 32.122 6.667 32.878 6.667 35 0 c 37.122 -6.667 37.878 -6.667 40 0 c 42.122 6.667 42.878 6.667 45 0 c 47.122 -6.667 47.878 -6.667 50 0 c 52.122 6.667 52.878 6.667 55 0 c 57.122 -6.667 57.878 -6.667 60 0 c 62.122 6.667 62.878 6.667 65 0 c 67.122 -6.667 67.878 -6.667 70 0 c S Q q 0.8 w 0 0 0 0 K 0 0 m 2.122 6.667 2.878 6.667 5 0 c 7.122 -6.667 7.878 -6.667 10 0 c 12.122 6.667 12.878 6.667 15 0 c 17.122 -6.667 17.878 -6.667 20 0 c 22.122 6.667 22.878 6.667 25 0 c 27.122 -6.667 27.878 -6.667 30 0 c 32.122 6.667 32.878 6.667 35 0 c 37.122 -6.667 37.878 -6.667 40 0 c 42.122 6.667 42.878 6.667 45 0 c 47.122 -6.667 47.878 -6.667 50 0 c 52.122 6.667 52.878 6.667 55 0 c 57.122 -6.667 57.878 -6.667 60 0 c 62.122 6.667 62.878 6.667 65 0 c 67.122 -6.667 67.878 -6.667 70 0 c S Q}
+\axo at setObject{91}%
+{Grid 0 0 10 10 9 5 0.5;}%
+{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 70 0 m 70 50 l S 80 0 m 80 50 l S 90 0 m 90 50 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S}
+\axo at setObject{92}%
+{AxoPhotonArc 45 0 40 20 160 5 8 0 0 0 0.5;}%
+{ 0.5 w 1 0 0 1 45 0 cm 0.94 0.342 -0.342 0.94 0 0 cm 40 0 m 46.644 2.584 46.495 4.542 39.534 6.085 c 32.484 7.648 32.517 7.508 38.149 12.028 c 43.708 16.491 42.977 18.313 35.875 17.692 c 28.681 17.062 28.754 16.939 32.766 22.943 c 36.727 28.871 35.481 30.389 28.895 27.661 c 22.223 24.897 22.33 24.801 24.35 31.734 c 26.345 38.578 24.701 39.651 19.24 35.069 c 13.707 30.427 13.838 30.368 13.681 37.588 c 13.525 44.715 11.634 45.244 7.804 39.231 c 3.923 33.141 4.066 33.124 1.745 39.962 c -0.547 46.713 -2.509 46.648 -4.355 39.762 c -6.224 32.787 -6.083 32.813 -10.353 38.637 c -14.568 44.386 -16.421 43.735 -16.11 36.612 c -15.795 29.398 -15.668 29.466 -21.492 33.736 c -27.241 37.951 -28.812 36.773 -26.374 30.074 c -23.904 23.288 -23.803 23.39 -30.642 25.712 c S}
+\axo at setObject{93}%
+{Grid 0 0 10 10 9 5 0.5;}%
+{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 70 0 m 70 50 l S 80 0 m 80 50 l S 90 0 m 90 50 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S}
+\axo at setObject{94}%
+{AxoPhotonArc 45 0 40 20 160 5 8 1.3 0 0 0.5;}%
+{ 0.5 w 1 0 0 1 45 0 cm 0.94 0.342 -0.342 0.94 0 0 cm q 1.8 w 40 0 m 46.644 2.584 46.495 4.542 39.534 6.085 c 32.484 7.648 32.517 7.508 38.149 12.028 c 43.708 16.491 42.977 18.313 35.875 17.692 c 28.681 17.062 28.754 16.939 32.766 22.943 c 36.727 28.871 35.481 30.389 28.895 27.661 c 22.223 24.897 22.33 24.801 24.35 31.734 c 26.345 38.578 24.701 39.651 19.24 35.069 c 13.707 30.427 13.838 30.368 13.681 37.588 c 13.525 44.715 11.634 45.244 7.804 39.231 c 3.923 33.141 4.066 33.124 1.745 39.962 c -0.547 46.713 -2.509 46.648 -4.355 39.762 c -6.224 32.787 -6.083 32.813 -10.353 38.637 c -14.568 44.386 -16.421 43.735 -16.11 36.612 c -15.795 29.398 -15.668 29.466 -21.492 33.736 c -27.241 37.951 -28.812 36.773 -26.374 30.074 c -23.904 23.288 -23.803 23.39 -30.642 25.712 c S Q q 0.8 w 0 0 0 0 K 40 0 m 46.644 2.584 46.495 4.542 39.534 6.085 c 32.484 7.648 32.517 7.508 38.149 12.028 c 43.708 16.491 42.977 18.313 35.875 17.692 c 28.681 17.062 28.754 16.939 32.766 22.943 c 36.727 28.871 35.481 30.389 28.895 27.661 c 22.223 24.897 22.33 24.801 24.35 31.734 c 26.345 38.578 24.701 39.651 19.24 35.069 c 13.707 30.427 13.838 30.368 13.681 37.588 c 13.525 44.715 11.634 45.244 7.804 39.231 c 3.923 33.141 4.066 33.124 1.745 39.962 c -0.547 46.713 -2.509 46.648 -4.355 39.762 c -6.224 32.787 -6.083 32.813 -10.353 38.637 c -14.568 44.386 -16.421 43.735 -16.11 36.612 c -15.795 29.398 -15.668 29.466 -21.492 33.736 c -27.241 37.951 -28.812 36.773 -26.374 30.074 c -23.904 23.288 -23.803 23.39 -30.642 25.712 c S Q}
+\axo at setObject{95}%
+{Grid 0 0 10 10 9 5 0.5;}%
+{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 70 0 m 70 50 l S 80 0 m 80 50 l S 90 0 m 90 50 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S}
+\axo at setObject{96}%
+{AxoPhotonArc 45 0 40 20 160 5 8 0 1.5  0 0.5;}%
+{ 0.5 w 1 0 0 1 45 0 cm 0.94 0.342 -0.342 0.94 0 0 cm [ 1.512] 0.594 d 40 0 m 46.644 2.584 46.495 4.542 39.534 6.085 c 32.484 7.648 32.517 7.508 38.149 12.028 c 43.708 16.491 42.977 18.313 35.875 17.692 c 28.681 17.062 28.754 16.939 32.766 22.943 c 36.727 28.871 35.481 30.389 28.895 27.661 c 22.223 24.897 22.33 24.801 24.35 31.734 c 26.345 38.578 24.701 39.651 19.24 35.069 c 13.707 30.427 13.838 30.368 13.681 37.588 c 13.525 44.715 11.634 45.244 7.804 39.231 c 3.923 33.141 4.066 33.124 1.745 39.962 c -0.547 46.713 -2.509 46.648 -4.355 39.762 c -6.224 32.787 -6.083 32.813 -10.353 38.637 c -14.568 44.386 -16.421 43.735 -16.11 36.612 c -15.795 29.398 -15.668 29.466 -21.492 33.736 c -27.241 37.951 -28.812 36.773 -26.374 30.074 c -23.904 23.288 -23.803 23.39 -30.642 25.712 c S}
+\axo at setObject{97}%
+{Grid 0 0 10 10 9 5 0.5;}%
+{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 70 0 m 70 50 l S 80 0 m 80 50 l S 90 0 m 90 50 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S}
+\axo at setObject{98}%
+{AxoPhotonArc 45 0 40 20 160 5 8 1.3 1.5  0 0.5;}%
+{ 0.5 w 1 0 0 1 45 0 cm 0.94 0.342 -0.342 0.94 0 0 cm q [ 1.512] 0.594 d 1.8 w 40 0 m 46.644 2.584 46.495 4.542 39.534 6.085 c 32.484 7.648 32.517 7.508 38.149 12.028 c 43.708 16.491 42.977 18.313 35.875 17.692 c 28.681 17.062 28.754 16.939 32.766 22.943 c 36.727 28.871 35.481 30.389 28.895 27.661 c 22.223 24.897 22.33 24.801 24.35 31.734 c 26.345 38.578 24.701 39.651 19.24 35.069 c 13.707 30.427 13.838 30.368 13.681 37.588 c 13.525 44.715 11.634 45.244 7.804 39.231 c 3.923 33.141 4.066 33.124 1.745 39.962 c -0.547 46.713 -2.509 46.648 -4.355 39.762 c -6.224 32.787 -6.083 32.813 -10.353 38.637 c -14.568 44.386 -16.421 43.735 -16.11 36.612 c -15.795 29.398 -15.668 29.466 -21.492 33.736 c -27.241 37.951 -28.812 36.773 -26.374 30.074 c -23.904 23.288 -23.803 23.39 -30.642 25.712 c S Q q [] 0 d 0.8 w 0 0 0 0 K 40 0 m 46.644 2.584 46.495 4.542 39.534 6.085 c 32.484 7.648 32.517 7.508 38.149 12.028 c 43.708 16.491 42.977 18.313 35.875 17.692 c 28.681 17.062 28.754 16.939 32.766 22.943 c 36.727 28.871 35.481 30.389 28.895 27.661 c 22.223 24.897 22.33 24.801 24.35 31.734 c 26.345 38.578 24.701 39.651 19.24 35.069 c 13.707 30.427 13.838 30.368 13.681 37.588 c 13.525 44.715 11.634 45.244 7.804 39.231 c 3.923 33.141 4.066 33.124 1.745 39.962 c -0.547 46.713 -2.509 46.648 -4.355 39.762 c -6.224 32.787 -6.083 32.813 -10.353 38.637 c -14.568 44.386 -16.421 43.735 -16.11 36.612 c -15.795 29.398 -15.668 29.466 -21.492 33.736 c -27.241 37.951 -28.812 36.773 -26.374 30.074 c -23.904 23.288 -23.803 23.39 -30.642 25.712 c S Q}
+\axo at setObject{99}%
+{Grid 0 0 10 10 9 4 0.5;}%
+{ 0.5 w 0 0 m 0 40 l S 10 0 m 10 40 l S 20 0 m 20 40 l S 30 0 m 30 40 l S 40 0 m 40 40 l S 50 0 m 50 40 l S 60 0 m 60 40 l S 70 0 m 70 40 l S 80 0 m 80 40 l S 90 0 m 90 40 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S}
+\axo at setObject{100}%
+{AxoZigZag 10 20 80 20 5 7.5 0 0 0.5;}%
+{ 0.5 w 1 0 0 1 10 20 cm 0 0 m 2.333 5 l 4.667 0 l 7 -5 l 9.333 0 l 11.667 5 l 14 0 l 16.333 -5 l 18.667 0 l 21 5 l 23.333 0 l 25.667 -5 l 28 0 l 30.333 5 l 32.667 0 l 35 -5 l 37.333 0 l 39.667 5 l 42 0 l 44.333 -5 l 46.667 0 l 49 5 l 51.333 0 l 53.667 -5 l 56 0 l 58.333 5 l 60.667 0 l 63 -5 l 65.333 0 l 67.667 5 l 70 0 l S}
+\axo at setObject{101}%
+{Grid 0 0 10 10 9 4 0.5;}%
+{ 0.5 w 0 0 m 0 40 l S 10 0 m 10 40 l S 20 0 m 20 40 l S 30 0 m 30 40 l S 40 0 m 40 40 l S 50 0 m 50 40 l S 60 0 m 60 40 l S 70 0 m 70 40 l S 80 0 m 80 40 l S 90 0 m 90 40 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S}
+\axo at setObject{102}%
+{AxoZigZag 10 20 80 20 5 7 1.5 0 0.5;}%
+{ 0.5 w 1 0 0 1 10 20 cm q 2 w 0 0 m 2.5 5 l 5 0 l 7.5 -5 l 10 0 l 12.5 5 l 15 0 l 17.5 -5 l 20 0 l 22.5 5 l 25 0 l 27.5 -5 l 30 0 l 32.5 5 l 35 0 l 37.5 -5 l 40 0 l 42.5 5 l 45 0 l 47.5 -5 l 50 0 l 52.5 5 l 55 0 l 57.5 -5 l 60 0 l 62.5 5 l 65 0 l 67.5 -5 l 70 0 l S Q q 1 w 0 0 0 0 K 0 0 m 2.5 5 l 5 0 l 7.5 -5 l 10 0 l 12.5 5 l 15 0 l 17.5 -5 l 20 0 l 22.5 5 l 25 0 l 27.5 -5 l 30 0 l 32.5 5 l 35 0 l 37.5 -5 l 40 0 l 42.5 5 l 45 0 l 47.5 -5 l 50 0 l 52.5 5 l 55 0 l 57.5 -5 l 60 0 l 62.5 5 l 65 0 l 67.5 -5 l 70 0 l S Q}
+\axo at setObject{103}%
+{Grid 0 0 10 10 9 4 0.5;}%
+{ 0.5 w 0 0 m 0 40 l S 10 0 m 10 40 l S 20 0 m 20 40 l S 30 0 m 30 40 l S 40 0 m 40 40 l S 50 0 m 50 40 l S 60 0 m 60 40 l S 70 0 m 70 40 l S 80 0 m 80 40 l S 90 0 m 90 40 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S}
+\axo at setObject{104}%
+{AxoZigZag 10 20 80 20 5 7 1.3 0 0.5;}%
+{ 0.5 w 1 0 0 1 10 20 cm q 1.8 w 0 0 m 2.5 5 l 5 0 l 7.5 -5 l 10 0 l 12.5 5 l 15 0 l 17.5 -5 l 20 0 l 22.5 5 l 25 0 l 27.5 -5 l 30 0 l 32.5 5 l 35 0 l 37.5 -5 l 40 0 l 42.5 5 l 45 0 l 47.5 -5 l 50 0 l 52.5 5 l 55 0 l 57.5 -5 l 60 0 l 62.5 5 l 65 0 l 67.5 -5 l 70 0 l S Q q 0.8 w 0 0 0 0 K 0 0 m 2.5 5 l 5 0 l 7.5 -5 l 10 0 l 12.5 5 l 15 0 l 17.5 -5 l 20 0 l 22.5 5 l 25 0 l 27.5 -5 l 30 0 l 32.5 5 l 35 0 l 37.5 -5 l 40 0 l 42.5 5 l 45 0 l 47.5 -5 l 50 0 l 52.5 5 l 55 0 l 57.5 -5 l 60 0 l 62.5 5 l 65 0 l 67.5 -5 l 70 0 l S Q}
+\axo at setObject{105}%
+{Grid 0 0 10 10 9 4 0.5;}%
+{ 0.5 w 0 0 m 0 40 l S 10 0 m 10 40 l S 20 0 m 20 40 l S 30 0 m 30 40 l S 40 0 m 40 40 l S 50 0 m 50 40 l S 60 0 m 60 40 l S 70 0 m 70 40 l S 80 0 m 80 40 l S 90 0 m 90 40 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S}
+\axo at setObject{106}%
+{AxoZigZag 10 20 80 20 5 7 0 1  0.5;}%
+{ 0.5 w 1 0 0 1 10 20 cm [ 0.932] 0.466 d 0 0 m 2.5 5 l 5 0 l 7.5 -5 l 10 0 l 12.5 5 l 15 0 l 17.5 -5 l 20 0 l 22.5 5 l 25 0 l 27.5 -5 l 30 0 l 32.5 5 l 35 0 l 37.5 -5 l 40 0 l 42.5 5 l 45 0 l 47.5 -5 l 50 0 l 52.5 5 l 55 0 l 57.5 -5 l 60 0 l 62.5 5 l 65 0 l 67.5 -5 l 70 0 l S}
+\axo at setObject{107}%
+{Grid 0 0 10 10 9 4 0.5;}%
+{ 0.5 w 0 0 m 0 40 l S 10 0 m 10 40 l S 20 0 m 20 40 l S 30 0 m 30 40 l S 40 0 m 40 40 l S 50 0 m 50 40 l S 60 0 m 60 40 l S 70 0 m 70 40 l S 80 0 m 80 40 l S 90 0 m 90 40 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S}
+\axo at setObject{108}%
+{AxoZigZag 10 20 80 20 5 7 1.3 1  0.5;}%
+{ 0.5 w 1 0 0 1 10 20 cm [ 0.932] 0.466 d q 1.8 w 0 0 m 2.5 5 l 5 0 l 7.5 -5 l 10 0 l 12.5 5 l 15 0 l 17.5 -5 l 20 0 l 22.5 5 l 25 0 l 27.5 -5 l 30 0 l 32.5 5 l 35 0 l 37.5 -5 l 40 0 l 42.5 5 l 45 0 l 47.5 -5 l 50 0 l 52.5 5 l 55 0 l 57.5 -5 l 60 0 l 62.5 5 l 65 0 l 67.5 -5 l 70 0 l S Q [] 0 d q 0.8 w 0 0 0 0 K 0 0 m 2.5 5 l 5 0 l 7.5 -5 l 10 0 l 12.5 5 l 15 0 l 17.5 -5 l 20 0 l 22.5 5 l 25 0 l 27.5 -5 l 30 0 l 32.5 5 l 35 0 l 37.5 -5 l 40 0 l 42.5 5 l 45 0 l 47.5 -5 l 50 0 l 52.5 5 l 55 0 l 57.5 -5 l 60 0 l 62.5 5 l 65 0 l 67.5 -5 l 70 0 l S Q}
+\axo at setObject{109}%
+{Grid 0 0 10 10 9 5 0.5;}%
+{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 70 0 m 70 50 l S 80 0 m 80 50 l S 90 0 m 90 50 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S}
+\axo at setObject{110}%
+{AxoZigZagArc 45 0 40 20 160 5 8 0 0 0 0.5;}%
+{ 0.5 w 1 0 0 1 45 0 cm 37.588 13.681 m 40.989 18.572 l 29.312 19.126 l 33.507 30.038 l 22.204 27.055 l 22.924 38.723 l 13.04 32.48 l 10.218 43.824 l 2.67 34.898 l -3.433 44.869 l -7.948 34.086 l -16.766 41.76 l -17.83 30.118 l -28.548 34.785 l -26.061 23.363 l -37.687 24.591 l -31.88 14.445 l -37.588 13.681 l S}
+\axo at setObject{111}%
+{Grid 0 0 10 10 9 5 0.5;}%
+{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 70 0 m 70 50 l S 80 0 m 80 50 l S 90 0 m 90 50 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S}
+\axo at setObject{112}%
+{AxoZigZagArc 45 0 40 20 160 5 8 1.3 0 0 0.5;}%
+{ 0.5 w 1 0 0 1 45 0 cm q 1.8 w 37.588 13.681 m 40.989 18.572 l 29.312 19.126 l 33.507 30.038 l 22.204 27.055 l 22.924 38.723 l 13.04 32.48 l 10.218 43.824 l 2.67 34.898 l -3.433 44.869 l -7.948 34.086 l -16.766 41.76 l -17.83 30.118 l -28.548 34.785 l -26.061 23.363 l -37.687 24.591 l -31.88 14.445 l -37.588 13.681 l S Q q 0.8 w 0 0 0 0 K 37.588 13.681 m 40.989 18.572 l 29.312 19.126 l 33.507 30.038 l 22.204 27.055 l 22.924 38.723 l 13.04 32.48 l 10.218 43.824 l 2.67 34.898 l -3.433 44.869 l -7.948 34.086 l -16.766 41.76 l -17.83 30.118 l -28.548 34.785 l -26.061 23.363 l -37.687 24.591 l -31.88 14.445 l -37.588 13.681 l S Q}
+\axo at setObject{113}%
+{Grid 0 0 10 10 9 5 0.5;}%
+{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 70 0 m 70 50 l S 80 0 m 80 50 l S 90 0 m 90 50 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S}
+\axo at setObject{114}%
+{AxoZigZagArc 45 0 40 20 160 5 8 0 1.5  0 0.5;}%
+{ 0.5 w 1 0 0 1 45 0 cm [ 1.461] 0.618 d 37.588 13.681 m 40.989 18.572 l 29.312 19.126 l 33.507 30.038 l 22.204 27.055 l 22.924 38.723 l 13.04 32.48 l 10.218 43.824 l 2.67 34.898 l -3.433 44.869 l -7.948 34.086 l -16.766 41.76 l -17.83 30.118 l -28.548 34.785 l -26.061 23.363 l -37.687 24.591 l -31.88 14.445 l -37.588 13.681 l S}
+\axo at setObject{115}%
+{Grid 0 0 10 10 9 5 0.5;}%
+{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 70 0 m 70 50 l S 80 0 m 80 50 l S 90 0 m 90 50 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S}
+\axo at setObject{116}%
+{AxoZigZagArc 45 0 40 20 160 5 8 1.3 1.5  0 0.5;}%
+{ 0.5 w 1 0 0 1 45 0 cm q [ 1.461] 0.618 d 1.8 w 37.588 13.681 m 40.989 18.572 l 29.312 19.126 l 33.507 30.038 l 22.204 27.055 l 22.924 38.723 l 13.04 32.48 l 10.218 43.824 l 2.67 34.898 l -3.433 44.869 l -7.948 34.086 l -16.766 41.76 l -17.83 30.118 l -28.548 34.785 l -26.061 23.363 l -37.687 24.591 l -31.88 14.445 l -37.588 13.681 l S Q q [] 0 d 0.8 w 0 0 0 0 K 37.588 13.681 m 40.989 18.572 l 29.312 19.126 l 33.507 30.038 l 22.204 27.055 l 22.924 38.723 l 13.04 32.48 l 10.218 43.824 l 2.67 34.898 l -3.433 44.869 l -7.948 34.086 l -16.766 41.76 l -17.83 30.118 l -28.548 34.785 l -26.061 23.363 l -37.687 24.591 l -31.88 14.445 l -37.588 13.681 l S Q}
+\axo at setObject{117}%
+{Grid 0 0 10 10 8 5 0.5;}%
+{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 70 0 m 70 50 l S 80 0 m 80 50 l S 0 0 m 80 0 l S 0 10 m 80 10 l S 0 20 m 80 20 l S 0 30 m 80 30 l S 0 40 m 80 40 l S 0 50 m 80 50 l S}
+\axo at setObject{118}%
+{AxoLine 10 10 70 10 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 10 10 m 70 10 l S}
+\axo at setObject{119}%
+{AxoPhoton 40 10 40 40 4 3 0 0 0.5;}%
+{ 0.5 w 1 0 0 1 40 10 cm 0 1 -1 0 0 0 cm 0 0 m 2.122 5.333 2.878 5.333 5 0 c 7.122 -5.333 7.878 -5.333 10 0 c 12.122 5.333 12.878 5.333 15 0 c 17.122 -5.333 17.878 -5.333 20 0 c 22.122 5.333 22.878 5.333 25 0 c 27.122 -5.333 27.878 -5.333 30 0 c S}
+\axo at setObject{120}%
+{Vertex 40 10 1.5 0.5;}%
+{ 0.5 w 1 0 0 1 40 10 cm -1.5 0 m -1.5 0.828 -0.828 1.5 0 1.5 c 0.828 1.5 1.5 0.828 1.5 0 c 1.5 -0.828 0.828 -1.5 0 -1.5 c -0.828 -1.5 -1.5 -0.828 -1.5 0 c f }
+\axo at setObject{121}%
+{Grid 0 0 10 10 6 6 0.5;}%
+{ 0.5 w 0 0 m 0 60 l S 10 0 m 10 60 l S 20 0 m 20 60 l S 30 0 m 30 60 l S 40 0 m 40 60 l S 50 0 m 50 60 l S 60 0 m 60 60 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S 0 60 m 60 60 l S}
+\axo at setObject{122}%
+{AxoLine 0 0 60 60 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 0 0 m 60 60 l S}
+\axo at setObject{123}%
+{ECirc 30 30 20 0.5;}%
+{ 0.5 w 1 0 0 1 30 30 cm -20 0 m -20 11.046 -11.046 20 0 20 c 11.046 20 20 11.046 20 0 c 20 -11.046 11.046 -20 0 -20 c -11.046 -20 -20 -11.046 -20 0 c S }
+\axo at setObject{124}%
+{Grid 0 0 10 10 6 6 0.5;}%
+{ 0.5 w 0 0 m 0 60 l S 10 0 m 10 60 l S 20 0 m 20 60 l S 30 0 m 30 60 l S 40 0 m 40 60 l S 50 0 m 50 60 l S 60 0 m 60 60 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S 0 60 m 60 60 l S}
+\axo at setObject{125}%
+{AxoLine 0 0 60 60 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 0 0 m 60 60 l S}
+\axo at setObject{126}%
+{Vertex 30 30 20 0.5;}%
+{ 0.5 w 1 0 0 1 30 30 cm -20 0 m -20 11.046 -11.046 20 0 20 c 11.046 20 20 11.046 20 0 c 20 -11.046 11.046 -20 0 -20 c -11.046 -20 -20 -11.046 -20 0 c f }
+\axo at setObject{127}%
+{ECirc 30 30 20 0.5;}%
+{ 0.5 w 1 0 0 1 30 30 cm -20 0 m -20 11.046 -11.046 20 0 20 c 11.046 20 20 11.046 20 0 c 20 -11.046 11.046 -20 0 -20 c -11.046 -20 -20 -11.046 -20 0 c S }
+\axo at setObject{128}%
+{AxoLine 60 0 0 60 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 60 0 m 0 60 l S}
+\axo at setObject{129}%
+{Grid 0 0 10 10 6 6 0.5;}%
+{ 0.5 w 0 0 m 0 60 l S 10 0 m 10 60 l S 20 0 m 20 60 l S 30 0 m 30 60 l S 40 0 m 40 60 l S 50 0 m 50 60 l S 60 0 m 60 60 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S 0 60 m 60 60 l S}
+\axo at setObject{130}%
+{AxoLine 0 0 60 60 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 0 0 m 60 60 l S}
+\axo at setObject{131}%
+{Vertex 30 30 20 0.5;}%
+{ 0.5 w 1 0 0 1 30 30 cm -20 0 m -20 11.046 -11.046 20 0 20 c 11.046 20 20 11.046 20 0 c 20 -11.046 11.046 -20 0 -20 c -11.046 -20 -20 -11.046 -20 0 c f }
+\axo at setObject{132}%
+{ECirc 30 30 20 0.5;}%
+{ 0.5 w 1 0 0 1 30 30 cm -20 0 m -20 11.046 -11.046 20 0 20 c 11.046 20 20 11.046 20 0 c 20 -11.046 11.046 -20 0 -20 c -11.046 -20 -20 -11.046 -20 0 c S }
+\axo at setObject{133}%
+{AxoLine 60 0 0 60 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 60 0 m 0 60 l S}
+\axo at setObject{134}%
+{Grid 0 0 10 10 6 6 0.5;}%
+{ 0.5 w 0 0 m 0 60 l S 10 0 m 10 60 l S 20 0 m 20 60 l S 30 0 m 30 60 l S 40 0 m 40 60 l S 50 0 m 50 60 l S 60 0 m 60 60 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S 0 60 m 60 60 l S}
+\axo at setObject{135}%
+{AxoLine 0 0 60 60 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 0 0 m 60 60 l S}
+\axo at setObject{136}%
+{Vertex 30 30 20 0.5;}%
+{ 0.5 w 1 0 0 1 30 30 cm -20 0 m -20 11.046 -11.046 20 0 20 c 11.046 20 20 11.046 20 0 c 20 -11.046 11.046 -20 0 -20 c -11.046 -20 -20 -11.046 -20 0 c f }
+\axo at setObject{137}%
+{ECirc 30 30 20 0.5;}%
+{ 0.5 w 1 0 0 1 30 30 cm -20 0 m -20 11.046 -11.046 20 0 20 c 11.046 20 20 11.046 20 0 c 20 -11.046 11.046 -20 0 -20 c -11.046 -20 -20 -11.046 -20 0 c S }
+\axo at setObject{138}%
+{AxoLine 60 0 0 60 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 60 0 m 0 60 l S}
+\axo at setObject{139}%
+{Grid 0 0 10 10 8 11 0.5;}%
+{ 0.5 w 0 0 m 0 110 l S 10 0 m 10 110 l S 20 0 m 20 110 l S 30 0 m 30 110 l S 40 0 m 40 110 l S 50 0 m 50 110 l S 60 0 m 60 110 l S 70 0 m 70 110 l S 80 0 m 80 110 l S 0 0 m 80 0 l S 0 10 m 80 10 l S 0 20 m 80 20 l S 0 30 m 80 30 l S 0 40 m 80 40 l S 0 50 m 80 50 l S 0 60 m 80 60 l S 0 70 m 80 70 l S 0 80 m 80 80 l S 0 90 m 80 90 l S 0 100 m 80 100 l S 0 110 m 80 110 l S}
+\axo at setObject{140}%
+{Oval 40 80 20 30 0 0.5;}%
+{ 0.5 w 1 0 0 1 40 80 cm -30 0 m -30 11.046 -16.569 20 0 20 c 16.569 20 30 11.046 30 0 c 30 -11.046 16.569 -20 0 -20 c -16.569 -20 -30 -11.046 -30 0 c S }
+\axo at setObject{141}%
+{Oval 40 30 20 30 30 0.5;}%
+{ 0.5 w 1 0 0 1 40 30 cm 0.866 0.5 -0.5 0.866 0 0 cm -30 0 m -30 11.046 -16.569 20 0 20 c 16.569 20 30 11.046 30 0 c 30 -11.046 16.569 -20 0 -20 c -16.569 -20 -30 -11.046 -30 0 c S }
+\axo at setObject{142}%
+{Grid 0 0 10 10 8 6 0.5;}%
+{ 0.5 w 0 0 m 0 60 l S 10 0 m 10 60 l S 20 0 m 20 60 l S 30 0 m 30 60 l S 40 0 m 40 60 l S 50 0 m 50 60 l S 60 0 m 60 60 l S 70 0 m 70 60 l S 80 0 m 80 60 l S 0 0 m 80 0 l S 0 10 m 80 10 l S 0 20 m 80 20 l S 0 30 m 80 30 l S 0 40 m 80 40 l S 0 50 m 80 50 l S 0 60 m 80 60 l S}
+\axo at setObject{143}%
+{FOval 40 30 20 30 30 0.5;}%
+{ 0.5 w 1 0 0 1 40 30 cm 0.866 0.5 -0.5 0.866 0 0 cm -30 0 m -30 11.046 -16.569 20 0 20 c 16.569 20 30 11.046 30 0 c 30 -11.046 16.569 -20 0 -20 c -16.569 -20 -30 -11.046 -30 0 c f -30 0 m -30 11.046 -16.569 20 0 20 c 16.569 20 30 11.046 30 0 c 30 -11.046 16.569 -20 0 -20 c -16.569 -20 -30 -11.046 -30 0 c S }
+\axo at setObject{144}%
+{Grid 0 0 10 10 8 6 0.5;}%
+{ 0.5 w 0 0 m 0 60 l S 10 0 m 10 60 l S 20 0 m 20 60 l S 30 0 m 30 60 l S 40 0 m 40 60 l S 50 0 m 50 60 l S 60 0 m 60 60 l S 70 0 m 70 60 l S 80 0 m 80 60 l S 0 0 m 80 0 l S 0 10 m 80 10 l S 0 20 m 80 20 l S 0 30 m 80 30 l S 0 40 m 80 40 l S 0 50 m 80 50 l S 0 60 m 80 60 l S}
+\axo at setObject{145}%
+{AxoLine 0 0 80 60 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 0 0 m 80 60 l S}
+\axo at setObject{146}%
+{FOval 40 30 20 30 0 0.5;}%
+{ 0.5 w 1 0 0 1 40 30 cm -30 0 m -30 11.046 -16.569 20 0 20 c 16.569 20 30 11.046 30 0 c 30 -11.046 16.569 -20 0 -20 c -16.569 -20 -30 -11.046 -30 0 c f -30 0 m -30 11.046 -16.569 20 0 20 c 16.569 20 30 11.046 30 0 c 30 -11.046 16.569 -20 0 -20 c -16.569 -20 -30 -11.046 -30 0 c S }
+\axo at setObject{147}%
+{Oval 40 30 20 30 0 0.5;}%
+{ 0.5 w 1 0 0 1 40 30 cm -30 0 m -30 11.046 -16.569 20 0 20 c 16.569 20 30 11.046 30 0 c 30 -11.046 16.569 -20 0 -20 c -16.569 -20 -30 -11.046 -30 0 c S }
+\axo at setObject{148}%
+{AxoLine 80 0 0 60 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 80 0 m 0 60 l S}
+\axo at setObject{149}%
+{Grid 0 0 10 10 8 6 0.5;}%
+{ 0.5 w 0 0 m 0 60 l S 10 0 m 10 60 l S 20 0 m 20 60 l S 30 0 m 30 60 l S 40 0 m 40 60 l S 50 0 m 50 60 l S 60 0 m 60 60 l S 70 0 m 70 60 l S 80 0 m 80 60 l S 0 0 m 80 0 l S 0 10 m 80 10 l S 0 20 m 80 20 l S 0 30 m 80 30 l S 0 40 m 80 40 l S 0 50 m 80 50 l S 0 60 m 80 60 l S}
+\axo at setObject{150}%
+{AxoLine 0 0 80 60 0 0  0 0 0 0 0 0 0 0  0 1;}%
+{ 1 w 0 0 m 80 60 l S}
+\axo at setObject{151}%
+{FOval 40 30 20 30 20 1;}%
+{ 1 w 1 0 0 1 40 30 cm 0.94 0.342 -0.342 0.94 0 0 cm -30 0 m -30 11.046 -16.569 20 0 20 c 16.569 20 30 11.046 30 0 c 30 -11.046 16.569 -20 0 -20 c -16.569 -20 -30 -11.046 -30 0 c f -30 0 m -30 11.046 -16.569 20 0 20 c 16.569 20 30 11.046 30 0 c 30 -11.046 16.569 -20 0 -20 c -16.569 -20 -30 -11.046 -30 0 c S }
+\axo at setObject{152}%
+{Oval 40 30 20 30 20 1;}%
+{ 1 w 1 0 0 1 40 30 cm 0.94 0.342 -0.342 0.94 0 0 cm -30 0 m -30 11.046 -16.569 20 0 20 c 16.569 20 30 11.046 30 0 c 30 -11.046 16.569 -20 0 -20 c -16.569 -20 -30 -11.046 -30 0 c S }
+\axo at setObject{153}%
+{AxoLine 80 0 0 60 0 0  0 0 0 0 0 0 0 0  0 1;}%
+{ 1 w 80 0 m 0 60 l S}
+\axo at setObject{154}%
+{Grid 0 0 10 10 6 5 0.5;}%
+{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S}
+\axo at setObject{155}%
+{EBox 10 10 50 40 0.5;}%
+{ 0.5 w 10 10 40 30 re S}
+\axo at setObject{156}%
+{Grid 0 0 10 10 6 5 0.5;}%
+{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S}
+\axo at setObject{157}%
+{FBox 10 10 50 40 0.5;}%
+{ 0.5 w 10 10 40 30 re f}
+\axo at setObject{158}%
+{Grid 0 0 10 10 6 5 0.5;}%
+{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S}
+\axo at setObject{159}%
+{FBox 10 10 50 40 0.5;}%
+{ 0.5 w 10 10 40 30 re f}
+\axo at setObject{160}%
+{EBox 10 10 50 40 0.5;}%
+{ 0.5 w 10 10 40 30 re S}
+\axo at setObject{161}%
+{Grid 0 0 10 10 6 5 0.5;}%
+{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S}
+\axo at setObject{162}%
+{FBox 10 10 50 40 0.5;}%
+{ 0.5 w 10 10 40 30 re f}
+\axo at setObject{163}%
+{EBox 10 10 50 40 0.5;}%
+{ 0.5 w 10 10 40 30 re S}
+\axo at setObject{164}%
+{Grid 0 0 10 10 6 5 0.5;}%
+{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S}
+\axo at setObject{165}%
+{FBox 10 10 50 40 1.5;}%
+{ 1.5 w 10 10 40 30 re f}
+\axo at setObject{166}%
+{EBox 10 10 50 40 1.5;}%
+{ 1.5 w 10 10 40 30 re S}
+\axo at setObject{167}%
+{Grid 0 0 10 10 6 5 0.5;}%
+{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S}
+\axo at setObject{168}%
+{Boxc 30 25 40 30 0.5;}%
+{ 0.5 w 10 10 40 30 re S}
+\axo at setObject{169}%
+{Grid 0 0 10 10 6 5 0.5;}%
+{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S}
+\axo at setObject{170}%
+{FBoxc 30 25 40 30 0.5;}%
+{ 0.5 w 10 10 40 30 re f}
+\axo at setObject{171}%
+{Boxc 30 25 40 30 0.5;}%
+{ 0.5 w 10 10 40 30 re S}
+\axo at setObject{172}%
+{Grid 0 0 10 10 6 5 0.5;}%
+{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S}
+\axo at setObject{173}%
+{FBoxc 30 25 40 30 0.5;}%
+{ 0.5 w 10 10 40 30 re f}
+\axo at setObject{174}%
+{Boxc 30 25 40 30 0.5;}%
+{ 0.5 w 10 10 40 30 re S}
+\axo at setObject{175}%
+{Grid 0 0 10 10 6 5 0.5;}%
+{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S}
+\axo at setObject{176}%
+{FBoxc 30 25 40 30 1.5;}%
+{ 1.5 w 10 10 40 30 re f}
+\axo at setObject{177}%
+{Boxc 30 25 40 30 1.5;}%
+{ 1.5 w 10 10 40 30 re S}
+\axo at setObject{178}%
+{Grid 0 0 10 10 6 5 0.5;}%
+{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S}
+\axo at setObject{179}%
+{Boxc 0 0 40 30 0.5;}%
+{ 0.5 w -20 -15 40 30 re S}
+\axo at setObject{180}%
+{Grid 0 0 10 10 6 5 0.5;}%
+{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S}
+\axo at setObject{181}%
+{FBoxc 0 0 40 30 0.5;}%
+{ 0.5 w -20 -15 40 30 re f}
+\axo at setObject{182}%
+{Grid 0 0 10 10 6 5 0.5;}%
+{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S}
+\axo at setObject{183}%
+{ETri 10 20 50 10 40 40 0.5;}%
+{ 0.5 w 10 20 m 50 10 l 40 40 l h S}
+\axo at setObject{184}%
+{Grid 0 0 10 10 6 5 0.5;}%
+{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S}
+\axo at setObject{185}%
+{FTri 10 20 50 10 40 40 0.5;}%
+{ 0.5 w 10 20 m 50 10 l 40 40 l h f}
+\axo at setObject{186}%
+{ETri 10 20 50 10 40 40 0.5;}%
+{ 0.5 w 10 20 m 50 10 l 40 40 l h S}
+\axo at setObject{187}%
+{Grid 0 0 10 10 6 5 0.5;}%
+{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S}
+\axo at setObject{188}%
+{FTri 10 20 50 10 40 40 0.5;}%
+{ 0.5 w 10 20 m 50 10 l 40 40 l h f}
+\axo at setObject{189}%
+{ETri 10 20 50 10 40 40 0.5;}%
+{ 0.5 w 10 20 m 50 10 l 40 40 l h S}
+\axo at setObject{190}%
+{Grid 0 0 10 10 6 5 0.5;}%
+{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S}
+\axo at setObject{191}%
+{FTri 10 20 50 10 40 40 1;}%
+{ 1 w 10 20 m 50 10 l 40 40 l h f}
+\axo at setObject{192}%
+{ETri 10 20 50 10 40 40 1;}%
+{ 1 w 10 20 m 50 10 l 40 40 l h S}
+\axo at setObject{193}%
+{Grid 0 0 10 10 6 5 0.5;}%
+{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S}
+\axo at setObject{194}%
+{Polygon "(10,20)(20,10)(40,20)(50,10)(45,40)(15,30)" 0.5;}%
+{ 0.5 w 10 20 m 20 10 l 40 20 l 50 10 l 45 40 l 15 30 l h S}
+\axo at setObject{195}%
+{Grid 0 0 10 10 6 5 0.5;}%
+{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 0 0 m 60 0 l S 0 10 m 60 10 l S 0 20 m 60 20 l S 0 30 m 60 30 l S 0 40 m 60 40 l S 0 50 m 60 50 l S}
+\axo at setObject{196}%
+{FilledPolygon "(10,20)(20,10)(40,20)(50,10)(45,40)(15,30)" 0.5;}%
+{ 0.5 w 10 20 m 20 10 l 40 20 l 50 10 l 45 40 l 15 30 l h f}
+\axo at setObject{197}%
+{Grid 0 0 10 10 10 5 0.5;}%
+{ 0.5 w 0 0 m 0 50 l S 10 0 m 10 50 l S 20 0 m 20 50 l S 30 0 m 30 50 l S 40 0 m 40 50 l S 50 0 m 50 50 l S 60 0 m 60 50 l S 70 0 m 70 50 l S 80 0 m 80 50 l S 90 0 m 90 50 l S 100 0 m 100 50 l S 0 0 m 100 0 l S 0 10 m 100 10 l S 0 20 m 100 20 l S 0 30 m 100 30 l S 0 40 m 100 40 l S 0 50 m 100 50 l S}
+\axo at setObject{198}%
+{LinAxis 10 30 90 30 4 5 5 0 1;}%
+{ 1 w 1 0 0 1 10 30 cm 0 0 m 80 0 l S 0 0 m 0 6 l S 20 0 m 20 6 l S 40 0 m 40 6 l S 60 0 m 60 6 l S 80 0 m 80 6 l S 0.6 w 4 0 m 4 4 l S 8 0 m 8 4 l S 12 0 m 12 4 l S 16 0 m 16 4 l S 24 0 m 24 4 l S 28 0 m 28 4 l S 32 0 m 32 4 l S 36 0 m 36 4 l S 44 0 m 44 4 l S 48 0 m 48 4 l S 52 0 m 52 4 l S 56 0 m 56 4 l S 64 0 m 64 4 l S 68 0 m 68 4 l S 72 0 m 72 4 l S 76 0 m 76 4 l S}
+\axo at setObject{199}%
+{LinAxis 10 10 90 10 4 5 5 2 1;}%
+{ 1 w 1 0 0 1 10 10 cm 0 0 m 80 0 l S 12 0 m 12 6 l S 32 0 m 32 6 l S 52 0 m 52 6 l S 72 0 m 72 6 l S 0.6 w 0 0 m 0 4 l S 4 0 m 4 4 l S 8 0 m 8 4 l S 16 0 m 16 4 l S 20 0 m 20 4 l S 24 0 m 24 4 l S 28 0 m 28 4 l S 36 0 m 36 4 l S 40 0 m 40 4 l S 44 0 m 44 4 l S 48 0 m 48 4 l S 56 0 m 56 4 l S 60 0 m 60 4 l S 64 0 m 64 4 l S 68 0 m 68 4 l S 76 0 m 76 4 l S 80 0 m 80 4 l S}
+\axo at setObject{200}%
+{Grid 0 0 10 10 10 4 0.5;}%
+{ 0.5 w 0 0 m 0 40 l S 10 0 m 10 40 l S 20 0 m 20 40 l S 30 0 m 30 40 l S 40 0 m 40 40 l S 50 0 m 50 40 l S 60 0 m 60 40 l S 70 0 m 70 40 l S 80 0 m 80 40 l S 90 0 m 90 40 l S 100 0 m 100 40 l S 0 0 m 100 0 l S 0 10 m 100 10 l S 0 20 m 100 20 l S 0 30 m 100 30 l S 0 40 m 100 40 l S}
+\axo at setObject{201}%
+{LogAxis 0 30 100 30 4 3 0 1;}%
+{ 1 w 1 0 0 1 0 30 cm 0 0 m 100 0 l S 25 0 m 25 3.6 l S 50 0 m 50 3.6 l S 75 0 m 75 3.6 l S 100 0 m 100 3.6 l S 0.6 w 7.526 0 m 7.526 2.4 l S 11.928 0 m 11.928 2.4 l S 15.051 0 m 15.051 2.4 l S 17.474 0 m 17.474 2.4 l S 19.454 0 m 19.454 2.4 l S 21.127 0 m 21.127 2.4 l S 22.577 0 m 22.577 2.4 l S 23.856 0 m 23.856 2.4 l S 32.526 0 m 32.526 2.4 l S 36.928 0 m 36.928 2.4 l S 40.051 0 m 40.051 2.4 l S 42.474 0 m 42.474 2.4 l S 44.454 0 m 44.454 2.4 l S 46.127 0 m 46.127 2.4 l S 47.577 0 m 47.577 2.4 l S 48.856 0 m 48.856 2.4 l S 57.526 0 m 57.526 2.4 l S 61.928 0 m 61.928 2.4 l S 65.051 0 m 65.051 2.4 l S 67.474 0 m 67.474 2.4 l S 69.454 0 m 69.454 2.4 l S 71.127 0 m 71.127 2.4 l S 72.577 0 m 72.577 2.4 l S 73.856 0 m 73.856 2.4 l S 82.526 0 m 82.526 2.4 l S 86.928 0 m 86.928 2.4 l S 90.051 0 m 90.051 2.4 l S 92.474 0 m 92.474 2.4 l S 94.454 0 m 94.454 2.4 l S 96.127 0 m 96.127 2.4 l S 97.577 0 m 97.577 2.4 l S 98.856 0 m 98.856 2.4 l S}
+\axo at setObject{202}%
+{LogAxis 0 10 100 10 4 3 3 1;}%
+{ 1 w 1 0 0 1 0 10 cm 0 0 m 100 0 l S 13.072 0 m 13.072 3.6 l S 38.072 0 m 38.072 3.6 l S 63.072 0 m 63.072 3.6 l S 88.072 0 m 88.072 3.6 l S 0.6 w 0 0 m 0 2.4 l S 3.123 0 m 3.123 2.4 l S 5.546 0 m 5.546 2.4 l S 7.526 0 m 7.526 2.4 l S 9.199 0 m 9.199 2.4 l S 10.649 0 m 10.649 2.4 l S 11.928 0 m 11.928 2.4 l S 20.598 0 m 20.598 2.4 l S 25 0 m 25 2.4 l S 28.123 0 m 28.123 2.4 l S 30.546 0 m 30.546 2.4 l S 32.526 0 m 32.526 2.4 l S 34.199 0 m 34.199 2.4 l S 35.649 0 m 35.649 2.4 l S 36.928 0 m 36.928 2.4 l S 45.598 0 m 45.598 2.4 l S 50 0 m 50 2.4 l S 53.123 0 m 53.123 2.4 l S 55.546 0 m 55.546 2.4 l S 57.526 0 m 57.526 2.4 l S 59.199 0 m 59.199 2.4 l S 60.649 0 m 60.649 2.4 l S 61.928 0 m 61.928 2.4 l S 70.598 0 m 70.598 2.4 l S 75 0 m 75 2.4 l S 78.123 0 m 78.123 2.4 l S 80.546 0 m 80.546 2.4 l S 82.526 0 m 82.526 2.4 l S 84.199 0 m 84.199 2.4 l S 85.649 0 m 85.649 2.4 l S 86.928 0 m 86.928 2.4 l S 95.598 0 m 95.598 2.4 l S 100 0 m 100 2.4 l S}
+\axo at setObject{203}%
+{Grid 0 0 10 10 9 9 0.5;}%
+{ 0.5 w 0 0 m 0 90 l S 10 0 m 10 90 l S 20 0 m 20 90 l S 30 0 m 30 90 l S 40 0 m 40 90 l S 50 0 m 50 90 l S 60 0 m 60 90 l S 70 0 m 70 90 l S 80 0 m 80 90 l S 90 0 m 90 90 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S 0 60 m 90 60 l S 0 70 m 90 70 l S 0 80 m 90 80 l S 0 90 m 90 90 l S}
+\axo at setObject{204}%
+{Vertex 10 10 1.5 0.5;}%
+{ 0.5 w 1 0 0 1 10 10 cm -1.5 0 m -1.5 0.828 -0.828 1.5 0 1.5 c 0.828 1.5 1.5 0.828 1.5 0 c 1.5 -0.828 0.828 -1.5 0 -1.5 c -0.828 -1.5 -1.5 -0.828 -1.5 0 c f }
+\axo at setObject{205}%
+{Vertex 45 45 1.5 0.5;}%
+{ 0.5 w 1 0 0 1 45 45 cm -1.5 0 m -1.5 0.828 -0.828 1.5 0 1.5 c 0.828 1.5 1.5 0.828 1.5 0 c 1.5 -0.828 0.828 -1.5 0 -1.5 c -0.828 -1.5 -1.5 -0.828 -1.5 0 c f }
+\axo at setObject{206}%
+{Vertex 80 80 1.5 0.5;}%
+{ 0.5 w 1 0 0 1 80 80 cm -1.5 0 m -1.5 0.828 -0.828 1.5 0 1.5 c 0.828 1.5 1.5 0.828 1.5 0 c 1.5 -0.828 0.828 -1.5 0 -1.5 c -0.828 -1.5 -1.5 -0.828 -1.5 0 c f }
+\axo at setObject{207}%
+{Grid 0 0 10 10 9 9 0.5;}%
+{ 0.5 w 0 0 m 0 90 l S 10 0 m 10 90 l S 20 0 m 20 90 l S 30 0 m 30 90 l S 40 0 m 40 90 l S 50 0 m 50 90 l S 60 0 m 60 90 l S 70 0 m 70 90 l S 80 0 m 80 90 l S 90 0 m 90 90 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S 0 60 m 90 60 l S 0 70 m 90 70 l S 0 80 m 90 80 l S 0 90 m 90 90 l S}
+\axo at setObject{208}%
+{Vertex 10 10 1.5 0.5;}%
+{ 0.5 w 1 0 0 1 10 10 cm -1.5 0 m -1.5 0.828 -0.828 1.5 0 1.5 c 0.828 1.5 1.5 0.828 1.5 0 c 1.5 -0.828 0.828 -1.5 0 -1.5 c -0.828 -1.5 -1.5 -0.828 -1.5 0 c f }
+\axo at setObject{209}%
+{Vertex 45 45 1.5 0.5;}%
+{ 0.5 w 1 0 0 1 45 45 cm -1.5 0 m -1.5 0.828 -0.828 1.5 0 1.5 c 0.828 1.5 1.5 0.828 1.5 0 c 1.5 -0.828 0.828 -1.5 0 -1.5 c -0.828 -1.5 -1.5 -0.828 -1.5 0 c f }
+\axo at setObject{210}%
+{Vertex 80 10 1.5 0.5;}%
+{ 0.5 w 1 0 0 1 80 10 cm -1.5 0 m -1.5 0.828 -0.828 1.5 0 1.5 c 0.828 1.5 1.5 0.828 1.5 0 c 1.5 -0.828 0.828 -1.5 0 -1.5 c -0.828 -1.5 -1.5 -0.828 -1.5 0 c f }
+\axo at setObject{211}%
+{Grid 0 0 10 10 9 9 0.5;}%
+{ 0.5 w 0 0 m 0 90 l S 10 0 m 10 90 l S 20 0 m 20 90 l S 30 0 m 30 90 l S 40 0 m 40 90 l S 50 0 m 50 90 l S 60 0 m 60 90 l S 70 0 m 70 90 l S 80 0 m 80 90 l S 90 0 m 90 90 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S 0 60 m 90 60 l S 0 70 m 90 70 l S 0 80 m 90 80 l S 0 90 m 90 90 l S}
+\axo at setObject{212}%
+{Vertex 10 10 1.5 0.5;}%
+{ 0.5 w 1 0 0 1 10 10 cm -1.5 0 m -1.5 0.828 -0.828 1.5 0 1.5 c 0.828 1.5 1.5 0.828 1.5 0 c 1.5 -0.828 0.828 -1.5 0 -1.5 c -0.828 -1.5 -1.5 -0.828 -1.5 0 c f }
+\axo at setObject{213}%
+{Vertex 45 45 1.5 0.5;}%
+{ 0.5 w 1 0 0 1 45 45 cm -1.5 0 m -1.5 0.828 -0.828 1.5 0 1.5 c 0.828 1.5 1.5 0.828 1.5 0 c 1.5 -0.828 0.828 -1.5 0 -1.5 c -0.828 -1.5 -1.5 -0.828 -1.5 0 c f }
+\axo at setObject{214}%
+{Vertex 80 80 1.5 0.5;}%
+{ 0.5 w 1 0 0 1 80 80 cm -1.5 0 m -1.5 0.828 -0.828 1.5 0 1.5 c 0.828 1.5 1.5 0.828 1.5 0 c 1.5 -0.828 0.828 -1.5 0 -1.5 c -0.828 -1.5 -1.5 -0.828 -1.5 0 c f }
+\axo at setObject{215}%
+{Grid 0 0 10 10 10 9 0.5;}%
+{ 0.5 w 0 0 m 0 90 l S 10 0 m 10 90 l S 20 0 m 20 90 l S 30 0 m 30 90 l S 40 0 m 40 90 l S 50 0 m 50 90 l S 60 0 m 60 90 l S 70 0 m 70 90 l S 80 0 m 80 90 l S 90 0 m 90 90 l S 100 0 m 100 90 l S 0 0 m 100 0 l S 0 10 m 100 10 l S 0 20 m 100 20 l S 0 30 m 100 30 l S 0 40 m 100 40 l S 0 50 m 100 50 l S 0 60 m 100 60 l S 0 70 m 100 70 l S 0 80 m 100 80 l S 0 90 m 100 90 l S}
+\axo at setObject{216}%
+{AxoLine 30 65 60 25 0 0  0  0  0  0.2 1 1.25 0.5 1   0 0.5;}%
+{ 0.5 w 30 65 m 60 25 l S 1 0 0 1 30 65 cm 0.6 -0.8 0.8 0.6 0 0 cm 1 0 0 1 25 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
+\axo at setObject{217}%
+{FBoxc 0 0 54.599 15.89 0.5;}%
+{ 0.5 w -27.299 -7.945 54.599 15.89 re f}
+\axo at setObject{218}%
+{Boxc 0 0 54.599 15.89 0.5;}%
+{ 0.5 w -27.299 -7.945 54.599 15.89 re S}
+\axo at setObject{219}%
+{FBoxc 0 0 50.559 17.421 0.5;}%
+{ 0.5 w -25.279 -8.71 50.559 17.421 re f}
+\axo at setObject{220}%
+{Boxc 0 0 50.559 17.421 0.5;}%
+{ 0.5 w -25.279 -8.71 50.559 17.421 re S}
+\axo at setObject{221}%
+{Grid 0 0 10 10 10 9 0.5;}%
+{ 0.5 w 0 0 m 0 90 l S 10 0 m 10 90 l S 20 0 m 20 90 l S 30 0 m 30 90 l S 40 0 m 40 90 l S 50 0 m 50 90 l S 60 0 m 60 90 l S 70 0 m 70 90 l S 80 0 m 80 90 l S 90 0 m 90 90 l S 100 0 m 100 90 l S 0 0 m 100 0 l S 0 10 m 100 10 l S 0 20 m 100 20 l S 0 30 m 100 30 l S 0 40 m 100 40 l S 0 50 m 100 50 l S 0 60 m 100 60 l S 0 70 m 100 70 l S 0 80 m 100 80 l S 0 90 m 100 90 l S}
+\axo at setObject{222}%
+{AxoLine 30 65 60 25 0 0  0  0  0  0.2 1 1.25 0.5 1   0 0.5;}%
+{ 0.5 w 30 65 m 60 25 l S 1 0 0 1 30 65 cm 0.6 -0.8 0.8 0.6 0 0 cm 1 0 0 1 25 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
+\axo at setObject{223}%
+{FBoxc 0 0 46.799 15.513 0.5;}%
+{ 0.5 w -23.399 -7.756 46.799 15.513 re f}
+\axo at setObject{224}%
+{Boxc 0 0 46.799 15.513 0.5;}%
+{ 0.5 w -23.399 -7.756 46.799 15.513 re S}
+\axo at setObject{225}%
+{FBoxc 0 0 71.0 5.444 0.5;}%
+{ 0.5 w -35.5 -2.722 71 5.444 re f}
+\axo at setObject{226}%
+{Boxc 0 0 71.0 5.444 0.5;}%
+{ 0.5 w -35.5 -2.722 71 5.444 re S}
+\axo at setObject{227}%
+{Grid 0 0 10 10 9 9 0.5;}%
+{ 0.5 w 0 0 m 0 90 l S 10 0 m 10 90 l S 20 0 m 20 90 l S 30 0 m 30 90 l S 40 0 m 40 90 l S 50 0 m 50 90 l S 60 0 m 60 90 l S 70 0 m 70 90 l S 80 0 m 80 90 l S 90 0 m 90 90 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S 0 60 m 90 60 l S 0 70 m 90 70 l S 0 80 m 90 80 l S 0 90 m 90 90 l S}
+\axo at setObject{228}%
+{AxoLine 30 65 60 25 0 0  0  0  0  0.2 1 1.25 0.5 1   0 0.5;}%
+{ 0.5 w 30 65 m 60 25 l S 1 0 0 1 30 65 cm 0.6 -0.8 0.8 0.6 0 0 cm 1 0 0 1 25 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
+\axo at setObject{229}%
+{FBoxc 0 0 53.339 15.424 0.5;}%
+{ 0.5 w -26.669 -7.712 53.339 15.424 re f}
+\axo at setObject{230}%
+{Boxc 0 0 53.339 15.424 0.5;}%
+{ 0.5 w -26.669 -7.712 53.339 15.424 re S}
+\axo at setObject{231}%
+{FBoxc 0 0 47.599 12.975 0.5;}%
+{ 0.5 w -23.799 -6.487 47.599 12.975 re f}
+\axo at setObject{232}%
+{Boxc 0 0 47.599 12.975 0.5;}%
+{ 0.5 w -23.799 -6.487 47.599 12.975 re S}
+\axo at setObject{233}%
+{Grid 0 0 10 10 9 9 0.5;}%
+{ 0.5 w 0 0 m 0 90 l S 10 0 m 10 90 l S 20 0 m 20 90 l S 30 0 m 30 90 l S 40 0 m 40 90 l S 50 0 m 50 90 l S 60 0 m 60 90 l S 70 0 m 70 90 l S 80 0 m 80 90 l S 90 0 m 90 90 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S 0 60 m 90 60 l S 0 70 m 90 70 l S 0 80 m 90 80 l S 0 90 m 90 90 l S}
+\axo at setObject{234}%
+{AxoLine 30 65 60 25 0 0  0  0  0  0.2 1 1.25 0.5 1   0 0.5;}%
+{ 0.5 w 30 65 m 60 25 l S 1 0 0 1 30 65 cm 0.6 -0.8 0.8 0.6 0 0 cm 1 0 0 1 25 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
+\axo at setObject{235}%
+{FBoxc 0 0 45.359 34.223 0.5;}%
+{ 0.5 w -22.68 -17.111 45.359 34.223 re f}
+\axo at setObject{236}%
+{Boxc 0 0 45.359 34.223 0.5;}%
+{ 0.5 w -22.68 -17.111 45.359 34.223 re S}
+\axo at setObject{237}%
+{FBoxc 0 0 54.176 38.704 0.5;}%
+{ 0.5 w -27.088 -19.352 54.176 38.704 re f}
+\axo at setObject{238}%
+{Boxc 0 0 54.176 38.704 0.5;}%
+{ 0.5 w -27.088 -19.352 54.176 38.704 re S}
+\axo at setObject{239}%
+{Grid 0 0 10 10 10 9 0.5;}%
+{ 0.5 w 0 0 m 0 90 l S 10 0 m 10 90 l S 20 0 m 20 90 l S 30 0 m 30 90 l S 40 0 m 40 90 l S 50 0 m 50 90 l S 60 0 m 60 90 l S 70 0 m 70 90 l S 80 0 m 80 90 l S 90 0 m 90 90 l S 100 0 m 100 90 l S 0 0 m 100 0 l S 0 10 m 100 10 l S 0 20 m 100 20 l S 0 30 m 100 30 l S 0 40 m 100 40 l S 0 50 m 100 50 l S 0 60 m 100 60 l S 0 70 m 100 70 l S 0 80 m 100 80 l S 0 90 m 100 90 l S}
+\axo at setObject{240}%
+{AxoLine 30 65 60 25 0 0  0  0  0  0.2 1 1.25 0.5 1   0 0.5;}%
+{ 0.5 w 30 65 m 60 25 l S 1 0 0 1 30 65 cm 0.6 -0.8 0.8 0.6 0 0 cm 1 0 0 1 25 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
+\axo at setObject{241}%
+{FBoxc 0 0 46.931 28.548 0.5;}%
+{ 0.5 w -23.465 -14.274 46.931 28.548 re f}
+\axo at setObject{242}%
+{Boxc 0 0 46.931 28.548 0.5;}%
+{ 0.5 w -23.465 -14.274 46.931 28.548 re S}
+\axo at setObject{243}%
+{FBoxc 0 0 63.799 27.10 0.5;}%
+{ 0.5 w -31.899 -13.55 63.799 27.1 re f}
+\axo at setObject{244}%
+{Boxc 0 0 63.799 27.10 0.5;}%
+{ 0.5 w -31.899 -13.55 63.799 27.1 re S}
+\axo at setObject{245}%
+{Grid 0 0 10 10 9 9 0.5;}%
+{ 0.5 w 0 0 m 0 90 l S 10 0 m 10 90 l S 20 0 m 20 90 l S 30 0 m 30 90 l S 40 0 m 40 90 l S 50 0 m 50 90 l S 60 0 m 60 90 l S 70 0 m 70 90 l S 80 0 m 80 90 l S 90 0 m 90 90 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S 0 60 m 90 60 l S 0 70 m 90 70 l S 0 80 m 90 80 l S 0 90 m 90 90 l S}
+\axo at setObject{246}%
+{AxoLine 30 65 60 25 0 0  0  0  0  0.2 1 1.25 0.5 1   0 0.5;}%
+{ 0.5 w 30 65 m 60 25 l S 1 0 0 1 30 65 cm 0.6 -0.8 0.8 0.6 0 0 cm 1 0 0 1 25 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
+\axo at setObject{247}%
+{FBoxc 0 0 49.539 25.840 0.5;}%
+{ 0.5 w -24.77 -12.92 49.539 25.84 re f}
+\axo at setObject{248}%
+{Boxc 0 0 49.539 25.840 0.5;}%
+{ 0.5 w -24.77 -12.92 49.539 25.84 re S}
+\axo at setObject{249}%
+{FBoxc 0 0 55.999 31.745 0.5;}%
+{ 0.5 w -28 -15.873 55.999 31.745 re f}
+\axo at setObject{250}%
+{Boxc 0 0 55.999 31.745 0.5;}%
+{ 0.5 w -28 -15.873 55.999 31.745 re S}
+\axo at setObject{251}%
+{Grid 0 0 10 10 12 9 0.5;}%
+{ 0.5 w 0 0 m 0 90 l S 10 0 m 10 90 l S 20 0 m 20 90 l S 30 0 m 30 90 l S 40 0 m 40 90 l S 50 0 m 50 90 l S 60 0 m 60 90 l S 70 0 m 70 90 l S 80 0 m 80 90 l S 90 0 m 90 90 l S 100 0 m 100 90 l S 110 0 m 110 90 l S 120 0 m 120 90 l S 0 0 m 120 0 l S 0 10 m 120 10 l S 0 20 m 120 20 l S 0 30 m 120 30 l S 0 40 m 120 40 l S 0 50 m 120 50 l S 0 60 m 120 60 l S 0 70 m 120 70 l S 0 80 m 120 80 l S 0 90 m 120 90 l S}
+\axo at setObject{252}%
+{FBoxc 0 0 143.37 62.444 0.5;}%
+{ 0.5 w -71.685 -31.222 143.37 62.444 re f}
+\axo at setObject{253}%
+{Boxc 0 0 143.37 62.444 0.5;}%
+{ 0.5 w -71.685 -31.222 143.37 62.444 re S}
+\axo at setObject{254}%
+{Grid 0 0 10 10 13 9 0.5;}%
+{ 0.5 w 0 0 m 0 90 l S 10 0 m 10 90 l S 20 0 m 20 90 l S 30 0 m 30 90 l S 40 0 m 40 90 l S 50 0 m 50 90 l S 60 0 m 60 90 l S 70 0 m 70 90 l S 80 0 m 80 90 l S 90 0 m 90 90 l S 100 0 m 100 90 l S 110 0 m 110 90 l S 120 0 m 120 90 l S 130 0 m 130 90 l S 0 0 m 130 0 l S 0 10 m 130 10 l S 0 20 m 130 20 l S 0 30 m 130 30 l S 0 40 m 130 40 l S 0 50 m 130 50 l S 0 60 m 130 60 l S 0 70 m 130 70 l S 0 80 m 130 80 l S 0 90 m 130 90 l S}
+\axo at setObject{255}%
+{FBoxc 0 0 128.811 61.543 0.5;}%
+{ 0.5 w -64.406 -30.771 128.811 61.543 re f}
+\axo at setObject{256}%
+{Boxc 0 0 128.811 61.543 0.5;}%
+{ 0.5 w -64.406 -30.771 128.811 61.543 re S}
+\axo at setObject{257}%
+{Grid 0 0 10 10 9 8 0.5;}%
+{ 0.5 w 0 0 m 0 80 l S 10 0 m 10 80 l S 20 0 m 20 80 l S 30 0 m 30 80 l S 40 0 m 40 80 l S 50 0 m 50 80 l S 60 0 m 60 80 l S 70 0 m 70 80 l S 80 0 m 80 80 l S 90 0 m 90 80 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S 0 60 m 90 60 l S 0 70 m 90 70 l S 0 80 m 90 80 l S}
+\axo at setObject{258}%
+{AxoGluon 10 70 80 70 3 5 0 0 0.5;}%
+{ 0.5 w 0.5 w 1 0 0 1 10 70 cm 11.667 -3 m 14.367 -3 14.367 3 8.167 3 c 2.917 3 0.583 1.5 0 0 c S 11.667 -3 m 8.967 -3 8.967 3 17.5 3 c 26.033 3 26.033 -3 23.333 -3 c 20.633 -3 20.633 3 29.167 3 c 37.7 3 37.7 -3 35 -3 c 32.3 -3 32.3 3 40.833 3 c 49.367 3 49.367 -3 46.667 -3 c 43.967 -3 43.967 3 52.5 3 c 61.033 3 61.033 -3 58.333 -3 c 55.633 -3 55.633 3 61.833 3 c 67.083 3 69.417 1.5 70 0 c S}
+\axo at setObject{259}%
+{AxoGluon 10 50 80 50 3 9 0 0 0.5;}%
+{ 0.5 w 0.5 w 1 0 0 1 10 50 cm 7 -3 m 9.7 -3 9.7 3 4.9 3 c 1.75 3 0.35 1.5 0 0 c S 7 -3 m 4.3 -3 4.3 3 10.5 3 c 16.7 3 16.7 -3 14 -3 c 11.3 -3 11.3 3 17.5 3 c 23.7 3 23.7 -3 21 -3 c 18.3 -3 18.3 3 24.5 3 c 30.7 3 30.7 -3 28 -3 c 25.3 -3 25.3 3 31.5 3 c 37.7 3 37.7 -3 35 -3 c 32.3 -3 32.3 3 38.5 3 c 44.7 3 44.7 -3 42 -3 c 39.3 -3 39.3 3 45.5 3 c 51.7 3 51.7 -3 49 -3 c 46.3 -3 46.3 3 52.5 3 c 58.7 3 58.7 -3 56 -3 c 53.3 -3 53.3 3 59.5 3 c 65.7 3 65.7 -3 63 -3 c 60.3 -3 60.3 3 65.1 3 c 68.25 3 69.65 1.5 70 0 c S}
+\axo at setObject{260}%
+{AxoGluon 10 30 80 30 5 7 0 0 0.5;}%
+{ 0.5 w 0.5 w 1 0 0 1 10 30 cm 8.75 -5 m 13.25 -5 13.25 5 6.125 5 c 2.188 5 0.438 2.5 0 0 c S 8.75 -5 m 4.25 -5 4.25 5 13.125 5 c 22 5 22 -5 17.5 -5 c 13 -5 13 5 21.875 5 c 30.75 5 30.75 -5 26.25 -5 c 21.75 -5 21.75 5 30.625 5 c 39.5 5 39.5 -5 35 -5 c 30.5 -5 30.5 5 39.375 5 c 48.25 5 48.25 -5 43.75 -5 c 39.25 -5 39.25 5 48.125 5 c 57 5 57 -5 52.5 -5 c 48 -5 48 5 56.875 5 c 65.75 5 65.75 -5 61.25 -5 c 56.75 -5 56.75 5 63.875 5 c 67.812 5 69.562 2.5 70 0 c S}
+\axo at setObject{261}%
+{AxoGluon 10 10 80 10 8 9 0 0 0.5;}%
+{ 0.5 w 0.5 w 1 0 0 1 10 10 cm 7 -8 m 14.2 -8 14.2 8 4.9 8 c 1.75 8 0.35 4 0 0 c S 7 -8 m -0.2 -8 -0.2 8 10.5 8 c 21.2 8 21.2 -8 14 -8 c 6.8 -8 6.8 8 17.5 8 c 28.2 8 28.2 -8 21 -8 c 13.8 -8 13.8 8 24.5 8 c 35.2 8 35.2 -8 28 -8 c 20.8 -8 20.8 8 31.5 8 c 42.2 8 42.2 -8 35 -8 c 27.8 -8 27.8 8 38.5 8 c 49.2 8 49.2 -8 42 -8 c 34.8 -8 34.8 8 45.5 8 c 56.2 8 56.2 -8 49 -8 c 41.8 -8 41.8 8 52.5 8 c 63.2 8 63.2 -8 56 -8 c 48.8 -8 48.8 8 59.5 8 c 70.2 8 70.2 -8 63 -8 c 55.8 -8 55.8 8 65.1 8 c 68.25 8 69.65 4 70 0 c S}
+\axo at setObject{262}%
+{Grid 0 0 10 10 9 8 0.5;}%
+{ 0.5 w 0 0 m 0 80 l S 10 0 m 10 80 l S 20 0 m 20 80 l S 30 0 m 30 80 l S 40 0 m 40 80 l S 50 0 m 50 80 l S 60 0 m 60 80 l S 70 0 m 70 80 l S 80 0 m 80 80 l S 90 0 m 90 80 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S 0 60 m 90 60 l S 0 70 m 90 70 l S 0 80 m 90 80 l S}
+\axo at setObject{263}%
+{AxoGluon 10 70 80 70 5 7 0.5 0 1.2;}%
+{ 1.2 w 1.7 w 1 0 0 1 10 70 cm 8.75 -5 m 13.25 -5 13.25 5 6.125 5 c 2.188 5 0.438 2.5 0 0 c S 8.75 -5 m 4.25 -5 4.25 5 13.125 5 c 22 5 22 -5 17.5 -5 c 13 -5 13 5 21.875 5 c 30.75 5 30.75 -5 26.25 -5 c 21.75 -5 21.75 5 30.625 5 c 39.5 5 39.5 -5 35 -5 c 30.5 -5 30.5 5 39.375 5 c 48.25 5 48.25 -5 43.75 -5 c 39.25 -5 39.25 5 48.125 5 c 57 5 57 -5 52.5 -5 c 48 -5 48 5 56.875 5 c 65.75 5 65.75 -5 61.25 -5 c 56.75 -5 56.75 5 63.875 5 c 67.812 5 69.562 2.5 70 0 c S}
+\axo at setObject{264}%
+{AxoGluon 10 70 80 70 5 7 -0.5 0 1.2;}%
+{ 1.2 w 0.7 w 1 0 0 1 10 70 cm 8.75 -5 m 13.25 -5 13.25 5 6.125 5 c 2.188 5 0.438 2.5 0 0 c S 8.75 -5 m 4.25 -5 4.25 5 13.125 5 c 22 5 22 -5 17.5 -5 c 13 -5 13 5 21.875 5 c 30.75 5 30.75 -5 26.25 -5 c 21.75 -5 21.75 5 30.625 5 c 39.5 5 39.5 -5 35 -5 c 30.5 -5 30.5 5 39.375 5 c 48.25 5 48.25 -5 43.75 -5 c 39.25 -5 39.25 5 48.125 5 c 57 5 57 -5 52.5 -5 c 48 -5 48 5 56.875 5 c 65.75 5 65.75 -5 61.25 -5 c 56.75 -5 56.75 5 63.875 5 c 67.812 5 69.562 2.5 70 0 c S}
+\axo at setObject{265}%
+{AxoGluon 80 50 10 50 5 7 0.5 0 1.2;}%
+{ 1.2 w 1.7 w 1 0 0 1 80 50 cm -1 0 0 -1 0 0 cm 8.75 -5 m 13.25 -5 13.25 5 6.125 5 c 2.188 5 0.438 2.5 0 0 c S 8.75 -5 m 4.25 -5 4.25 5 13.125 5 c 22 5 22 -5 17.5 -5 c 13 -5 13 5 21.875 5 c 30.75 5 30.75 -5 26.25 -5 c 21.75 -5 21.75 5 30.625 5 c 39.5 5 39.5 -5 35 -5 c 30.5 -5 30.5 5 39.375 5 c 48.25 5 48.25 -5 43.75 -5 c 39.25 -5 39.25 5 48.125 5 c 57 5 57 -5 52.5 -5 c 48 -5 48 5 56.875 5 c 65.75 5 65.75 -5 61.25 -5 c 56.75 -5 56.75 5 63.875 5 c 67.812 5 69.562 2.5 70 0 c S}
+\axo at setObject{266}%
+{AxoGluon 80 50 10 50 5 7 -0.5 0 1.2;}%
+{ 1.2 w 0.7 w 1 0 0 1 80 50 cm -1 0 0 -1 0 0 cm 8.75 -5 m 13.25 -5 13.25 5 6.125 5 c 2.188 5 0.438 2.5 0 0 c S 8.75 -5 m 4.25 -5 4.25 5 13.125 5 c 22 5 22 -5 17.5 -5 c 13 -5 13 5 21.875 5 c 30.75 5 30.75 -5 26.25 -5 c 21.75 -5 21.75 5 30.625 5 c 39.5 5 39.5 -5 35 -5 c 30.5 -5 30.5 5 39.375 5 c 48.25 5 48.25 -5 43.75 -5 c 39.25 -5 39.25 5 48.125 5 c 57 5 57 -5 52.5 -5 c 48 -5 48 5 56.875 5 c 65.75 5 65.75 -5 61.25 -5 c 56.75 -5 56.75 5 63.875 5 c 67.812 5 69.562 2.5 70 0 c S}
+\axo at setObject{267}%
+{AxoGluon 10 30 80 30 -5 7 0.5 0 1.2;}%
+{ 1.2 w 1.7 w 1 0 0 1 10 30 cm 8.75 5 m 13.25 5 13.25 -5 6.125 -5 c 2.188 -5 0.438 -2.5 0 0 c S 8.75 5 m 4.25 5 4.25 -5 13.125 -5 c 22 -5 22 5 17.5 5 c 13 5 13 -5 21.875 -5 c 30.75 -5 30.75 5 26.25 5 c 21.75 5 21.75 -5 30.625 -5 c 39.5 -5 39.5 5 35 5 c 30.5 5 30.5 -5 39.375 -5 c 48.25 -5 48.25 5 43.75 5 c 39.25 5 39.25 -5 48.125 -5 c 57 -5 57 5 52.5 5 c 48 5 48 -5 56.875 -5 c 65.75 -5 65.75 5 61.25 5 c 56.75 5 56.75 -5 63.875 -5 c 67.812 -5 69.562 -2.5 70 0 c S}
+\axo at setObject{268}%
+{AxoGluon 10 30 80 30 -5 7 -0.5 0 1.2;}%
+{ 1.2 w 0.7 w 1 0 0 1 10 30 cm 8.75 5 m 13.25 5 13.25 -5 6.125 -5 c 2.188 -5 0.438 -2.5 0 0 c S 8.75 5 m 4.25 5 4.25 -5 13.125 -5 c 22 -5 22 5 17.5 5 c 13 5 13 -5 21.875 -5 c 30.75 -5 30.75 5 26.25 5 c 21.75 5 21.75 -5 30.625 -5 c 39.5 -5 39.5 5 35 5 c 30.5 5 30.5 -5 39.375 -5 c 48.25 -5 48.25 5 43.75 5 c 39.25 5 39.25 -5 48.125 -5 c 57 -5 57 5 52.5 5 c 48 5 48 -5 56.875 -5 c 65.75 -5 65.75 5 61.25 5 c 56.75 5 56.75 -5 63.875 -5 c 67.812 -5 69.562 -2.5 70 0 c S}
+\axo at setObject{269}%
+{AxoGluon 80 10 10 10 -5 7 0.5 0 1.2;}%
+{ 1.2 w 1.7 w 1 0 0 1 80 10 cm -1 0 0 -1 0 0 cm 8.75 5 m 13.25 5 13.25 -5 6.125 -5 c 2.188 -5 0.438 -2.5 0 0 c S 8.75 5 m 4.25 5 4.25 -5 13.125 -5 c 22 -5 22 5 17.5 5 c 13 5 13 -5 21.875 -5 c 30.75 -5 30.75 5 26.25 5 c 21.75 5 21.75 -5 30.625 -5 c 39.5 -5 39.5 5 35 5 c 30.5 5 30.5 -5 39.375 -5 c 48.25 -5 48.25 5 43.75 5 c 39.25 5 39.25 -5 48.125 -5 c 57 -5 57 5 52.5 5 c 48 5 48 -5 56.875 -5 c 65.75 -5 65.75 5 61.25 5 c 56.75 5 56.75 -5 63.875 -5 c 67.812 -5 69.562 -2.5 70 0 c S}
+\axo at setObject{270}%
+{AxoGluon 80 10 10 10 -5 7 -0.5 0 1.2;}%
+{ 1.2 w 0.7 w 1 0 0 1 80 10 cm -1 0 0 -1 0 0 cm 8.75 5 m 13.25 5 13.25 -5 6.125 -5 c 2.188 -5 0.438 -2.5 0 0 c S 8.75 5 m 4.25 5 4.25 -5 13.125 -5 c 22 -5 22 5 17.5 5 c 13 5 13 -5 21.875 -5 c 30.75 -5 30.75 5 26.25 5 c 21.75 5 21.75 -5 30.625 -5 c 39.5 -5 39.5 5 35 5 c 30.5 5 30.5 -5 39.375 -5 c 48.25 -5 48.25 5 43.75 5 c 39.25 5 39.25 -5 48.125 -5 c 57 -5 57 5 52.5 5 c 48 5 48 -5 56.875 -5 c 65.75 -5 65.75 5 61.25 5 c 56.75 5 56.75 -5 63.875 -5 c 67.812 -5 69.562 -2.5 70 0 c S}
+\axo at setObject{271}%
+{Grid 0 0 10 10 9 7 0.5;}%
+{ 0.5 w 0 0 m 0 70 l S 10 0 m 10 70 l S 20 0 m 20 70 l S 30 0 m 30 70 l S 40 0 m 40 70 l S 50 0 m 50 70 l S 60 0 m 60 70 l S 70 0 m 70 70 l S 80 0 m 80 70 l S 90 0 m 90 70 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S 0 60 m 90 60 l S 0 70 m 90 70 l S}
+\axo at setObject{272}%
+{AxoGluonArc 45 20 40 20 160 5 8 0 0 0 0.5;}%
+{ 0.5 w 0.5 w 1 0 0 1 45 20 cm 0.94 0.342 -0.342 0.94 0 0 cm 33.718 9.386 m 32.658 13.195 42.52 17.18 44.19 8.501 c 45.234 3.075 42.496 0.577 40 0 c S 33.718 9.386 m 34.778 5.577 45.838 7.35 41.32 17.824 c 36.802 28.297 27.923 21.47 29.966 18.084 c 32.009 14.699 42.188 19.373 35.026 28.252 c 27.865 37.13 21.142 28.172 24.018 25.458 c 26.895 22.745 35.447 29.977 26.167 36.61 c 16.887 43.243 12.813 32.809 16.312 30.967 c 19.81 29.124 26.109 38.385 15.391 42.286 c 4.672 46.187 3.545 35.044 7.41 34.207 c 11.274 33.37 14.859 43.981 3.487 44.865 c -7.885 45.749 -5.983 34.711 -2.035 34.941 c 1.912 35.171 2.521 46.355 -8.672 44.156 c -19.865 41.958 -15.072 31.835 -11.331 33.115 c -7.589 34.395 -10.003 45.333 -20.196 40.213 c -30.389 35.094 -23.057 26.627 -19.796 28.864 c -16.535 31.1 -21.529 40.492 -28.387 34.917 c -32.674 31.431 -32.183 27.758 -30.642 25.712 c S}
+\axo at setObject{273}%
+{AxoGluonArc 45 0 40 20 160 -5 8 0 0 0 0.5;}%
+{ 0.5 w 0.5 w 1 0 0 1 45 0 cm 0.94 0.342 -0.342 0.94 0 0 cm 43.352 12.068 m 41.988 16.966 32.467 13.118 34.37 6.612 c 35.182 2.392 37.497 0.509 40 0 c S 43.352 12.068 m 44.715 7.17 34.568 5.543 32.138 13.863 c 27.754 21.34 35.901 27.604 38.528 23.251 c 41.154 18.899 31.815 14.61 27.243 21.973 c 21.014 28.001 27.183 36.221 30.881 32.732 c 34.579 29.243 26.732 22.607 20.352 28.474 c 12.735 32.611 16.474 42.184 20.972 39.814 c 25.47 37.445 19.69 28.948 11.971 32.889 c 3.524 34.832 4.558 45.056 9.527 43.98 c 14.495 42.904 11.206 33.168 2.712 34.895 c -5.946 34.501 -7.692 44.628 -2.617 44.924 c 2.459 45.219 1.901 34.958 -6.745 34.344 c -14.981 31.642 -19.378 40.931 -14.568 42.577 c -9.758 44.223 -7.543 34.187 -15.708 31.277 c -22.918 26.466 -29.645 34.235 -25.452 37.11 c -21.26 39.986 -16.439 30.918 -22.079 27.157 c -25.413 24.446 -28.397 24.492 -30.642 25.712 c S}
+\axo at setObject{274}%
+{Grid 0 0 10 10 8 8 0.5;}%
+{ 0.5 w 0 0 m 0 80 l S 10 0 m 10 80 l S 20 0 m 20 80 l S 30 0 m 30 80 l S 40 0 m 40 80 l S 50 0 m 50 80 l S 60 0 m 60 80 l S 70 0 m 70 80 l S 80 0 m 80 80 l S 0 0 m 80 0 l S 0 10 m 80 10 l S 0 20 m 80 20 l S 0 30 m 80 30 l S 0 40 m 80 40 l S 0 50 m 80 50 l S 0 60 m 80 60 l S 0 70 m 80 70 l S 0 80 m 80 80 l S}
+\axo at setObject{275}%
+{AxoGluonCirc 40 40 30 0 5 16 0 0 0.5;}%
+{ 0.5 w 0.5 w 1 0 0 1 40 40 cm 0.981 0.195 -0.195 0.981 0 0 cm 34.327 6.828 m 31.863 19.217 21.651 13.058 23.097 9.567 c 24.543 6.076 36.119 8.942 29.101 19.445 c 22.084 29.948 15.006 20.349 17.678 17.678 c 20.349 15.006 29.948 22.084 19.445 29.101 c 8.942 36.119 6.076 24.543 9.567 23.097 c 13.058 21.651 19.217 31.863 6.828 34.327 c -5.561 36.792 -3.778 25 0 25 c 3.778 25 5.561 36.792 -6.828 34.327 c -19.217 31.863 -13.058 21.651 -9.567 23.097 c -6.076 24.543 -8.942 36.119 -19.445 29.101 c -29.948 22.084 -20.349 15.006 -17.678 17.678 c -15.006 20.349 -22.084 29.948 -29.101 19.445 c -36.119 8.942 -24.543 6.076 -23.097 9.567 c -21.651 13.058 -31.863 19.217 -34.327 6.828 c -36.792 -5.561 -25 -3.778 -25 0 c -25 3.778 -36.792 5.561 -34.327 -6.828 c -31.863 -19.217 -21.651 -13.058 -23.097 -9.567 c -24.543 -6.076 -36.119 -8.942 -29.101 -19.445 c -22.084 -29.948 -15.006 -20.349 -17.678 -17.678 c -20.349 -15.006 -29.948 -22.084 -19.445 -29.101 c -8.942 -36.119 -6.076 -24.543 -9.567 -23.097 c -13.058 -21.651 -19.217 -31.863 -6.828 -34.327 c 5.561 -36.792 3.778 -25 0 -25 c -3.778 -25 -5.561 -36.792 6.828 -34.327 c 19.217 -31.863 13.058 -21.651 9.567 -23.097 c 6.076 -24.543 8.942 -36.119 19.445 -29.101 c 29.948 -22.084 20.349 -15.006 17.678 -17.678 c 15.006 -20.349 22.084 -29.948 29.101 -19.445 c 36.119 -8.942 24.543 -6.076 23.097 -9.567 c 21.651 -13.058 31.863 -19.217 34.327 -6.828 c 36.792 5.561 25 3.778 25 0 c 25 -3.778 36.792 -5.561 34.327 6.828 c S}
+\axo at setObject{276}%
+{Grid 0 0 10 10 8 8 0.5;}%
+{ 0.5 w 0 0 m 0 80 l S 10 0 m 10 80 l S 20 0 m 20 80 l S 30 0 m 30 80 l S 40 0 m 40 80 l S 50 0 m 50 80 l S 60 0 m 60 80 l S 70 0 m 70 80 l S 80 0 m 80 80 l S 0 0 m 80 0 l S 0 10 m 80 10 l S 0 20 m 80 20 l S 0 30 m 80 30 l S 0 40 m 80 40 l S 0 50 m 80 50 l S 0 60 m 80 60 l S 0 70 m 80 70 l S 0 80 m 80 80 l S}
+\axo at setObject{277}%
+{AxoGluonArc 40 40 30 0 360 5 16 0 0 0 0.5;}%
+{ 0.5 w 0.5 w 1 0 0 1 40 40 cm 23.312 9.031 m 21.947 12.554 31.445 17.987 33.835 8.954 c 35.338 3.275 32.494 0.601 30 0 c S 23.312 9.031 m 24.677 5.508 36.168 8.073 29.758 18.425 c 23.348 28.778 15.93 19.635 18.475 16.842 c 21.021 14.05 30.809 20.593 21.092 27.931 c 11.375 35.269 7.761 24.063 11.143 22.379 c 14.526 20.695 21.29 30.332 9.578 33.664 c -2.133 36.996 -1.456 25.242 2.307 24.893 c 6.069 24.545 8.895 35.974 -3.229 34.851 c -15.354 33.727 -10.476 23.012 -6.842 24.046 c -3.207 25.08 -4.701 36.758 -15.601 31.331 c -26.501 25.903 -18.081 17.673 -15.066 19.95 c -12.051 22.227 -17.662 32.578 -25.865 23.579 c -34.068 14.581 -23.244 9.948 -21.255 13.161 c -19.266 16.373 -28.238 23.998 -32.637 12.643 c -37.035 1.289 -25.269 0.88 -24.574 4.594 c -23.88 8.308 -35 12.176 -35 0 c -35 -12.176 -23.88 -8.308 -24.574 -4.594 c -25.269 -0.88 -37.035 -1.289 -32.637 -12.643 c -28.238 -23.998 -19.266 -16.373 -21.255 -13.161 c -23.244 -9.948 -34.068 -14.581 -25.865 -23.579 c -17.662 -32.578 -12.051 -22.227 -15.066 -19.95 c -18.081 -17.673 -26.501 -25.903 -15.601 -31.331 c -4.701 -36.758 -3.207 -25.08 -6.842 -24.046 c -10.476 -23.012 -15.354 -33.727 -3.229 -34.851 c 8.895 -35.974 6.069 -24.545 2.307 -24.893 c -1.456 -25.242 -2.133 -36.996 9.578 -33.664 c 21.29 -30.332 14.526 -20.695 11.143 -22.379 c 7.761 -24.063 11.375 -35.269 21.092 -27.931 c 30.809 -20.593 21.021 -14.05 18.475 -16.842 c 15.93 -19.635 23.348 -28.778 29.758 -18.425 c 36.168 -8.073 24.677 -5.508 23.312 -9.031 c 21.947 -12.554 31.445 -17.987 33.835 -8.954 c 35.338 -3.275 32.494 -0.601 30 0 c S}
+\axo at setObject{278}%
+{AxoGluon 7 30 27 30 3 3 0 0 0.5;}%
+{ 0.5 w 0.5 w 1 0 0 1 7 30 cm 5 -3 m 7.7 -3 7.7 3 3.5 3 c 1.25 3 0.25 1.5 0 0 c S 5 -3 m 2.3 -3 2.3 3 7.5 3 c 12.7 3 12.7 -3 10 -3 c 7.3 -3 7.3 3 12.5 3 c 17.7 3 17.7 -3 15 -3 c 12.3 -3 12.3 3 16.5 3 c 18.75 3 19.75 1.5 20 0 c S}
+\axo at setObject{279}%
+{AxoGluonCirc 50 30 20 0 3 16 0 0 0.5;}%
+{ 0.5 w 0.5 w 1 0 0 1 50 30 cm 0.981 0.195 -0.195 0.981 0 0 cm 22.558 4.487 m 21.014 12.248 14.822 8.639 15.706 6.506 c 16.59 4.372 23.52 6.199 19.124 12.778 c 14.728 19.357 10.388 13.654 12.021 12.021 c 13.654 10.388 19.357 14.728 12.778 19.124 c 6.199 23.52 4.372 16.59 6.506 15.706 c 8.639 14.822 12.248 21.014 4.487 22.558 c -3.274 24.102 -2.309 17 0 17 c 2.309 17 3.274 24.102 -4.487 22.558 c -12.248 21.014 -8.639 14.822 -6.506 15.706 c -4.372 16.59 -6.199 23.52 -12.778 19.124 c -19.357 14.728 -13.654 10.388 -12.021 12.021 c -10.388 13.654 -14.728 19.357 -19.124 12.778 c -23.52 6.199 -16.59 4.372 -15.706 6.506 c -14.822 8.639 -21.014 12.248 -22.558 4.487 c -24.102 -3.274 -17 -2.309 -17 0 c -17 2.309 -24.102 3.274 -22.558 -4.487 c -21.014 -12.248 -14.822 -8.639 -15.706 -6.506 c -16.59 -4.372 -23.52 -6.199 -19.124 -12.778 c -14.728 -19.357 -10.388 -13.654 -12.021 -12.021 c -13.654 -10.388 -19.357 -14.728 -12.778 -19.124 c -6.199 -23.52 -4.372 -16.59 -6.506 -15.706 c -8.639 -14.822 -12.248 -21.014 -4.487 -22.558 c 3.274 -24.102 2.309 -17 0 -17 c -2.309 -17 -3.274 -24.102 4.487 -22.558 c 12.248 -21.014 8.639 -14.822 6.506 -15.706 c 4.372 -16.59 6.199 -23.52 12.778 -19.124 c 19.357 -14.728 13.654 -10.388 12.021 -12.021 c 10.388 -13.654 14.728 -19.357 19.124 -12.778 c 23.52 -6.199 16.59 -4.372 15.706 -6.506 c 14.822 -8.639 21.014 -12.248 22.558 -4.487 c 24.102 3.274 17 2.309 17 0 c 17 -2.309 24.102 -3.274 22.558 4.487 c S}
+\axo at setObject{280}%
+{AxoGluon 73 30 93 30 3 3 0 0 0.5;}%
+{ 0.5 w 0.5 w 1 0 0 1 73 30 cm 5 -3 m 7.7 -3 7.7 3 3.5 3 c 1.25 3 0.25 1.5 0 0 c S 5 -3 m 2.3 -3 2.3 3 7.5 3 c 12.7 3 12.7 -3 10 -3 c 7.3 -3 7.3 3 12.5 3 c 17.7 3 17.7 -3 15 -3 c 12.3 -3 12.3 3 16.5 3 c 18.75 3 19.75 1.5 20 0 c S}
+\axo at setObject{281}%
+{Vertex 27 30 1.5 0.5;}%
+{ 0.5 w 1 0 0 1 27 30 cm -1.5 0 m -1.5 0.828 -0.828 1.5 0 1.5 c 0.828 1.5 1.5 0.828 1.5 0 c 1.5 -0.828 0.828 -1.5 0 -1.5 c -0.828 -1.5 -1.5 -0.828 -1.5 0 c f }
+\axo at setObject{282}%
+{Vertex 73 30 1.5 0.5;}%
+{ 0.5 w 1 0 0 1 73 30 cm -1.5 0 m -1.5 0.828 -0.828 1.5 0 1.5 c 0.828 1.5 1.5 0.828 1.5 0 c 1.5 -0.828 0.828 -1.5 0 -1.5 c -0.828 -1.5 -1.5 -0.828 -1.5 0 c f }
+\axo at setObject{283}%
+{AxoGluon 110 30 130 30 3 3 0 0 0.5;}%
+{ 0.5 w 0.5 w 1 0 0 1 110 30 cm 5 -3 m 7.7 -3 7.7 3 3.5 3 c 1.25 3 0.25 1.5 0 0 c S 5 -3 m 2.3 -3 2.3 3 7.5 3 c 12.7 3 12.7 -3 10 -3 c 7.3 -3 7.3 3 12.5 3 c 17.7 3 17.7 -3 15 -3 c 12.3 -3 12.3 3 16.5 3 c 18.75 3 19.75 1.5 20 0 c S}
+\axo at setObject{284}%
+{AxoGluonArc 150 30 20 0 180 3 8 0 0 0 0.5;}%
+{ 0.5 w 0.5 w 1 0 0 1 150 30 cm 15.975 5.814 m 15.185 7.984 20.957 11.019 22.317 5.564 c 23.198 2.03 21.497 0.375 20 0 c S 15.975 5.814 m 16.765 3.645 23.596 5.13 19.919 11.5 c 16.241 17.87 11.539 12.696 13.023 10.927 c 14.507 9.159 20.419 12.891 14.784 17.619 c 9.149 22.347 6.5 15.877 8.5 14.722 c 10.5 13.568 14.779 19.097 7.866 21.613 c 0.954 24.129 0.678 17.143 2.952 16.742 c 5.226 16.341 7.356 23 0 23 c -7.356 23 -5.226 16.341 -2.952 16.742 c -0.678 17.143 -0.954 24.129 -7.866 21.613 c -14.779 19.097 -10.5 13.568 -8.5 14.722 c -6.5 15.877 -9.149 22.347 -14.784 17.619 c -20.419 12.891 -14.507 9.159 -13.023 10.927 c -11.539 12.696 -16.241 17.87 -19.919 11.5 c -23.596 5.13 -16.765 3.645 -15.975 5.814 c -15.185 7.984 -20.957 11.019 -22.317 5.564 c -23.198 2.03 -21.497 0.375 -20 0 c S}
+\axo at setObject{285}%
+{AxoGluonArc 150 30 20 180 360 3 8 0 0 0 0.5;}%
+{ 0.5 w 0.5 w 1 0 0 1 150 30 cm -1 0 0 -1 0 0 cm 15.975 5.814 m 15.185 7.984 20.957 11.019 22.317 5.564 c 23.198 2.03 21.497 0.375 20 0 c S 15.975 5.814 m 16.765 3.645 23.596 5.13 19.919 11.5 c 16.241 17.87 11.539 12.696 13.023 10.927 c 14.507 9.159 20.419 12.891 14.784 17.619 c 9.149 22.347 6.5 15.877 8.5 14.722 c 10.5 13.568 14.779 19.097 7.866 21.613 c 0.954 24.129 0.678 17.143 2.952 16.742 c 5.226 16.341 7.356 23 0 23 c -7.356 23 -5.226 16.341 -2.952 16.742 c -0.678 17.143 -0.954 24.129 -7.866 21.613 c -14.779 19.097 -10.5 13.568 -8.5 14.722 c -6.5 15.877 -9.149 22.347 -14.784 17.619 c -20.419 12.891 -14.507 9.159 -13.023 10.927 c -11.539 12.696 -16.241 17.87 -19.919 11.5 c -23.596 5.13 -16.765 3.645 -15.975 5.814 c -15.185 7.984 -20.957 11.019 -22.317 5.564 c -23.198 2.03 -21.497 0.375 -20 0 c S}
+\axo at setObject{286}%
+{AxoGluon 170 30 190 30 3 3 0 0 0.5;}%
+{ 0.5 w 0.5 w 1 0 0 1 170 30 cm 5 -3 m 7.7 -3 7.7 3 3.5 3 c 1.25 3 0.25 1.5 0 0 c S 5 -3 m 2.3 -3 2.3 3 7.5 3 c 12.7 3 12.7 -3 10 -3 c 7.3 -3 7.3 3 12.5 3 c 17.7 3 17.7 -3 15 -3 c 12.3 -3 12.3 3 16.5 3 c 18.75 3 19.75 1.5 20 0 c S}
+\axo at setObject{287}%
+{Vertex 130 30 1.5 0.5;}%
+{ 0.5 w 1 0 0 1 130 30 cm -1.5 0 m -1.5 0.828 -0.828 1.5 0 1.5 c 0.828 1.5 1.5 0.828 1.5 0 c 1.5 -0.828 0.828 -1.5 0 -1.5 c -0.828 -1.5 -1.5 -0.828 -1.5 0 c f }
+\axo at setObject{288}%
+{Vertex 170 30 1.5 0.5;}%
+{ 0.5 w 1 0 0 1 170 30 cm -1.5 0 m -1.5 0.828 -0.828 1.5 0 1.5 c 0.828 1.5 1.5 0.828 1.5 0 c 1.5 -0.828 0.828 -1.5 0 -1.5 c -0.828 -1.5 -1.5 -0.828 -1.5 0 c f }
+\axo at setObject{289}%
+{AxoGluon 210 30 230 30 3 3 0 0 0.5;}%
+{ 0.5 w 0.5 w 1 0 0 1 210 30 cm 5 -3 m 7.7 -3 7.7 3 3.5 3 c 1.25 3 0.25 1.5 0 0 c S 5 -3 m 2.3 -3 2.3 3 7.5 3 c 12.7 3 12.7 -3 10 -3 c 7.3 -3 7.3 3 12.5 3 c 17.7 3 17.7 -3 15 -3 c 12.3 -3 12.3 3 16.5 3 c 18.75 3 19.75 1.5 20 0 c S}
+\axo at setObject{290}%
+{AxoGluonArc 250 30 20 0 180 -3 8 0 0 0 0.5;}%
+{ 0.5 w 0.5 w 1 0 0 1 250 30 cm 21.613 7.866 m 20.544 10.802 15.054 7.915 16.495 4.113 c 17.146 1.5 18.497 0.323 20 0 c S 21.613 7.866 m 22.681 4.931 16.625 3.614 14.722 8.5 c 11.442 12.591 15.611 17.177 17.619 14.784 c 19.627 12.391 14.386 9.082 10.927 13.023 c 6.446 15.745 8.795 21.481 11.5 19.919 c 14.205 18.357 10.412 13.455 5.814 15.975 c 0.672 17 0.917 23.193 3.994 22.651 c 7.07 22.108 5.182 16.205 0 17 c -5.182 16.205 -7.07 22.108 -3.994 22.651 c -0.917 23.193 -0.672 17 -5.814 15.975 c -10.412 13.455 -14.205 18.357 -11.5 19.919 c -8.795 21.481 -6.446 15.745 -10.927 13.023 c -14.386 9.082 -19.627 12.391 -17.619 14.784 c -15.611 17.177 -11.442 12.591 -14.722 8.5 c -16.625 3.614 -22.681 4.931 -21.613 7.866 c -20.544 10.802 -15.054 7.915 -16.495 4.113 c -17.146 1.5 -18.497 0.323 -20 0 c S}
+\axo at setObject{291}%
+{AxoGluonArc 250 30 20 180 360 -3 8 0 0 0 0.5;}%
+{ 0.5 w 0.5 w 1 0 0 1 250 30 cm -1 0 0 -1 0 0 cm 21.613 7.866 m 20.544 10.802 15.054 7.915 16.495 4.113 c 17.146 1.5 18.497 0.323 20 0 c S 21.613 7.866 m 22.681 4.931 16.625 3.614 14.722 8.5 c 11.442 12.591 15.611 17.177 17.619 14.784 c 19.627 12.391 14.386 9.082 10.927 13.023 c 6.446 15.745 8.795 21.481 11.5 19.919 c 14.205 18.357 10.412 13.455 5.814 15.975 c 0.672 17 0.917 23.193 3.994 22.651 c 7.07 22.108 5.182 16.205 0 17 c -5.182 16.205 -7.07 22.108 -3.994 22.651 c -0.917 23.193 -0.672 17 -5.814 15.975 c -10.412 13.455 -14.205 18.357 -11.5 19.919 c -8.795 21.481 -6.446 15.745 -10.927 13.023 c -14.386 9.082 -19.627 12.391 -17.619 14.784 c -15.611 17.177 -11.442 12.591 -14.722 8.5 c -16.625 3.614 -22.681 4.931 -21.613 7.866 c -20.544 10.802 -15.054 7.915 -16.495 4.113 c -17.146 1.5 -18.497 0.323 -20 0 c S}
+\axo at setObject{292}%
+{AxoGluon 270 30 290 30 3 3 0 0 0.5;}%
+{ 0.5 w 0.5 w 1 0 0 1 270 30 cm 5 -3 m 7.7 -3 7.7 3 3.5 3 c 1.25 3 0.25 1.5 0 0 c S 5 -3 m 2.3 -3 2.3 3 7.5 3 c 12.7 3 12.7 -3 10 -3 c 7.3 -3 7.3 3 12.5 3 c 17.7 3 17.7 -3 15 -3 c 12.3 -3 12.3 3 16.5 3 c 18.75 3 19.75 1.5 20 0 c S}
+\axo at setObject{293}%
+{Vertex 230 30 1.5 0.5;}%
+{ 0.5 w 1 0 0 1 230 30 cm -1.5 0 m -1.5 0.828 -0.828 1.5 0 1.5 c 0.828 1.5 1.5 0.828 1.5 0 c 1.5 -0.828 0.828 -1.5 0 -1.5 c -0.828 -1.5 -1.5 -0.828 -1.5 0 c f }
+\axo at setObject{294}%
+{Vertex 270 30 1.5 0.5;}%
+{ 0.5 w 1 0 0 1 270 30 cm -1.5 0 m -1.5 0.828 -0.828 1.5 0 1.5 c 0.828 1.5 1.5 0.828 1.5 0 c 1.5 -0.828 0.828 -1.5 0 -1.5 c -0.828 -1.5 -1.5 -0.828 -1.5 0 c f }
+\axo at setObject{295}%
+{AxoLine 310 30 330 30 0 3   0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w [ 3.333] 1.667 d 310 30 m 330 30 l S}
+\axo at setObject{296}%
+{AxoGluonArc 350 30 20 -180 180 3 16 0 0 0 0.5;}%
+{ 0.5 w 0.5 w 1 0 0 1 350 30 cm -1 0 0 -1 0 0 cm 15.852 6.141 m 15.018 8.294 20.758 11.464 22.235 5.884 c 23.222 2.152 21.496 0.397 20 0 c S 15.852 6.141 m 16.686 3.988 23.565 5.632 19.555 12.108 c 15.545 18.584 11.008 13.159 12.563 11.453 c 14.119 9.746 19.939 13.764 13.861 18.354 c 7.782 22.945 5.511 16.247 7.578 15.218 c 9.645 14.189 13.62 20.038 6.294 22.122 c -1.032 24.206 -0.731 17.141 1.569 16.927 c 3.868 16.714 5.462 23.605 -2.122 22.902 c -9.707 22.199 -6.873 15.719 -4.652 16.351 c -2.431 16.983 -3.434 23.984 -10.252 20.589 c -17.07 17.194 -12.087 12.175 -10.245 13.566 c -8.402 14.958 -11.866 21.124 -16.997 15.495 c -22.129 9.866 -15.669 6.986 -14.454 8.949 c -13.238 10.913 -18.695 15.411 -21.447 8.309 c -24.198 1.206 -17.135 0.854 -16.711 3.124 c -16.286 5.393 -23 7.617 -23 0 c -23 -7.617 -16.286 -5.393 -16.711 -3.124 c -17.135 -0.854 -24.198 -1.206 -21.447 -8.309 c -18.695 -15.411 -13.238 -10.913 -14.454 -8.949 c -15.669 -6.986 -22.129 -9.866 -16.997 -15.495 c -11.866 -21.124 -8.402 -14.958 -10.245 -13.566 c -12.087 -12.175 -17.07 -17.194 -10.252 -20.589 c -3.434 -23.984 -2.431 -16.983 -4.652 -16.351 c -6.873 -15.719 -9.707 -22.199 -2.122 -22.902 c 5.462 -23.605 3.868 -16.714 1.569 -16.927 c -0.731 -17.141 -1.032 -24.206 6.294 -22.122 c 13.62 -20.038 9.645 -14.189 7.578 -15.218 c 5.511 -16.247 7.782 -22.945 13.861 -18.354 c 19.939 -13.764 14.119 -9.746 12.563 -11.453 c 11.008 -13.159 15.545 -18.584 19.555 -12.108 c 23.565 -5.632 16.686 -3.988 15.852 -6.141 c 15.018 -8.294 20.758 -11.464 22.235 -5.884 c 23.222 -2.152 21.496 -0.397 20 0 c S}
+\axo at setObject{297}%
+{Vertex 330 30 1.5 0.5;}%
+{ 0.5 w 1 0 0 1 330 30 cm -1.5 0 m -1.5 0.828 -0.828 1.5 0 1.5 c 0.828 1.5 1.5 0.828 1.5 0 c 1.5 -0.828 0.828 -1.5 0 -1.5 c -0.828 -1.5 -1.5 -0.828 -1.5 0 c f }
+\axo at setObject{298}%
+{AxoLine 387 30 407 30 0 3   0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w [ 3.333] 1.667 d 387 30 m 407 30 l S}
+\axo at setObject{299}%
+{AxoGluonCirc 430 30 20 0 3 16 0 0 0.5;}%
+{ 0.5 w 0.5 w 1 0 0 1 430 30 cm 0.981 0.195 -0.195 0.981 0 0 cm 22.558 4.487 m 21.014 12.248 14.822 8.639 15.706 6.506 c 16.59 4.372 23.52 6.199 19.124 12.778 c 14.728 19.357 10.388 13.654 12.021 12.021 c 13.654 10.388 19.357 14.728 12.778 19.124 c 6.199 23.52 4.372 16.59 6.506 15.706 c 8.639 14.822 12.248 21.014 4.487 22.558 c -3.274 24.102 -2.309 17 0 17 c 2.309 17 3.274 24.102 -4.487 22.558 c -12.248 21.014 -8.639 14.822 -6.506 15.706 c -4.372 16.59 -6.199 23.52 -12.778 19.124 c -19.357 14.728 -13.654 10.388 -12.021 12.021 c -10.388 13.654 -14.728 19.357 -19.124 12.778 c -23.52 6.199 -16.59 4.372 -15.706 6.506 c -14.822 8.639 -21.014 12.248 -22.558 4.487 c -24.102 -3.274 -17 -2.309 -17 0 c -17 2.309 -24.102 3.274 -22.558 -4.487 c -21.014 -12.248 -14.822 -8.639 -15.706 -6.506 c -16.59 -4.372 -23.52 -6.199 -19.124 -12.778 c -14.728 -19.357 -10.388 -13.654 -12.021 -12.021 c -13.654 -10.388 -19.357 -14.728 -12.778 -19.124 c -6.199 -23.52 -4.372 -16.59 -6.506 -15.706 c -8.639 -14.822 -12.248 -21.014 -4.487 -22.558 c 3.274 -24.102 2.309 -17 0 -17 c -2.309 -17 -3.274 -24.102 4.487 -22.558 c 12.248 -21.014 8.639 -14.822 6.506 -15.706 c 4.372 -16.59 6.199 -23.52 12.778 -19.124 c 19.357 -14.728 13.654 -10.388 12.021 -12.021 c 10.388 -13.654 14.728 -19.357 19.124 -12.778 c 23.52 -6.199 16.59 -4.372 15.706 -6.506 c 14.822 -8.639 21.014 -12.248 22.558 -4.487 c 24.102 3.274 17 2.309 17 0 c 17 -2.309 24.102 -3.274 22.558 4.487 c S}
+\axo at setObject{300}%
+{Vertex 407 30 1.5 0.5;}%
+{ 0.5 w 1 0 0 1 407 30 cm -1.5 0 m -1.5 0.828 -0.828 1.5 0 1.5 c 0.828 1.5 1.5 0.828 1.5 0 c 1.5 -0.828 0.828 -1.5 0 -1.5 c -0.828 -1.5 -1.5 -0.828 -1.5 0 c f }
+\axo at setObject{301}%
+{Grid 0 0 10 10 15 10 0.5;}%
+{ 0.5 w 0 0 m 0 100 l S 10 0 m 10 100 l S 20 0 m 20 100 l S 30 0 m 30 100 l S 40 0 m 40 100 l S 50 0 m 50 100 l S 60 0 m 60 100 l S 70 0 m 70 100 l S 80 0 m 80 100 l S 90 0 m 90 100 l S 100 0 m 100 100 l S 110 0 m 110 100 l S 120 0 m 120 100 l S 130 0 m 130 100 l S 140 0 m 140 100 l S 150 0 m 150 100 l S 0 0 m 150 0 l S 0 10 m 150 10 l S 0 20 m 150 20 l S 0 30 m 150 30 l S 0 40 m 150 40 l S 0 50 m 150 50 l S 0 60 m 150 60 l S 0 70 m 150 70 l S 0 80 m 150 80 l S 0 90 m 150 90 l S 0 100 m 150 100 l S}
+\axo at setObject{302}%
+{AxoLine 10 50 100 50 0 0  3  40 0  0.3  1 1  1  1   0 3;}%
+{ 3 w 10 50 m 100 50 l S 1 0 0 1 10 50 cm 1 0 0 1 90 0 cm q [] 0 d 3 w q 40 0 m -40 40 l -16 0 l -40 -40 l 0 0 0 0 k h f Q q 40 0 m -40 40 l -16 0 l -40 -40 l s Q Q}
+\axo at setObject{303}%
+{AxoLine 55 50 55 90 0 0  0  0  0  0.2 1 1.25 1  1   0 0.5;}%
+{ 0.5 w 55 50 m 55 90 l S 1 0 0 1 55 50 cm 0 1 -1 0 0 0 cm 1 0 0 1 40 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
+\axo at setObject{304}%
+{AxoLine 60 5 84 5 0 0  0  0  0  0.2 1 1.25 1  1   0 0.5;}%
+{ 0.5 w 60 5 m 84 5 l S 1 0 0 1 60 5 cm 1 0 0 1 24 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
+\axo at setObject{305}%
+{AxoLine 60 95 140 95 0 0  0  0  0  0.2 1 1.25 1  1   0 0.5;}%
+{ 0.5 w 60 95 m 140 95 l S 1 0 0 1 60 95 cm 1 0 0 1 80 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
+\axo at setObject{306}%
+{Grid 0 0 10 10 9 8 0.5;}%
+{ 0.5 w 0 0 m 0 80 l S 10 0 m 10 80 l S 20 0 m 20 80 l S 30 0 m 30 80 l S 40 0 m 40 80 l S 50 0 m 50 80 l S 60 0 m 60 80 l S 70 0 m 70 80 l S 80 0 m 80 80 l S 90 0 m 90 80 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S 0 60 m 90 60 l S 0 70 m 90 70 l S 0 80 m 90 80 l S}
+\axo at setObject{307}%
+{AxoLine 10 70 80 70 0 0  0  0  0  0.2 2 1.25 0.5 1   0 0.5;}%
+{ 0.5 w 10 70 m 80 70 l S 1 0 0 1 10 70 cm 1 0 0 1 35 0 cm q [] 0 d 6.25 0 m -6.25 5 l -3.75 0 l -6.25 -5 l h f Q}
+\axo at setObject{308}%
+{AxoLine 10 50 80 50 0 0  0  0  0  0.2 1 1.25 0.8  1   1 0.5;}%
+{ 0.5 w 10 50 m 80 50 l S 1 0 0 1 10 50 cm 1 0 0 1 56 0 cm q [] 0 d -3.125 0 m 3.125 2.5 l 1.875 0 l 3.125 -2.5 l h f Q}
+\axo at setObject{309}%
+{AxoLine 10 30 80 30 0 0  0  0  0  0.2 1 1.25 0.5 1   0 0.5;}%
+{ 0.5 w 10 30 m 80 30 l S 1 0 0 1 10 30 cm 1 0 0 1 35 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
+\axo at setObject{310}%
+{AxoLine 10 10 80 10 0 0  0  0  0  0.2 1 1.25 0.5 1   0 0.5;}%
+{ 0.5 w 10 10 m 80 10 l S 1 0 0 1 10 10 cm 1 0 0 1 35 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
+\axo at setObject{311}%
+{Grid 0 0 10 10 9 6 0.5;}%
+{ 0.5 w 0 0 m 0 60 l S 10 0 m 10 60 l S 20 0 m 20 60 l S 30 0 m 30 60 l S 40 0 m 40 60 l S 50 0 m 50 60 l S 60 0 m 60 60 l S 70 0 m 70 60 l S 80 0 m 80 60 l S 90 0 m 90 60 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S 0 60 m 90 60 l S}
+\axo at setObject{312}%
+{AxoLine 10 30 80 30 0 0  0  0  0  0.2 1 1.25 1  1   0 0.5;}%
+{ 0.5 w 10 30 m 80 30 l S 1 0 0 1 10 30 cm 1 0 0 1 70 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
+\axo at setObject{313}%
+{AxoLine 10 10 80 10 0 0  0  0  0  0.2 1 1.25 1  1   0 0.5;}%
+{ 0.5 w 10 10 m 80 10 l S 1 0 0 1 10 10 cm 1 0 0 1 70 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
+\axo at setObject{314}%
+{AxoLine 10 50 70 50 0 0  0  0  0  0.2 0.8 1.25 1  1   0 4;}%
+{ 4 w 10 50 m 70 50 l S 1 0 0 1 10 50 cm 1 0 0 1 60 0 cm q [] 0 d 6 0 m -6 4.8 l -3.6 0 l -6 -4.8 l h f Q}
+\axo at setObject{315}%
+{Grid 0 0 10 10 9 10 0.5;}%
+{ 0.5 w 0 0 m 0 100 l S 10 0 m 10 100 l S 20 0 m 20 100 l S 30 0 m 30 100 l S 40 0 m 40 100 l S 50 0 m 50 100 l S 60 0 m 60 100 l S 70 0 m 70 100 l S 80 0 m 80 100 l S 90 0 m 90 100 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S 0 60 m 90 60 l S 0 70 m 90 70 l S 0 80 m 90 80 l S 0 90 m 90 90 l S 0 100 m 90 100 l S}
+\axo at setObject{316}%
+{AxoLine 10 90 75 90 5 0  1 0  0  0.2 1.3 1.25 1  1   0 0.5;}%
+{ 0.5 w q 5.5 w 10 90 m 75 90 l S 4.5 w 0 0 0 0 K 10 90 m 75 90 l S Q 1 0 0 1 10 90 cm 1 0 0 1 65 0 cm q [] 0 d 1 w q 9.75 0 m -9.75 7.8 l -5.85 0 l -9.75 -7.8 l 0 0 0 0 k h f Q q 9.75 0 m -9.75 7.8 l -5.85 0 l -9.75 -7.8 l s Q Q}
+\axo at setObject{317}%
+{AxoLine 10 70 80 70 2 0  1 0  0  0.2 1.5 1.25 1  1   0 0.5;}%
+{ 0.5 w q 2.5 w 10 70 m 80 70 l S 1.5 w 0 0 0 0 K 10 70 m 80 70 l S Q 1 0 0 1 10 70 cm 1 0 0 1 70 0 cm q [] 0 d 1 w q 6.525 0 m -6.525 5.22 l -3.915 0 l -6.525 -5.22 l 0 0 0 0 k h f Q q 6.525 0 m -6.525 5.22 l -3.915 0 l -6.525 -5.22 l s Q Q}
+\axo at setObject{318}%
+{AxoLine 10 50 80 50 2 0  1 0  0  0.2 1 1.25 1  1   0 0.5;}%
+{ 0.5 w q 2.5 w 10 50 m 80 50 l S 1.5 w 0 0 0 0 K 10 50 m 80 50 l S Q 1 0 0 1 10 50 cm 1 0 0 1 70 0 cm q [] 0 d 1 w q 4.35 0 m -4.35 3.48 l -2.61 0 l -4.35 -3.48 l 0 0 0 0 k h f Q q 4.35 0 m -4.35 3.48 l -2.61 0 l -4.35 -3.48 l s Q Q}
+\axo at setObject{319}%
+{AxoLine 10 30 80 30 2 0  1 0  0  0.2 1 1.25 0.5 1   0 0.5;}%
+{ 0.5 w q 2.5 w 10 30 m 80 30 l S 1.5 w 0 0 0 0 K 10 30 m 80 30 l S Q 1 0 0 1 10 30 cm 1 0 0 1 35 0 cm q [] 0 d 1 w q 4.35 0 m -4.35 3.48 l -2.61 0 l -4.35 -3.48 l 0 0 0 0 k h f Q q 4.35 0 m -4.35 3.48 l -2.61 0 l -4.35 -3.48 l s Q Q}
+\axo at setObject{320}%
+{AxoLine 10 10 80 10 2 0  1 0  0  0.2 1 1.25 0.5 1   0 0.5;}%
+{ 0.5 w q 2.5 w 10 10 m 80 10 l S 1.5 w 0 0 0 0 K 10 10 m 80 10 l S Q 1 0 0 1 10 10 cm 1 0 0 1 35 0 cm q [] 0 d 1 w q 4.35 0 m -4.35 3.48 l -2.61 0 l -4.35 -3.48 l 0 0 0 0 k h f Q q 4.35 0 m -4.35 3.48 l -2.61 0 l -4.35 -3.48 l s Q Q}
+\axo at setObject{321}%
+{Grid 0 0 10 10 9 8 0.5;}%
+{ 0.5 w 0 0 m 0 80 l S 10 0 m 10 80 l S 20 0 m 20 80 l S 30 0 m 30 80 l S 40 0 m 40 80 l S 50 0 m 50 80 l S 60 0 m 60 80 l S 70 0 m 70 80 l S 80 0 m 80 80 l S 90 0 m 90 80 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S 0 60 m 90 60 l S 0 70 m 90 70 l S 0 80 m 90 80 l S}
+\axo at setObject{322}%
+{AxoLine 10 70 80 70 0 3   0  0  0  0.2 1.5 1.25 0.3  1   0 0.5;}%
+{ 0.5 w [ 2.917] 1.458 d 10 70 m 80 70 l S 1 0 0 1 10 70 cm 1 0 0 1 23.333 0 cm q [] 0 d 4.688 0 m -4.688 3.75 l -2.812 0 l -4.688 -3.75 l h f Q}
+\axo at setObject{323}%
+{AxoLine 10 50 80 50 0 3   0  0  0  0.2 1 1.25 0.5 1   0 0.5;}%
+{ 0.5 w [ 2.917] 1.458 d 10 50 m 80 50 l S 1 0 0 1 10 50 cm 1 0 0 1 35 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
+\axo at setObject{324}%
+{AxoLine 10 30 80 30 0 3   0  0  0  0.2 1 1.25 0.5 1   0 0.5;}%
+{ 0.5 w [ 2.917] 1.458 d 10 30 m 80 30 l S 1 0 0 1 10 30 cm 1 0 0 1 35 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
+\axo at setObject{325}%
+{AxoLine 10 10 80 10 0 3   0  0  0  0.2 1 1.25 0.5 1   0 0.5;}%
+{ 0.5 w [ 2.917] 1.458 d 10 10 m 80 10 l S 1 0 0 1 10 10 cm 1 0 0 1 35 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
+\axo at setObject{326}%
+{Grid 0 0 10 10 9 8 0.5;}%
+{ 0.5 w 0 0 m 0 80 l S 10 0 m 10 80 l S 20 0 m 20 80 l S 30 0 m 30 80 l S 40 0 m 40 80 l S 50 0 m 50 80 l S 60 0 m 60 80 l S 70 0 m 70 80 l S 80 0 m 80 80 l S 90 0 m 90 80 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S 0 60 m 90 60 l S 0 70 m 90 70 l S 0 80 m 90 80 l S}
+\axo at setObject{327}%
+{AxoLine 10 70 80 70 1.5 3   0.5 0  0  0.2 1.5 1.25 1  1   0 0.5;}%
+{ 0.5 w [ 2.917] 1.458 d q 2 w 10 70 m 80 70 l S 1 w 0 0 0 0 K 10 70 m 80 70 l S Q 1 0 0 1 10 70 cm 1 0 0 1 70 0 cm q [] 0 d 0.5 w q 5.737 0 m -5.737 4.59 l -3.442 0 l -5.737 -4.59 l 0 0 0 0 k h f Q q 5.737 0 m -5.737 4.59 l -3.442 0 l -5.737 -4.59 l s Q Q}
+\axo at setObject{328}%
+{AxoLine 10 50 80 50 1.5 3   0.5 0  0  0.2 1 1.25 0.5 1   0 0.5;}%
+{ 0.5 w [ 2.917] 1.458 d q 2 w 10 50 m 80 50 l S 1 w 0 0 0 0 K 10 50 m 80 50 l S Q 1 0 0 1 10 50 cm 1 0 0 1 35 0 cm q [] 0 d 0.5 w q 3.825 0 m -3.825 3.06 l -2.295 0 l -3.825 -3.06 l 0 0 0 0 k h f Q q 3.825 0 m -3.825 3.06 l -2.295 0 l -3.825 -3.06 l s Q Q}
+\axo at setObject{329}%
+{AxoLine 10 30 80 30 1.5 3   0.5 0  0  0.2 1 1.25 0.5 1   0 0.5;}%
+{ 0.5 w [ 2.917] 1.458 d q 2 w 10 30 m 80 30 l S 1 w 0 0 0 0 K 10 30 m 80 30 l S Q 1 0 0 1 10 30 cm 1 0 0 1 35 0 cm q [] 0 d 0.5 w q 3.825 0 m -3.825 3.06 l -2.295 0 l -3.825 -3.06 l 0 0 0 0 k h f Q q 3.825 0 m -3.825 3.06 l -2.295 0 l -3.825 -3.06 l s Q Q}
+\axo at setObject{330}%
+{AxoLine 10 10 80 10 1.5 3   0.5 0  0  0.2 1 1.25 0.5 1   0 0.5;}%
+{ 0.5 w [ 2.917] 1.458 d q 2 w 10 10 m 80 10 l S 1 w 0 0 0 0 K 10 10 m 80 10 l S Q 1 0 0 1 10 10 cm 1 0 0 1 35 0 cm q [] 0 d 0.5 w q 3.825 0 m -3.825 3.06 l -2.295 0 l -3.825 -3.06 l 0 0 0 0 k h f Q q 3.825 0 m -3.825 3.06 l -2.295 0 l -3.825 -3.06 l s Q Q}
+\axo at setObject{331}%
+{Grid 0 0 10 10 9 8 0.5;}%
+{ 0.5 w 0 0 m 0 80 l S 10 0 m 10 80 l S 20 0 m 20 80 l S 30 0 m 30 80 l S 40 0 m 40 80 l S 50 0 m 50 80 l S 60 0 m 60 80 l S 70 0 m 70 80 l S 80 0 m 80 80 l S 90 0 m 90 80 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S 0 60 m 90 60 l S 0 70 m 90 70 l S 0 80 m 90 80 l S}
+\axo at setObject{332}%
+{AxoLine 10 70 80 70 0 3   0  0  0  0.2 1.5 1.25 0  1   1 0.5;}%
+{ 0.5 w [ 2.917] 1.458 d 10 70 m 80 70 l S 1 0 0 1 10 70 cm q [] 0 d -4.688 0 m 4.688 3.75 l 2.812 0 l 4.688 -3.75 l h f Q}
+\axo at setObject{333}%
+{AxoLine 10 50 80 50 0 3   0  0  0  0.2 1 1.25 1  1   0 0.5;}%
+{ 0.5 w [ 2.917] 1.458 d 10 50 m 80 50 l S 1 0 0 1 10 50 cm 1 0 0 1 70 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
+\axo at setObject{334}%
+{AxoLine 10 30 80 30 0 3   0  0  0  0.2 1 1.25 1  1   0 0.5;}%
+{ 0.5 w [ 2.917] 1.458 d 10 30 m 80 30 l S 1 0 0 1 10 30 cm 1 0 0 1 70 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
+\axo at setObject{335}%
+{AxoLine 10 10 80 10 0 3   0  0  0  0.2 1 1.25 1  1   0 0.5;}%
+{ 0.5 w [ 2.917] 1.458 d 10 10 m 80 10 l S 1 0 0 1 10 10 cm 1 0 0 1 70 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
+\axo at setObject{336}%
+{Grid 0 0 10 10 9 14 0.5;}%
+{ 0.5 w 0 0 m 0 140 l S 10 0 m 10 140 l S 20 0 m 20 140 l S 30 0 m 30 140 l S 40 0 m 40 140 l S 50 0 m 50 140 l S 60 0 m 60 140 l S 70 0 m 70 140 l S 80 0 m 80 140 l S 90 0 m 90 140 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S 0 60 m 90 60 l S 0 70 m 90 70 l S 0 80 m 90 80 l S 0 90 m 90 90 l S 0 100 m 90 100 l S 0 110 m 90 110 l S 0 120 m 90 120 l S 0 130 m 90 130 l S 0 140 m 90 140 l S}
+\axo at setObject{337}%
+{AxoArc 45 95 40 160 20 0 0  0  0  0  0.2 1 1.25 1  1   0 1 0.5;}%
+{ 0.5 w 1 0 0 1 45 95 cm 37.588 13.681 m 31.836 29.483 16.816 40 0 40 c -16.816 40 -31.836 29.483 -37.588 13.681 c S 1 0 0 1 37.588 13.681 cm -0.342 0.94 -0.94 -0.342 0 0 cm q [] 0 d -3.125 0 m 3.125 2.5 l 1.875 0 l 3.125 -2.5 l h f Q}
+\axo at setObject{338}%
+{AxoArc 45 80 40 160 20 0 0  0  0  0  0.2 1 1.25 1  1   0 1 0.5;}%
+{ 0.5 w 1 0 0 1 45 80 cm 37.588 13.681 m 31.836 29.483 16.816 40 0 40 c -16.816 40 -31.836 29.483 -37.588 13.681 c S 1 0 0 1 37.588 13.681 cm -0.342 0.94 -0.94 -0.342 0 0 cm q [] 0 d -3.125 0 m 3.125 2.5 l 1.875 0 l 3.125 -2.5 l h f Q}
+\axo at setObject{339}%
+{AxoArc 45 65 40 160 20 0 0  0  0  0  0.2 1 1.25 0.5  1   0 1 0.5;}%
+{ 0.5 w 1 0 0 1 45 65 cm 37.588 13.681 m 31.836 29.483 16.816 40 0 40 c -16.816 40 -31.836 29.483 -37.588 13.681 c S 1 0 0 1 0 40 cm -1 0 0 -1 0 0 cm q [] 0 d -3.125 0 m 3.125 2.5 l 1.875 0 l 3.125 -2.5 l h f Q}
+\axo at setObject{340}%
+{AxoArc 45 50 40 160 20 0 0  0  0  0  0.2 1 1.25 0.5 1   0 1 0.5;}%
+{ 0.5 w 1 0 0 1 45 50 cm 37.588 13.681 m 31.836 29.483 16.816 40 0 40 c -16.816 40 -31.836 29.483 -37.588 13.681 c S 1 0 0 1 0 40 cm -1 0 0 -1 0 0 cm q [] 0 d -3.125 0 m 3.125 2.5 l 1.875 0 l 3.125 -2.5 l h f Q}
+\axo at setObject{341}%
+{AxoArc 45 35 40 20 160 0 0  0  0  0  0.2 1 1.25 1  1   0 0 0.5;}%
+{ 0.5 w 1 0 0 1 45 35 cm 37.588 13.681 m 31.836 29.483 16.816 40 0 40 c -16.816 40 -31.836 29.483 -37.588 13.681 c S 1 0 0 1 -37.588 13.681 cm -0.342 -0.94 0.94 -0.342 0 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
+\axo at setObject{342}%
+{AxoArc 45 20 40 20 160 0 0  0  0  0  0.2 1 1.25 1  1   0 0 0.5;}%
+{ 0.5 w 1 0 0 1 45 20 cm 37.588 13.681 m 31.836 29.483 16.816 40 0 40 c -16.816 40 -31.836 29.483 -37.588 13.681 c S 1 0 0 1 -37.588 13.681 cm -0.342 -0.94 0.94 -0.342 0 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
+\axo at setObject{343}%
+{AxoArc 45 5 40 20 160 0 0  0  0  0  0.2 1 1.25 0.5  1   0 0 0.5;}%
+{ 0.5 w 1 0 0 1 45 5 cm 37.588 13.681 m 31.836 29.483 16.816 40 0 40 c -16.816 40 -31.836 29.483 -37.588 13.681 c S 1 0 0 1 0 40 cm -1 0 0 -1 0 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
+\axo at setObject{344}%
+{AxoArc 45 -10 40 20 160 0 0  0  0  0  0.2 1 1.25 0.5 1   0 0 0.5;}%
+{ 0.5 w 1 0 0 1 45 -10 cm 37.588 13.681 m 31.836 29.483 16.816 40 0 40 c -16.816 40 -31.836 29.483 -37.588 13.681 c S 1 0 0 1 0 40 cm -1 0 0 -1 0 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
+\axo at setObject{345}%
+{Grid 0 0 10 10 9 11 0.5;}%
+{ 0.5 w 0 0 m 0 110 l S 10 0 m 10 110 l S 20 0 m 20 110 l S 30 0 m 30 110 l S 40 0 m 40 110 l S 50 0 m 50 110 l S 60 0 m 60 110 l S 70 0 m 70 110 l S 80 0 m 80 110 l S 90 0 m 90 110 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S 0 60 m 90 60 l S 0 70 m 90 70 l S 0 80 m 90 80 l S 0 90 m 90 90 l S 0 100 m 90 100 l S 0 110 m 90 110 l S}
+\axo at setObject{346}%
+{AxoArc 45 65 40 160 20 0 3   0  0  0  0.2 1 1.25 0.5  1   0 1 0.5;}%
+{ 0.5 w [ 3.054] 1.527 d 1 0 0 1 45 65 cm 37.588 13.681 m 31.836 29.483 16.816 40 0 40 c -16.816 40 -31.836 29.483 -37.588 13.681 c S 1 0 0 1 0 40 cm -1 0 0 -1 0 0 cm q [] 0 d -3.125 0 m 3.125 2.5 l 1.875 0 l 3.125 -2.5 l h f Q}
+\axo at setObject{347}%
+{AxoArc 45 50 40 160 20 0 3   0  0  0  0.2 1 1.25 0.5 1   0 1 0.5;}%
+{ 0.5 w [ 3.054] 1.527 d 1 0 0 1 45 50 cm 37.588 13.681 m 31.836 29.483 16.816 40 0 40 c -16.816 40 -31.836 29.483 -37.588 13.681 c S 1 0 0 1 0 40 cm -1 0 0 -1 0 0 cm q [] 0 d -3.125 0 m 3.125 2.5 l 1.875 0 l 3.125 -2.5 l h f Q}
+\axo at setObject{348}%
+{AxoArc 45 35 40 20 160 0 3   0  0  0  0.2 1 1.25 1  1   0 0 0.5;}%
+{ 0.5 w [ 3.054] 1.527 d 1 0 0 1 45 35 cm 37.588 13.681 m 31.836 29.483 16.816 40 0 40 c -16.816 40 -31.836 29.483 -37.588 13.681 c S 1 0 0 1 -37.588 13.681 cm -0.342 -0.94 0.94 -0.342 0 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
+\axo at setObject{349}%
+{AxoArc 45 20 40 20 160 0 3   0  0  0  0.2 1 1.25 1  1   0 0 0.5;}%
+{ 0.5 w [ 3.054] 1.527 d 1 0 0 1 45 20 cm 37.588 13.681 m 31.836 29.483 16.816 40 0 40 c -16.816 40 -31.836 29.483 -37.588 13.681 c S 1 0 0 1 -37.588 13.681 cm -0.342 -0.94 0.94 -0.342 0 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
+\axo at setObject{350}%
+{AxoArc 45 5 40 20 160 0 3   0  0  0  0.2 1 1.25 0.5  1   0 0 0.5;}%
+{ 0.5 w [ 3.054] 1.527 d 1 0 0 1 45 5 cm 37.588 13.681 m 31.836 29.483 16.816 40 0 40 c -16.816 40 -31.836 29.483 -37.588 13.681 c S 1 0 0 1 0 40 cm -1 0 0 -1 0 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
+\axo at setObject{351}%
+{AxoArc 45 -10 40 20 160 0 3   0  0  0  0.2 1 1.25 0.5 1   0 0 0.5;}%
+{ 0.5 w [ 3.054] 1.527 d 1 0 0 1 45 -10 cm 37.588 13.681 m 31.836 29.483 16.816 40 0 40 c -16.816 40 -31.836 29.483 -37.588 13.681 c S 1 0 0 1 0 40 cm -1 0 0 -1 0 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
+\axo at setObject{352}%
+{Grid 0 0 10 10 9 8 0.5;}%
+{ 0.5 w 0 0 m 0 80 l S 10 0 m 10 80 l S 20 0 m 20 80 l S 30 0 m 30 80 l S 40 0 m 40 80 l S 50 0 m 50 80 l S 60 0 m 60 80 l S 70 0 m 70 80 l S 80 0 m 80 80 l S 90 0 m 90 80 l S 0 0 m 90 0 l S 0 10 m 90 10 l S 0 20 m 90 20 l S 0 30 m 90 30 l S 0 40 m 90 40 l S 0 50 m 90 50 l S 0 60 m 90 60 l S 0 70 m 90 70 l S 0 80 m 90 80 l S}
+\axo at setObject{353}%
+{AxoArc 45 35 40 20 160 1.5 3   0  0  0  0.2 1 1.25 0.5  1   0 0 0.5;}%
+{ 0.5 w [ 3.054] 1.527 d 1 0 0 1 45 35 cm q 1.019 0 0 1.019 0 0 cm 37.588 13.681 m 31.836 29.483 16.816 40 0 40 c -16.816 40 -31.836 29.483 -37.588 13.681 c S Q q 0.981 0 0 0.981 0 0 cm 37.588 13.681 m 31.836 29.483 16.816 40 0 40 c -16.816 40 -31.836 29.483 -37.588 13.681 c S Q 1 0 0 1 0 40 cm -1 0 0 -1 0 0 cm q [] 0 d 3.825 0 m -3.825 3.06 l -2.295 0 l -3.825 -3.06 l h f Q}
+\axo at setObject{354}%
+{AxoArc 45 20 40 20 160 1.5 3   0  0  0  0.2 1 1.25 0.5 1   0 0 0.5;}%
+{ 0.5 w [ 3.054] 1.527 d 1 0 0 1 45 20 cm q 1.019 0 0 1.019 0 0 cm 37.588 13.681 m 31.836 29.483 16.816 40 0 40 c -16.816 40 -31.836 29.483 -37.588 13.681 c S Q q 0.981 0 0 0.981 0 0 cm 37.588 13.681 m 31.836 29.483 16.816 40 0 40 c -16.816 40 -31.836 29.483 -37.588 13.681 c S Q 1 0 0 1 0 40 cm -1 0 0 -1 0 0 cm q [] 0 d 3.825 0 m -3.825 3.06 l -2.295 0 l -3.825 -3.06 l h f Q}
+\axo at setObject{355}%
+{AxoArc 45 5 40 20 160 1.5 0  0  0  0  0.2 1 1.25 0.5  1   0 0 0.5;}%
+{ 0.5 w 1 0 0 1 45 5 cm 38.292 13.937 m 32.433 30.035 17.131 40.75 0 40.75 c -17.131 40.75 -32.433 30.035 -38.292 13.937 c S 36.883 13.424 m 31.239 28.93 16.501 39.25 0 39.25 c -16.501 39.25 -31.239 28.93 -36.883 13.424 c S 1 0 0 1 0 40 cm -1 0 0 -1 0 0 cm q [] 0 d 3.825 0 m -3.825 3.06 l -2.295 0 l -3.825 -3.06 l h f Q}
+\axo at setObject{356}%
+{AxoArc 45 -10 40 20 160 1.5 0  0  0  0  0.2 1 1.25 0.5 1   0 0 0.5;}%
+{ 0.5 w 1 0 0 1 45 -10 cm 38.292 13.937 m 32.433 30.035 17.131 40.75 0 40.75 c -17.131 40.75 -32.433 30.035 -38.292 13.937 c S 36.883 13.424 m 31.239 28.93 16.501 39.25 0 39.25 c -16.501 39.25 -31.239 28.93 -36.883 13.424 c S 1 0 0 1 0 40 cm -1 0 0 -1 0 0 cm q [] 0 d 3.825 0 m -3.825 3.06 l -2.295 0 l -3.825 -3.06 l h f Q}
+\axo at setObject{357}%
+{Grid 0 0 10 10 8 8 0.5;}%
+{ 0.5 w 0 0 m 0 80 l S 10 0 m 10 80 l S 20 0 m 20 80 l S 30 0 m 30 80 l S 40 0 m 40 80 l S 50 0 m 50 80 l S 60 0 m 60 80 l S 70 0 m 70 80 l S 80 0 m 80 80 l S 0 0 m 80 0 l S 0 10 m 80 10 l S 0 20 m 80 20 l S 0 30 m 80 30 l S 0 40 m 80 40 l S 0 50 m 80 50 l S 0 60 m 80 60 l S 0 70 m 80 70 l S 0 80 m 80 80 l S}
+\axo at setObject{358}%
+{AxoBezier 10 10 30 30 10 50 30 70 0 0  0  0  0  0.2 1 1.25 0.5 1   0 0.5;}%
+{ 0.5 w 10 10 m 30 30 10 50 30 70 c S 1 0 0 1 20 40 cm 0 1 -1 0 0 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
+\axo at setObject{359}%
+{AxoBezier 30 10 50 30 30 50 50 70 0 3   0  0  0  0.2 1 1.25 0.5 1   0 0.5;}%
+{ 0.5 w [ 2.971] 1.486 d 30 10 m 50 30 30 50 50 70 c S 1 0 0 1 40 40 cm 0 1 -1 0 0 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
+\axo at setObject{360}%
+{AxoBezier 50 10 70 30 50 50 70 70 1 0  0.5  0  0  0.2 1 1.25 1  1   0 0.5;}%
+{ 0.5 w q 1.5 w 50 10 m 70 30 50 50 70 70 c S Q q 0.5 w 0 0 0 0 K 50 10 m 70 30 50 50 70 70 c S Q 1 0 0 1 70 70 cm 0.707 0.707 -0.707 0.707 0 0 cm q [] 0 d 0.5 w q 3.3 0 m -3.3 2.64 l -1.98 0 l -3.3 -2.64 l 0 0 0 0 k h f Q q 3.3 0 m -3.3 2.64 l -1.98 0 l -3.3 -2.64 l s Q Q}
+\axo at setObject{361}%
+{AxoArc 30 0 30 0 180 0 0  0  0  0  0.2 1 1.25 0.5 1   0 0 0.5;}%
+{ 0.5 w 1 0 0 1 30 0 cm 30 0 m 30 16.569 16.569 30 0 30 c -16.569 30 -30 16.569 -30 0 c S 1 0 0 1 0 30 cm -1 0 0 -1 0 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
+\axo at setObject{362}%
+{FBoxc 0 0 30.0 12.747 0.5;}%
+{ 0.5 w -15 -6.373 30 12.747 re f}
+\axo at setObject{363}%
+{Boxc 0 0 30.0 12.747 0.5;}%
+{ 0.5 w -15 -6.373 30 12.747 re S}
+\axo at setObject{364}%
+{AxoArc 30 0 30 0 180 0 0  0  0  0  0.2 1 1.25 0.5 1   0 0 0.5;}%
+{ 0.5 w 1 0 0 1 30 0 cm 30 0 m 30 16.569 16.569 30 0 30 c -16.569 30 -30 16.569 -30 0 c S 1 0 0 1 0 30 cm -1 0 0 -1 0 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
+\axo at setObject{365}%
+{FBoxc 0 0 30.0 12.747 0.5;}%
+{ 0.5 w -15 -6.373 30 12.747 re f}
+\axo at setObject{366}%
+{Boxc 0 0 30.0 12.747 0.5;}%
+{ 0.5 w -15 -6.373 30 12.747 re S}
+\axo at setObject{367}%
+{AxoArc 30 0 30 0 180 0 0  0  0  0  0.2 1 1.25 0.5 1   0 0 0.5;}%
+{ 0.5 w 1 0 0 1 30 0 cm 30 0 m 30 16.569 16.569 30 0 30 c -16.569 30 -30 16.569 -30 0 c S 1 0 0 1 0 30 cm -1 0 0 -1 0 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
+\axo at setObject{368}%
+{FBoxc 0 0 30.0 12.747 0.5;}%
+{ 0.5 w -15 -6.373 30 12.747 re f}
+\axo at setObject{369}%
+{Boxc 0 0 30.0 12.747 0.5;}%
+{ 0.5 w -15 -6.373 30 12.747 re S}
+\axo at setObject{370}%
+{AxoArc 30 0 30 0 180 0 0  0  0  0  0.2 1 1.25 0.5 1   0 0 0.5;}%
+{ 0.5 w 1 0 0 1 30 0 cm 30 0 m 30 16.569 16.569 30 0 30 c -16.569 30 -30 16.569 -30 0 c S 1 0 0 1 0 30 cm -1 0 0 -1 0 0 cm q [] 0 d 3.125 0 m -3.125 2.5 l -1.875 0 l -3.125 -2.5 l h f Q}
+\axo at setObject{371}%
+{FBoxc 0 0 30.0 12.747 0.5;}%
+{ 0.5 w -15 -6.373 30 12.747 re f}
+\axo at setObject{372}%
+{Boxc 0 0 30.0 12.747 0.5;}%
+{ 0.5 w -15 -6.373 30 12.747 re S}
+\axo at setObject{373}%
+{AxoLine 0 10 40 30 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 0 10 m 40 30 l S}
+\axo at setObject{374}%
+{AxoLine 0 10 40 30 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 0 10 m 40 30 l S}
+\axo at setObject{375}%
+{AxoGluon 0 10 40 10 4 4 0 0 0.5;}%
+{ 0.5 w 0.5 w 1 0 0 1 0 10 cm 8 -4 m 11.6 -4 11.6 4 5.6 4 c 2 4 0.4 2 0 0 c S 8 -4 m 4.4 -4 4.4 4 12 4 c 19.6 4 19.6 -4 16 -4 c 12.4 -4 12.4 4 20 4 c 27.6 4 27.6 -4 24 -4 c 20.4 -4 20.4 4 28 4 c 35.6 4 35.6 -4 32 -4 c 28.4 -4 28.4 4 34.4 4 c 38 4 39.6 2 40 0 c S}
+\axo at setObject{376}%
+{AxoGluon 0 5 30 5 3 4 0 0 0.5;}%
+{ 0.5 w 0.5 w 1 0 0 1 0 5 cm 6 -3 m 8.7 -3 8.7 3 4.2 3 c 1.5 3 0.3 1.5 0 0 c S 6 -3 m 3.3 -3 3.3 3 9 3 c 14.7 3 14.7 -3 12 -3 c 9.3 -3 9.3 3 15 3 c 20.7 3 20.7 -3 18 -3 c 15.3 -3 15.3 3 21 3 c 26.7 3 26.7 -3 24 -3 c 21.3 -3 21.3 3 25.8 3 c 28.5 3 29.7 1.5 30 0 c S}
+\axo at setObject{377}%
+{AxoLine 0 0 50 0 0 0  0 0 0 0 0 0 0 0  0 2;}%
+{ 2 w 0 0 m 50 0 l S}
+\axo at setObject{378}%
+{AxoLine 0 0 50 0 0 0  0 0 0 0 0 0 0 0  0 2;}%
+{ 2 w 0 0 m 50 0 l S}
+\axo at setObject{379}%
+{AxoPhoton 7 70 37 70 4 3 0 0 0.5;}%
+{ 0.5 w 1 0 0 1 7 70 cm 0 0 m 2.122 5.333 2.878 5.333 5 0 c 7.122 -5.333 7.878 -5.333 10 0 c 12.122 5.333 12.878 5.333 15 0 c 17.122 -5.333 17.878 -5.333 20 0 c 22.122 5.333 22.878 5.333 25 0 c 27.122 -5.333 27.878 -5.333 30 0 c S}
+\axo at setObject{380}%
+{AxoPhoton 7 70 37 70 -4 3 0 0 0.5;}%
+{ 0.5 w 1 0 0 1 7 70 cm 0 0 m 2.122 -5.333 2.878 -5.333 5 0 c 7.122 5.333 7.878 5.333 10 0 c 12.122 -5.333 12.878 -5.333 15 0 c 17.122 5.333 17.878 5.333 20 0 c 22.122 -5.333 22.878 -5.333 25 0 c 27.122 5.333 27.878 5.333 30 0 c S}
+\axo at setObject{381}%
+{AxoGluonArc 70 70 30 90 270 3 10 0 0 0 0.5;}%
+{ 0.5 w 0.5 w 1 0 0 1 70 70 cm 0 1 -1 0 0 0 cm 25.906 7.607 m 25.22 9.945 31.179 12.295 32.343 6.553 c 33.19 2.374 31.497 0.45 30 0 c S 25.906 7.607 m 26.593 5.269 33.268 6.592 30.018 13.709 c 26.768 20.826 21.397 16.647 22.714 14.597 c 24.031 12.548 30.064 15.697 24.94 21.61 c 19.816 27.524 15.84 22.001 17.681 20.405 c 19.523 18.81 24.423 23.531 17.841 27.761 c 11.259 31.991 9 25.572 11.216 24.56 c 13.433 23.548 16.804 29.459 9.297 31.663 c 1.79 33.868 1.431 27.072 3.843 26.725 c 6.254 26.378 7.824 33 0 33 c -7.824 33 -6.254 26.378 -3.843 26.725 c -1.431 27.072 -1.79 33.868 -9.297 31.663 c -16.804 29.459 -13.433 23.548 -11.216 24.56 c -9 25.572 -11.259 31.991 -17.841 27.761 c -24.423 23.531 -19.523 18.81 -17.681 20.405 c -15.84 22.001 -19.816 27.524 -24.94 21.61 c -30.064 15.697 -24.031 12.548 -22.714 14.597 c -21.397 16.647 -26.768 20.826 -30.018 13.709 c -33.268 6.592 -26.593 5.269 -25.906 7.607 c -25.22 9.945 -31.179 12.295 -32.343 6.553 c -33.19 2.374 -31.497 0.45 -30 0 c S}
+\axo at setObject{382}%
+{AxoLine 100 100 70 100 0 0  0.5 0  0  0.2 0.8 1.25 0.5 1   0 0.5;}%
+{ 0.5 w 100 100 m 70 100 l S 1 0 0 1 100 100 cm -1 0 0 -1 0 0 cm 1 0 0 1 15 0 cm q [] 0 d 0.5 w q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l 0 0 0 0 k h f Q q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l s Q Q}
+\axo at setObject{383}%
+{AxoLine 130 100 100 100 0 0  0.5 0  0  0.2 0.8 1.25 0.5 1   0 0.5;}%
+{ 0.5 w 130 100 m 100 100 l S 1 0 0 1 130 100 cm -1 0 0 -1 0 0 cm 1 0 0 1 15 0 cm q [] 0 d 0.5 w q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l 0 0 0 0 k h f Q q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l s Q Q}
+\axo at setObject{384}%
+{AxoLine 70 100 130 40 0 0  0.5 0  0  0.2 0.8 1.25 0.25  1   0 0.5;}%
+{ 0.5 w 70 100 m 130 40 l S 1 0 0 1 70 100 cm 0.707 -0.707 0.707 0.707 0 0 cm 1 0 0 1 21.213 0 cm q [] 0 d 0.5 w q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l 0 0 0 0 k h f Q q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l s Q Q}
+\axo at setObject{385}%
+{AxoLine 100 40 70 40 0 0  0.5 0  0  0.2 0.8 1.25 0.5 1   0 0.5;}%
+{ 0.5 w 100 40 m 70 40 l S 1 0 0 1 100 40 cm -1 0 0 -1 0 0 cm 1 0 0 1 15 0 cm q [] 0 d 0.5 w q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l 0 0 0 0 k h f Q q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l s Q Q}
+\axo at setObject{386}%
+{AxoLine 130 40 100 40 0 0  0.5 0  0  0.2 0.8 1.25 0.5 1   0 0.5;}%
+{ 0.5 w 130 40 m 100 40 l S 1 0 0 1 130 40 cm -1 0 0 -1 0 0 cm 1 0 0 1 15 0 cm q [] 0 d 0.5 w q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l 0 0 0 0 k h f Q q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l s Q Q}
+\axo at setObject{387}%
+{AxoLine 70 40 130 100 0 0  0.5 0  0  0.2 0.8 1.25 0.75  1   0 0.5;}%
+{ 0.5 w 70 40 m 130 100 l S 1 0 0 1 70 40 cm 0.707 0.707 -0.707 0.707 0 0 cm 1 0 0 1 63.64 0 cm q [] 0 d 0.5 w q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l 0 0 0 0 k h f Q q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l s Q Q}
+\axo at setObject{388}%
+{AxoGluonArc 130 70 30 270 450 3 10 0 0 0 0.5;}%
+{ 0.5 w 0.5 w 1 0 0 1 130 70 cm 0 -1 1 0 0 0 cm 25.906 7.607 m 25.22 9.945 31.179 12.295 32.343 6.553 c 33.19 2.374 31.497 0.45 30 0 c S 25.906 7.607 m 26.593 5.269 33.268 6.592 30.018 13.709 c 26.768 20.826 21.397 16.647 22.714 14.597 c 24.031 12.548 30.064 15.697 24.94 21.61 c 19.816 27.524 15.84 22.001 17.681 20.405 c 19.523 18.81 24.423 23.531 17.841 27.761 c 11.259 31.991 9 25.572 11.216 24.56 c 13.433 23.548 16.804 29.459 9.297 31.663 c 1.79 33.868 1.431 27.072 3.843 26.725 c 6.254 26.378 7.824 33 0 33 c -7.824 33 -6.254 26.378 -3.843 26.725 c -1.431 27.072 -1.79 33.868 -9.297 31.663 c -16.804 29.459 -13.433 23.548 -11.216 24.56 c -9 25.572 -11.259 31.991 -17.841 27.761 c -24.423 23.531 -19.523 18.81 -17.681 20.405 c -15.84 22.001 -19.816 27.524 -24.94 21.61 c -30.064 15.697 -24.031 12.548 -22.714 14.597 c -21.397 16.647 -26.768 20.826 -30.018 13.709 c -33.268 6.592 -26.593 5.269 -25.906 7.607 c -25.22 9.945 -31.179 12.295 -32.343 6.553 c -33.19 2.374 -31.497 0.45 -30 0 c S}
+\axo at setObject{389}%
+{AxoPhoton 163 70 193 70 4 3 0 0 0.5;}%
+{ 0.5 w 1 0 0 1 163 70 cm 0 0 m 2.122 5.333 2.878 5.333 5 0 c 7.122 -5.333 7.878 -5.333 10 0 c 12.122 5.333 12.878 5.333 15 0 c 17.122 -5.333 17.878 -5.333 20 0 c 22.122 5.333 22.878 5.333 25 0 c 27.122 -5.333 27.878 -5.333 30 0 c S}
+\axo at setObject{390}%
+{AxoPhoton 163 70 193 70 -4 3 0 0 0.5;}%
+{ 0.5 w 1 0 0 1 163 70 cm 0 0 m 2.122 -5.333 2.878 -5.333 5 0 c 7.122 5.333 7.878 5.333 10 0 c 12.122 -5.333 12.878 -5.333 15 0 c 17.122 5.333 17.878 5.333 20 0 c 22.122 -5.333 22.878 -5.333 25 0 c 27.122 5.333 27.878 5.333 30 0 c S}
+\axo at setObject{391}%
+{AxoGluon 100 100 100 130 3 4 0 0 0.5;}%
+{ 0.5 w 0.5 w 1 0 0 1 100 100 cm 0 1 -1 0 0 0 cm 6 -3 m 8.7 -3 8.7 3 4.2 3 c 1.5 3 0.3 1.5 0 0 c S 6 -3 m 3.3 -3 3.3 3 9 3 c 14.7 3 14.7 -3 12 -3 c 9.3 -3 9.3 3 15 3 c 20.7 3 20.7 -3 18 -3 c 15.3 -3 15.3 3 21 3 c 26.7 3 26.7 -3 24 -3 c 21.3 -3 21.3 3 25.8 3 c 28.5 3 29.7 1.5 30 0 c S}
+\axo at setObject{392}%
+{AxoGluon 100 40 100 10 3 4 0 0 0.5;}%
+{ 0.5 w 0.5 w 1 0 0 1 100 40 cm 0 -1 1 0 0 0 cm 6 -3 m 8.7 -3 8.7 3 4.2 3 c 1.5 3 0.3 1.5 0 0 c S 6 -3 m 3.3 -3 3.3 3 9 3 c 14.7 3 14.7 -3 12 -3 c 9.3 -3 9.3 3 15 3 c 20.7 3 20.7 -3 18 -3 c 15.3 -3 15.3 3 21 3 c 26.7 3 26.7 -3 24 -3 c 21.3 -3 21.3 3 25.8 3 c 28.5 3 29.7 1.5 30 0 c S}
+\axo at setObject{393}%
+{Vertex 37 70 2 0.5;}%
+{ 0.5 w 1 0 0 1 37 70 cm -2 0 m -2 1.105 -1.105 2 0 2 c 1.105 2 2 1.105 2 0 c 2 -1.105 1.105 -2 0 -2 c -1.105 -2 -2 -1.105 -2 0 c f }
+\axo at setObject{394}%
+{Vertex 163 70 2 0.5;}%
+{ 0.5 w 1 0 0 1 163 70 cm -2 0 m -2 1.105 -1.105 2 0 2 c 1.105 2 2 1.105 2 0 c 2 -1.105 1.105 -2 0 -2 c -1.105 -2 -2 -1.105 -2 0 c f }
+\axo at setObject{395}%
+{Vertex 70 100 2 0.5;}%
+{ 0.5 w 1 0 0 1 70 100 cm -2 0 m -2 1.105 -1.105 2 0 2 c 1.105 2 2 1.105 2 0 c 2 -1.105 1.105 -2 0 -2 c -1.105 -2 -2 -1.105 -2 0 c f }
+\axo at setObject{396}%
+{Vertex 70 40 2 0.5;}%
+{ 0.5 w 1 0 0 1 70 40 cm -2 0 m -2 1.105 -1.105 2 0 2 c 1.105 2 2 1.105 2 0 c 2 -1.105 1.105 -2 0 -2 c -1.105 -2 -2 -1.105 -2 0 c f }
+\axo at setObject{397}%
+{Vertex 130 100 2 0.5;}%
+{ 0.5 w 1 0 0 1 130 100 cm -2 0 m -2 1.105 -1.105 2 0 2 c 1.105 2 2 1.105 2 0 c 2 -1.105 1.105 -2 0 -2 c -1.105 -2 -2 -1.105 -2 0 c f }
+\axo at setObject{398}%
+{Vertex 130 40 2 0.5;}%
+{ 0.5 w 1 0 0 1 130 40 cm -2 0 m -2 1.105 -1.105 2 0 2 c 1.105 2 2 1.105 2 0 c 2 -1.105 1.105 -2 0 -2 c -1.105 -2 -2 -1.105 -2 0 c f }
+\axo at setObject{399}%
+{Vertex 100 100 2 0.5;}%
+{ 0.5 w 1 0 0 1 100 100 cm -2 0 m -2 1.105 -1.105 2 0 2 c 1.105 2 2 1.105 2 0 c 2 -1.105 1.105 -2 0 -2 c -1.105 -2 -2 -1.105 -2 0 c f }
+\axo at setObject{400}%
+{Vertex 100 40 2 0.5;}%
+{ 0.5 w 1 0 0 1 100 40 cm -2 0 m -2 1.105 -1.105 2 0 2 c 1.105 2 2 1.105 2 0 c 2 -1.105 1.105 -2 0 -2 c -1.105 -2 -2 -1.105 -2 0 c f }
+\axo at setObject{401}%
+{AxoPhoton 7 70 40 70 4 3 0 0 0.5;}%
+{ 0.5 w 1 0 0 1 7 70 cm 0 0 m 2.334 5.333 3.166 5.333 5.5 0 c 7.834 -5.333 8.666 -5.333 11 0 c 13.334 5.333 14.166 5.333 16.5 0 c 18.834 -5.333 19.666 -5.333 22 0 c 24.334 5.333 25.166 5.333 27.5 0 c 29.834 -5.333 30.666 -5.333 33 0 c S}
+\axo at setObject{402}%
+{AxoPhoton 7 70 40 70 -4 3 0 0 0.5;}%
+{ 0.5 w 1 0 0 1 7 70 cm 0 0 m 2.334 -5.333 3.166 -5.333 5.5 0 c 7.834 5.333 8.666 5.333 11 0 c 13.334 -5.333 14.166 -5.333 16.5 0 c 18.834 5.333 19.666 5.333 22 0 c 24.334 -5.333 25.166 -5.333 27.5 0 c 29.834 5.333 30.666 5.333 33 0 c S}
+\axo at setObject{403}%
+{AxoGluonArc 70 70 30 180 270 3 5 0 0 0 0.5;}%
+{ 0.5 w 0.5 w 1 0 0 1 70 70 cm -1 0 0 -1 0 0 cm 26.08 6.988 m 25.449 9.342 31.424 11.535 32.447 6.014 c 33.159 2.173 31.497 0.412 30 0 c S 26.08 6.988 m 26.711 4.635 33.324 5.782 30.488 12.629 c 27.652 19.475 22.164 15.61 23.383 13.5 c 24.601 11.39 30.692 14.21 26.181 20.089 c 21.669 25.968 17.369 20.815 19.092 19.092 c 20.815 17.369 25.968 21.669 20.089 26.181 c 14.21 30.692 11.39 24.601 13.5 23.383 c 15.61 22.164 19.475 27.652 12.629 30.488 c 5.782 33.324 4.635 26.711 6.988 26.08 c 9.342 25.449 11.535 31.424 6.014 32.447 c 2.173 33.159 0.412 31.497 0 30 c S}
+\axo at setObject{404}%
+{AxoBezier 100 100 55 100 40 95 40 70 0 0  0.5 0  0  0.2 0.8 1.25 0.5 1   0 0.5;}%
+{ 0.5 w 100 100 m 55 100 40 95 40 70 c S 1 0 0 1 61.639 97.193 cm -0.974 -0.225 0.225 -0.974 0 0 cm q [] 0 d 0.5 w q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l 0 0 0 0 k h f Q q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l s Q Q}
+\axo at setObject{405}%
+{AxoLine 130 100 100 100 0 0  0.5 0  0  0.2 0.8 1.25 0.5 1   0 0.5;}%
+{ 0.5 w 130 100 m 100 100 l S 1 0 0 1 130 100 cm -1 0 0 -1 0 0 cm 1 0 0 1 15 0 cm q [] 0 d 0.5 w q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l 0 0 0 0 k h f Q q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l s Q Q}
+\axo at setObject{406}%
+{AxoBezier 40 70 110 70 130 70 130 40 0 0  0.5 0  0  0.2 0.8 1.25 0.37  1   0 0.5;}%
+{ 0.5 w 40 70 m 110 70 130 70 130 40 c S 1 0 0 1 79.601 69.67 cm 1 -0.03 0.03 1 0 0 cm q [] 0 d 0.5 w q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l 0 0 0 0 k h f Q q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l s Q Q}
+\axo at setObject{407}%
+{AxoLine 100 40 70 40 0 0  0.5 0  0  0.2 0.8 1.25 0.5 1   0 0.5;}%
+{ 0.5 w 100 40 m 70 40 l S 1 0 0 1 100 40 cm -1 0 0 -1 0 0 cm 1 0 0 1 15 0 cm q [] 0 d 0.5 w q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l 0 0 0 0 k h f Q q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l s Q Q}
+\axo at setObject{408}%
+{AxoLine 130 40 100 40 0 0  0.5 0  0  0.2 0.8 1.25 0.5 1   0 0.5;}%
+{ 0.5 w 130 40 m 100 40 l S 1 0 0 1 130 40 cm -1 0 0 -1 0 0 cm 1 0 0 1 15 0 cm q [] 0 d 0.5 w q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l 0 0 0 0 k h f Q q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l s Q Q}
+\axo at setObject{409}%
+{AxoLine 70 40 130 100 0 0  0.5 0  0  0.2 0.8 1.25 0.75  1   0 0.5;}%
+{ 0.5 w 70 40 m 130 100 l S 1 0 0 1 70 40 cm 0.707 0.707 -0.707 0.707 0 0 cm 1 0 0 1 63.64 0 cm q [] 0 d 0.5 w q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l 0 0 0 0 k h f Q q 2.5 0 m -2.5 2 l -1.5 0 l -2.5 -2 l s Q Q}
+\axo at setObject{410}%
+{AxoGluonArc 130 70 30 270 450 3 10 0 0 0 0.5;}%
+{ 0.5 w 0.5 w 1 0 0 1 130 70 cm 0 -1 1 0 0 0 cm 25.906 7.607 m 25.22 9.945 31.179 12.295 32.343 6.553 c 33.19 2.374 31.497 0.45 30 0 c S 25.906 7.607 m 26.593 5.269 33.268 6.592 30.018 13.709 c 26.768 20.826 21.397 16.647 22.714 14.597 c 24.031 12.548 30.064 15.697 24.94 21.61 c 19.816 27.524 15.84 22.001 17.681 20.405 c 19.523 18.81 24.423 23.531 17.841 27.761 c 11.259 31.991 9 25.572 11.216 24.56 c 13.433 23.548 16.804 29.459 9.297 31.663 c 1.79 33.868 1.431 27.072 3.843 26.725 c 6.254 26.378 7.824 33 0 33 c -7.824 33 -6.254 26.378 -3.843 26.725 c -1.431 27.072 -1.79 33.868 -9.297 31.663 c -16.804 29.459 -13.433 23.548 -11.216 24.56 c -9 25.572 -11.259 31.991 -17.841 27.761 c -24.423 23.531 -19.523 18.81 -17.681 20.405 c -15.84 22.001 -19.816 27.524 -24.94 21.61 c -30.064 15.697 -24.031 12.548 -22.714 14.597 c -21.397 16.647 -26.768 20.826 -30.018 13.709 c -33.268 6.592 -26.593 5.269 -25.906 7.607 c -25.22 9.945 -31.179 12.295 -32.343 6.553 c -33.19 2.374 -31.497 0.45 -30 0 c S}
+\axo at setObject{411}%
+{AxoPhoton 163 70 193 70 4 3 0 0 0.5;}%
+{ 0.5 w 1 0 0 1 163 70 cm 0 0 m 2.122 5.333 2.878 5.333 5 0 c 7.122 -5.333 7.878 -5.333 10 0 c 12.122 5.333 12.878 5.333 15 0 c 17.122 -5.333 17.878 -5.333 20 0 c 22.122 5.333 22.878 5.333 25 0 c 27.122 -5.333 27.878 -5.333 30 0 c S}
+\axo at setObject{412}%
+{AxoPhoton 163 70 193 70 -4 3 0 0 0.5;}%
+{ 0.5 w 1 0 0 1 163 70 cm 0 0 m 2.122 -5.333 2.878 -5.333 5 0 c 7.122 5.333 7.878 5.333 10 0 c 12.122 -5.333 12.878 -5.333 15 0 c 17.122 5.333 17.878 5.333 20 0 c 22.122 -5.333 22.878 -5.333 25 0 c 27.122 5.333 27.878 5.333 30 0 c S}
+\axo at setObject{413}%
+{AxoGluon 100 100 100 130 3 4 0 0 0.5;}%
+{ 0.5 w 0.5 w 1 0 0 1 100 100 cm 0 1 -1 0 0 0 cm 6 -3 m 8.7 -3 8.7 3 4.2 3 c 1.5 3 0.3 1.5 0 0 c S 6 -3 m 3.3 -3 3.3 3 9 3 c 14.7 3 14.7 -3 12 -3 c 9.3 -3 9.3 3 15 3 c 20.7 3 20.7 -3 18 -3 c 15.3 -3 15.3 3 21 3 c 26.7 3 26.7 -3 24 -3 c 21.3 -3 21.3 3 25.8 3 c 28.5 3 29.7 1.5 30 0 c S}
+\axo at setObject{414}%
+{AxoGluon 100 40 100 10 3 4 0 0 0.5;}%
+{ 0.5 w 0.5 w 1 0 0 1 100 40 cm 0 -1 1 0 0 0 cm 6 -3 m 8.7 -3 8.7 3 4.2 3 c 1.5 3 0.3 1.5 0 0 c S 6 -3 m 3.3 -3 3.3 3 9 3 c 14.7 3 14.7 -3 12 -3 c 9.3 -3 9.3 3 15 3 c 20.7 3 20.7 -3 18 -3 c 15.3 -3 15.3 3 21 3 c 26.7 3 26.7 -3 24 -3 c 21.3 -3 21.3 3 25.8 3 c 28.5 3 29.7 1.5 30 0 c S}
+\axo at setObject{415}%
+{Vertex 40 70 2 0.5;}%
+{ 0.5 w 1 0 0 1 40 70 cm -2 0 m -2 1.105 -1.105 2 0 2 c 1.105 2 2 1.105 2 0 c 2 -1.105 1.105 -2 0 -2 c -1.105 -2 -2 -1.105 -2 0 c f }
+\axo at setObject{416}%
+{Vertex 163 70 2 0.5;}%
+{ 0.5 w 1 0 0 1 163 70 cm -2 0 m -2 1.105 -1.105 2 0 2 c 1.105 2 2 1.105 2 0 c 2 -1.105 1.105 -2 0 -2 c -1.105 -2 -2 -1.105 -2 0 c f }
+\axo at setObject{417}%
+{Vertex 70 40 2 0.5;}%
+{ 0.5 w 1 0 0 1 70 40 cm -2 0 m -2 1.105 -1.105 2 0 2 c 1.105 2 2 1.105 2 0 c 2 -1.105 1.105 -2 0 -2 c -1.105 -2 -2 -1.105 -2 0 c f }
+\axo at setObject{418}%
+{Vertex 130 100 2 0.5;}%
+{ 0.5 w 1 0 0 1 130 100 cm -2 0 m -2 1.105 -1.105 2 0 2 c 1.105 2 2 1.105 2 0 c 2 -1.105 1.105 -2 0 -2 c -1.105 -2 -2 -1.105 -2 0 c f }
+\axo at setObject{419}%
+{Vertex 130 40 2 0.5;}%
+{ 0.5 w 1 0 0 1 130 40 cm -2 0 m -2 1.105 -1.105 2 0 2 c 1.105 2 2 1.105 2 0 c 2 -1.105 1.105 -2 0 -2 c -1.105 -2 -2 -1.105 -2 0 c f }
+\axo at setObject{420}%
+{Vertex 100 100 2 0.5;}%
+{ 0.5 w 1 0 0 1 100 100 cm -2 0 m -2 1.105 -1.105 2 0 2 c 1.105 2 2 1.105 2 0 c 2 -1.105 1.105 -2 0 -2 c -1.105 -2 -2 -1.105 -2 0 c f }
+\axo at setObject{421}%
+{Vertex 100 40 2 0.5;}%
+{ 0.5 w 1 0 0 1 100 40 cm -2 0 m -2 1.105 -1.105 2 0 2 c 1.105 2 2 1.105 2 0 c 2 -1.105 1.105 -2 0 -2 c -1.105 -2 -2 -1.105 -2 0 c f }
+\axo at setObject{422}%
+{AxoArc 40 35 25 90 270 0 0  0 0 0 0 0 0 0 0  0 0 0.5;}%
+{ 0.5 w 1 0 0 1 40 35 cm 0 25 m -13.807 25 -25 13.807 -25 0 c -25 -13.807 -13.807 -25 0 -25 c S}
+\axo at setObject{423}%
+{AxoArc 60 35 25 270 90 0 0  0 0 0 0 0 0 0 0  0 0 0.5;}%
+{ 0.5 w 1 0 0 1 60 35 cm 0 -25 m 13.807 -25 25 -13.807 25 0 c 25 13.807 13.807 25 0 25 c S}
+\axo at setObject{424}%
+{AxoLine 40 60 60 60 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 40 60 m 60 60 l S}
+\axo at setObject{425}%
+{AxoLine 40 10 60 10 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 40 10 m 60 10 l S}
+\axo at setObject{426}%
+{AxoLine 50 10 50 60 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 50 10 m 50 60 l S}
+\axo at setObject{427}%
+{AxoLine 0 35 15 35 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 0 35 m 15 35 l S}
+\axo at setObject{428}%
+{AxoLine 85 35 100 35 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 85 35 m 100 35 l S}
+\axo at setObject{429}%
+{AxoLine 50 35 50 60 0 0  0 0 0 0 0 0 0 0  0 3;}%
+{ 3 w 50 35 m 50 60 l S}
+\axo at setObject{430}%
+{AxoLine 40 60 50 60 0 0  0 0 0 0 0 0 0 0  0 3;}%
+{ 3 w 40 60 m 50 60 l S}
+\axo at setObject{431}%
+{AxoArc 40 35 25 90 180 0 0  0 0 0 0 0 0 0 0  0 0 3;}%
+{ 3 w 1 0 0 1 40 35 cm 0 25 m -13.807 25 -25 13.807 -25 0 c S}
+\axo at setObject{432}%
+{Vertex 50 60 1.3 3;}%
+{ 3 w 1 0 0 1 50 60 cm -1.3 0 m -1.3 0.718 -0.718 1.3 0 1.3 c 0.718 1.3 1.3 0.718 1.3 0 c 1.3 -0.718 0.718 -1.3 0 -1.3 c -0.718 -1.3 -1.3 -0.718 -1.3 0 c f }
+\axo at setObject{433}%
+{AxoArc 40 35 25 90 270 0 0  0 0 0 0 0 0 0 0  0 0 0.5;}%
+{ 0.5 w 1 0 0 1 40 35 cm 0 25 m -13.807 25 -25 13.807 -25 0 c -25 -13.807 -13.807 -25 0 -25 c S}
+\axo at setObject{434}%
+{AxoArc 60 35 25 270 90 0 0  0 0 0 0 0 0 0 0  0 0 0.5;}%
+{ 0.5 w 1 0 0 1 60 35 cm 0 -25 m 13.807 -25 25 -13.807 25 0 c 25 13.807 13.807 25 0 25 c S}
+\axo at setObject{435}%
+{AxoLine 40 60 60 60 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 40 60 m 60 60 l S}
+\axo at setObject{436}%
+{AxoLine 40 10 60 10 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 40 10 m 60 10 l S}
+\axo at setObject{437}%
+{AxoLine 50 10 50 60 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 50 10 m 50 60 l S}
+\axo at setObject{438}%
+{AxoLine 0 35 15 35 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 0 35 m 15 35 l S}
+\axo at setObject{439}%
+{AxoLine 85 35 100 35 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 85 35 m 100 35 l S}
+\axo at setObject{440}%
+{AxoLine 50 35 50 60 0 0  0 0 0 0 0 0 0 0  0 3;}%
+{ 3 w 50 35 m 50 60 l S}
+\axo at setObject{441}%
+{AxoLine 40 60 50 60 0 0  0 0 0 0 0 0 0 0  0 3;}%
+{ 3 w 40 60 m 50 60 l S}
+\axo at setObject{442}%
+{AxoArc 40 35 25 90 180 0 0  0 0 0 0 0 0 0 0  0 0 3;}%
+{ 3 w 1 0 0 1 40 35 cm 0 25 m -13.807 25 -25 13.807 -25 0 c S}
+\axo at setObject{443}%
+{Vertex 50 60 1.3 3;}%
+{ 3 w 1 0 0 1 50 60 cm -1.3 0 m -1.3 0.718 -0.718 1.3 0 1.3 c 0.718 1.3 1.3 0.718 1.3 0 c 1.3 -0.718 0.718 -1.3 0 -1.3 c -0.718 -1.3 -1.3 -0.718 -1.3 0 c f }
+\axo at setObject{444}%
+{AxoArc 40 35 25 90 270 0 0  0 0 0 0 0 0 0 0  0 0 0.5;}%
+{ 0.5 w 1 0 0 1 40 35 cm 0 25 m -13.807 25 -25 13.807 -25 0 c -25 -13.807 -13.807 -25 0 -25 c S}
+\axo at setObject{445}%
+{AxoArc 60 35 25 270 90 0 0  0 0 0 0 0 0 0 0  0 0 0.5;}%
+{ 0.5 w 1 0 0 1 60 35 cm 0 -25 m 13.807 -25 25 -13.807 25 0 c 25 13.807 13.807 25 0 25 c S}
+\axo at setObject{446}%
+{AxoLine 40 60 60 60 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 40 60 m 60 60 l S}
+\axo at setObject{447}%
+{AxoLine 40 10 60 10 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 40 10 m 60 10 l S}
+\axo at setObject{448}%
+{AxoLine 50 10 50 60 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 50 10 m 50 60 l S}
+\axo at setObject{449}%
+{AxoLine 0 35 15 35 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 0 35 m 15 35 l S}
+\axo at setObject{450}%
+{AxoLine 85 35 100 35 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 85 35 m 100 35 l S}
+\axo at setObject{451}%
+{AxoLine 40 60 50 60 0 0  0 0 0 0 0 0 0 0  0 3;}%
+{ 3 w 40 60 m 50 60 l S}
+\axo at setObject{452}%
+{AxoArc 40 35 25 90 180 0 0  0 0 0 0 0 0 0 0  0 0 3;}%
+{ 3 w 1 0 0 1 40 35 cm 0 25 m -13.807 25 -25 13.807 -25 0 c S}
+\axo at setObject{453}%
+{AxoArc 40 35 25 90 270 0 0  0 0 0 0 0 0 0 0  0 0 0.5;}%
+{ 0.5 w 1 0 0 1 40 35 cm 0 25 m -13.807 25 -25 13.807 -25 0 c -25 -13.807 -13.807 -25 0 -25 c S}
+\axo at setObject{454}%
+{AxoArc 60 35 25 270 90 0 0  0 0 0 0 0 0 0 0  0 0 0.5;}%
+{ 0.5 w 1 0 0 1 60 35 cm 0 -25 m 13.807 -25 25 -13.807 25 0 c 25 13.807 13.807 25 0 25 c S}
+\axo at setObject{455}%
+{AxoLine 40 60 60 60 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 40 60 m 60 60 l S}
+\axo at setObject{456}%
+{AxoLine 40 10 60 10 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 40 10 m 60 10 l S}
+\axo at setObject{457}%
+{AxoLine 50 10 50 60 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 50 10 m 50 60 l S}
+\axo at setObject{458}%
+{AxoLine 0 35 15 35 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 0 35 m 15 35 l S}
+\axo at setObject{459}%
+{AxoLine 85 35 100 35 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 85 35 m 100 35 l S}
+\axo at setObject{460}%
+{AxoLine 50 35 50 60 0 0  0 0 0 0 0 0 0 0  0 3;}%
+{ 3 w 50 35 m 50 60 l S}
+\axo at setObject{461}%
+{AxoLine 40 60 50 60 0 0  0 0 0 0 0 0 0 0  0 3;}%
+{ 3 w 40 60 m 50 60 l S}
+\axo at setObject{462}%
+{AxoArc 40 35 25 90 180 0 0  0 0 0 0 0 0 0 0  0 0 3;}%
+{ 3 w 1 0 0 1 40 35 cm 0 25 m -13.807 25 -25 13.807 -25 0 c S}
+\axo at setObject{463}%
+{Vertex 50 60 1.3 3;}%
+{ 3 w 1 0 0 1 50 60 cm -1.3 0 m -1.3 0.718 -0.718 1.3 0 1.3 c 0.718 1.3 1.3 0.718 1.3 0 c 1.3 -0.718 0.718 -1.3 0 -1.3 c -0.718 -1.3 -1.3 -0.718 -1.3 0 c f }
+\axo at setObject{464}%
+{AxoArc 40 35 25 90 270 0 0  0 0 0 0 0 0 0 0  0 0 0.5;}%
+{ 0.5 w 1 0 0 1 40 35 cm 0 25 m -13.807 25 -25 13.807 -25 0 c -25 -13.807 -13.807 -25 0 -25 c S}
+\axo at setObject{465}%
+{AxoArc 60 35 25 270 90 0 0  0 0 0 0 0 0 0 0  0 0 0.5;}%
+{ 0.5 w 1 0 0 1 60 35 cm 0 -25 m 13.807 -25 25 -13.807 25 0 c 25 13.807 13.807 25 0 25 c S}
+\axo at setObject{466}%
+{AxoLine 40 60 60 60 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 40 60 m 60 60 l S}
+\axo at setObject{467}%
+{AxoLine 40 10 60 10 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 40 10 m 60 10 l S}
+\axo at setObject{468}%
+{AxoLine 50 10 50 60 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 50 10 m 50 60 l S}
+\axo at setObject{469}%
+{AxoLine 0 35 15 35 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 0 35 m 15 35 l S}
+\axo at setObject{470}%
+{AxoLine 85 35 100 35 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 85 35 m 100 35 l S}
+\axo at setObject{471}%
+{AxoLine 50 10 50 60 0 0  0 0 0 0 0 0 0 0  0 3;}%
+{ 3 w 50 10 m 50 60 l S}
+\axo at setObject{472}%
+{Vertex 50 60 1.3 3;}%
+{ 3 w 1 0 0 1 50 60 cm -1.3 0 m -1.3 0.718 -0.718 1.3 0 1.3 c 0.718 1.3 1.3 0.718 1.3 0 c 1.3 -0.718 0.718 -1.3 0 -1.3 c -0.718 -1.3 -1.3 -0.718 -1.3 0 c f }
+\axo at setObject{473}%
+{AxoLine 40 60 50 60 0 0  0 0 0 0 0 0 0 0  0 3;}%
+{ 3 w 40 60 m 50 60 l S}
+\axo at setObject{474}%
+{AxoArc 40 35 25 90 180 0 0  0 0 0 0 0 0 0 0  0 0 3;}%
+{ 3 w 1 0 0 1 40 35 cm 0 25 m -13.807 25 -25 13.807 -25 0 c S}
+\axo at setObject{475}%
+{AxoArc 40 35 25 90 270 0 0  0 0 0 0 0 0 0 0  0 0 0.5;}%
+{ 0.5 w 1 0 0 1 40 35 cm 0 25 m -13.807 25 -25 13.807 -25 0 c -25 -13.807 -13.807 -25 0 -25 c S}
+\axo at setObject{476}%
+{AxoArc 60 35 25 270 90 0 0  0 0 0 0 0 0 0 0  0 0 0.5;}%
+{ 0.5 w 1 0 0 1 60 35 cm 0 -25 m 13.807 -25 25 -13.807 25 0 c 25 13.807 13.807 25 0 25 c S}
+\axo at setObject{477}%
+{AxoLine 40 60 60 60 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 40 60 m 60 60 l S}
+\axo at setObject{478}%
+{AxoLine 40 10 60 10 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 40 10 m 60 10 l S}
+\axo at setObject{479}%
+{AxoLine 50 10 50 60 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 50 10 m 50 60 l S}
+\axo at setObject{480}%
+{AxoLine 0 35 15 35 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 0 35 m 15 35 l S}
+\axo at setObject{481}%
+{AxoLine 85 35 100 35 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 85 35 m 100 35 l S}
+\axo at setObject{482}%
+{AxoLine 40 60 50 60 0 0  0 0 0 0 0 0 0 0  0 3;}%
+{ 3 w 40 60 m 50 60 l S}
+\axo at setObject{483}%
+{AxoArc 40 35 25 90 180 0 0  0 0 0 0 0 0 0 0  0 0 3;}%
+{ 3 w 1 0 0 1 40 35 cm 0 25 m -13.807 25 -25 13.807 -25 0 c S}
+\axo at setObject{484}%
+{AxoArc 40 35 25 90 270 0 0  0 0 0 0 0 0 0 0  0 0 0.5;}%
+{ 0.5 w 1 0 0 1 40 35 cm 0 25 m -13.807 25 -25 13.807 -25 0 c -25 -13.807 -13.807 -25 0 -25 c S}
+\axo at setObject{485}%
+{AxoArc 60 35 25 270 90 0 0  0 0 0 0 0 0 0 0  0 0 0.5;}%
+{ 0.5 w 1 0 0 1 60 35 cm 0 -25 m 13.807 -25 25 -13.807 25 0 c 25 13.807 13.807 25 0 25 c S}
+\axo at setObject{486}%
+{AxoLine 40 60 60 60 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 40 60 m 60 60 l S}
+\axo at setObject{487}%
+{AxoLine 40 10 60 10 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 40 10 m 60 10 l S}
+\axo at setObject{488}%
+{AxoLine 50 10 50 60 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 50 10 m 50 60 l S}
+\axo at setObject{489}%
+{AxoLine 0 35 15 35 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 0 35 m 15 35 l S}
+\axo at setObject{490}%
+{AxoLine 85 35 100 35 0 0  0 0 0 0 0 0 0 0  0 0.5;}%
+{ 0.5 w 85 35 m 100 35 l S}
+\axo at setObject{491}%
+{AxoLine 50 10 50 60 0 0  0 0 0 0 0 0 0 0  0 3;}%
+{ 3 w 50 10 m 50 60 l S}
+\axo at setObject{492}%
+{Vertex 50 60 1.3 3;}%
+{ 3 w 1 0 0 1 50 60 cm -1.3 0 m -1.3 0.718 -0.718 1.3 0 1.3 c 0.718 1.3 1.3 0.718 1.3 0 c 1.3 -0.718 0.718 -1.3 0 -1.3 c -0.718 -1.3 -1.3 -0.718 -1.3 0 c f }
+\axo at setObject{493}%
+{AxoLine 40 60 50 60 0 0  0 0 0 0 0 0 0 0  0 3;}%
+{ 3 w 40 60 m 50 60 l S}
+\axo at setObject{494}%
+{AxoArc 40 35 25 90 180 0 0  0 0 0 0 0 0 0 0  0 0 3;}%
+{ 3 w 1 0 0 1 40 35 cm 0 25 m -13.807 25 -25 13.807 -25 0 c S}

Added: trunk/Build/source/utils/axodraw2/configure
===================================================================
--- trunk/Build/source/utils/axodraw2/configure	                        (rev 0)
+++ trunk/Build/source/utils/axodraw2/configure	2018-02-10 23:30:32 UTC (rev 46590)
@@ -0,0 +1,5845 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.69 for axohelp (TeX Live) 1.
+#
+# Report bugs to <jcc8 at psu.edu>.
+#
+#
+# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
+#
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='print -r --'
+  as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='printf %s\n'
+  as_echo_n='printf %s'
+else
+  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+    as_echo_n='/usr/ucb/echo -n'
+  else
+    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+    as_echo_n_body='eval
+      arg=$1;
+      case $arg in #(
+      *"$as_nl"*)
+	expr "X$arg" : "X\\(.*\\)$as_nl";
+	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+      esac;
+      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+    '
+    export as_echo_n_body
+    as_echo_n='sh -c $as_echo_n_body as_echo'
+  fi
+  export as_echo_body
+  as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+      PATH_SEPARATOR=';'
+  }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" ""	$as_nl"
+
+# Find who we are.  Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+  *[\\/]* ) as_myself=$0 ;;
+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  done
+IFS=$as_save_IFS
+
+     ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+  as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there.  '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+# Use a proper internal environment variable to ensure we don't fall
+  # into an infinite loop, continuously re-executing ourselves.
+  if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+    _as_can_reexec=no; export _as_can_reexec;
+    # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+  *v*x* | *x*v* ) as_opts=-vx ;;
+  *v* ) as_opts=-v ;;
+  *x* ) as_opts=-x ;;
+  * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+as_fn_exit 255
+  fi
+  # We don't want this to propagate to other subprocesses.
+          { _as_can_reexec=; unset _as_can_reexec;}
+if test "x$CONFIG_SHELL" = x; then
+  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '\${1+\"\$@\"}'='\"\$@\"'
+  setopt NO_GLOB_SUBST
+else
+  case \`(set -o) 2>/dev/null\` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
+fi
+"
+  as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+  exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
+  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1"
+  if (eval "$as_required") 2>/dev/null; then :
+  as_have_required=yes
+else
+  as_have_required=no
+fi
+  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  as_found=:
+  case $as_dir in #(
+	 /*)
+	   for as_base in sh bash ksh sh5; do
+	     # Try only shells that exist, to save several forks.
+	     as_shell=$as_dir/$as_base
+	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+  CONFIG_SHELL=$as_shell as_have_required=yes
+		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+  break 2
+fi
+fi
+	   done;;
+       esac
+  as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+  CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+      if test "x$CONFIG_SHELL" != x; then :
+  export CONFIG_SHELL
+             # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+  *v*x* | *x*v* ) as_opts=-vx ;;
+  *v* ) as_opts=-v ;;
+  *x* ) as_opts=-x ;;
+  * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
+fi
+
+    if test x$as_have_required = xno; then :
+  $as_echo "$0: This script requires a shell more modern than all"
+  $as_echo "$0: the shells that I found on your system."
+  if test x${ZSH_VERSION+set} = xset ; then
+    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+  else
+    $as_echo "$0: Please tell bug-autoconf at gnu.org and jcc8 at psu.edu about
+$0: your system, including any error possibly output before
+$0: this message. Then install a modern shell, or manually
+$0: run the script under such a shell if you do have one."
+  fi
+  exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+  { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+  return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+  set +e
+  as_fn_set_status $1
+  exit $1
+} # as_fn_exit
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || eval $as_mkdir_p || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+  test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+  eval 'as_fn_append ()
+  {
+    eval $1+=\$2
+  }'
+else
+  as_fn_append ()
+  {
+    eval $1=\$$1\$2
+  }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+  eval 'as_fn_arith ()
+  {
+    as_val=$(( $* ))
+  }'
+else
+  as_fn_arith ()
+  {
+    as_val=`expr "$@" || test $? -eq 1`
+  }
+fi # as_fn_arith
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+  as_status=$1; test $as_status -eq 0 && as_status=1
+  if test "$4"; then
+    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+  fi
+  $as_echo "$as_me: error: $2" >&2
+  as_fn_exit $as_status
+} # as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+
+  as_lineno_1=$LINENO as_lineno_1a=$LINENO
+  as_lineno_2=$LINENO as_lineno_2a=$LINENO
+  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
+  sed -n '
+    p
+    /[$]LINENO/=
+  ' <$as_myself |
+    sed '
+      s/[$]LINENO.*/&-/
+      t lineno
+      b
+      :lineno
+      N
+      :loop
+      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+      t loop
+      s/-\n.*//
+    ' >$as_me.lineno &&
+  chmod +x "$as_me.lineno" ||
+    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+
+  # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+  # already done that, so ensure we don't try to do so again and fall
+  # in an infinite loop.  This has already happened in practice.
+  _as_can_reexec=no; export _as_can_reexec
+  # Don't try to exec as it changes $[0], causing all sort of problems
+  # (the dirname of $[0] is not the place where we might find the
+  # original and so on.  Autoconf is especially sensitive to this).
+  . "./$as_me.lineno"
+  # Exit status is that of the last command.
+  exit
+}
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+  case `echo 'xy\c'` in
+  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
+  xy)  ECHO_C='\c';;
+  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
+       ECHO_T='	';;
+  esac;;
+*)
+  ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
+else
+  rm -f conf$$.dir
+  mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+  if ln -s conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s='ln -s'
+    # ... but there are two gotchas:
+    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+    # In both cases, we have to default to `cp -pR'.
+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+      as_ln_s='cp -pR'
+  elif ln conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s=ln
+  else
+    as_ln_s='cp -pR'
+  fi
+else
+  as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p='mkdir -p "$as_dir"'
+else
+  test -d ./-p && rmdir ./-p
+  as_mkdir_p=false
+fi
+
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+test -n "$DJDIR" || exec 7<&0 </dev/null
+exec 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIBOBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+
+# Identity of this package.
+PACKAGE_NAME='axohelp (TeX Live)'
+PACKAGE_TARNAME='axohelp--tex-live-'
+PACKAGE_VERSION='1'
+PACKAGE_STRING='axohelp (TeX Live) 1'
+PACKAGE_BUGREPORT='jcc8 at psu.edu'
+PACKAGE_URL=''
+
+ac_unique_file="axodraw2-src/axohelp.c"
+ac_subst_vars='am__EXEEXT_FALSE
+am__EXEEXT_TRUE
+LTLIBOBJS
+LIBOBJS
+AXODRAW2_TREE
+WIN32_WRAP_FALSE
+WIN32_WRAP_TRUE
+WIN_WRAPPER
+WIN32_FALSE
+WIN32_TRUE
+WARNING_CFLAGS
+am__fastdepCC_FALSE
+am__fastdepCC_TRUE
+CCDEPMODE
+am__nodep
+AMDEPBACKSLASH
+AMDEP_FALSE
+AMDEP_TRUE
+am__quote
+am__include
+DEPDIR
+OBJEXT
+EXEEXT
+ac_ct_CC
+CPPFLAGS
+LDFLAGS
+CFLAGS
+CC
+MAINT
+MAINTAINER_MODE_FALSE
+MAINTAINER_MODE_TRUE
+AM_BACKSLASH
+AM_DEFAULT_VERBOSITY
+AM_DEFAULT_V
+AM_V
+am__untar
+am__tar
+AMTAR
+am__leading_dot
+SET_MAKE
+AWK
+mkdir_p
+MKDIR_P
+INSTALL_STRIP_PROGRAM
+STRIP
+install_sh
+MAKEINFO
+AUTOHEADER
+AUTOMAKE
+AUTOCONF
+ACLOCAL
+VERSION
+PACKAGE
+CYGPATH_W
+am__isrc
+INSTALL_DATA
+INSTALL_SCRIPT
+INSTALL_PROGRAM
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+localstatedir
+sharedstatedir
+sysconfdir
+datadir
+datarootdir
+libexecdir
+sbindir
+bindir
+program_transform_name
+prefix
+exec_prefix
+PACKAGE_URL
+PACKAGE_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL'
+ac_subst_files=''
+ac_user_opts='
+enable_option_checking
+enable_silent_rules
+enable_maintainer_mode
+enable_dependency_tracking
+enable_compiler_warnings
+'
+      ac_precious_vars='build_alias
+host_alias
+target_alias
+CC
+CFLAGS
+LDFLAGS
+LIBS
+CPPFLAGS'
+
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+ac_unrecognized_opts=
+ac_unrecognized_sep=
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+  # If the previous option needs an argument, assign it.
+  if test -n "$ac_prev"; then
+    eval $ac_prev=\$ac_option
+    ac_prev=
+    continue
+  fi
+
+  case $ac_option in
+  *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+  *=)   ac_optarg= ;;
+  *)    ac_optarg=yes ;;
+  esac
+
+  # Accept the important Cygnus configure options, so we can diagnose typos.
+
+  case $ac_dashdash$ac_option in
+  --)
+    ac_dashdash=yes ;;
+
+  -bindir | --bindir | --bindi | --bind | --bin | --bi)
+    ac_prev=bindir ;;
+  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+    bindir=$ac_optarg ;;
+
+  -build | --build | --buil | --bui | --bu)
+    ac_prev=build_alias ;;
+  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+    build_alias=$ac_optarg ;;
+
+  -cache-file | --cache-file | --cache-fil | --cache-fi \
+  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+    ac_prev=cache_file ;;
+  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+    cache_file=$ac_optarg ;;
+
+  --config-cache | -C)
+    cache_file=config.cache ;;
+
+  -datadir | --datadir | --datadi | --datad)
+    ac_prev=datadir ;;
+  -datadir=* | --datadir=* | --datadi=* | --datad=*)
+    datadir=$ac_optarg ;;
+
+  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+  | --dataroo | --dataro | --datar)
+    ac_prev=datarootdir ;;
+  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+    datarootdir=$ac_optarg ;;
+
+  -disable-* | --disable-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error $? "invalid feature name: $ac_useropt"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"enable_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval enable_$ac_useropt=no ;;
+
+  -docdir | --docdir | --docdi | --doc | --do)
+    ac_prev=docdir ;;
+  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+    docdir=$ac_optarg ;;
+
+  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+    ac_prev=dvidir ;;
+  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+    dvidir=$ac_optarg ;;
+
+  -enable-* | --enable-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error $? "invalid feature name: $ac_useropt"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"enable_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval enable_$ac_useropt=\$ac_optarg ;;
+
+  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+  | --exec | --exe | --ex)
+    ac_prev=exec_prefix ;;
+  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+  | --exec=* | --exe=* | --ex=*)
+    exec_prefix=$ac_optarg ;;
+
+  -gas | --gas | --ga | --g)
+    # Obsolete; use --with-gas.
+    with_gas=yes ;;
+
+  -help | --help | --hel | --he | -h)
+    ac_init_help=long ;;
+  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+    ac_init_help=recursive ;;
+  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+    ac_init_help=short ;;
+
+  -host | --host | --hos | --ho)
+    ac_prev=host_alias ;;
+  -host=* | --host=* | --hos=* | --ho=*)
+    host_alias=$ac_optarg ;;
+
+  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+    ac_prev=htmldir ;;
+  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+  | --ht=*)
+    htmldir=$ac_optarg ;;
+
+  -includedir | --includedir | --includedi | --included | --include \
+  | --includ | --inclu | --incl | --inc)
+    ac_prev=includedir ;;
+  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+  | --includ=* | --inclu=* | --incl=* | --inc=*)
+    includedir=$ac_optarg ;;
+
+  -infodir | --infodir | --infodi | --infod | --info | --inf)
+    ac_prev=infodir ;;
+  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+    infodir=$ac_optarg ;;
+
+  -libdir | --libdir | --libdi | --libd)
+    ac_prev=libdir ;;
+  -libdir=* | --libdir=* | --libdi=* | --libd=*)
+    libdir=$ac_optarg ;;
+
+  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+  | --libexe | --libex | --libe)
+    ac_prev=libexecdir ;;
+  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+  | --libexe=* | --libex=* | --libe=*)
+    libexecdir=$ac_optarg ;;
+
+  -localedir | --localedir | --localedi | --localed | --locale)
+    ac_prev=localedir ;;
+  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+    localedir=$ac_optarg ;;
+
+  -localstatedir | --localstatedir | --localstatedi | --localstated \
+  | --localstate | --localstat | --localsta | --localst | --locals)
+    ac_prev=localstatedir ;;
+  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+    localstatedir=$ac_optarg ;;
+
+  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+    ac_prev=mandir ;;
+  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+    mandir=$ac_optarg ;;
+
+  -nfp | --nfp | --nf)
+    # Obsolete; use --without-fp.
+    with_fp=no ;;
+
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c | -n)
+    no_create=yes ;;
+
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+    no_recursion=yes ;;
+
+  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+  | --oldin | --oldi | --old | --ol | --o)
+    ac_prev=oldincludedir ;;
+  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+    oldincludedir=$ac_optarg ;;
+
+  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+    ac_prev=prefix ;;
+  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+    prefix=$ac_optarg ;;
+
+  -program-prefix | --program-prefix | --program-prefi | --program-pref \
+  | --program-pre | --program-pr | --program-p)
+    ac_prev=program_prefix ;;
+  -program-prefix=* | --program-prefix=* | --program-prefi=* \
+  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+    program_prefix=$ac_optarg ;;
+
+  -program-suffix | --program-suffix | --program-suffi | --program-suff \
+  | --program-suf | --program-su | --program-s)
+    ac_prev=program_suffix ;;
+  -program-suffix=* | --program-suffix=* | --program-suffi=* \
+  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+    program_suffix=$ac_optarg ;;
+
+  -program-transform-name | --program-transform-name \
+  | --program-transform-nam | --program-transform-na \
+  | --program-transform-n | --program-transform- \
+  | --program-transform | --program-transfor \
+  | --program-transfo | --program-transf \
+  | --program-trans | --program-tran \
+  | --progr-tra | --program-tr | --program-t)
+    ac_prev=program_transform_name ;;
+  -program-transform-name=* | --program-transform-name=* \
+  | --program-transform-nam=* | --program-transform-na=* \
+  | --program-transform-n=* | --program-transform-=* \
+  | --program-transform=* | --program-transfor=* \
+  | --program-transfo=* | --program-transf=* \
+  | --program-trans=* | --program-tran=* \
+  | --progr-tra=* | --program-tr=* | --program-t=*)
+    program_transform_name=$ac_optarg ;;
+
+  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+    ac_prev=pdfdir ;;
+  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+    pdfdir=$ac_optarg ;;
+
+  -psdir | --psdir | --psdi | --psd | --ps)
+    ac_prev=psdir ;;
+  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+    psdir=$ac_optarg ;;
+
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil)
+    silent=yes ;;
+
+  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+    ac_prev=sbindir ;;
+  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+  | --sbi=* | --sb=*)
+    sbindir=$ac_optarg ;;
+
+  -sharedstatedir | --sharedstatedir | --sharedstatedi \
+  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+  | --sharedst | --shareds | --shared | --share | --shar \
+  | --sha | --sh)
+    ac_prev=sharedstatedir ;;
+  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+  | --sha=* | --sh=*)
+    sharedstatedir=$ac_optarg ;;
+
+  -site | --site | --sit)
+    ac_prev=site ;;
+  -site=* | --site=* | --sit=*)
+    site=$ac_optarg ;;
+
+  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+    ac_prev=srcdir ;;
+  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+    srcdir=$ac_optarg ;;
+
+  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+  | --syscon | --sysco | --sysc | --sys | --sy)
+    ac_prev=sysconfdir ;;
+  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+    sysconfdir=$ac_optarg ;;
+
+  -target | --target | --targe | --targ | --tar | --ta | --t)
+    ac_prev=target_alias ;;
+  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+    target_alias=$ac_optarg ;;
+
+  -v | -verbose | --verbose | --verbos | --verbo | --verb)
+    verbose=yes ;;
+
+  -version | --version | --versio | --versi | --vers | -V)
+    ac_init_version=: ;;
+
+  -with-* | --with-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error $? "invalid package name: $ac_useropt"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"with_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval with_$ac_useropt=\$ac_optarg ;;
+
+  -without-* | --without-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error $? "invalid package name: $ac_useropt"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"with_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval with_$ac_useropt=no ;;
+
+  --x)
+    # Obsolete; use --with-x.
+    with_x=yes ;;
+
+  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+  | --x-incl | --x-inc | --x-in | --x-i)
+    ac_prev=x_includes ;;
+  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+    x_includes=$ac_optarg ;;
+
+  -x-libraries | --x-libraries | --x-librarie | --x-librari \
+  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+    ac_prev=x_libraries ;;
+  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+    x_libraries=$ac_optarg ;;
+
+  -*) as_fn_error $? "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information"
+    ;;
+
+  *=*)
+    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+    # Reject names that are not valid shell variable names.
+    case $ac_envvar in #(
+      '' | [0-9]* | *[!_$as_cr_alnum]* )
+      as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
+    esac
+    eval $ac_envvar=\$ac_optarg
+    export $ac_envvar ;;
+
+  *)
+    # FIXME: should be removed in autoconf 3.0.
+    $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+      $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+    : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
+    ;;
+
+  esac
+done
+
+if test -n "$ac_prev"; then
+  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+  as_fn_error $? "missing argument to $ac_option"
+fi
+
+if test -n "$ac_unrecognized_opts"; then
+  case $enable_option_checking in
+    no) ;;
+    fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
+    *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+  esac
+fi
+
+# Check all directory arguments for consistency.
+for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
+		datadir sysconfdir sharedstatedir localstatedir includedir \
+		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+		libdir localedir mandir
+do
+  eval ac_val=\$$ac_var
+  # Remove trailing slashes.
+  case $ac_val in
+    */ )
+      ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
+      eval $ac_var=\$ac_val;;
+  esac
+  # Be sure to have absolute directory names.
+  case $ac_val in
+    [\\/$]* | ?:[\\/]* )  continue;;
+    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+  esac
+  as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+  if test "x$build_alias" = x; then
+    cross_compiling=maybe
+  elif test "x$build_alias" != "x$host_alias"; then
+    cross_compiling=yes
+  fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+  as_fn_error $? "working directory cannot be determined"
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+  as_fn_error $? "pwd does not report name of working directory"
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+  ac_srcdir_defaulted=yes
+  # Try the directory containing this script, then the parent directory.
+  ac_confdir=`$as_dirname -- "$as_myself" ||
+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_myself" : 'X\(//\)[^/]' \| \
+	 X"$as_myself" : 'X\(//\)$' \| \
+	 X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_myself" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+  srcdir=$ac_confdir
+  if test ! -r "$srcdir/$ac_unique_file"; then
+    srcdir=..
+  fi
+else
+  ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+  as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+	cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
+	pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+  srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+  eval ac_env_${ac_var}_set=\${${ac_var}+set}
+  eval ac_env_${ac_var}_value=\$${ac_var}
+  eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+  eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# Report the --help message.
+#
+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 axohelp (TeX Live) 1 to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE.  See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+  -h, --help              display this help and exit
+      --help=short        display options specific to this package
+      --help=recursive    display the short help of all the included packages
+  -V, --version           display version information and exit
+  -q, --quiet, --silent   do not print \`checking ...' messages
+      --cache-file=FILE   cache test results in FILE [disabled]
+  -C, --config-cache      alias for \`--cache-file=config.cache'
+  -n, --no-create         do not create output files
+      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
+
+Installation directories:
+  --prefix=PREFIX         install architecture-independent files in PREFIX
+                          [$ac_default_prefix]
+  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
+                          [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+  --bindir=DIR            user executables [EPREFIX/bin]
+  --sbindir=DIR           system admin executables [EPREFIX/sbin]
+  --libexecdir=DIR        program executables [EPREFIX/libexec]
+  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
+  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
+  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
+  --libdir=DIR            object code libraries [EPREFIX/lib]
+  --includedir=DIR        C header files [PREFIX/include]
+  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
+  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
+  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
+  --infodir=DIR           info documentation [DATAROOTDIR/info]
+  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
+  --mandir=DIR            man documentation [DATAROOTDIR/man]
+  --docdir=DIR            documentation root
+                          [DATAROOTDIR/doc/axohelp--tex-live-]
+  --htmldir=DIR           html documentation [DOCDIR]
+  --dvidir=DIR            dvi documentation [DOCDIR]
+  --pdfdir=DIR            pdf documentation [DOCDIR]
+  --psdir=DIR             ps documentation [DOCDIR]
+_ACEOF
+
+  cat <<\_ACEOF
+
+Program names:
+  --program-prefix=PREFIX            prepend PREFIX to installed program names
+  --program-suffix=SUFFIX            append SUFFIX to installed program names
+  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+  case $ac_init_help in
+     short | recursive ) echo "Configuration of axohelp (TeX Live) 1:";;
+   esac
+  cat <<\_ACEOF
+
+Optional Features:
+  --disable-option-checking  ignore unrecognized --enable/--with options
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --enable-silent-rules   less verbose build output (undo: "make V=1")
+  --disable-silent-rules  verbose build output (undo: "make V=0")
+  --enable-maintainer-mode
+                          enable make rules and dependencies not useful (and
+                          sometimes confusing) to the casual installer
+  --enable-dependency-tracking
+                          do not reject slow dependency extractors
+  --disable-dependency-tracking
+                          speeds up one-time build
+  --enable-compiler-warnings=[no|min|yes|max|all]
+                          Turn on compiler warnings [default: yes if
+                          maintainer-mode, min otherwise]
+
+Some influential environment variables:
+  CC          C compiler command
+  CFLAGS      C compiler flags
+  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
+              nonstandard directory <lib dir>
+  LIBS        libraries to pass to the linker, e.g. -l<library>
+  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
+              you have headers in a nonstandard directory <include dir>
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+Report bugs to <jcc8 at psu.edu>.
+_ACEOF
+ac_status=$?
+fi
+
+if test "$ac_init_help" = "recursive"; then
+  # If there are subdirs, report their specific --help.
+  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+    test -d "$ac_dir" ||
+      { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
+      continue
+    ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+  # A ".." for each directory in $ac_dir_suffix.
+  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+  case $ac_top_builddir_sub in
+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+  esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+  .)  # We are building in place.
+    ac_srcdir=.
+    ac_top_srcdir=$ac_top_builddir_sub
+    ac_abs_top_srcdir=$ac_pwd ;;
+  [\\/]* | ?:[\\/]* )  # Absolute name.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir
+    ac_abs_top_srcdir=$srcdir ;;
+  *) # Relative name.
+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_build_prefix$srcdir
+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+    cd "$ac_dir" || { ac_status=$?; continue; }
+    # Check for guested configure.
+    if test -f "$ac_srcdir/configure.gnu"; then
+      echo &&
+      $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+    elif test -f "$ac_srcdir/configure"; then
+      echo &&
+      $SHELL "$ac_srcdir/configure" --help=recursive
+    else
+      $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+    fi || ac_status=$?
+    cd "$ac_pwd" || { ac_status=$?; break; }
+  done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+  cat <<\_ACEOF
+axohelp (TeX Live) configure 1
+generated by GNU Autoconf 2.69
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+  exit
+fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
+
+# ac_fn_c_try_compile LINENO
+# --------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext
+  if { { ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compile") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_retval=1
+fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_compile
+
+# ac_fn_c_try_link LINENO
+# -----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_link ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext conftest$ac_exeext
+  if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 test -x conftest$ac_exeext
+       }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_retval=1
+fi
+  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+  # interfere with the next link command; also delete a directory that is
+  # left behind by Apple's compiler.  We do this before executing the actions.
+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_link
+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 axohelp (TeX Live) $as_me 1, which was
+generated by GNU Autoconf 2.69.  Invocation command line was
+
+  $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
+
+/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
+/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
+/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    $as_echo "PATH: $as_dir"
+  done
+IFS=$as_save_IFS
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+  for ac_arg
+  do
+    case $ac_arg in
+    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+    | -silent | --silent | --silen | --sile | --sil)
+      continue ;;
+    *\'*)
+      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    case $ac_pass in
+    1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
+    2)
+      as_fn_append ac_configure_args1 " '$ac_arg'"
+      if test $ac_must_keep_next = true; then
+	ac_must_keep_next=false # Got value, back to normal.
+      else
+	case $ac_arg in
+	  *=* | --config-cache | -C | -disable-* | --disable-* \
+	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+	  | -with-* | --with-* | -without-* | --without-* | --x)
+	    case "$ac_configure_args0 " in
+	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+	    esac
+	    ;;
+	  -* ) ac_must_keep_next=true ;;
+	esac
+      fi
+      as_fn_append ac_configure_args " '$ac_arg'"
+      ;;
+    esac
+  done
+done
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset ac_configure_args1;}
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log.  We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+  # Save into config.log some information that might help in debugging.
+  {
+    echo
+
+    $as_echo "## ---------------- ##
+## Cache variables. ##
+## ---------------- ##"
+    echo
+    # The following way of writing the cache mishandles newlines in values,
+(
+  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+    eval ac_val=\$$ac_var
+    case $ac_val in #(
+    *${as_nl}*)
+      case $ac_var in #(
+      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+      esac
+      case $ac_var in #(
+      _ | IFS | as_nl) ;; #(
+      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+      *) { eval $ac_var=; unset $ac_var;} ;;
+      esac ;;
+    esac
+  done
+  (set) 2>&1 |
+    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+    *${as_nl}ac_space=\ *)
+      sed -n \
+	"s/'\''/'\''\\\\'\'''\''/g;
+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+      ;; #(
+    *)
+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+      ;;
+    esac |
+    sort
+)
+    echo
+
+    $as_echo "## ----------------- ##
+## Output variables. ##
+## ----------------- ##"
+    echo
+    for ac_var in $ac_subst_vars
+    do
+      eval ac_val=\$$ac_var
+      case $ac_val in
+      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+      esac
+      $as_echo "$ac_var='\''$ac_val'\''"
+    done | sort
+    echo
+
+    if test -n "$ac_subst_files"; then
+      $as_echo "## ------------------- ##
+## File substitutions. ##
+## ------------------- ##"
+      echo
+      for ac_var in $ac_subst_files
+      do
+	eval ac_val=\$$ac_var
+	case $ac_val in
+	*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+	esac
+	$as_echo "$ac_var='\''$ac_val'\''"
+      done | sort
+      echo
+    fi
+
+    if test -s confdefs.h; then
+      $as_echo "## ----------- ##
+## confdefs.h. ##
+## ----------- ##"
+      echo
+      cat confdefs.h
+      echo
+    fi
+    test "$ac_signal" != 0 &&
+      $as_echo "$as_me: caught signal $ac_signal"
+    $as_echo "$as_me: exit $exit_status"
+  } >&5
+  rm -f core *.core core.conftest.* &&
+    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+    exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+  trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+$as_echo "/* confdefs.h */" > confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
+if test -n "$CONFIG_SITE"; then
+  # We do not want a PATH search for config.site.
+  case $CONFIG_SITE in #((
+    -*)  ac_site_file1=./$CONFIG_SITE;;
+    */*) ac_site_file1=$CONFIG_SITE;;
+    *)   ac_site_file1=./$CONFIG_SITE;;
+  esac
+elif test "x$prefix" != xNONE; then
+  ac_site_file1=$prefix/share/config.site
+  ac_site_file2=$prefix/etc/config.site
+else
+  ac_site_file1=$ac_default_prefix/share/config.site
+  ac_site_file2=$ac_default_prefix/etc/config.site
+fi
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+do
+  test "x$ac_site_file" = xNONE && continue
+  if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+    sed 's/^/| /' "$ac_site_file" >&5
+    . "$ac_site_file" \
+      || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "failed to load site script $ac_site_file
+See \`config.log' for more details" "$LINENO" 5; }
+  fi
+done
+
+if test -r "$cache_file"; then
+  # Some versions of bash will fail to source /dev/null (special files
+  # actually), so we avoid doing that.  DJGPP emulates it as a regular file.
+  if test /dev/null != "$cache_file" && test -f "$cache_file"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+$as_echo "$as_me: loading cache $cache_file" >&6;}
+    case $cache_file in
+      [\\/]* | ?:[\\/]* ) . "$cache_file";;
+      *)                      . "./$cache_file";;
+    esac
+  fi
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+$as_echo "$as_me: creating cache $cache_file" >&6;}
+  >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+  eval ac_old_set=\$ac_cv_env_${ac_var}_set
+  eval ac_new_set=\$ac_env_${ac_var}_set
+  eval ac_old_val=\$ac_cv_env_${ac_var}_value
+  eval ac_new_val=\$ac_env_${ac_var}_value
+  case $ac_old_set,$ac_new_set in
+    set,)
+      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,set)
+      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,);;
+    *)
+      if test "x$ac_old_val" != "x$ac_new_val"; then
+	# differences in whitespace do not lead to failure.
+	ac_old_val_w=`echo x $ac_old_val`
+	ac_new_val_w=`echo x $ac_new_val`
+	if test "$ac_old_val_w" != "$ac_new_val_w"; then
+	  { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+	  ac_cache_corrupted=:
+	else
+	  { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+	  eval $ac_var=\$ac_old_val
+	fi
+	{ $as_echo "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
+$as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
+	{ $as_echo "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
+$as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
+      fi;;
+  esac
+  # Pass precious variables to config.status.
+  if test "$ac_new_set" = set; then
+    case $ac_new_val in
+    *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *) ac_arg=$ac_var=$ac_new_val ;;
+    esac
+    case " $ac_configure_args " in
+      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
+      *) as_fn_append ac_configure_args " '$ac_arg'" ;;
+    esac
+  fi
+done
+if $ac_cache_corrupted; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+  { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+  as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+fi
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+
+ac_aux_dir=
+for ac_dir in ../../build-aux "$srcdir"/../../build-aux; do
+  if test -f "$ac_dir/install-sh"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install-sh -c"
+    break
+  elif test -f "$ac_dir/install.sh"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install.sh -c"
+    break
+  elif test -f "$ac_dir/shtool"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/shtool install -c"
+    break
+  fi
+done
+if test -z "$ac_aux_dir"; then
+  as_fn_error $? "cannot find install-sh, install.sh, or shtool in ../../build-aux \"$srcdir\"/../../build-aux" "$LINENO" 5
+fi
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
+ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
+ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
+
+
+
+
+am__api_version='1.15'
+
+# Find a good install program.  We prefer a C program (faster),
+# so one script is as good as another.  But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+# Reject install programs that cannot install multiple files.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
+$as_echo_n "checking for a BSD-compatible install... " >&6; }
+if test -z "$INSTALL"; then
+if ${ac_cv_path_install+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in #((
+  ./ | .// | /[cC]/* | \
+  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+  ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
+  /usr/ucb/* ) ;;
+  *)
+    # OSF1 and SCO ODT 3.0 have their own names for install.
+    # Don't use installbsd from OSF since it installs stuff as root
+    # by default.
+    for ac_prog in ginstall scoinst install; do
+      for ac_exec_ext in '' $ac_executable_extensions; do
+	if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+	  if test $ac_prog = install &&
+	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+	    # AIX install.  It has an incompatible calling convention.
+	    :
+	  elif test $ac_prog = install &&
+	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+	    # program-specific install script used by HP pwplus--don't use.
+	    :
+	  else
+	    rm -rf conftest.one conftest.two conftest.dir
+	    echo one > conftest.one
+	    echo two > conftest.two
+	    mkdir conftest.dir
+	    if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+	      test -s conftest.one && test -s conftest.two &&
+	      test -s conftest.dir/conftest.one &&
+	      test -s conftest.dir/conftest.two
+	    then
+	      ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+	      break 3
+	    fi
+	  fi
+	fi
+      done
+    done
+    ;;
+esac
+
+  done
+IFS=$as_save_IFS
+
+rm -rf conftest.one conftest.two conftest.dir
+
+fi
+  if test "${ac_cv_path_install+set}" = set; then
+    INSTALL=$ac_cv_path_install
+  else
+    # As a last resort, use the slow shell script.  Don't cache a
+    # value for INSTALL within a source directory, because that will
+    # break other packages using the cache if that directory is
+    # removed, or if the value is a relative name.
+    INSTALL=$ac_install_sh
+  fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
+$as_echo "$INSTALL" >&6; }
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
+$as_echo_n "checking whether build environment is sane... " >&6; }
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name.  Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+  *[\\\"\#\$\&\'\`$am_lf]*)
+    as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
+esac
+case $srcdir in
+  *[\\\"\#\$\&\'\`$am_lf\ \	]*)
+    as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
+esac
+
+# Do 'set' in a subshell so we don't clobber the current shell's
+# arguments.  Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+   am_has_slept=no
+   for am_try in 1 2; do
+     echo "timestamp, slept: $am_has_slept" > conftest.file
+     set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+     if test "$*" = "X"; then
+	# -L didn't work.
+	set X `ls -t "$srcdir/configure" conftest.file`
+     fi
+     if test "$*" != "X $srcdir/configure conftest.file" \
+	&& test "$*" != "X conftest.file $srcdir/configure"; then
+
+	# If neither matched, then we have a broken ls.  This can happen
+	# if, for instance, CONFIG_SHELL is bash and it inherits a
+	# broken ls alias from the environment.  This has actually
+	# happened.  Such a system could not be considered "sane".
+	as_fn_error $? "ls -t appears to fail.  Make sure there is not a broken
+  alias in your environment" "$LINENO" 5
+     fi
+     if test "$2" = conftest.file || test $am_try -eq 2; then
+       break
+     fi
+     # Just in case.
+     sleep 1
+     am_has_slept=yes
+   done
+   test "$2" = conftest.file
+   )
+then
+   # Ok.
+   :
+else
+   as_fn_error $? "newly created file is older than distributed files!
+Check your system clock" "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+  ( sleep 1 ) &
+  am_sleep_pid=$!
+fi
+
+rm -f conftest.file
+
+test "$program_prefix" != NONE &&
+  program_transform_name="s&^&$program_prefix&;$program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+  program_transform_name="s&\$&$program_suffix&;$program_transform_name"
+# Double any \ or $.
+# By default was `s,x,x', remove it if useless.
+ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
+program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
+
+# Expand $ac_aux_dir to an absolute path.
+am_aux_dir=`cd "$ac_aux_dir" && pwd`
+
+if test x"${MISSING+set}" != xset; then
+  case $am_aux_dir in
+  *\ * | *\	*)
+    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+  *)
+    MISSING="\${SHELL} $am_aux_dir/missing" ;;
+  esac
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --is-lightweight"; then
+  am_missing_run="$MISSING "
+else
+  am_missing_run=
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
+$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
+fi
+
+if test x"${install_sh+set}" != xset; then
+  case $am_aux_dir in
+  *\ * | *\	*)
+    install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+  *)
+    install_sh="\${SHELL} $am_aux_dir/install-sh"
+  esac
+fi
+
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip".  However 'strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the 'STRIP' environment variable to overrule this program.
+if test "$cross_compiling" != no; then
+  if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_STRIP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$STRIP"; then
+  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+  ac_ct_STRIP=$STRIP
+  # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_STRIP"; then
+  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_STRIP="strip"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_STRIP" = x; then
+    STRIP=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    STRIP=$ac_ct_STRIP
+  fi
+else
+  STRIP="$ac_cv_prog_STRIP"
+fi
+
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
+$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
+if test -z "$MKDIR_P"; then
+  if ${ac_cv_path_mkdir+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in mkdir gmkdir; do
+	 for ac_exec_ext in '' $ac_executable_extensions; do
+	   as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
+	   case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
+	     'mkdir (GNU coreutils) '* | \
+	     'mkdir (coreutils) '* | \
+	     'mkdir (fileutils) '4.1*)
+	       ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
+	       break 3;;
+	   esac
+	 done
+       done
+  done
+IFS=$as_save_IFS
+
+fi
+
+  test -d ./--version && rmdir ./--version
+  if test "${ac_cv_path_mkdir+set}" = set; then
+    MKDIR_P="$ac_cv_path_mkdir -p"
+  else
+    # As a last resort, use the slow shell script.  Don't cache a
+    # value for MKDIR_P within a source directory, because that will
+    # break other packages using the cache if that directory is
+    # removed, or if the value is a relative name.
+    MKDIR_P="$ac_install_sh -d"
+  fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
+$as_echo "$MKDIR_P" >&6; }
+
+for ac_prog in gawk mawk nawk awk
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AWK+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$AWK"; then
+  ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_AWK="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+$as_echo "$AWK" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$AWK" && break
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+set x ${MAKE-make}
+ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
+all:
+	@echo '@@@%%%=$(MAKE)=@@@%%%'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
+case `${MAKE-make} -f conftest.make 2>/dev/null` in
+  *@@@%%%=?*=@@@%%%*)
+    eval ac_cv_prog_make_${ac_make}_set=yes;;
+  *)
+    eval ac_cv_prog_make_${ac_make}_set=no;;
+esac
+rm -f conftest.make
+fi
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+  SET_MAKE=
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+  SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+  am__leading_dot=.
+else
+  am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+
+# Check whether --enable-silent-rules was given.
+if test "${enable_silent_rules+set}" = set; then :
+  enableval=$enable_silent_rules;
+fi
+
+case $enable_silent_rules in # (((
+  yes) AM_DEFAULT_VERBOSITY=0;;
+   no) AM_DEFAULT_VERBOSITY=1;;
+    *) AM_DEFAULT_VERBOSITY=1;;
+esac
+am_make=${MAKE-make}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
+$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
+if ${am_cv_make_support_nested_variables+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if $as_echo 'TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+	@$(TRUE)
+.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
+  am_cv_make_support_nested_variables=yes
+else
+  am_cv_make_support_nested_variables=no
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
+$as_echo "$am_cv_make_support_nested_variables" >&6; }
+if test $am_cv_make_support_nested_variables = yes; then
+    AM_V='$(V)'
+  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+  AM_V=$AM_DEFAULT_VERBOSITY
+  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AM_BACKSLASH='\'
+
+DEPDIR="${am__leading_dot}deps"
+
+ac_config_commands="$ac_config_commands depfiles"
+
+
+am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+	@echo this is the am__doit target
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
+$as_echo_n "checking for style of include used by $am_make... " >&6; }
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# Ignore all kinds of additional output from 'make'.
+case `$am_make -s -f confmf 2> /dev/null` in #(
+*the\ am__doit\ target*)
+  am__include=include
+  am__quote=
+  _am_result=GNU
+  ;;
+esac
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+   echo '.include "confinc"' > confmf
+   case `$am_make -s -f confmf 2> /dev/null` in #(
+   *the\ am__doit\ target*)
+     am__include=.include
+     am__quote="\""
+     _am_result=BSD
+     ;;
+   esac
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
+$as_echo "$_am_result" >&6; }
+rm -f confinc confmf
+
+# Check whether --enable-dependency-tracking was given.
+if test "${enable_dependency_tracking+set}" = set; then :
+  enableval=$enable_dependency_tracking;
+fi
+
+if test "x$enable_dependency_tracking" != xno; then
+  am_depcomp="$ac_aux_dir/depcomp"
+  AMDEPBACKSLASH='\'
+  am__nodep='_no'
+fi
+ if test "x$enable_dependency_tracking" != xno; then
+  AMDEP_TRUE=
+  AMDEP_FALSE='#'
+else
+  AMDEP_TRUE='#'
+  AMDEP_FALSE=
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}gcc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="gcc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+else
+  CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+          if test -n "$ac_tool_prefix"; then
+    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}cc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  fi
+fi
+if test -z "$CC"; then
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+       ac_prog_rejected=yes
+       continue
+     fi
+    ac_cv_prog_CC="cc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+  # We found a bogon in the path, so make sure we never use it.
+  set dummy $ac_cv_prog_CC
+  shift
+  if test $# != 0; then
+    # We chose a different compiler from the bogus one.
+    # However, it has the same basename, so the bogon will be chosen
+    # first if we set CC to just the basename; use the full file name.
+    shift
+    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+  fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  for ac_prog in cl.exe
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    test -n "$CC" && break
+  done
+fi
+if test -z "$CC"; then
+  ac_ct_CC=$CC
+  for ac_prog in cl.exe
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$ac_ct_CC" && break
+done
+
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+fi
+
+fi
+
+
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5; }
+
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+  { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    sed '10a\
+... rest of stderr output deleted ...
+         10q' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+  fi
+  rm -f conftest.er1 conftest.err
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+done
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
+$as_echo_n "checking whether the C compiler works... " >&6; }
+ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+
+# The possible output files:
+ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
+
+ac_rmfiles=
+for ac_file in $ac_files
+do
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+    * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+  esac
+done
+rm -f $ac_rmfiles
+
+if { { ac_try="$ac_link_default"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link_default") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
+  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+# in a Makefile.  We should not override ac_cv_exeext if it was cached,
+# so that the user can short-circuit this test for compilers unknown to
+# Autoconf.
+for ac_file in $ac_files ''
+do
+  test -f "$ac_file" || continue
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
+	;;
+    [ab].out )
+	# We found the default executable, but exeext='' is most
+	# certainly right.
+	break;;
+    *.* )
+	if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+	then :; else
+	   ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+	fi
+	# We set ac_cv_exeext here because the later test for it is not
+	# safe: cross compilers may not add the suffix if given an `-o'
+	# argument, so we may need to know it at that point already.
+	# Even if this section looks crufty: it has the advantage of
+	# actually working.
+	break;;
+    * )
+	break;;
+  esac
+done
+test "$ac_cv_exeext" = no && ac_cv_exeext=
+
+else
+  ac_file=''
+fi
+if test -z "$ac_file"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+$as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "C compiler cannot create executables
+See \`config.log' for more details" "$LINENO" 5; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
+$as_echo_n "checking for C compiler default output file name... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
+ac_exeext=$ac_cv_exeext
+
+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
+$as_echo_n "checking for suffix of executables... " >&6; }
+if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
+  # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+  test -f "$ac_file" || continue
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+	  break;;
+    * ) break;;
+  esac
+done
+else
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest conftest$ac_cv_exeext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+$as_echo "$ac_cv_exeext" >&6; }
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdio.h>
+int
+main ()
+{
+FILE *f = fopen ("conftest.out", "w");
+ return ferror (f) || fclose (f) != 0;
+
+  ;
+  return 0;
+}
+_ACEOF
+ac_clean_files="$ac_clean_files conftest.out"
+# Check that the compiler produces executables we can run.  If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
+if test "$cross_compiling" != yes; then
+  { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+  if { ac_try='./conftest$ac_cv_exeext'
+  { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then
+    cross_compiling=no
+  else
+    if test "$cross_compiling" = maybe; then
+	cross_compiling=yes
+    else
+	{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details" "$LINENO" 5; }
+    fi
+  fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
+
+rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+$as_echo_n "checking for suffix of object files... " >&6; }
+if ${ac_cv_objext+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { { ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compile") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
+  for ac_file in conftest.o conftest.obj conftest.*; do
+  test -f "$ac_file" || continue;
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
+    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+       break;;
+  esac
+done
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+$as_echo "$ac_cv_objext" >&6; }
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+if ${ac_cv_c_compiler_gnu+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+#ifndef __GNUC__
+       choke me
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_compiler_gnu=yes
+else
+  ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+  GCC=yes
+else
+  GCC=
+fi
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if ${ac_cv_prog_cc_g+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_save_c_werror_flag=$ac_c_werror_flag
+   ac_c_werror_flag=yes
+   ac_cv_prog_cc_g=no
+   CFLAGS="-g"
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_g=yes
+else
+  CFLAGS=""
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+  ac_c_werror_flag=$ac_save_c_werror_flag
+	 CFLAGS="-g"
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
+  CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+  if test "$GCC" = yes; then
+    CFLAGS="-g -O2"
+  else
+    CFLAGS="-g"
+  fi
+else
+  if test "$GCC" = yes; then
+    CFLAGS="-O2"
+  else
+    CFLAGS=
+  fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if ${ac_cv_prog_cc_c89+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdarg.h>
+#include <stdio.h>
+struct stat;
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+     char **p;
+     int i;
+{
+  return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+  char *s;
+  va_list v;
+  va_start (v,p);
+  s = g (p, va_arg (v,int));
+  va_end (v);
+  return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
+   function prototypes and stuff, but not '\xHH' hex character constants.
+   These don't provoke an error unfortunately, instead are silently treated
+   as 'x'.  The following induces an error, until -std is added to get
+   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
+   array size at least.  It's necessary to write '\x00'==0 to get something
+   that's true only with -std.  */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+   inside strings and character constants.  */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+  ;
+  return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+  CC="$ac_save_CC $ac_arg"
+  if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+  test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+  x)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+  xno)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+  *)
+    CC="$CC $ac_cv_prog_cc_c89"
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
+
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
+$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
+if ${am_cv_prog_cc_c_o+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+  # Make sure it works both with $CC and with simple cc.
+  # Following AC_PROG_CC_C_O, we do the test twice because some
+  # compilers refuse to overwrite an existing .o file with -o,
+  # though they will create one.
+  am_cv_prog_cc_c_o=yes
+  for am_i in 1 2; do
+    if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
+   ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } \
+         && test -f conftest2.$ac_objext; then
+      : OK
+    else
+      am_cv_prog_cc_c_o=no
+      break
+    fi
+  done
+  rm -f core conftest*
+  unset am_i
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
+$as_echo "$am_cv_prog_cc_c_o" >&6; }
+if test "$am_cv_prog_cc_c_o" != yes; then
+   # Losing compiler, so override with the script.
+   # FIXME: It is wrong to rewrite CC.
+   # But if we don't then we get into trouble of one sort or another.
+   # A longer-term fix would be to have automake use am__CC in this case,
+   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+   CC="$am_aux_dir/compile $CC"
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+depcc="$CC"   am_compiler_list=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if ${am_cv_CC_dependencies_compiler_type+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named 'D' -- because '-MD' means "put the output
+  # in D".
+  rm -rf conftest.dir
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+  # We will build objects and dependencies in a subdirectory because
+  # it helps to detect inapplicable dependency modes.  For instance
+  # both Tru64's cc and ICC support -MD to output dependencies as a
+  # side effect of compilation, but ICC will put the dependencies in
+  # the current directory while Tru64 will put them in the object
+  # directory.
+  mkdir sub
+
+  am_cv_CC_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+  fi
+  am__universal=false
+  case " $depcc " in #(
+     *\ -arch\ *\ -arch\ *) am__universal=true ;;
+     esac
+
+  for depmode in $am_compiler_list; do
+    # Setup a source with many dependencies, because some compilers
+    # like to wrap large dependency lists on column 80 (with \), and
+    # we should not choose a depcomp mode which is confused by this.
+    #
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    : > sub/conftest.c
+    for i in 1 2 3 4 5 6; do
+      echo '#include "conftst'$i'.h"' >> sub/conftest.c
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > sub/conftst$i.h
+    done
+    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+    # We check with '-c' and '-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle '-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs.
+    am__obj=sub/conftest.${OBJEXT-o}
+    am__minus_obj="-o $am__obj"
+    case $depmode in
+    gcc)
+      # This depmode causes a compiler race in universal mode.
+      test "$am__universal" = false || continue
+      ;;
+    nosideeffect)
+      # After this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested.
+      if test "x$enable_dependency_tracking" = xyes; then
+	continue
+      else
+	break
+      fi
+      ;;
+    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+      # This compiler won't grok '-c -o', but also, the minuso test has
+      # not run yet.  These depmodes are late enough in the game, and
+      # so weak that their functioning should not be impacted.
+      am__obj=conftest.${OBJEXT-o}
+      am__minus_obj=
+      ;;
+    none) break ;;
+    esac
+    if depmode=$depmode \
+       source=sub/conftest.c object=$am__obj \
+       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+         >/dev/null 2>conftest.err &&
+       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      # icc doesn't choke on unknown options, it will just issue warnings
+      # or remarks (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored or not supported.
+      # When given -MP, icc 7.0 and 7.1 complain thusly:
+      #   icc: Command line warning: ignoring option '-M'; no argument required
+      # The diagnosis changed in icc 8.0:
+      #   icc: Command line remark: option '-MP' not supported
+      if (grep 'ignoring option' conftest.err ||
+          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+        am_cv_CC_dependencies_compiler_type=$depmode
+        break
+      fi
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+
+ if
+  test "x$enable_dependency_tracking" != xno \
+  && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+  am__fastdepCC_TRUE=
+  am__fastdepCC_FALSE='#'
+else
+  am__fastdepCC_TRUE='#'
+  am__fastdepCC_FALSE=
+fi
+
+
+
+# Check whether --enable-compiler-warnings was given.
+if test "${enable_compiler_warnings+set}" = set; then :
+  enableval=$enable_compiler_warnings;
+fi
+case $enable_compiler_warnings in #(
+  no | min | yes | max | all) :
+     ;; #(
+  *) :
+    if test "x$enable_maintainer_mode" = xyes; then :
+  enable_compiler_warnings=yes
+else
+  enable_compiler_warnings=min
+fi ;;
+esac
+
+
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+  # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+  # is not polluted with repeated "-I."
+  am__isrc=' -I$(srcdir)'
+  # test to see if srcdir already configured
+  if test -f $srcdir/config.status; then
+    as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
+  fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+  if (cygpath --version) >/dev/null 2>/dev/null; then
+    CYGPATH_W='cygpath -w'
+  else
+    CYGPATH_W=echo
+  fi
+fi
+
+
+# Define the identity of the package.
+ PACKAGE='axohelp--tex-live-'
+ VERSION='1'
+
+
+# Some tools Automake needs.
+
+ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
+
+
+AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
+
+
+AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
+
+
+AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
+
+
+MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+
+# For better backward compatibility.  To be removed once Automake 1.9.x
+# dies out for good.  For more background, see:
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+mkdir_p='$(MKDIR_P)'
+
+# We need awk for the "check" target (and possibly the TAP driver).  The
+# system "awk" is bad on some platforms.
+# Always define AMTAR for backward compatibility.  Yes, it's still used
+# in the wild :-(  We should find a proper way to deprecate it ...
+AMTAR='$${TAR-tar}'
+
+
+# We'll loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar  pax cpio none'
+
+am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
+
+
+
+
+
+
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes.  So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+  cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present.  This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake at gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message.  This
+can help us improve future automake versions.
+
+END
+  if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+    echo 'Configuration will proceed anyway, since you have set the' >&2
+    echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+    echo >&2
+  else
+    cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <http://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+    as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
+  fi
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
+$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
+    # Check whether --enable-maintainer-mode was given.
+if test "${enable_maintainer_mode+set}" = set; then :
+  enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
+else
+  USE_MAINTAINER_MODE=no
+fi
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5
+$as_echo "$USE_MAINTAINER_MODE" >&6; }
+   if test $USE_MAINTAINER_MODE = yes; then
+  MAINTAINER_MODE_TRUE=
+  MAINTAINER_MODE_FALSE='#'
+else
+  MAINTAINER_MODE_TRUE='#'
+  MAINTAINER_MODE_FALSE=
+fi
+
+  MAINT=$MAINTAINER_MODE_TRUE
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler accepts prototypes" >&5
+$as_echo_n "checking whether the compiler accepts prototypes... " >&6; }
+if ${kb_cv_c_prototypes+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdarg.h>
+int
+main ()
+{
+extern void foo(int i,...);
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  kb_cv_c_prototypes=yes
+else
+  kb_cv_c_prototypes=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kb_cv_c_prototypes" >&5
+$as_echo "$kb_cv_c_prototypes" >&6; }
+if test "x$kb_cv_c_prototypes" = xno; then
+  as_fn_error $? "Sorry, your compiler does not understand prototypes." "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking what warning flags to pass to the C compiler" >&5
+$as_echo_n "checking what warning flags to pass to the C compiler... " >&6; }
+if ${kpse_cv_warning_cflags+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "x$GCC" = xyes; then
+  kpse_cv_warning_cflags=
+if test "x$enable_compiler_warnings" != xno; then
+  kpse_cv_warning_cflags="-Wimplicit -Wreturn-type"
+  case `$CC -dumpversion` in #(
+  3.4.* | 4.* | 5.*) :
+    kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wdeclaration-after-statement" ;; #(
+  *) :
+     ;;
+esac
+  case `$CC -dumpversion` in #(
+  3.[234].* | 4.* | 5.*) :
+    kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wno-unknown-pragmas" ;; #(
+  *) :
+     ;;
+esac
+  if test "x$enable_compiler_warnings" != xmin; then
+    kpse_cv_warning_cflags="-Wall -Wunused $kpse_cv_warning_cflags"
+    kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wmissing-prototypes -Wmissing-declarations"
+    if test "x$enable_compiler_warnings" != xyes; then
+      kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wparentheses -Wswitch -Wtrigraphs -Wpointer-arith"
+      kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wcast-qual -Wcast-align -Wwrite-strings"
+      case `$CC -dumpversion` in #(
+  3.4.* | 4.* | 5.*) :
+    kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wold-style-definition" ;; #(
+  *) :
+     ;;
+esac
+      if test "x$enable_compiler_warnings" != xmax; then
+        kpse_cv_warning_cflags="$kpse_cv_warning_cflags -Wshadow"
+      fi
+    fi
+  fi
+fi
+elif test "x$enable_compiler_warnings" = xno; then
+  kpse_cv_warning_cflags=
+else
+  kpse_cv_warning_cflags= # FIXME: warning flags for non-GNU C compilers
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kpse_cv_warning_cflags" >&5
+$as_echo "$kpse_cv_warning_cflags" >&6; }
+WARNING_CFLAGS=$kpse_cv_warning_cflags
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqrt in -lm" >&5
+$as_echo_n "checking for sqrt in -lm... " >&6; }
+if ${ac_cv_lib_m_sqrt+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lm  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char sqrt ();
+int
+main ()
+{
+return sqrt ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_m_sqrt=yes
+else
+  ac_cv_lib_m_sqrt=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_sqrt" >&5
+$as_echo "$ac_cv_lib_m_sqrt" >&6; }
+if test "x$ac_cv_lib_m_sqrt" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBM 1
+_ACEOF
+
+  LIBS="-lm $LIBS"
+
+else
+  as_fn_error $? "*** Please install libm on your system ***" "$LINENO" 5
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}gcc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="gcc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+else
+  CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+          if test -n "$ac_tool_prefix"; then
+    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}cc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  fi
+fi
+if test -z "$CC"; then
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+       ac_prog_rejected=yes
+       continue
+     fi
+    ac_cv_prog_CC="cc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+  # We found a bogon in the path, so make sure we never use it.
+  set dummy $ac_cv_prog_CC
+  shift
+  if test $# != 0; then
+    # We chose a different compiler from the bogus one.
+    # However, it has the same basename, so the bogon will be chosen
+    # first if we set CC to just the basename; use the full file name.
+    shift
+    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+  fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  for ac_prog in cl.exe
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    test -n "$CC" && break
+  done
+fi
+if test -z "$CC"; then
+  ac_ct_CC=$CC
+  for ac_prog in cl.exe
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$ac_ct_CC" && break
+done
+
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+fi
+
+fi
+
+
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5; }
+
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+  { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    sed '10a\
+... rest of stderr output deleted ...
+         10q' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+  fi
+  rm -f conftest.er1 conftest.err
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+if ${ac_cv_c_compiler_gnu+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+#ifndef __GNUC__
+       choke me
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_compiler_gnu=yes
+else
+  ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+  GCC=yes
+else
+  GCC=
+fi
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if ${ac_cv_prog_cc_g+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_save_c_werror_flag=$ac_c_werror_flag
+   ac_c_werror_flag=yes
+   ac_cv_prog_cc_g=no
+   CFLAGS="-g"
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_g=yes
+else
+  CFLAGS=""
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+  ac_c_werror_flag=$ac_save_c_werror_flag
+	 CFLAGS="-g"
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
+  CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+  if test "$GCC" = yes; then
+    CFLAGS="-g -O2"
+  else
+    CFLAGS="-g"
+  fi
+else
+  if test "$GCC" = yes; then
+    CFLAGS="-O2"
+  else
+    CFLAGS=
+  fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if ${ac_cv_prog_cc_c89+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdarg.h>
+#include <stdio.h>
+struct stat;
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+     char **p;
+     int i;
+{
+  return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+  char *s;
+  va_list v;
+  va_start (v,p);
+  s = g (p, va_arg (v,int));
+  va_end (v);
+  return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
+   function prototypes and stuff, but not '\xHH' hex character constants.
+   These don't provoke an error unfortunately, instead are silently treated
+   as 'x'.  The following induces an error, until -std is added to get
+   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
+   array size at least.  It's necessary to write '\x00'==0 to get something
+   that's true only with -std.  */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+   inside strings and character constants.  */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+  ;
+  return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+  CC="$ac_save_CC $ac_arg"
+  if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+  test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+  x)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+  xno)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+  *)
+    CC="$CC $ac_cv_prog_cc_c89"
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
+
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
+$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
+if ${am_cv_prog_cc_c_o+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+  # Make sure it works both with $CC and with simple cc.
+  # Following AC_PROG_CC_C_O, we do the test twice because some
+  # compilers refuse to overwrite an existing .o file with -o,
+  # though they will create one.
+  am_cv_prog_cc_c_o=yes
+  for am_i in 1 2; do
+    if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
+   ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } \
+         && test -f conftest2.$ac_objext; then
+      : OK
+    else
+      am_cv_prog_cc_c_o=no
+      break
+    fi
+  done
+  rm -f core conftest*
+  unset am_i
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
+$as_echo "$am_cv_prog_cc_c_o" >&6; }
+if test "$am_cv_prog_cc_c_o" != yes; then
+   # Losing compiler, so override with the script.
+   # FIXME: It is wrong to rewrite CC.
+   # But if we don't then we get into trouble of one sort or another.
+   # A longer-term fix would be to have automake use am__CC in this case,
+   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+   CC="$am_aux_dir/compile $CC"
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+depcc="$CC"   am_compiler_list=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if ${am_cv_CC_dependencies_compiler_type+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named 'D' -- because '-MD' means "put the output
+  # in D".
+  rm -rf conftest.dir
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+  # We will build objects and dependencies in a subdirectory because
+  # it helps to detect inapplicable dependency modes.  For instance
+  # both Tru64's cc and ICC support -MD to output dependencies as a
+  # side effect of compilation, but ICC will put the dependencies in
+  # the current directory while Tru64 will put them in the object
+  # directory.
+  mkdir sub
+
+  am_cv_CC_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+  fi
+  am__universal=false
+  case " $depcc " in #(
+     *\ -arch\ *\ -arch\ *) am__universal=true ;;
+     esac
+
+  for depmode in $am_compiler_list; do
+    # Setup a source with many dependencies, because some compilers
+    # like to wrap large dependency lists on column 80 (with \), and
+    # we should not choose a depcomp mode which is confused by this.
+    #
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    : > sub/conftest.c
+    for i in 1 2 3 4 5 6; do
+      echo '#include "conftst'$i'.h"' >> sub/conftest.c
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > sub/conftst$i.h
+    done
+    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+    # We check with '-c' and '-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle '-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs.
+    am__obj=sub/conftest.${OBJEXT-o}
+    am__minus_obj="-o $am__obj"
+    case $depmode in
+    gcc)
+      # This depmode causes a compiler race in universal mode.
+      test "$am__universal" = false || continue
+      ;;
+    nosideeffect)
+      # After this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested.
+      if test "x$enable_dependency_tracking" = xyes; then
+	continue
+      else
+	break
+      fi
+      ;;
+    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+      # This compiler won't grok '-c -o', but also, the minuso test has
+      # not run yet.  These depmodes are late enough in the game, and
+      # so weak that their functioning should not be impacted.
+      am__obj=conftest.${OBJEXT-o}
+      am__minus_obj=
+      ;;
+    none) break ;;
+    esac
+    if depmode=$depmode \
+       source=sub/conftest.c object=$am__obj \
+       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+         >/dev/null 2>conftest.err &&
+       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      # icc doesn't choke on unknown options, it will just issue warnings
+      # or remarks (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored or not supported.
+      # When given -MP, icc 7.0 and 7.1 complain thusly:
+      #   icc: Command line warning: ignoring option '-M'; no argument required
+      # The diagnosis changed in icc 8.0:
+      #   icc: Command line remark: option '-MP' not supported
+      if (grep 'ignoring option' conftest.err ||
+          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+        am_cv_CC_dependencies_compiler_type=$depmode
+        break
+      fi
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+
+ if
+  test "x$enable_dependency_tracking" != xno \
+  && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+  am__fastdepCC_TRUE=
+  am__fastdepCC_FALSE='#'
+else
+  am__fastdepCC_TRUE='#'
+  am__fastdepCC_FALSE=
+fi
+
+
+
+# trailing TL stuff.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+set x ${MAKE-make}
+ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
+all:
+	@echo '@@@%%%=$(MAKE)=@@@%%%'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
+case `${MAKE-make} -f conftest.make 2>/dev/null` in
+  *@@@%%%=?*=@@@%%%*)
+    eval ac_cv_prog_make_${ac_make}_set=yes;;
+  *)
+    eval ac_cv_prog_make_${ac_make}_set=no;;
+esac
+rm -f conftest.make
+fi
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+  SET_MAKE=
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+  SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for native WIN32 or MINGW32" >&5
+$as_echo_n "checking for native WIN32 or MINGW32... " >&6; }
+if ${kpse_cv_have_win32+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifndef WIN32
+  choke me
+#endif
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifndef __MINGW32__
+  choke me
+#endif
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  kpse_cv_have_win32=mingw32
+else
+  kpse_cv_have_win32=native
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+  kpse_cv_have_win32=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kpse_cv_have_win32" >&5
+$as_echo "$kpse_cv_have_win32" >&6; }
+
+ if test "x$kpse_cv_have_win32" != xno; then
+  WIN32_TRUE=
+  WIN32_FALSE='#'
+else
+  WIN32_TRUE='#'
+  WIN32_FALSE=
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for WIN64" >&5
+$as_echo_n "checking for WIN64... " >&6; }
+if ${kpse_cv_have_win64+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifndef _WIN64
+  choke me
+#endif
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  kpse_cv_have_win64=yes
+else
+  kpse_cv_have_win64=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kpse_cv_have_win64" >&5
+$as_echo "$kpse_cv_have_win64" >&6; }
+case $kpse_cv_have_win64 in #(
+  yes) :
+    WIN_WRAPPER=w64_wrapper ;; #(
+  *) :
+    WIN_WRAPPER=w32_wrapper ;;
+esac
+
+ if test -r "$srcdir/../../texk/texlive/$WIN_WRAPPER/runscript.exe"; then
+  WIN32_WRAP_TRUE=
+  WIN32_WRAP_FALSE='#'
+else
+  WIN32_WRAP_TRUE='#'
+  WIN32_WRAP_FALSE=
+fi
+
+
+AXODRAW2_TREE=axodraw2-src
+
+
+ac_config_files="$ac_config_files Makefile"
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems.  If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+    eval ac_val=\$$ac_var
+    case $ac_val in #(
+    *${as_nl}*)
+      case $ac_var in #(
+      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+      esac
+      case $ac_var in #(
+      _ | IFS | as_nl) ;; #(
+      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+      *) { eval $ac_var=; unset $ac_var;} ;;
+      esac ;;
+    esac
+  done
+
+  (set) 2>&1 |
+    case $as_nl`(ac_space=' '; set) 2>&1` in #(
+    *${as_nl}ac_space=\ *)
+      # `set' does not quote correctly, so add quotes: double-quote
+      # substitution turns \\\\ into \\, and sed turns \\ into \.
+      sed -n \
+	"s/'/'\\\\''/g;
+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+      ;; #(
+    *)
+      # `set' quotes correctly as required by POSIX, so do not add quotes.
+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+      ;;
+    esac |
+    sort
+) |
+  sed '
+     /^ac_cv_env_/b end
+     t clear
+     :clear
+     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+     t end
+     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+     :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+  if test -w "$cache_file"; then
+    if test "x$cache_file" != "x/dev/null"; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
+      if test ! -f "$cache_file" || test -h "$cache_file"; then
+	cat confcache >"$cache_file"
+      else
+        case $cache_file in #(
+        */* | ?:*)
+	  mv -f confcache "$cache_file"$$ &&
+	  mv -f "$cache_file"$$ "$cache_file" ;; #(
+        *)
+	  mv -f confcache "$cache_file" ;;
+	esac
+      fi
+    fi
+  else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+  fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# Transform confdefs.h into DEFS.
+# Protect against shell expansion while executing Makefile rules.
+# Protect against Makefile macro expansion.
+#
+# If the first sed substitution is executed (which looks for macros that
+# take arguments), then branch to the quote section.  Otherwise,
+# look for a macro that doesn't take arguments.
+ac_script='
+:mline
+/\\$/{
+ N
+ s,\\\n,,
+ b mline
+}
+t clear
+:clear
+s/^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 (][^	 (]*([^)]*)\)[	 ]*\(.*\)/-D\1=\2/g
+t quote
+s/^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 ][^	 ]*\)[	 ]*\(.*\)/-D\1=\2/g
+t quote
+b any
+:quote
+s/[	 `~#$^&*(){}\\|;'\''"<>?]/\\&/g
+s/\[/\\&/g
+s/\]/\\&/g
+s/\$/$$/g
+H
+:any
+${
+	g
+	s/^\n//
+	s/\n/ /g
+	p
+}
+'
+DEFS=`sed -n "$ac_script" confdefs.h`
+
+
+ac_libobjs=
+ac_ltlibobjs=
+U=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+  # 1. Remove the extension, and $U if already installed.
+  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+  ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
+  #    will be set to the directory where LIBOBJS objects are built.
+  as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+  as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
+$as_echo_n "checking that generated files are newer than configure... " >&6; }
+   if test -n "$am_sleep_pid"; then
+     # Hide warnings about reused PIDs.
+     wait $am_sleep_pid 2>/dev/null
+   fi
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
+$as_echo "done" >&6; }
+ if test -n "$EXEEXT"; then
+  am__EXEEXT_TRUE=
+  am__EXEEXT_FALSE='#'
+else
+  am__EXEEXT_TRUE='#'
+  am__EXEEXT_FALSE=
+fi
+
+if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
+  as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
+  as_fn_error $? "conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+  as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+  as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${WIN32_TRUE}" && test -z "${WIN32_FALSE}"; then
+  as_fn_error $? "conditional \"WIN32\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${WIN32_WRAP_TRUE}" && test -z "${WIN32_WRAP_FALSE}"; then
+  as_fn_error $? "conditional \"WIN32_WRAP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+
+: "${CONFIG_STATUS=./config.status}"
+ac_write_fail=0
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='print -r --'
+  as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='printf %s\n'
+  as_echo_n='printf %s'
+else
+  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+    as_echo_n='/usr/ucb/echo -n'
+  else
+    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+    as_echo_n_body='eval
+      arg=$1;
+      case $arg in #(
+      *"$as_nl"*)
+	expr "X$arg" : "X\\(.*\\)$as_nl";
+	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+      esac;
+      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+    '
+    export as_echo_n_body
+    as_echo_n='sh -c $as_echo_n_body as_echo'
+  fi
+  export as_echo_body
+  as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+      PATH_SEPARATOR=';'
+  }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" ""	$as_nl"
+
+# Find who we are.  Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+  *[\\/]* ) as_myself=$0 ;;
+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  done
+IFS=$as_save_IFS
+
+     ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+  as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there.  '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+  as_status=$1; test $as_status -eq 0 && as_status=1
+  if test "$4"; then
+    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+  fi
+  $as_echo "$as_me: error: $2" >&2
+  as_fn_exit $as_status
+} # as_fn_error
+
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+  return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+  set +e
+  as_fn_set_status $1
+  exit $1
+} # as_fn_exit
+
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+  { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+  eval 'as_fn_append ()
+  {
+    eval $1+=\$2
+  }'
+else
+  as_fn_append ()
+  {
+    eval $1=\$$1\$2
+  }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+  eval 'as_fn_arith ()
+  {
+    as_val=$(( $* ))
+  }'
+else
+  as_fn_arith ()
+  {
+    as_val=`expr "$@" || test $? -eq 1`
+  }
+fi # as_fn_arith
+
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+  case `echo 'xy\c'` in
+  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
+  xy)  ECHO_C='\c';;
+  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
+       ECHO_T='	';;
+  esac;;
+*)
+  ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
+else
+  rm -f conf$$.dir
+  mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+  if ln -s conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s='ln -s'
+    # ... but there are two gotchas:
+    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+    # In both cases, we have to default to `cp -pR'.
+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+      as_ln_s='cp -pR'
+  elif ln conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s=ln
+  else
+    as_ln_s='cp -pR'
+  fi
+else
+  as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || eval $as_mkdir_p || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p='mkdir -p "$as_dir"'
+else
+  test -d ./-p && rmdir ./-p
+  as_mkdir_p=false
+fi
+
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+  test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.
+ac_log="
+This file was extended by axohelp (TeX Live) $as_me 1, which was
+generated by GNU Autoconf 2.69.  Invocation command line was
+
+  CONFIG_FILES    = $CONFIG_FILES
+  CONFIG_HEADERS  = $CONFIG_HEADERS
+  CONFIG_LINKS    = $CONFIG_LINKS
+  CONFIG_COMMANDS = $CONFIG_COMMANDS
+  $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_ACEOF
+
+case $ac_config_files in *"
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
+esac
+
+
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+# Files that config.status was made for.
+config_files="$ac_config_files"
+config_commands="$ac_config_commands"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ac_cs_usage="\
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration.  Unless the files
+and actions are specified as TAGs, all are instantiated by default.
+
+Usage: $0 [OPTION]... [TAG]...
+
+  -h, --help       print this help, then exit
+  -V, --version    print version number and configuration settings, then exit
+      --config     print configuration, then exit
+  -q, --quiet, --silent
+                   do not print progress messages
+  -d, --debug      don't remove temporary files
+      --recheck    update $as_me by reconfiguring in the same conditions
+      --file=FILE[:TEMPLATE]
+                   instantiate the configuration file FILE
+
+Configuration files:
+$config_files
+
+Configuration commands:
+$config_commands
+
+Report bugs to <jcc8 at psu.edu>."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ac_cs_version="\\
+axohelp (TeX Live) config.status 1
+configured by $0, generated by GNU Autoconf 2.69,
+  with options \\"\$ac_cs_config\\"
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+INSTALL='$INSTALL'
+MKDIR_P='$MKDIR_P'
+AWK='$AWK'
+test -n "\$AWK" || AWK=awk
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# The default lists apply if the user does not specify any file.
+ac_need_defaults=:
+while test $# != 0
+do
+  case $1 in
+  --*=?*)
+    ac_option=`expr "X$1" : 'X\([^=]*\)='`
+    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+    ac_shift=:
+    ;;
+  --*=)
+    ac_option=`expr "X$1" : 'X\([^=]*\)='`
+    ac_optarg=
+    ac_shift=:
+    ;;
+  *)
+    ac_option=$1
+    ac_optarg=$2
+    ac_shift=shift
+    ;;
+  esac
+
+  case $ac_option in
+  # Handling of the options.
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    ac_cs_recheck=: ;;
+  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+    $as_echo "$ac_cs_version"; exit ;;
+  --config | --confi | --conf | --con | --co | --c )
+    $as_echo "$ac_cs_config"; exit ;;
+  --debug | --debu | --deb | --de | --d | -d )
+    debug=: ;;
+  --file | --fil | --fi | --f )
+    $ac_shift
+    case $ac_optarg in
+    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    '') as_fn_error $? "missing file argument" ;;
+    esac
+    as_fn_append CONFIG_FILES " '$ac_optarg'"
+    ac_need_defaults=false;;
+  --he | --h |  --help | --hel | -h )
+    $as_echo "$ac_cs_usage"; exit ;;
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil | --si | --s)
+    ac_cs_silent=: ;;
+
+  # This is an error.
+  -*) as_fn_error $? "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
+
+  *) as_fn_append ac_config_targets " $1"
+     ac_need_defaults=false ;;
+
+  esac
+  shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+  exec 6>/dev/null
+  ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+if \$ac_cs_recheck; then
+  set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+  shift
+  \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+  CONFIG_SHELL='$SHELL'
+  export CONFIG_SHELL
+  exec "\$@"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+exec 5>>config.log
+{
+  echo
+  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+  $as_echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+#
+# INIT-COMMANDS
+#
+AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+  case $ac_config_target in
+    "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+    "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+
+  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+  esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used.  Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience.  Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+  tmp= ac_tmp=
+  trap 'exit_status=$?
+  : "${ac_tmp:=$tmp}"
+  { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
+' 0
+  trap 'as_fn_exit 1' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+  test -d "$tmp"
+}  ||
+{
+  tmp=./conf$$-$RANDOM
+  (umask 077 && mkdir "$tmp")
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
+
+# Set up the scripts for CONFIG_FILES section.
+# No need to generate them if there are no CONFIG_FILES.
+# This happens for instance with `./config.status config.h'.
+if test -n "$CONFIG_FILES"; then
+
+
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+  eval ac_cr=\$\'\\r\'
+fi
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+  ac_cs_awk_cr='\\r'
+else
+  ac_cs_awk_cr=$ac_cr
+fi
+
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
+_ACEOF
+
+
+{
+  echo "cat >conf$$subs.awk <<_ACEOF" &&
+  echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+  echo "_ACEOF"
+} >conf$$subs.sh ||
+  as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+  . ./conf$$subs.sh ||
+    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+
+  ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+  if test $ac_delim_n = $ac_delim_num; then
+    break
+  elif $ac_last_try; then
+    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+  else
+    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+  fi
+done
+rm -f conf$$subs.sh
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
+_ACEOF
+sed -n '
+h
+s/^/S["/; s/!.*/"]=/
+p
+g
+s/^[^!]*!//
+:repl
+t repl
+s/'"$ac_delim"'$//
+t delim
+:nl
+h
+s/\(.\{148\}\)..*/\1/
+t more1
+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
+p
+n
+b repl
+:more1
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t nl
+:delim
+h
+s/\(.\{148\}\)..*/\1/
+t more2
+s/["\\]/\\&/g; s/^/"/; s/$/"/
+p
+b
+:more2
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t delim
+' <conf$$subs.awk | sed '
+/^[^""]/{
+  N
+  s/\n//
+}
+' >>$CONFIG_STATUS || ac_write_fail=1
+rm -f conf$$subs.awk
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACAWK
+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
+  for (key in S) S_is_set[key] = 1
+  FS = ""
+
+}
+{
+  line = $ 0
+  nfields = split(line, field, "@")
+  substed = 0
+  len = length(field[1])
+  for (i = 2; i < nfields; i++) {
+    key = field[i]
+    keylen = length(key)
+    if (S_is_set[key]) {
+      value = S[key]
+      line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+      len += length(value) + length(field[++i])
+      substed = 1
+    } else
+      len += 1 + keylen
+  }
+
+  print line
+}
+
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+  sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+else
+  cat
+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
+  || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
+_ACEOF
+
+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
+# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[	 ]*VPATH[	 ]*=[	 ]*/{
+h
+s///
+s/^/:/
+s/[	 ]*$/:/
+s/:\$(srcdir):/:/g
+s/:\${srcdir}:/:/g
+s/:@srcdir@:/:/g
+s/^:*//
+s/:*$//
+x
+s/\(=[	 ]*\).*/\1/
+G
+s/\n//
+s/^[^=]*=[	 ]*$//
+}'
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+fi # test -n "$CONFIG_FILES"
+
+
+eval set X "  :F $CONFIG_FILES      :C $CONFIG_COMMANDS"
+shift
+for ac_tag
+do
+  case $ac_tag in
+  :[FHLC]) ac_mode=$ac_tag; continue;;
+  esac
+  case $ac_mode$ac_tag in
+  :[FHL]*:*);;
+  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
+  :[FH]-) ac_tag=-:-;;
+  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+  esac
+  ac_save_IFS=$IFS
+  IFS=:
+  set x $ac_tag
+  IFS=$ac_save_IFS
+  shift
+  ac_file=$1
+  shift
+
+  case $ac_mode in
+  :L) ac_source=$1;;
+  :[FH])
+    ac_file_inputs=
+    for ac_f
+    do
+      case $ac_f in
+      -) ac_f="$ac_tmp/stdin";;
+      *) # Look for the file first in the build tree, then in the source tree
+	 # (if the path is not absolute).  The absolute path cannot be DOS-style,
+	 # because $ac_f cannot contain `:'.
+	 test -f "$ac_f" ||
+	   case $ac_f in
+	   [\\/$]*) false;;
+	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+	   esac ||
+	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+      esac
+      case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+      as_fn_append ac_file_inputs " '$ac_f'"
+    done
+
+    # Let's still pretend it is `configure' which instantiates (i.e., don't
+    # use $as_me), people would be surprised to read:
+    #    /* config.h.  Generated by config.status.  */
+    configure_input='Generated from '`
+	  $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+	`' by configure.'
+    if test x"$ac_file" != x-; then
+      configure_input="$ac_file.  $configure_input"
+      { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+$as_echo "$as_me: creating $ac_file" >&6;}
+    fi
+    # Neutralize special characters interpreted by sed in replacement strings.
+    case $configure_input in #(
+    *\&* | *\|* | *\\* )
+       ac_sed_conf_input=`$as_echo "$configure_input" |
+       sed 's/[\\\\&|]/\\\\&/g'`;; #(
+    *) ac_sed_conf_input=$configure_input;;
+    esac
+
+    case $ac_tag in
+    *:-:* | *:-) cat >"$ac_tmp/stdin" \
+      || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
+    esac
+    ;;
+  esac
+
+  ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$ac_file" : 'X\(//\)[^/]' \| \
+	 X"$ac_file" : 'X\(//\)$' \| \
+	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+  as_dir="$ac_dir"; as_fn_mkdir_p
+  ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+  # A ".." for each directory in $ac_dir_suffix.
+  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+  case $ac_top_builddir_sub in
+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+  esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+  .)  # We are building in place.
+    ac_srcdir=.
+    ac_top_srcdir=$ac_top_builddir_sub
+    ac_abs_top_srcdir=$ac_pwd ;;
+  [\\/]* | ?:[\\/]* )  # Absolute name.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir
+    ac_abs_top_srcdir=$srcdir ;;
+  *) # Relative name.
+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_build_prefix$srcdir
+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+  case $ac_mode in
+  :F)
+  #
+  # CONFIG_FILE
+  #
+
+  case $INSTALL in
+  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+  *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
+  esac
+  ac_MKDIR_P=$MKDIR_P
+  case $MKDIR_P in
+  [\\/$]* | ?:[\\/]* ) ;;
+  */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
+  esac
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+ac_sed_dataroot='
+/datarootdir/ {
+  p
+  q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+  ac_datarootdir_hack='
+  s&@datadir@&$datadir&g
+  s&@docdir@&$docdir&g
+  s&@infodir@&$infodir&g
+  s&@localedir@&$localedir&g
+  s&@mandir@&$mandir&g
+  s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s|@configure_input@|$ac_sed_conf_input|;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@top_build_prefix@&$ac_top_build_prefix&;t t
+s&@srcdir@&$ac_srcdir&;t t
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
+s&@top_srcdir@&$ac_top_srcdir&;t t
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+s&@INSTALL@&$ac_INSTALL&;t t
+s&@MKDIR_P@&$ac_MKDIR_P&;t t
+$ac_datarootdir_hack
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
+  >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+  { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' \
+      "$ac_tmp/out"`; test -z "$ac_out"; } &&
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined.  Please make sure it is defined" >&5
+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined.  Please make sure it is defined" >&2;}
+
+  rm -f "$ac_tmp/stdin"
+  case $ac_file in
+  -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+  *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
+  esac \
+  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ ;;
+
+
+  :C)  { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
+$as_echo "$as_me: executing $ac_file commands" >&6;}
+ ;;
+  esac
+
+
+  case $ac_file$ac_mode in
+    "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
+  # Older Autoconf quotes --file arguments for eval, but not when files
+  # are listed without --file.  Let's play safe and only enable the eval
+  # if we detect the quoting.
+  case $CONFIG_FILES in
+  *\'*) eval set x "$CONFIG_FILES" ;;
+  *)   set x $CONFIG_FILES ;;
+  esac
+  shift
+  for mf
+  do
+    # Strip MF so we end up with the name of the file.
+    mf=`echo "$mf" | sed -e 's/:.*$//'`
+    # Check whether this is an Automake generated Makefile or not.
+    # We used to match only the files named 'Makefile.in', but
+    # some people rename them; so instead we look at the file content.
+    # Grep'ing the first line is not enough: some people post-process
+    # each Makefile.in and add a new line on top of each file to say so.
+    # Grep'ing the whole file is not good either: AIX grep has a line
+    # limit of 2048, but all sed's we know have understand at least 4000.
+    if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+      dirpart=`$as_dirname -- "$mf" ||
+$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$mf" : 'X\(//\)[^/]' \| \
+	 X"$mf" : 'X\(//\)$' \| \
+	 X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$mf" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+    else
+      continue
+    fi
+    # Extract the definition of DEPDIR, am__include, and am__quote
+    # from the Makefile without running 'make'.
+    DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+    test -z "$DEPDIR" && continue
+    am__include=`sed -n 's/^am__include = //p' < "$mf"`
+    test -z "$am__include" && continue
+    am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+    # Find all dependency output files, they are included files with
+    # $(DEPDIR) in their names.  We invoke sed twice because it is the
+    # simplest approach to changing $(DEPDIR) to its actual value in the
+    # expansion.
+    for file in `sed -n "
+      s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
+      # Make sure the directory exists.
+      test -f "$dirpart/$file" && continue
+      fdir=`$as_dirname -- "$file" ||
+$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$file" : 'X\(//\)[^/]' \| \
+	 X"$file" : 'X\(//\)$' \| \
+	 X"$file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+      as_dir=$dirpart/$fdir; as_fn_mkdir_p
+      # echo "creating $dirpart/$file"
+      echo '# dummy' > "$dirpart/$file"
+    done
+  done
+}
+ ;;
+
+  esac
+done # for ac_tag
+
+
+as_fn_exit 0
+_ACEOF
+ac_clean_files=$ac_clean_files_save
+
+test $ac_write_fail = 0 ||
+  as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded.  So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status.  When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+  ac_cs_success=:
+  ac_config_status_args=
+  test "$silent" = yes &&
+    ac_config_status_args="$ac_config_status_args --quiet"
+  exec 5>/dev/null
+  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+  exec 5>>config.log
+  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+  # would make configure fail if this is the last instruction.
+  $ac_cs_success || as_fn_exit 1
+fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
+


Property changes on: trunk/Build/source/utils/axodraw2/configure
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/Build/source/utils/axodraw2/configure.ac
===================================================================
--- trunk/Build/source/utils/axodraw2/configure.ac	                        (rev 0)
+++ trunk/Build/source/utils/axodraw2/configure.ac	2018-02-10 23:30:32 UTC (rev 46590)
@@ -0,0 +1,28 @@
+# $Id$
+#                                               -*- Autoconf -*-
+# Process this file with autoconf to produce a configure script.
+dnl   Copyright 2018 John Collins
+dnl
+dnl   This file is free software; the copyright holder
+dnl   gives unlimited permission to copy and/or distribute it,
+dnl   with or without modifications, as long as this notice is preserved.
+dnl
+AC_INIT([axohelp (TeX Live)], [1], [jcc8 at psu.edu])
+AC_PREREQ([2.65])
+AC_CONFIG_SRCDIR([axodraw2-src/axohelp.c])
+AC_CONFIG_AUX_DIR([../../build-aux])
+AC_CONFIG_MACRO_DIR([../../m4])
+
+KPSE_BASIC([axodraw2], [no-define])
+
+AC_CHECK_LIB([m], [sqrt],,
+  AC_MSG_ERROR([*** Please install libm on your system ***]))
+AC_PROG_CC
+
+# trailing TL stuff.
+AC_PROG_MAKE_SET
+KPSE_COND_WIN32_WRAP
+AC_SUBST([AXODRAW2_TREE], [axodraw2-src])
+
+AC_CONFIG_FILES([Makefile])
+AC_OUTPUT


Property changes on: trunk/Build/source/utils/axodraw2/configure.ac
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Date Author Id
\ No newline at end of property
Modified: trunk/Build/source/utils/configure
===================================================================
--- trunk/Build/source/utils/configure	2018-02-10 23:28:32 UTC (rev 46589)
+++ trunk/Build/source/utils/configure	2018-02-10 23:30:32 UTC (rev 46590)
@@ -695,6 +695,7 @@
 enable_cxx_runtime_hack
 enable_libtool_hack
 enable_autosp
+enable_axodraw2
 enable_devnag
 enable_lacheck
 enable_m_tx
@@ -1483,6 +1484,7 @@
   --enable-cxx-runtime-hack  link C++ runtime statically
   --enable-libtool-hack   ignore libtool dependency_libs
   --disable-autosp        do not build the autosp package
+  --disable-axodraw2      do not build the axodraw2 package
   --disable-devnag        do not build the devnag package
   --disable-lacheck       do not build the lacheck package
   --disable-m-tx          do not build the m-tx package
@@ -3362,7 +3364,8 @@
 esac
 
 ## utils/autosp/ac/withenable.ac: configure.ac fragment for TeX Live subdir
-## configure options and TL libraries required for vlna
+## $Id$
+## configure options and TL libraries required for autosp.
 # Check whether --enable-autosp was given.
 if test "${enable_autosp+set}" = set; then :
   enableval=$enable_autosp;
@@ -3379,6 +3382,25 @@
     ;;
 esac
 
+## utils/autosp/ac/withenable.ac: configure.ac fragment for TeX Live subdir
+## $Id$
+## configure options and TL libraries for axodraw2.
+# Check whether --enable-axodraw2 was given.
+if test "${enable_axodraw2+set}" = set; then :
+  enableval=$enable_axodraw2;
+fi
+case $enable_axodraw2 in #(
+  yes|no) :
+     ;; #(
+  *) :
+
+   enable_axodraw2=$enable_all_pkgs
+     { $as_echo "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-axodraw2=$enable_axodraw2'" >&5
+$as_echo "$as_me: Assuming \`--enable-axodraw2=$enable_axodraw2'" >&6;}
+     ac_configure_args="$ac_configure_args '--enable-axodraw2=$enable_axodraw2'"
+    ;;
+esac
+
 ## utils/devnag/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory utils/devnag/
 ## configure options and TL libraries required for devnag
 # Check whether --enable-devnag was given.
@@ -6424,6 +6446,10 @@
   test "x$enable_autosp" = xyes && MAKE_SUBDIRS="$MAKE_SUBDIRS autosp"
   CONF_SUBDIRS="$CONF_SUBDIRS autosp"
 fi
+if test -x $srcdir/axodraw2/configure; then
+  test "x$enable_axodraw2" = xyes && MAKE_SUBDIRS="$MAKE_SUBDIRS axodraw2"
+  CONF_SUBDIRS="$CONF_SUBDIRS axodraw2"
+fi
 if test -x $srcdir/devnag/configure; then
   test "x$enable_devnag" = xyes && MAKE_SUBDIRS="$MAKE_SUBDIRS devnag"
   CONF_SUBDIRS="$CONF_SUBDIRS devnag"



More information about the tex-live-commits mailing list