summaryrefslogtreecommitdiff
path: root/support
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-02-07 03:01:03 +0000
committerNorbert Preining <norbert@preining.info>2020-02-07 03:01:03 +0000
commit9c4a09ca6a4130e71ba545412319aaee3c618460 (patch)
tree52b4c3ee8dc02613fc8ce4faffe5292e10e5d10a /support
parente684f0597e24a1d09af301d82b340b2df7cf2080 (diff)
CTAN sync 202002070301
Diffstat (limited to 'support')
-rwxr-xr-xsupport/autosp/MacOSX/autospbin59212 -> 59176 bytes
-rwxr-xr-xsupport/autosp/MacOSX/rebarbin19408 -> 19408 bytes
-rwxr-xr-xsupport/autosp/MacOSX/tex2aspcbin19804 -> 19804 bytes
-rw-r--r--support/autosp/README2
-rw-r--r--support/autosp/doc/barsant2.pdfbin33166 -> 33270 bytes
-rw-r--r--support/autosp/doc/geminiani.pdfbin146004 -> 146034 bytes
-rw-r--r--support/autosp/doc/kinder2.pdfbin32967 -> 32944 bytes
-rw-r--r--support/autosp/doc/quod2.pdfbin33769 -> 35572 bytes
-rw-r--r--support/autosp/doc/quod2A.pdfbin24235 -> 24283 bytes
-rw-r--r--support/cluttex/CHANGELOG.md10
-rw-r--r--support/cluttex/Makefile1
-rw-r--r--support/cluttex/README.md4
-rwxr-xr-xsupport/cluttex/bin/cluttex256
-rw-r--r--support/cluttex/bin/cluttex.bat256
-rw-r--r--support/cluttex/build.lua4
-rw-r--r--support/cluttex/doc/Makefile20
-rw-r--r--support/cluttex/doc/cluttex-ja.pdfbin0 -> 480358 bytes
-rw-r--r--support/cluttex/doc/cluttex-ja.tex (renamed from support/cluttex/doc/manual-ja.tex)17
-rw-r--r--support/cluttex/doc/cluttex.pdfbin0 -> 174976 bytes
-rw-r--r--support/cluttex/doc/cluttex.tex (renamed from support/cluttex/doc/manual.tex)19
-rw-r--r--support/cluttex/doc/manual-ja.pdfbin476078 -> 0 bytes
-rw-r--r--support/cluttex/doc/manual.pdfbin173012 -> 0 bytes
-rw-r--r--support/cluttex/src/cluttex.lua12
-rw-r--r--support/cluttex/src/texrunner/auxfile.lua12
-rw-r--r--support/cluttex/src/texrunner/checkdriver.lua184
-rw-r--r--support/cluttex/src/texrunner/handleoption.lua38
-rw-r--r--support/cluttex/src/texrunner/luatexinit.lua6
-rw-r--r--support/cluttex/src/texrunner/message.lua2
-rwxr-xr-xsupport/pmx/OSX/pmxabbin720504 -> 748292 bytes
-rwxr-xr-xsupport/pmx/OSX/scor2prtbin120376 -> 118012 bytes
-rw-r--r--support/pmx/README20
-rw-r--r--support/pmx/doc/ChangeLog713
-rw-r--r--support/pmx/doc/accents.eps1145
-rw-r--r--support/pmx/doc/examples/prad5x.pmx104
-rw-r--r--support/pmx/doc/gapxmpl.eps1243
-rw-r--r--support/pmx/doc/pmx-install.pdfbin90847 -> 108463 bytes
-rw-r--r--support/pmx/doc/pmx-install.tex24
-rw-r--r--support/pmx/doc/pmx25-284.html384
-rw-r--r--support/pmx/doc/pmx284.pdfbin322439 -> 0 bytes
-rw-r--r--support/pmx/doc/pmx294.pdfbin0 -> 345417 bytes
-rw-r--r--support/pmx/doc/pmx294.tex (renamed from support/pmx/doc/pmx284.tex)313
-rw-r--r--support/pmx/doc/ref284.pdfbin64109 -> 0 bytes
-rw-r--r--support/pmx/doc/ref294.pdfbin0 -> 70133 bytes
-rw-r--r--support/pmx/doc/ref294.tex (renamed from support/pmx/doc/ref284.tex)33
-rw-r--r--support/pmx/doc/sjb291.eps1208
-rw-r--r--support/pmx/doc/tremxmpl4.eps972
-rw-r--r--support/pmx/tex/pmx.tex19
47 files changed, 6483 insertions, 538 deletions
diff --git a/support/autosp/MacOSX/autosp b/support/autosp/MacOSX/autosp
index 21cf98b5b6..4a3d734e90 100755
--- a/support/autosp/MacOSX/autosp
+++ b/support/autosp/MacOSX/autosp
Binary files differ
diff --git a/support/autosp/MacOSX/rebar b/support/autosp/MacOSX/rebar
index 35bdf06a0b..83b55398fc 100755
--- a/support/autosp/MacOSX/rebar
+++ b/support/autosp/MacOSX/rebar
Binary files differ
diff --git a/support/autosp/MacOSX/tex2aspc b/support/autosp/MacOSX/tex2aspc
index bdfa4d6bc8..1948ddb493 100755
--- a/support/autosp/MacOSX/tex2aspc
+++ b/support/autosp/MacOSX/tex2aspc
Binary files differ
diff --git a/support/autosp/README b/support/autosp/README
index 779d7a9445..c71416bf4c 100644
--- a/support/autosp/README
+++ b/support/autosp/README
@@ -1,5 +1,5 @@
This is the README for the autosp package,
-version 2019-12-22.
+version 2020-02-06.
autosp is a preprocessor that generates note-spacing
commands for MusiXTeX scores. It simplifies the creation
diff --git a/support/autosp/doc/barsant2.pdf b/support/autosp/doc/barsant2.pdf
index 78b4f76baf..b51af826ba 100644
--- a/support/autosp/doc/barsant2.pdf
+++ b/support/autosp/doc/barsant2.pdf
Binary files differ
diff --git a/support/autosp/doc/geminiani.pdf b/support/autosp/doc/geminiani.pdf
index f84f30df39..e849d42f96 100644
--- a/support/autosp/doc/geminiani.pdf
+++ b/support/autosp/doc/geminiani.pdf
Binary files differ
diff --git a/support/autosp/doc/kinder2.pdf b/support/autosp/doc/kinder2.pdf
index 3bea428369..786eb52a16 100644
--- a/support/autosp/doc/kinder2.pdf
+++ b/support/autosp/doc/kinder2.pdf
Binary files differ
diff --git a/support/autosp/doc/quod2.pdf b/support/autosp/doc/quod2.pdf
index cd371ac188..e3d3798a50 100644
--- a/support/autosp/doc/quod2.pdf
+++ b/support/autosp/doc/quod2.pdf
Binary files differ
diff --git a/support/autosp/doc/quod2A.pdf b/support/autosp/doc/quod2A.pdf
index 96aa9875c8..7a64ea16e6 100644
--- a/support/autosp/doc/quod2A.pdf
+++ b/support/autosp/doc/quod2A.pdf
Binary files differ
diff --git a/support/cluttex/CHANGELOG.md b/support/cluttex/CHANGELOG.md
index b07933de05..2aa1b99bf1 100644
--- a/support/cluttex/CHANGELOG.md
+++ b/support/cluttex/CHANGELOG.md
@@ -1,3 +1,13 @@
+Version 0.5 (2020-02-06)
+-----
+
+Changes:
+
+* New option: `--check-driver`
+* Driver options for some packages are always checked when the output format is PDF.
+* The color for EXEC messages are now cyan ([Issue #2](https://github.com/minoki/cluttex/issues/2)).
+* Some bug-fixes.
+
Version 0.4 (2019-08-21)
-----
diff --git a/support/cluttex/Makefile b/support/cluttex/Makefile
index ef12dd5131..ae764ad2ab 100644
--- a/support/cluttex/Makefile
+++ b/support/cluttex/Makefile
@@ -21,6 +21,7 @@ sources= \
src/texrunner/message.lua \
src/texrunner/fswatcher_windows.lua \
src/texrunner/safename.lua \
+ src/texrunner/checkdriver.lua \
src/cluttex.lua
bin/cluttex: $(sources) build.lua
diff --git a/support/cluttex/README.md b/support/cluttex/README.md
index 3ed578337e..80acb125ab 100644
--- a/support/cluttex/README.md
+++ b/support/cluttex/README.md
@@ -90,6 +90,10 @@ Command-line Options
Currently supported packages are `minted` and `epstopdf`.
* `--engine-executable=COMMAND`
The actual TeX command to use.
+* `--check-driver=DRIVER`
+ Check that the correct driver file is loaded.
+ `DRIVER` is one of `dvipdfmx`, `dvips`, `dvisvgm`.
+ Can only be used with `--output-format=dvi`.
Options to run auxiliary programs:
diff --git a/support/cluttex/bin/cluttex b/support/cluttex/bin/cluttex
index a3021e48a0..d3859a69fa 100755
--- a/support/cluttex/bin/cluttex
+++ b/support/cluttex/bin/cluttex
@@ -1133,8 +1133,9 @@ local function parse_aux_file(auxfile, outdir, report, seen)
for l in io.lines(auxfile) do
local subauxfile = string_match(l, "\\@input{(.+)}")
if subauxfile then
- if fsutil.isfile(subauxfile) then
- parse_aux_file(pathutil.join(outdir, subauxfile), outdir, report, seen)
+ local subauxfile_abs = pathutil.abspath(subauxfile, outdir)
+ if fsutil.isfile(subauxfile_abs) then
+ parse_aux_file(subauxfile_abs, outdir, report, seen)
else
local dir = pathutil.join(outdir, pathutil.dirname(subauxfile))
if not fsutil.isdir(dir) then
@@ -1159,8 +1160,11 @@ local function extract_bibtex_from_aux_file(auxfile, outdir, biblines)
end
elseif name == "@input" then
local subauxfile = string_match(l, "\\@input{(.+)}")
- if subauxfile and fsutil.isfile(subauxfile) then
- extract_bibtex_from_aux_file(pathutil.join(outdir, subauxfile), outdir, biblines)
+ if subauxfile then
+ local subauxfile_abs = pathutil.abspath(subauxfile, outdir)
+ if fsutil.isfile(subauxfile_abs) then
+ extract_bibtex_from_aux_file(subauxfile_abs, outdir, biblines)
+ end
end
end
end
@@ -1192,17 +1196,19 @@ local texio_write_nl = texio.write_nl
-- Packages coded in Lua doesn't follow -output-directory option and doesn't write command to the log file
initscript:write(string.format("local output_directory = %q\n", options.output_directory))
+ -- tex.jobname may not be available when io.open is called for the first time
+ initscript:write(string.format("local jobname = %q\n", options.jobname))
initscript:write([==[
local luawritelog
local function openluawritelog()
if not luawritelog then
- luawritelog = assert(io_open(output_directory .. "/" .. tex.jobname .. ".cluttex-fls", "w"))
+ luawritelog = assert(io_open(output_directory .. "/" .. jobname .. ".cluttex-fls", "w"))
end
return luawritelog
end
io.open = function(fname, mode)
-- luatexja-ruby
- if mode == "w" and fname == tex.jobname .. ".ltjruby" then
+ if mode == "w" and fname == jobname .. ".ltjruby" then
fname = output_directory .. "/" .. fname
end
if type(mode) == "string" and string.find(mode, "w") ~= nil then
@@ -1363,7 +1369,7 @@ return {
end
package.preload["texrunner.handleoption"] = function(...)
local COPYRIGHT_NOTICE = [[
-Copyright (C) 2016,2018-2019 ARATA Mizuki
+Copyright (C) 2016-2020 ARATA Mizuki
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
@@ -1436,6 +1442,8 @@ Options:
Enable special support for some shell-escaping
packages.
Currently supported: minted, epstopdf
+ --check-driver=DRIVER Check that the correct driver file is loaded.
+ DRIVER is one of `dvipdfmx', `dvips', `dvisvgm'.
--[no-]shell-escape
--shell-restricted
@@ -1518,6 +1526,10 @@ local option_spec = {
long = "package-support",
param = true
},
+ {
+ long = "check-driver",
+ param = true
+ },
-- Options for TeX
{
long = "synctex",
@@ -1621,6 +1633,10 @@ local function set_default_values(options)
if options.halt_on_error == nil then
options.halt_on_error = true
end
+
+ if options.output_format == nil then
+ options.output_format = "pdf"
+ end
end
-- inputfile, engine, options = handle_cluttex_options(arg)
@@ -1709,6 +1725,11 @@ local function handle_cluttex_options(arg)
end
end
+ elseif name == "check-driver" then
+ assert(options.check_driver == nil, "multiple --check-driver options")
+ assert(param == "dvipdfmx" or param == "dvips" or param == "dvisvgm", "wrong value for --check-driver option")
+ options.check_driver = param
+
-- Options for TeX
elseif name == "synctex" then
assert(options.synctex == nil, "multiple --synctex options")
@@ -1819,6 +1840,27 @@ local function handle_cluttex_options(arg)
set_default_values(options)
+ if options.output_format == "pdf" then
+ if options.check_driver ~= nil then
+ error("--check-driver can only be used when the output format is DVI.")
+ end
+ if engine.supports_pdf_generation then
+ if engine.is_luatex then
+ options.check_driver = "luatex"
+ elseif engine.name == "xetex" or engine.name == "xelatex" then
+ options.check_driver = "xetex"
+ elseif engine.name == "pdftex" or engine.name == "pdflatex" then
+ options.check_driver = "pdftex"
+ else
+ message.warning("Unknown engine: "..engine.name)
+ message.warning("Driver check will not work.")
+ end
+ else
+ -- ClutTeX uses dvipdfmx to generate PDF from DVI output.
+ options.check_driver = "dvipdfmx"
+ end
+ end
+
return inputfile, engine, options
end
@@ -2127,7 +2169,7 @@ local CMD = {
local function exec_msg(commandline)
if use_colors then
- io.stderr:write(CMD.fg_x_white, CMD.bg_red, "[EXEC]", CMD.reset, " ", CMD.fg_red, commandline, CMD.reset, "\n")
+ io.stderr:write(CMD.fg_x_white, CMD.bg_red, "[EXEC]", CMD.reset, " ", CMD.fg_cyan, commandline, CMD.reset, "\n")
else
io.stderr:write("[EXEC] ", commandline, "\n")
end
@@ -2659,8 +2701,194 @@ return {
safeinput = safeinput,
}
end
+package.preload["texrunner.checkdriver"] = function(...)
+--[[
+ Copyright 2020 ARATA Mizuki
+
+ This file is part of ClutTeX.
+
+ ClutTeX is free software: you can 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.
+
+ ClutTeX is distributed in the hope that it will be useful,
+ but WITHOUT 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 ClutTeX. If not, see <http://www.gnu.org/licenses/>.
+]]
+local assert = assert
+local ipairs = ipairs
+local error = error
+local string = string
+local pathutil = require "texrunner.pathutil"
+local message = require "texrunner.message"
+
+local right_values = {
+ dvips = {
+ graphics = "dvips",
+ expl3 = "dvips",
+ hyperref = "dvips",
+ xypic = "dvips",
+ },
+ dvipdfmx = {
+ graphics = "dvipdfmx",
+ expl3 = "dvipdfmx",
+ hyperref = "dvipdfmx",
+ xypic = "pdf",
+ },
+ dvisvgm = {
+ graphics = "dvisvgm",
+ expl3 = "dvisvgm",
+ },
+ xetex = {
+ graphics = "xetex",
+ expl3 = "xdvipdfmx",
+ hyperref = "xetex",
+ xypic = "pdf",
+ },
+ pdftex = {
+ graphics = "pdftex",
+ expl3 = "pdfmode",
+ hyperref = "pdftex",
+ xypic = "pdf",
+ },
+ luatex = {
+ graphics = "luatex",
+ expl3 = "pdfmode",
+ hyperref = "luatex",
+ xypic = "pdf",
+ },
+}
+
+-- expected_driver: one of "dvips", "dvipdfmx", "dvisvgm", "pdftex", "xetex", "luatex"
+local function checkdriver(expected_driver, filelist)
+ if CLUTTEX_VERBOSITY >= 1 then
+ message.info("checkdriver: expects ", expected_driver)
+ end
+
+ local loaded = {}
+ for i,t in ipairs(filelist) do
+ if t.kind == "input" then
+ local basename = pathutil.basename(t.path)
+ loaded[basename] = true
+ end
+ end
+
+ local graphics_driver = nil -- "dvipdfmx" | "dvips" | "dvisvgm" | "pdftex" | "luatex" | "xetex" | "unknown"
+ if loaded["graphics.sty"] or loaded["color.sty"] then
+ if loaded["dvipdfmx.def"] then
+ graphics_driver = "dvipdfmx"
+ elseif loaded["dvips.def"] then
+ graphics_driver = "dvips"
+ elseif loaded["dvisvgm.def"] then
+ graphics_driver = "dvisvgm"
+ elseif loaded["pdftex.def"] then
+ graphics_driver = "pdftex"
+ elseif loaded["luatex.def"] then
+ graphics_driver = "luatex"
+ elseif loaded["xetex.def"] then
+ graphics_driver = "xetex"
+ else
+ -- Not supported: dvipdf, dvipsone, emtex, textures, pctexps, pctexwin, pctexhp, pctex32, truetex, tcidvi, vtex
+ graphics_driver = "unknown"
+ end
+ end
+ local expl3_driver = nil -- "pdfmode" | "dvisvgm" | "xdvipdfmx" | "dvipdfmx" | "dvips" | "unknown"
+ if loaded["expl3-code.tex"] or loaded["expl3.sty"] or loaded["l3backend-dvips.def"] or loaded["l3backend-dvipdfmx.def"] or loaded["l3backend-xdvipdfmx.def"] or loaded["l3backend-pdfmode.def"] then
+ if loaded["l3backend-pdfmode.def"] then
+ expl3_driver = "pdfmode" -- pdftex, luatex
+ elseif loaded["l3backend-dvisvgm.def"] then
+ expl3_driver = "dvisvgm"
+ elseif loaded["l3backend-xdvipdfmx.def"] then
+ expl3_driver = "xdvipdfmx"
+ elseif loaded["l3backend-dvipdfmx.def"] then
+ expl3_driver = "dvipdfmx"
+ elseif loaded["l3backend-dvips.def"] then
+ expl3_driver = "dvips"
+ else
+ -- TODO: driver=latex2e?
+ expl3_driver = "unknown"
+ end
+ end
+ local hyperref_driver = nil -- "luatex" | "pdftex" | "xetex" | "dvipdfmx" | "dvips" | "unknown"
+ if loaded["hyperref.sty"] then
+ if loaded["hluatex.def"] then
+ hyperref_driver = "luatex"
+ elseif loaded["hpdftex.def"] then
+ hyperref_driver = "pdftex"
+ elseif loaded["hxetex.def"] then
+ hyperref_driver = "xetex"
+ elseif loaded["hdvipdfm.def"] then
+ hyperref_driver = "dvipdfmx"
+ elseif loaded["hdvips.def"] then
+ hyperref_driver = "dvips"
+ else
+ -- Not supported: dvipson, dviwind, tex4ht, texture, vtex, vtexhtm, xtexmrk, hypertex
+ hyperref_driver = "unknown"
+ end
+ -- TODO: dvisvgm?
+ end
+ local xypic_driver = nil -- "pdf" | "dvips" | "unknown"
+ if loaded["xy.tex"] then
+ if loaded["xypdf.tex"] then
+ xypic_driver = "pdf" -- pdftex, luatex, xetex, dvipdfmx
+ elseif loaded["xydvips.tex"] then
+ xypic_driver = "dvips"
+ else
+ -- Not supported: dvidrv, dvitops, oztex, 17oztex, textures, 16textures, xdvi
+ xypic_driver = "unknown"
+ end
+ -- TODO: dvisvgm?
+ end
+
+ if CLUTTEX_VERBOSITY >= 1 then
+ message.info("checkdriver: graphics=", tostring(graphics_driver))
+ message.info("checkdriver: expl3=", tostring(expl3_driver))
+ message.info("checkdriver: hyperref=", tostring(hyperref_driver))
+ message.info("checkdriver: xypic=", tostring(xypic_driver))
+ end
+
+ local expected = assert(right_values[expected_driver], "invalid value for expected_driver")
+ if graphics_driver ~= nil and expected.graphics ~= nil and graphics_driver ~= expected.graphics then
+ message.diag("The driver option for graphics(x)/color is missing or wrong.")
+ message.diag("Consider setting '", expected.graphics, "' option.")
+ end
+ if expl3_driver ~= nil and expected.expl3 ~= nil and expl3_driver ~= expected.expl3 then
+ message.diag("The driver option for expl3 is missing or wrong.")
+ message.diag("Consider setting 'driver=", expected.expl3, "' option when loading expl3.")
+ end
+ if hyperref_driver ~= nil and expected.hyperref ~= nil and hyperref_driver ~= expected.hyperref then
+ message.diag("The driver option for hyperref is missing or wrong.")
+ message.diag("Consider setting '", expected.hyperref, "' option.")
+ end
+ if xypic_driver ~= nil and expected.xypic ~= nil and xypic_driver ~= expected.xypic then
+ message.diag("The driver option for Xy-pic is missing or wrong.")
+ if expected_driver == "dvipdfmx" then
+ message.diag("Consider setting 'dvipdfmx' option or running \\xyoption{pdf}.")
+ elseif expected_driver == "pdftex" then
+ message.diag("Consider setting 'pdftex' option or running \\xyoption{pdf}.")
+ elseif expected.xypic == "pdf" then
+ message.diag("Consider setting 'pdf' package option or running \\xyoption{pdf}.")
+ elseif expected.xypic == "dvips" then
+ message.diag("Consider setting 'dvips' option.")
+ end
+ end
+end
+
+--[[
+filelist[i] = {path = ""}
+]]
+
+return {
+ checkdriver = checkdriver,
+}
+end
--[[
- Copyright 2016,2018-2019 ARATA Mizuki
+ Copyright 2016-2020 ARATA Mizuki
This file is part of ClutTeX.
@@ -2678,7 +2906,7 @@ end
along with ClutTeX. If not, see <http://www.gnu.org/licenses/>.
]]
-CLUTTEX_VERSION = "v0.4"
+CLUTTEX_VERSION = "v0.5"
-- Standard libraries
local coroutine = coroutine
@@ -2700,6 +2928,7 @@ local message = require "texrunner.message"
local safename = require "texrunner.safename"
local extract_bibtex_from_aux_file = require "texrunner.auxfile".extract_bibtex_from_aux_file
local handle_cluttex_options = require "texrunner.handleoption".handle_cluttex_options
+local checkdriver = require "texrunner.checkdriver".checkdriver
os.setlocale("", "ctype") -- Workaround for recent Universal CRT
@@ -2729,9 +2958,6 @@ end
local jobname = options.jobname
assert(jobname ~= "", "jobname cannot be empty")
-if options.output_format == nil then
- options.output_format = "pdf"
-end
local output_extension
if options.output_format == "dvi" then
output_extension = engine.dvi_extension or "dvi"
@@ -2955,6 +3181,10 @@ local function single_run(auxstatus, iteration)
logfile:close()
end
+ if options.check_driver ~= nil then
+ checkdriver(options.check_driver, filelist)
+ end
+
if options.makeindex then
-- Look for .idx files and run MakeIndex
for _,file in ipairs(filelist) do
diff --git a/support/cluttex/bin/cluttex.bat b/support/cluttex/bin/cluttex.bat
index 5779e698db..df0dfd395c 100644
--- a/support/cluttex/bin/cluttex.bat
+++ b/support/cluttex/bin/cluttex.bat
@@ -1136,8 +1136,9 @@ local function parse_aux_file(auxfile, outdir, report, seen)
for l in io.lines(auxfile) do
local subauxfile = string_match(l, "\\@input{(.+)}")
if subauxfile then
- if fsutil.isfile(subauxfile) then
- parse_aux_file(pathutil.join(outdir, subauxfile), outdir, report, seen)
+ local subauxfile_abs = pathutil.abspath(subauxfile, outdir)
+ if fsutil.isfile(subauxfile_abs) then
+ parse_aux_file(subauxfile_abs, outdir, report, seen)
else
local dir = pathutil.join(outdir, pathutil.dirname(subauxfile))
if not fsutil.isdir(dir) then
@@ -1162,8 +1163,11 @@ local function extract_bibtex_from_aux_file(auxfile, outdir, biblines)
end
elseif name == "@input" then
local subauxfile = string_match(l, "\\@input{(.+)}")
- if subauxfile and fsutil.isfile(subauxfile) then
- extract_bibtex_from_aux_file(pathutil.join(outdir, subauxfile), outdir, biblines)
+ if subauxfile then
+ local subauxfile_abs = pathutil.abspath(subauxfile, outdir)
+ if fsutil.isfile(subauxfile_abs) then
+ extract_bibtex_from_aux_file(subauxfile_abs, outdir, biblines)
+ end
end
end
end
@@ -1195,17 +1199,19 @@ local texio_write_nl = texio.write_nl
-- Packages coded in Lua doesn't follow -output-directory option and doesn't write command to the log file
initscript:write(string.format("local output_directory = %q\n", options.output_directory))
+ -- tex.jobname may not be available when io.open is called for the first time
+ initscript:write(string.format("local jobname = %q\n", options.jobname))
initscript:write([==[
local luawritelog
local function openluawritelog()
if not luawritelog then
- luawritelog = assert(io_open(output_directory .. "/" .. tex.jobname .. ".cluttex-fls", "w"))
+ luawritelog = assert(io_open(output_directory .. "/" .. jobname .. ".cluttex-fls", "w"))
end
return luawritelog
end
io.open = function(fname, mode)
-- luatexja-ruby
- if mode == "w" and fname == tex.jobname .. ".ltjruby" then
+ if mode == "w" and fname == jobname .. ".ltjruby" then
fname = output_directory .. "/" .. fname
end
if type(mode) == "string" and string.find(mode, "w") ~= nil then
@@ -1366,7 +1372,7 @@ return {
end
package.preload["texrunner.handleoption"] = function(...)
local COPYRIGHT_NOTICE = [[
-Copyright (C) 2016,2018-2019 ARATA Mizuki
+Copyright (C) 2016-2020 ARATA Mizuki
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
@@ -1439,6 +1445,8 @@ Options:
Enable special support for some shell-escaping
packages.
Currently supported: minted, epstopdf
+ --check-driver=DRIVER Check that the correct driver file is loaded.
+ DRIVER is one of `dvipdfmx', `dvips', `dvisvgm'.
--[no-]shell-escape
--shell-restricted
@@ -1521,6 +1529,10 @@ local option_spec = {
long = "package-support",
param = true
},
+ {
+ long = "check-driver",
+ param = true
+ },
-- Options for TeX
{
long = "synctex",
@@ -1624,6 +1636,10 @@ local function set_default_values(options)
if options.halt_on_error == nil then
options.halt_on_error = true
end
+
+ if options.output_format == nil then
+ options.output_format = "pdf"
+ end
end
-- inputfile, engine, options = handle_cluttex_options(arg)
@@ -1712,6 +1728,11 @@ local function handle_cluttex_options(arg)
end
end
+ elseif name == "check-driver" then
+ assert(options.check_driver == nil, "multiple --check-driver options")
+ assert(param == "dvipdfmx" or param == "dvips" or param == "dvisvgm", "wrong value for --check-driver option")
+ options.check_driver = param
+
-- Options for TeX
elseif name == "synctex" then
assert(options.synctex == nil, "multiple --synctex options")
@@ -1822,6 +1843,27 @@ local function handle_cluttex_options(arg)
set_default_values(options)
+ if options.output_format == "pdf" then
+ if options.check_driver ~= nil then
+ error("--check-driver can only be used when the output format is DVI.")
+ end
+ if engine.supports_pdf_generation then
+ if engine.is_luatex then
+ options.check_driver = "luatex"
+ elseif engine.name == "xetex" or engine.name == "xelatex" then
+ options.check_driver = "xetex"
+ elseif engine.name == "pdftex" or engine.name == "pdflatex" then
+ options.check_driver = "pdftex"
+ else
+ message.warning("Unknown engine: "..engine.name)
+ message.warning("Driver check will not work.")
+ end
+ else
+ -- ClutTeX uses dvipdfmx to generate PDF from DVI output.
+ options.check_driver = "dvipdfmx"
+ end
+ end
+
return inputfile, engine, options
end
@@ -2130,7 +2172,7 @@ local CMD = {
local function exec_msg(commandline)
if use_colors then
- io.stderr:write(CMD.fg_x_white, CMD.bg_red, "[EXEC]", CMD.reset, " ", CMD.fg_red, commandline, CMD.reset, "\n")
+ io.stderr:write(CMD.fg_x_white, CMD.bg_red, "[EXEC]", CMD.reset, " ", CMD.fg_cyan, commandline, CMD.reset, "\n")
else
io.stderr:write("[EXEC] ", commandline, "\n")
end
@@ -2662,8 +2704,194 @@ return {
safeinput = safeinput,
}
end
+package.preload["texrunner.checkdriver"] = function(...)
+--[[
+ Copyright 2020 ARATA Mizuki
+
+ This file is part of ClutTeX.
+
+ ClutTeX is free software: you can 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.
+
+ ClutTeX is distributed in the hope that it will be useful,
+ but WITHOUT 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 ClutTeX. If not, see <http://www.gnu.org/licenses/>.
+]]
+local assert = assert
+local ipairs = ipairs
+local error = error
+local string = string
+local pathutil = require "texrunner.pathutil"
+local message = require "texrunner.message"
+
+local right_values = {
+ dvips = {
+ graphics = "dvips",
+ expl3 = "dvips",
+ hyperref = "dvips",
+ xypic = "dvips",
+ },
+ dvipdfmx = {
+ graphics = "dvipdfmx",
+ expl3 = "dvipdfmx",
+ hyperref = "dvipdfmx",
+ xypic = "pdf",
+ },
+ dvisvgm = {
+ graphics = "dvisvgm",
+ expl3 = "dvisvgm",
+ },
+ xetex = {
+ graphics = "xetex",
+ expl3 = "xdvipdfmx",
+ hyperref = "xetex",
+ xypic = "pdf",
+ },
+ pdftex = {
+ graphics = "pdftex",
+ expl3 = "pdfmode",
+ hyperref = "pdftex",
+ xypic = "pdf",
+ },
+ luatex = {
+ graphics = "luatex",
+ expl3 = "pdfmode",
+ hyperref = "luatex",
+ xypic = "pdf",
+ },
+}
+
+-- expected_driver: one of "dvips", "dvipdfmx", "dvisvgm", "pdftex", "xetex", "luatex"
+local function checkdriver(expected_driver, filelist)
+ if CLUTTEX_VERBOSITY >= 1 then
+ message.info("checkdriver: expects ", expected_driver)
+ end
+
+ local loaded = {}
+ for i,t in ipairs(filelist) do
+ if t.kind == "input" then
+ local basename = pathutil.basename(t.path)
+ loaded[basename] = true
+ end
+ end
+
+ local graphics_driver = nil -- "dvipdfmx" | "dvips" | "dvisvgm" | "pdftex" | "luatex" | "xetex" | "unknown"
+ if loaded["graphics.sty"] or loaded["color.sty"] then
+ if loaded["dvipdfmx.def"] then
+ graphics_driver = "dvipdfmx"
+ elseif loaded["dvips.def"] then
+ graphics_driver = "dvips"
+ elseif loaded["dvisvgm.def"] then
+ graphics_driver = "dvisvgm"
+ elseif loaded["pdftex.def"] then
+ graphics_driver = "pdftex"
+ elseif loaded["luatex.def"] then
+ graphics_driver = "luatex"
+ elseif loaded["xetex.def"] then
+ graphics_driver = "xetex"
+ else
+ -- Not supported: dvipdf, dvipsone, emtex, textures, pctexps, pctexwin, pctexhp, pctex32, truetex, tcidvi, vtex
+ graphics_driver = "unknown"
+ end
+ end
+ local expl3_driver = nil -- "pdfmode" | "dvisvgm" | "xdvipdfmx" | "dvipdfmx" | "dvips" | "unknown"
+ if loaded["expl3-code.tex"] or loaded["expl3.sty"] or loaded["l3backend-dvips.def"] or loaded["l3backend-dvipdfmx.def"] or loaded["l3backend-xdvipdfmx.def"] or loaded["l3backend-pdfmode.def"] then
+ if loaded["l3backend-pdfmode.def"] then
+ expl3_driver = "pdfmode" -- pdftex, luatex
+ elseif loaded["l3backend-dvisvgm.def"] then
+ expl3_driver = "dvisvgm"
+ elseif loaded["l3backend-xdvipdfmx.def"] then
+ expl3_driver = "xdvipdfmx"
+ elseif loaded["l3backend-dvipdfmx.def"] then
+ expl3_driver = "dvipdfmx"
+ elseif loaded["l3backend-dvips.def"] then
+ expl3_driver = "dvips"
+ else
+ -- TODO: driver=latex2e?
+ expl3_driver = "unknown"
+ end
+ end
+ local hyperref_driver = nil -- "luatex" | "pdftex" | "xetex" | "dvipdfmx" | "dvips" | "unknown"
+ if loaded["hyperref.sty"] then
+ if loaded["hluatex.def"] then
+ hyperref_driver = "luatex"
+ elseif loaded["hpdftex.def"] then
+ hyperref_driver = "pdftex"
+ elseif loaded["hxetex.def"] then
+ hyperref_driver = "xetex"
+ elseif loaded["hdvipdfm.def"] then
+ hyperref_driver = "dvipdfmx"
+ elseif loaded["hdvips.def"] then
+ hyperref_driver = "dvips"
+ else
+ -- Not supported: dvipson, dviwind, tex4ht, texture, vtex, vtexhtm, xtexmrk, hypertex
+ hyperref_driver = "unknown"
+ end
+ -- TODO: dvisvgm?
+ end
+ local xypic_driver = nil -- "pdf" | "dvips" | "unknown"
+ if loaded["xy.tex"] then
+ if loaded["xypdf.tex"] then
+ xypic_driver = "pdf" -- pdftex, luatex, xetex, dvipdfmx
+ elseif loaded["xydvips.tex"] then
+ xypic_driver = "dvips"
+ else
+ -- Not supported: dvidrv, dvitops, oztex, 17oztex, textures, 16textures, xdvi
+ xypic_driver = "unknown"
+ end
+ -- TODO: dvisvgm?
+ end
+
+ if CLUTTEX_VERBOSITY >= 1 then
+ message.info("checkdriver: graphics=", tostring(graphics_driver))
+ message.info("checkdriver: expl3=", tostring(expl3_driver))
+ message.info("checkdriver: hyperref=", tostring(hyperref_driver))
+ message.info("checkdriver: xypic=", tostring(xypic_driver))
+ end
+
+ local expected = assert(right_values[expected_driver], "invalid value for expected_driver")
+ if graphics_driver ~= nil and expected.graphics ~= nil and graphics_driver ~= expected.graphics then
+ message.diag("The driver option for graphics(x)/color is missing or wrong.")
+ message.diag("Consider setting '", expected.graphics, "' option.")
+ end
+ if expl3_driver ~= nil and expected.expl3 ~= nil and expl3_driver ~= expected.expl3 then
+ message.diag("The driver option for expl3 is missing or wrong.")
+ message.diag("Consider setting 'driver=", expected.expl3, "' option when loading expl3.")
+ end
+ if hyperref_driver ~= nil and expected.hyperref ~= nil and hyperref_driver ~= expected.hyperref then
+ message.diag("The driver option for hyperref is missing or wrong.")
+ message.diag("Consider setting '", expected.hyperref, "' option.")
+ end
+ if xypic_driver ~= nil and expected.xypic ~= nil and xypic_driver ~= expected.xypic then
+ message.diag("The driver option for Xy-pic is missing or wrong.")
+ if expected_driver == "dvipdfmx" then
+ message.diag("Consider setting 'dvipdfmx' option or running \\xyoption{pdf}.")
+ elseif expected_driver == "pdftex" then
+ message.diag("Consider setting 'pdftex' option or running \\xyoption{pdf}.")
+ elseif expected.xypic == "pdf" then
+ message.diag("Consider setting 'pdf' package option or running \\xyoption{pdf}.")
+ elseif expected.xypic == "dvips" then
+ message.diag("Consider setting 'dvips' option.")
+ end
+ end
+end
+
+--[[
+filelist[i] = {path = ""}
+]]
+
+return {
+ checkdriver = checkdriver,
+}
+end
--[[
- Copyright 2016,2018-2019 ARATA Mizuki
+ Copyright 2016-2020 ARATA Mizuki
This file is part of ClutTeX.
@@ -2681,7 +2909,7 @@ end
along with ClutTeX. If not, see <http://www.gnu.org/licenses/>.
]]
-CLUTTEX_VERSION = "v0.4"
+CLUTTEX_VERSION = "v0.5"
-- Standard libraries
local coroutine = coroutine
@@ -2703,6 +2931,7 @@ local message = require "texrunner.message"
local safename = require "texrunner.safename"
local extract_bibtex_from_aux_file = require "texrunner.auxfile".extract_bibtex_from_aux_file
local handle_cluttex_options = require "texrunner.handleoption".handle_cluttex_options
+local checkdriver = require "texrunner.checkdriver".checkdriver
os.setlocale("", "ctype") -- Workaround for recent Universal CRT
@@ -2732,9 +2961,6 @@ end
local jobname = options.jobname
assert(jobname ~= "", "jobname cannot be empty")
-if options.output_format == nil then
- options.output_format = "pdf"
-end
local output_extension
if options.output_format == "dvi" then
output_extension = engine.dvi_extension or "dvi"
@@ -2958,6 +3184,10 @@ local function single_run(auxstatus, iteration)
logfile:close()
end
+ if options.check_driver ~= nil then
+ checkdriver(options.check_driver, filelist)
+ end
+
if options.makeindex then
-- Look for .idx files and run MakeIndex
for _,file in ipairs(filelist) do
diff --git a/support/cluttex/build.lua b/support/cluttex/build.lua
index 20c58eaebd..55d900ff02 100644
--- a/support/cluttex/build.lua
+++ b/support/cluttex/build.lua
@@ -91,6 +91,10 @@ local modules = {
name = "texrunner.safename",
path = "texrunner/safename.lua",
},
+ {
+ name = "texrunner.checkdriver",
+ path = "texrunner/checkdriver.lua",
+ },
}
local imported_globals = {"io", "os", "string", "table", "package", "require", "assert", "error", "ipairs", "type", "select", "arg"}
diff --git a/support/cluttex/doc/Makefile b/support/cluttex/doc/Makefile
index ca87048802..0685cc8c58 100644
--- a/support/cluttex/doc/Makefile
+++ b/support/cluttex/doc/Makefile
@@ -1,12 +1,16 @@
-all: manual.pdf manual-ja.pdf
+all: cluttex.pdf cluttex-ja.pdf
-manual.pdf: manual.tex
- cluttex -e pdflatex -o $@ --make-depends=manual.pdf.dep $<
+cluttex.pdf: cluttex.tex
+ cluttex -e pdflatex -o $@ --make-depends=cluttex.pdf.dep $<
-manual-ja.pdf: manual-ja.tex
- cluttex -e lualatex -o $@ --make-depends=manual-ja.pdf.dep $<
+cluttex-ja.pdf: cluttex-ja.tex
+ cluttex -e lualatex -o $@ --make-depends=cluttex-ja.pdf.dep $<
-.PHONY: all
+clean-outdir:
+ -rm -rf $(shell cluttex -e pdflatex --print-output-directory cluttex.tex)
+ -rm -rf $(shell cluttex -e lualatex --print-output-directory cluttex-ja.tex)
--include manual.pdf.dep
--include manual-ja.pdf.dep
+.PHONY: all clean-outdir
+
+-include cluttex.pdf.dep
+-include cluttex-ja.pdf.dep
diff --git a/support/cluttex/doc/cluttex-ja.pdf b/support/cluttex/doc/cluttex-ja.pdf
new file mode 100644
index 0000000000..fb5509749c
--- /dev/null
+++ b/support/cluttex/doc/cluttex-ja.pdf
Binary files differ
diff --git a/support/cluttex/doc/manual-ja.tex b/support/cluttex/doc/cluttex-ja.tex
index b89675888f..b48cbe8f8b 100644
--- a/support/cluttex/doc/manual-ja.tex
+++ b/support/cluttex/doc/cluttex-ja.tex
@@ -10,9 +10,9 @@
\renewcommand\sectionautorefname{セクション}
\renewcommand\subsectionautorefname{サブセクション}
-\title{\ClutTeX{}マニュアル\\(ãƒãƒ¼ã‚¸ãƒ§ãƒ³0.4)}
+\title{\ClutTeX{}マニュアル\\(ãƒãƒ¼ã‚¸ãƒ§ãƒ³0.5)}
\author{ARATA Mizuki}
-\date{2019年8月21日}
+\date{2020年2月6日}
\begin{document}
\maketitle
@@ -27,6 +27,7 @@
\item 入力ファイルを監視ã—ã€å¤‰æ›´ãŒã‚ã£ãŸå ´åˆã«è‡ªå‹•ã§å†å‡¦ç†ã™ã‚‹ï¼ˆ\texttt{--watch}オプション\footnote{Unixç³»OSã§ã¯ã€åˆ¥é€”プログラムãŒå¿…è¦ã€‚})
\item MakeIndex, \BibTeX, Biberç­‰ã®ã‚³ãƒžãƒ³ãƒ‰ã‚’自動ã§å®Ÿè¡Œã™ã‚‹ï¼ˆ\texttt{--makeindex}オプション, \texttt{--bibtex}オプション, \texttt{--biber}オプション)
\item p\TeX 系列ã®å‡¦ç†ç³»ã§PDFを生æˆã™ã‚‹å ´åˆã€åˆ¥é€”\texttt{dvipdfmx}を実行ã™ã‚‹å¿…è¦ãŒãªã„(自動ã§\texttt{dvipdfmx}を実行ã™ã‚‹ï¼‰
+ ã‚‚ã—ã‚‚DVIファイルãŒæ¬²ã—ã„ã®ã§ã‚ã‚Œã°ã€\texttt{--output-format=dvi}を指定ã™ã‚Œã°è‰¯ã„。
\end{itemize}
ãªã©ãŒã‚る。
@@ -99,6 +100,10 @@
\item[\texttt{--package-support=PKG1[,PKG2,...,PKGn]}]
外部コマンドを実行ã™ã‚‹ãƒ‘ッケージ用ã®å€‹åˆ¥ã®å¯¾ç­–を有効ã«ã™ã‚‹ã€‚
ç¾åœ¨ã®ã¨ã“ã‚ã€\texttt{minted}ã¨\texttt{epstopdf}ã«å¯¾å¿œã—ã¦ã„る。
+\item[\texttt{--check-driver=DRIVER}]
+ ã„ãã¤ã‹ã®ãƒ‘ッケージã«ã¤ã„ã¦ã€æ­£ã—ã„ドライãƒãƒ¼ãƒ•ã‚¡ã‚¤ãƒ«ãŒèª­ã¿è¾¼ã¾ã‚Œã¦ã„ã‚‹ã“ã¨ã‚’検査ã™ã‚‹ã€‚
+ \metavar{DRIVER}ã¯\texttt{dvipdfmx}, \texttt{dvips}, or \texttt{dvisvgm}ã®ã„ãšã‚Œã‹ã§ã‚る。
+ ã“ã®ã‚ªãƒ—ションã¯\texttt{--output-format=dvi}ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã«ã®ã¿æŒ‡å®šã§ãる。
\end{description}
補助コマンド実行用ã®ã‚ªãƒ—ション:
@@ -265,4 +270,12 @@ Unix用コマンドã®ä¸­ã«ã¯ã€è‡ªèº«ã®åå‰ã«ã‚ˆã£ã¦æŒ™å‹•ã‚’変ãˆã‚‹ã
cluttex -e pdflatex --shell-escape --package-support=minted document.tex
\end{verbatim}
+\section{ドライãƒãƒ¼ãƒ•ã‚¡ã‚¤ãƒ«ã®æ¤œæŸ»}
+
+\ClutTeX{}ã¯ã€ã„ãã¤ã‹ã®ãƒ‘ッケージã«ã¤ã„ã¦æ­£ã—ã„ドライãƒãƒ¼ãƒ•ã‚¡ã‚¤ãƒ«ãŒèª­ã¿è¾¼ã¾ã‚Œã¦ã„ã‚‹ã“ã¨ã‚’検査ã™ã‚‹ã“ã¨ãŒã§ãる。
+ç¾åœ¨ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã§å¯¾å¿œã—ã¦ã„るパッケージã¯\texpkg{graphics(x)}, \texpkg{color}, \texpkg{expl3}, \texpkg{hyperref}, \texpkg{xy}ã§ã‚る。
+
+PDFモードã®å ´åˆã€ãƒ‰ãƒ©ã‚¤ãƒãƒ¼ã®æ¤œæŸ»ã¯å¸¸ã«è¡Œã‚れる。
+DVIモードã§æ¤œæŸ»ã‚’有効ã«ã™ã‚‹ã«ã¯ã€\texttt{--check-driver}オプションを使用ã™ã‚‹ã€‚
+
\end{document}
diff --git a/support/cluttex/doc/cluttex.pdf b/support/cluttex/doc/cluttex.pdf
new file mode 100644
index 0000000000..d9e3f7df04
--- /dev/null
+++ b/support/cluttex/doc/cluttex.pdf
Binary files differ
diff --git a/support/cluttex/doc/manual.tex b/support/cluttex/doc/cluttex.tex
index caf99053eb..4666668d08 100644
--- a/support/cluttex/doc/manual.tex
+++ b/support/cluttex/doc/cluttex.tex
@@ -8,9 +8,9 @@
\newcommand\texpkg[1]{\texttt{#1}}
\newcommand\metavar[1]{\textnormal{\textsf{#1}}}
-\title{\ClutTeX\ manual\\(Version 0.4)}
+\title{\ClutTeX\ manual\\(Version 0.5)}
\author{ARATA Mizuki}
-\date{2019-08-21}
+\date{2020-02-06}
\begin{document}
\maketitle
@@ -25,6 +25,7 @@ Basic features are,
\item Watch input files, and re-process documents if changes are detected\footnote{needs an external program if you are on a Unix system}.
\item Run MakeIndex, \BibTeX, Biber, if requested.
\item Produces a PDF, even if the engine (e.g.\ p\TeX) does not suport direct PDF generation.
+ If you want a DVI file, use \texttt{--output-format=dvi} option.
\end{itemize}
The unique feature of this program is that, auxiliary files such as \texttt{.aux} or \texttt{.toc} are created in an isolated location, so you will not be annoyed with these extra files.
@@ -94,7 +95,11 @@ Basic options:
Print the output directory and exit.
\item[\texttt{--package-support=PKG1[,PKG2,...,PKGn]}]
Enable special support for shell-escaping packages.
- Currently supported packages are `minted` and `epstopdf`.
+ Currently supported packages are `\texttt{minted}` and `\texttt{epstopdf}`.
+\item[\texttt{--check-driver=DRIVER}]
+ Check that the correct driver file is loaded for certain packages.
+ \metavar{DRIVER} is one of \texttt{dvipdfmx}, \texttt{dvips}, or \texttt{dvisvgm}.
+ Can only be used with \texttt{--output-format=dvi}.
\end{description}
Options for running auxiliary programs:
@@ -257,4 +262,12 @@ For example, if you want to typeset a document that uses \texpkg{minted}, run th
cluttex -e pdflatex --shell-escape --package-support=minted document.tex
\end{verbatim}
+\section{Check for driver file}
+
+\ClutTeX\ can check that the correct driver file is loaded when certain packages are loaded.
+Currently, the list of supported packages are \texpkg{graphics}, \texpkg{color}, \texpkg{expl3}, \texpkg{hyperref}, and \texpkg{xy}.
+
+The check is always done with PDF mode.
+To check the driver with DVI mode, use \texttt{--check-driver} option.
+
\end{document}
diff --git a/support/cluttex/doc/manual-ja.pdf b/support/cluttex/doc/manual-ja.pdf
deleted file mode 100644
index 72689f7f3e..0000000000
--- a/support/cluttex/doc/manual-ja.pdf
+++ /dev/null
Binary files differ
diff --git a/support/cluttex/doc/manual.pdf b/support/cluttex/doc/manual.pdf
deleted file mode 100644
index 089181455e..0000000000
--- a/support/cluttex/doc/manual.pdf
+++ /dev/null
Binary files differ
diff --git a/support/cluttex/src/cluttex.lua b/support/cluttex/src/cluttex.lua
index 0ac50f90f7..380deefebe 100644
--- a/support/cluttex/src/cluttex.lua
+++ b/support/cluttex/src/cluttex.lua
@@ -1,6 +1,6 @@
#!/usr/bin/env texlua
--[[
- Copyright 2016,2018-2019 ARATA Mizuki
+ Copyright 2016-2020 ARATA Mizuki
This file is part of ClutTeX.
@@ -18,7 +18,7 @@
along with ClutTeX. If not, see <http://www.gnu.org/licenses/>.
]]
-CLUTTEX_VERSION = "v0.4"
+CLUTTEX_VERSION = "v0.5"
-- Standard libraries
local table = table
@@ -45,6 +45,7 @@ local message = require "texrunner.message"
local safename = require "texrunner.safename"
local extract_bibtex_from_aux_file = require "texrunner.auxfile".extract_bibtex_from_aux_file
local handle_cluttex_options = require "texrunner.handleoption".handle_cluttex_options
+local checkdriver = require "texrunner.checkdriver".checkdriver
os.setlocale("", "ctype") -- Workaround for recent Universal CRT
@@ -74,9 +75,6 @@ end
local jobname = options.jobname
assert(jobname ~= "", "jobname cannot be empty")
-if options.output_format == nil then
- options.output_format = "pdf"
-end
local output_extension
if options.output_format == "dvi" then
output_extension = engine.dvi_extension or "dvi"
@@ -300,6 +298,10 @@ local function single_run(auxstatus, iteration)
logfile:close()
end
+ if options.check_driver ~= nil then
+ checkdriver(options.check_driver, filelist)
+ end
+
if options.makeindex then
-- Look for .idx files and run MakeIndex
for _,file in ipairs(filelist) do
diff --git a/support/cluttex/src/texrunner/auxfile.lua b/support/cluttex/src/texrunner/auxfile.lua
index 0c69eefd13..d983e2a47e 100644
--- a/support/cluttex/src/texrunner/auxfile.lua
+++ b/support/cluttex/src/texrunner/auxfile.lua
@@ -31,8 +31,9 @@ local function parse_aux_file(auxfile, outdir, report, seen)
for l in io.lines(auxfile) do
local subauxfile = string_match(l, "\\@input{(.+)}")
if subauxfile then
- if fsutil.isfile(subauxfile) then
- parse_aux_file(pathutil.join(outdir, subauxfile), outdir, report, seen)
+ local subauxfile_abs = pathutil.abspath(subauxfile, outdir)
+ if fsutil.isfile(subauxfile_abs) then
+ parse_aux_file(subauxfile_abs, outdir, report, seen)
else
local dir = pathutil.join(outdir, pathutil.dirname(subauxfile))
if not fsutil.isdir(dir) then
@@ -57,8 +58,11 @@ local function extract_bibtex_from_aux_file(auxfile, outdir, biblines)
end
elseif name == "@input" then
local subauxfile = string_match(l, "\\@input{(.+)}")
- if subauxfile and fsutil.isfile(subauxfile) then
- extract_bibtex_from_aux_file(pathutil.join(outdir, subauxfile), outdir, biblines)
+ if subauxfile then
+ local subauxfile_abs = pathutil.abspath(subauxfile, outdir)
+ if fsutil.isfile(subauxfile_abs) then
+ extract_bibtex_from_aux_file(subauxfile_abs, outdir, biblines)
+ end
end
end
end
diff --git a/support/cluttex/src/texrunner/checkdriver.lua b/support/cluttex/src/texrunner/checkdriver.lua
new file mode 100644
index 0000000000..65e33b9d21
--- /dev/null
+++ b/support/cluttex/src/texrunner/checkdriver.lua
@@ -0,0 +1,184 @@
+--[[
+ Copyright 2020 ARATA Mizuki
+
+ This file is part of ClutTeX.
+
+ ClutTeX is free software: you can 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.
+
+ ClutTeX is distributed in the hope that it will be useful,
+ but WITHOUT 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 ClutTeX. If not, see <http://www.gnu.org/licenses/>.
+]]
+local assert = assert
+local ipairs = ipairs
+local error = error
+local string = string
+local pathutil = require "texrunner.pathutil"
+local message = require "texrunner.message"
+
+local right_values = {
+ dvips = {
+ graphics = "dvips",
+ expl3 = "dvips",
+ hyperref = "dvips",
+ xypic = "dvips",
+ },
+ dvipdfmx = {
+ graphics = "dvipdfmx",
+ expl3 = "dvipdfmx",
+ hyperref = "dvipdfmx",
+ xypic = "pdf",
+ },
+ dvisvgm = {
+ graphics = "dvisvgm",
+ expl3 = "dvisvgm",
+ },
+ xetex = {
+ graphics = "xetex",
+ expl3 = "xdvipdfmx",
+ hyperref = "xetex",
+ xypic = "pdf",
+ },
+ pdftex = {
+ graphics = "pdftex",
+ expl3 = "pdfmode",
+ hyperref = "pdftex",
+ xypic = "pdf",
+ },
+ luatex = {
+ graphics = "luatex",
+ expl3 = "pdfmode",
+ hyperref = "luatex",
+ xypic = "pdf",
+ },
+}
+
+-- expected_driver: one of "dvips", "dvipdfmx", "dvisvgm", "pdftex", "xetex", "luatex"
+local function checkdriver(expected_driver, filelist)
+ if CLUTTEX_VERBOSITY >= 1 then
+ message.info("checkdriver: expects ", expected_driver)
+ end
+
+ local loaded = {}
+ for i,t in ipairs(filelist) do
+ if t.kind == "input" then
+ local basename = pathutil.basename(t.path)
+ loaded[basename] = true
+ end
+ end
+
+ local graphics_driver = nil -- "dvipdfmx" | "dvips" | "dvisvgm" | "pdftex" | "luatex" | "xetex" | "unknown"
+ if loaded["graphics.sty"] or loaded["color.sty"] then
+ if loaded["dvipdfmx.def"] then
+ graphics_driver = "dvipdfmx"
+ elseif loaded["dvips.def"] then
+ graphics_driver = "dvips"
+ elseif loaded["dvisvgm.def"] then
+ graphics_driver = "dvisvgm"
+ elseif loaded["pdftex.def"] then
+ graphics_driver = "pdftex"
+ elseif loaded["luatex.def"] then
+ graphics_driver = "luatex"
+ elseif loaded["xetex.def"] then
+ graphics_driver = "xetex"
+ else
+ -- Not supported: dvipdf, dvipsone, emtex, textures, pctexps, pctexwin, pctexhp, pctex32, truetex, tcidvi, vtex
+ graphics_driver = "unknown"
+ end
+ end
+ local expl3_driver = nil -- "pdfmode" | "dvisvgm" | "xdvipdfmx" | "dvipdfmx" | "dvips" | "unknown"
+ if loaded["expl3-code.tex"] or loaded["expl3.sty"] or loaded["l3backend-dvips.def"] or loaded["l3backend-dvipdfmx.def"] or loaded["l3backend-xdvipdfmx.def"] or loaded["l3backend-pdfmode.def"] then
+ if loaded["l3backend-pdfmode.def"] then
+ expl3_driver = "pdfmode" -- pdftex, luatex
+ elseif loaded["l3backend-dvisvgm.def"] then
+ expl3_driver = "dvisvgm"
+ elseif loaded["l3backend-xdvipdfmx.def"] then
+ expl3_driver = "xdvipdfmx"
+ elseif loaded["l3backend-dvipdfmx.def"] then
+ expl3_driver = "dvipdfmx"
+ elseif loaded["l3backend-dvips.def"] then
+ expl3_driver = "dvips"
+ else
+ -- TODO: driver=latex2e?
+ expl3_driver = "unknown"
+ end
+ end
+ local hyperref_driver = nil -- "luatex" | "pdftex" | "xetex" | "dvipdfmx" | "dvips" | "unknown"
+ if loaded["hyperref.sty"] then
+ if loaded["hluatex.def"] then
+ hyperref_driver = "luatex"
+ elseif loaded["hpdftex.def"] then
+ hyperref_driver = "pdftex"
+ elseif loaded["hxetex.def"] then
+ hyperref_driver = "xetex"
+ elseif loaded["hdvipdfm.def"] then
+ hyperref_driver = "dvipdfmx"
+ elseif loaded["hdvips.def"] then
+ hyperref_driver = "dvips"
+ else
+ -- Not supported: dvipson, dviwind, tex4ht, texture, vtex, vtexhtm, xtexmrk, hypertex
+ hyperref_driver = "unknown"
+ end
+ -- TODO: dvisvgm?
+ end
+ local xypic_driver = nil -- "pdf" | "dvips" | "unknown"
+ if loaded["xy.tex"] then
+ if loaded["xypdf.tex"] then
+ xypic_driver = "pdf" -- pdftex, luatex, xetex, dvipdfmx
+ elseif loaded["xydvips.tex"] then
+ xypic_driver = "dvips"
+ else
+ -- Not supported: dvidrv, dvitops, oztex, 17oztex, textures, 16textures, xdvi
+ xypic_driver = "unknown"
+ end
+ -- TODO: dvisvgm?
+ end
+
+ if CLUTTEX_VERBOSITY >= 1 then
+ message.info("checkdriver: graphics=", tostring(graphics_driver))
+ message.info("checkdriver: expl3=", tostring(expl3_driver))
+ message.info("checkdriver: hyperref=", tostring(hyperref_driver))
+ message.info("checkdriver: xypic=", tostring(xypic_driver))
+ end
+
+ local expected = assert(right_values[expected_driver], "invalid value for expected_driver")
+ if graphics_driver ~= nil and expected.graphics ~= nil and graphics_driver ~= expected.graphics then
+ message.diag("The driver option for graphics(x)/color is missing or wrong.")
+ message.diag("Consider setting '", expected.graphics, "' option.")
+ end
+ if expl3_driver ~= nil and expected.expl3 ~= nil and expl3_driver ~= expected.expl3 then
+ message.diag("The driver option for expl3 is missing or wrong.")
+ message.diag("Consider setting 'driver=", expected.expl3, "' option when loading expl3.")
+ end
+ if hyperref_driver ~= nil and expected.hyperref ~= nil and hyperref_driver ~= expected.hyperref then
+ message.diag("The driver option for hyperref is missing or wrong.")
+ message.diag("Consider setting '", expected.hyperref, "' option.")
+ end
+ if xypic_driver ~= nil and expected.xypic ~= nil and xypic_driver ~= expected.xypic then
+ message.diag("The driver option for Xy-pic is missing or wrong.")
+ if expected_driver == "dvipdfmx" then
+ message.diag("Consider setting 'dvipdfmx' option or running \\xyoption{pdf}.")
+ elseif expected_driver == "pdftex" then
+ message.diag("Consider setting 'pdftex' option or running \\xyoption{pdf}.")
+ elseif expected.xypic == "pdf" then
+ message.diag("Consider setting 'pdf' package option or running \\xyoption{pdf}.")
+ elseif expected.xypic == "dvips" then
+ message.diag("Consider setting 'dvips' option.")
+ end
+ end
+end
+
+--[[
+filelist[i] = {path = ""}
+]]
+
+return {
+ checkdriver = checkdriver,
+}
diff --git a/support/cluttex/src/texrunner/handleoption.lua b/support/cluttex/src/texrunner/handleoption.lua
index d23ee1aefd..a542070038 100644
--- a/support/cluttex/src/texrunner/handleoption.lua
+++ b/support/cluttex/src/texrunner/handleoption.lua
@@ -1,5 +1,5 @@
local COPYRIGHT_NOTICE = [[
-Copyright (C) 2016,2018-2019 ARATA Mizuki
+Copyright (C) 2016-2020 ARATA Mizuki
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
@@ -72,6 +72,8 @@ Options:
Enable special support for some shell-escaping
packages.
Currently supported: minted, epstopdf
+ --check-driver=DRIVER Check that the correct driver file is loaded.
+ DRIVER is one of `dvipdfmx', `dvips', `dvisvgm'.
--[no-]shell-escape
--shell-restricted
@@ -154,6 +156,10 @@ local option_spec = {
long = "package-support",
param = true
},
+ {
+ long = "check-driver",
+ param = true
+ },
-- Options for TeX
{
long = "synctex",
@@ -257,6 +263,10 @@ local function set_default_values(options)
if options.halt_on_error == nil then
options.halt_on_error = true
end
+
+ if options.output_format == nil then
+ options.output_format = "pdf"
+ end
end
-- inputfile, engine, options = handle_cluttex_options(arg)
@@ -345,6 +355,11 @@ local function handle_cluttex_options(arg)
end
end
+ elseif name == "check-driver" then
+ assert(options.check_driver == nil, "multiple --check-driver options")
+ assert(param == "dvipdfmx" or param == "dvips" or param == "dvisvgm", "wrong value for --check-driver option")
+ options.check_driver = param
+
-- Options for TeX
elseif name == "synctex" then
assert(options.synctex == nil, "multiple --synctex options")
@@ -455,6 +470,27 @@ local function handle_cluttex_options(arg)
set_default_values(options)
+ if options.output_format == "pdf" then
+ if options.check_driver ~= nil then
+ error("--check-driver can only be used when the output format is DVI.")
+ end
+ if engine.supports_pdf_generation then
+ if engine.is_luatex then
+ options.check_driver = "luatex"
+ elseif engine.name == "xetex" or engine.name == "xelatex" then
+ options.check_driver = "xetex"
+ elseif engine.name == "pdftex" or engine.name == "pdflatex" then
+ options.check_driver = "pdftex"
+ else
+ message.warning("Unknown engine: "..engine.name)
+ message.warning("Driver check will not work.")
+ end
+ else
+ -- ClutTeX uses dvipdfmx to generate PDF from DVI output.
+ options.check_driver = "dvipdfmx"
+ end
+ end
+
return inputfile, engine, options
end
diff --git a/support/cluttex/src/texrunner/luatexinit.lua b/support/cluttex/src/texrunner/luatexinit.lua
index 2e2ad971ef..0135673787 100644
--- a/support/cluttex/src/texrunner/luatexinit.lua
+++ b/support/cluttex/src/texrunner/luatexinit.lua
@@ -17,17 +17,19 @@ local texio_write_nl = texio.write_nl
-- Packages coded in Lua doesn't follow -output-directory option and doesn't write command to the log file
initscript:write(string.format("local output_directory = %q\n", options.output_directory))
+ -- tex.jobname may not be available when io.open is called for the first time
+ initscript:write(string.format("local jobname = %q\n", options.jobname))
initscript:write([==[
local luawritelog
local function openluawritelog()
if not luawritelog then
- luawritelog = assert(io_open(output_directory .. "/" .. tex.jobname .. ".cluttex-fls", "w"))
+ luawritelog = assert(io_open(output_directory .. "/" .. jobname .. ".cluttex-fls", "w"))
end
return luawritelog
end
io.open = function(fname, mode)
-- luatexja-ruby
- if mode == "w" and fname == tex.jobname .. ".ltjruby" then
+ if mode == "w" and fname == jobname .. ".ltjruby" then
fname = output_directory .. "/" .. fname
end
if type(mode) == "string" and string.find(mode, "w") ~= nil then
diff --git a/support/cluttex/src/texrunner/message.lua b/support/cluttex/src/texrunner/message.lua
index c7acd43f66..46a9cf77bd 100644
--- a/support/cluttex/src/texrunner/message.lua
+++ b/support/cluttex/src/texrunner/message.lua
@@ -89,7 +89,7 @@ local CMD = {
local function exec_msg(commandline)
if use_colors then
- io.stderr:write(CMD.fg_x_white, CMD.bg_red, "[EXEC]", CMD.reset, " ", CMD.fg_red, commandline, CMD.reset, "\n")
+ io.stderr:write(CMD.fg_x_white, CMD.bg_red, "[EXEC]", CMD.reset, " ", CMD.fg_cyan, commandline, CMD.reset, "\n")
else
io.stderr:write("[EXEC] ", commandline, "\n")
end
diff --git a/support/pmx/OSX/pmxab b/support/pmx/OSX/pmxab
index 473ea54cf3..728b070872 100755
--- a/support/pmx/OSX/pmxab
+++ b/support/pmx/OSX/pmxab
Binary files differ
diff --git a/support/pmx/OSX/scor2prt b/support/pmx/OSX/scor2prt
index f8cf79945a..acc7524143 100755
--- a/support/pmx/OSX/scor2prt
+++ b/support/pmx/OSX/scor2prt
Binary files differ
diff --git a/support/pmx/README b/support/pmx/README
index 492559b1b0..18a886f436 100644
--- a/support/pmx/README
+++ b/support/pmx/README
@@ -1,11 +1,17 @@
-This is PMX, version 2.8.4 (2018-02-12). PMX provides a preprocessor for MusiXTeX.
+This is PMX, version 2.94 (2020-01-27). PMX provides a preprocessor for MusiXTeX.
-pmxab builds a TeX input file based on a .pmx input file in a much
-simpler language, making most of the layout decisions by itself. It has
-most of MusiXTeX's functionality, but it also permits in-line TeX to
-give access to virtually all of MusiXTeX. For proof-listening, pmxab will
-make a MIDI file of your score.
+pmxab builds a TeX input file based on a .pmx input file in
+a much simpler language, making most of the layout decisions
+by itself. It has most of MusiXTeX's functionality, but it
+also permits in-line TeX to give access to virtually all of
+MusiXTeX. For proof-listening, pmxab will make a MIDI file
+of your score.
scor2prt is an auxiliary program that makes parts from a score.
-The author of pmxab and scor2prt is Don Simons (dsimons@roadrunner.com).
+PMX may be freely copied, duplicated and used in conformance
+to the GNU General Public License (Version 3, 29 June, 2007,
+see included file gpl.txt).
+
+The author of pmxab and scor2prt is Don Simons
+(dsimons@roadrunner.com).
diff --git a/support/pmx/doc/ChangeLog b/support/pmx/doc/ChangeLog
new file mode 100644
index 0000000000..6715e9b1e3
--- /dev/null
+++ b/support/pmx/doc/ChangeLog
@@ -0,0 +1,713 @@
+2.94
+ Allow moving dots on main and chord note in 2-note termolos
+ Add definitions of \hbp and \hbpp to pmx.tex
+2.91
+ Tweak: insert \stdstemfalse before every user-shortened or lengthened
+ stem.
+ This cancels defaul extensions to middle line and also (with 'L') allows
+ stems that are longer than 4.66 but still don't reach middle line.
+ Allow alteration of number height in multibar rest, option n.
+ Fix bug introduced in 2.89 so that the "o" in "mo800" is now OK.
+2.90
+ Many tweaks to allow gaps at end or middle of a system using
+ L[n]S[x] and LC[y]. New pmx.tex.
+2.88
+ Comment out print*,"Changed pathname to..." since it was going
+ iteration when optimizing linebreaks with the undocumented option Ao.
+ Add nv back in as argument for getmidi, so loop transferring data
+ from midivel to midvelc can be executed. This corrects bug and
+ allows per-instrument change in midi velocities at the start
+ of any block
+ Add subroutine inst2chan to transfer midi data as noted above. Works with
+ Iv but buggy when used with IT and Ib
+2.87
+ Allow changes to and from octave treble clef. Instrument with it
+ must only have one staff.
+ Some fixes for beam multiplicity changes at staff jumps. Must still
+ use inline for mult. increase at downward staff jump. See sjb.pmx.
+2.84
+ Bug fix: dots in chordal seconds
+ Bug fix: Initialize ihornb for non-beamed, down xtup
+ Bug fix: When using "AT" with 2-note x3c rD.
+2.83
+ Fix problems when changing to or from octave treble clef.
+ Fix beaming (or not) and number location for xtups with
+ multiple rests. Still some problems with number height but
+ can be band-aided with number height tweak option.
+ Tweak error messages for options on "R" command.
+ Allow forced beam height and slope tweaks with 2-note tremolos
+ Allow chordal note with 2-note tremolos, adding dots as needed.
+ Fix call to ncmid in beamstrt when setting start height for beam of
+ 2-note trem, by changing arg from ivx to iv
+2.82
+ bugfix: beams with rests, not confused with xtups.
+ x option after slur index to allow slurs to go from one voice to another.
+ x option also for ties
+2.81
+ Allow string of rests to end xtup
+ in chordal half-note 2-note tremolo, make chord notes open.
+2.80
+ Add 2-note tremolos
+2.78
+ Expand bufq to 131072 bytes
+ Expand maxblks tp 9600
+ Allow up to 75 pages
+ Index postscript hairpins from 1 up instead of by voice #.
+ Add option 'o' to forced beam for open notehead (\hb); set ipl(3)
+ Add option T[n], n=1,2,3 for single stem tremolo
+2.77
+ Enable AV+/-x+/-y to add vskip bigh before or after \eject
+2.76
+2.75
+ Bugfix: unbeamed xtups with dots: in beamn1 and beamid allow dotted 16th, and
+ 2 or 3 flags on shortened note.
+2.74
+ Bugfix: allow "0" as argument of @ command on lyrics string.
+ Check for and allow "\ in centered page headings with P command.
+ Check for and allow "\ in text dynamics with D command.
+ For lyrics string starting in xtuplet, insert check for inputting musixlyr.
+ For staff-crossing beamed xtuplet chords, if 2nd segment of a joined beam
+ starts with a blank rest, put '\sk' into the TeX.
+ To enable high-to-both beamed etup staff-crossing chord, for blank
+ rest at start of forced beam, shift \sk's from before to after \ib..;
+ so \ib is at start and note in upper voice has a beam to connect to.
+ Expand range of vertical xtup number shift, now stored in mult(16-22)
+ Check for and allow \" within lyrics strings, for umlauts.
+2.73 (160121)
+ Dirk's "..." command, to convert "text" into \pmxlyr{text}\ and insert as
+ inline TeX. Replace all '~' inside "..." and not preceded with '\', by
+ '\lk '. Right after 2nd ", replace @[a,b][+,-]n with \at{[a,b][+,-]n}\
+ Include definitions of \ly and \at in pmx.tex (2 Feb 16). After first ",
+ add (as type 2 string) '\\input musixlyr \'
+ After inputting pathname, change any '\' to '/', for Linux compatibility.
+2.72 (160110)
+ Really finalize \mbrest...go back to 3 args to deal with clef changes.
+ Fine tune centered whole bar rests to deal with clef changes
+ Fix bug in wsclef when >1 staff per instrument, since \setclef
+ needs to know instrument and specify clefs on all staves for that
+ instrument. Ones that were not changed by user will not be printed,
+ and will be kept the same as before.
+ Fix bug with arpegii from one voice to another in same staff.
+2.71 (151226)
+ Finalize mbrest mods
+2.705
+ Fix error message
+2.704 (140614)
+ Octave treble clef
+ Make horizontal ornament shift (ornhshft) floating
+2.703 (140323)
+ Option v[-]n at end of any figure will alter figdrop for rest of system
+2.702
+ Stem slurs. Only for ps, assume no other pos'n adjustments. Option "v"
+2.701
+ oC = coda (\code{10})
+ Move iornq(29) (blank barline) to ipl(0) (changes in pmxb, getnote)
+ oG = new seqno
+ To do: fix grace note spacing problem (partially done)
+2.622
+ Redefine midtc(..) and miditran(..); clean up all transpositions/key changes
+ Kn[+/-...] \ignorenats at signature changes
+ Fix tie checks in doslur() and dopsslur() to subtract iTransAmt from nolevs
+ before checking and setting pitch levels levson() and levsoff()
+ Define midisig separately from isig. Put in common commidisig.
+ Use for explicit midi signature and for accid corrections to midi piches
+ in addmidi.
+2.621
+ Make keyboard rest option work in xtuplets. Created subroutine
+ chkkbdrests, modified make2bar to include calls to chkkbdrests as rqd.
+2.620
+ Allow user-defined rest height tweaks at start of beam.
+2.619
+ At movement break, change \nbinstruments in \newmovement macro; add
+ 3rd arg to \newmovement in pmx.tex; modify pmxb.for and getnote.for
+ to remove call to newnoi and change call to \newmovement
+2.618
+ Add option Ac[l,4] to set vert and horiz size and offsets to properly
+ center page for letter or a4 paper.
+2.617
+ In g1etnote, change if-check for note to use index(...) instead
+ of ichar(charq) since it was messing up gfortran optimizer
+ After pmxa, search for and remove penultimate line <blank><blank>/
+ because it was screwing up linux-compiled versions
+ Bugfix: Increase dimension of kicrd from 7 to 10 in crdaccs(...)
+2.616 (111110)
+ Allow hairpins to span multiple notes groups (gulps).
+2.615+ (110810)
+ Fix midi when some instruments are transposed, by subtracting
+ iTransAmt(instno(iv)) from pitch values sent to via addmidi in
+ make2bar.for (for main notes) and docrd (for chord notes)
+2.615 (110725)
+ Fig bug with size-setting (in topfile) when instrument has >1 staves
+2.615 (110724)
+ Make AS[0|-|s|t]... really set sizes
+2.614
+ Mod notex.for to fix Terry's bug with raised dotted rests (caused
+ by double-hboxing).
+2.613
+ Bugfix: In pmxa, change "do while" limit to keep from overwriting instno.
+2.612
+ Enhance AS to allow s or t for smallsize or tinysize
+2.611
+ Error trap for "D" before any notes in a block.
+2.610
+ Instrument-wise key changes and transposition (incomplete)
+2.603
+ 101211 In getpmxmod.for, decreased nline by 2 to fix locating errors
+ following reading in an include file.
+ 101121 Added some error messages in g1etset.for setup data
+2.602
+ Correct slur indexing in linebreakslurs.
+ Account for comment lines in line count for error messages
+2.601
+ Bug fix: allow 24 slurs with graces
+2.60 Changes made make it really big
+ increase mv (size of midi) ? Note: MIDI can't have >16 voices w/o
+ major reprogramming, and 16 may also be a problem (icmm)
+ nm=24 (voices) done
+ 24 slurs done
+ 24 simultaneous beams (Replace index 24 by 0, so get 0-23)
+ bufq*131072 (gfortran only)
+ getarg syntax (gfortran only)
+2.523+
+ Fix voice numbering for normal dynamics and text dynamics
+2.523
+ Version of bigpmx first posted to Hiroaki's web site.
+2.522
+ 5/26/10 Replace ipl bits 0-7 with ipl2, add new common for it.
+ With 2.521+ as starting version, incorporate bigpmx mods to allow 24 voices.
+ 5/13/10 Fix log2 function
+ 5/15/10 Fix bitwise storage for dynamics, fix segnoo string length.
+2.521+
+ 091025 Enable dotting 2nd part of linebreak slur or tie.
+ To adjust barno height due to linebreak slur, use \bnrs instead of
+ explicitly redefining \raisebarno (pmxb)
+2.521
+ Bugfix
+2.520
+ 090519 Enable ligfonts (special figured bass characters)
+2.519
+ Fix another bug which kept \sk from being output so misaligned some notes.
+2.518
+ Fix bugs: referencing fig data, char declaration for member of
+ common/comfig/
+2.517
+ Allow figures in voice 1 + any one other.
+2.516
+ Allow figures in voice #2
+2.515+ to do: Change manual and activate rule against clef change in voice #2.
+2.515
+ 071222 Changes in getnote to allow auto forced beams to start anywhere.
+ 071206 In make2bar, shift fermataup7 to left over centered pause.
+ 070901 In doslur, check for nolev <=2 in case slur ends on rest in 2-line
+ staff (it was screwing up vertical justification).
+ n34 for tweaks to midi durations of quarter note septuplets.
+ To do: In ref250.tex, the tables where 's,t,)' is explained, the line
+ [+,- i] ... Vertical adjustment of the start of second segment
+ should it be replaced by
+ [s +,- i] ... Vertical adjustment of the start of second segment
+2.514
+ Changes in make2bar to get horizontal spacing right when normal grace
+ follows after grace
+ Changes in dograce to get octaves right for any material entered inside
+ \gaft, which shields transpose register changes from the outside world.
+2.513
+ In make1bar, near end, for forced beams starting with a rest, copy hgt and
+ slope tweaks to ALL notes after first, not just the second one, so if
+ there's more than one rest at start the tweaks are still observed.
+ In beamid and beamend, add stand-alone triply-flagged notes for xtups.
+2.512
+ Near end of pmxb, fix error trap to allow redundant 'RD'
+ Enable multiplicity down-up '][' within xtup.
+2.511
+ Introduce eskz2 for xtup #'s and bracket lengths, to remove bug caused by
+ adjusteskz as in bar 7 of barsant.
+2.510a
+ Test: remove restriction on tempo changes in MIDI macros
+ Send to CM for beta testing.
+2.509+
+ To do: Correct manual on AS. "-" is for smaller staves.
+2.510
+ Forgot to declare litq, voltxtq as character in subroutine getgrace
+2.509
+ Corrected small bug in arpeggio shifting (ivx <= iv in call putarp)
+2.508
+ Allow graces in xtups. New subroutine getgrace.
+2.507
+ To do: Raise/lower figures.
+ To do: Add 24, 29 to list of musicsizes in manual
+ New sub adjusteskz to account for ask's when computing lengths of
+ brackets for unbeamed xtups, slopes and horizontal posn's of number
+ Bug fix: in beamn1, beamid, and beamend, allow unbeamed xtups w/ 2 flags
+ Add look-left option for keyboard rests, "L" in rest command, set iornq(30)
+2.506
+ Fix bug with AK, when simultaneous rests have same duration, use defaults.
+2.505
+ Keyboard rests AK
+2.504
+ Space after normal grace: option X[n]
+ Fixed og when nv .ne. noinst, by using sepsymq instead of '&'
+ (To do) length of xtup bracket when there is added non-collision space.
+ Trap musicsize if .ne. 16,20,24,29.
+2.503
+ Enable arpeggio left shift with ?-x
+ To do: In manual, arpeggio over 2 staves.
+ Allow musicsize of 24 and 29. Had to define meter font size explicitly,
+ also change font size for text dynamics, but not much else so far.
+ Bugfix in beamstrt, introduced in 2415, ip was changed before putxtn
+ was called, causing error in printing replacement number.
+2.502
+ Incorporate Dirk Laurie's patch to use { , } , for ties.
+ Figure height adjustment: append +[n]
+ Change ec font stuff in pmx.tex per Olivier Vogel's comment (CM email?)
+2.501
+ Readjust horizontal offset back to .8 in LineBreakTies
+ Fix zero-subscript (iudorn) in putorn
+2.50
+ Increase number of text-dynamics (dimension of txtdynq) per block
+ from 12 to 41.
+ Slur option n to override altered default curvature.
+ Allow default ps slur curvature tweaks with Ap+/-c
+2.416
+ Increase length of textdynq from 24 to 128
+ (Todo) Add comment in manual about blank lines at end.
+ Configuration file: Define subroutine getpmxmod, check path in environment
+ variable pmxmoddir, check existence, read lines into bufq after setup.
+ Increase dimension on idynn in dodyn from 4 to 10 for max number
+ of marks in a bar
+ Increase allowable # of lines from 2000 to 4000.
+ (To do) Replace definition of \liftpausc per Olivier.
+ (To do) Fix extraneous error message if RD is placed at very end.
+2.415
+ Fix "AT" option: replace putxtn,topfile,beamstrt,beamid to use \xnumt
+ instead of redefining \xnum. Change font used to \smallfont (as for
+ normal xtups,
+ Allow slur to start on rest.
+2.414
+ Correct bug in crdacc when adding accidental to boundary causes number of
+ segments to decrease
+ Special rule for 3-accidental chords: If no 2nds, place them in order
+ top, bottom, middle.
+2.413
+ Correct bugs in chordal accidentals, related to left-shifted noteheads
+ (a) Special problems with downstem when main note needs shifting
+ (b) Assign 0 rank to boundary segs due to left-shifted noteheads
+2.412
+ Change default horiz shift of start of seg 2 of linebreak slurs:
+ -.7 for slurs, -1.2 for ties,
+ Use height of start of seg 1 slur itself for end of 1 and start of 2.
+2.411
+ "Apl" activates special treatment of linebreak slur/tie's; breaks all in 2.
+ "s" option in start of slur/tie as precursor to vert/horiz tweaks for end
+ of seg 1. of linebreak slur/tie, 2nd "s" for start of seg2.
+ With "Apl", curvature adjustments on starting slur command apply to seg 1,
+ those on ending command to seg 2.
+2.410
+ "AT" to allow Col. S.'s tuplet option. Simply input tuplet.tex and redefine
+ \xnum, \unbkt, \ovbkt.
+ "s" option in main xtup input after "x": slope tweak for bracket. mult(4) is
+ flag, mult(5-9) is tweak value+16
+2.409
+ Bugfix in docrd for MIDI: Use original pitch in case main/chord were
+ switched due to 2nds.
+ Remove "o" from error message for "A" command.
+ New syntax: optional instrument number separator ":" in movement
+ break command to precede a 2-digit instrument.
+ Conditional output formats for \setname at movement break to allow
+ instrument numbers >9.
+ Bugfix in coding to raise barno due to slur over line break (pmxb)
+ Move date/version data statement in pmxab to a better place.
+2.408
+ Allow pnotes{x} when x>9.995 (mod is only to format stmt in make2bar).
+ Bug fix in \liftPAusep in notex.for and in pmx.tex
+ Character variables for version and date
+ For up-stem single graces slurred to down-stem, shift slur start left by
+ 0.8 so slur doesn't get too short.
+ Initialize and slide mult, same as other full-program variables in /all/.
+2.407
+ Allow AN[n]"[partname]" to be parsed by scor2prt as filename for part n,
+2.406
+ Alter PMX: put \dnstrut into \znotes in \starteq (for system spacing
+ equalization).
+ Put dimensions of double sharps and flats in crdacc (for chords).
+ Bugfix: Use sepsymq in LineBreakTies(..) instead of '&'
+ Use only first 4 bits of mult for multiplicity+8, so rest can be used
+ for other stuff.
+ Move stemlength stuff in nacc(27-30) to mult(27-30) to remove conflict.
+2.405: Not published but saved for safety.
+ Option Aph to write \special{header=psslurs.pro} top of each page, so
+ dviselec will work OK.
+2.404
+ Allow slur to end on rest, but not start on a rest. Efaults height
+ of ending is default height of start (before any automatic or user-
+ defined djustments). User may adjust height as normal from default.
+2.403
+ Bugfix: turn off repeated beaming patterns.at end of non-last voice.
+2.402
+ Automatic repeated forced beams. Start with "[:" End with next explicit
+ forced beam or end of input block.
+ Increase # of forced beams per line of music per input block from 20 to 40
+2.401
+ Optional K-Postscript Linebreak Ties, Apl. New subroutine LineBreakTies.
+ Makes 1st part normal shape, and starts 2nd part a little further left.
+ Enable arpeggios in xtuplets. Had to make time itar(narp) a real.
+2.40
+ Set up WrotePsslurDefaults (logical) so only write defaults on 1st Ap.
+ Fix non-ps-slur input to \midslur (third signed integer). Do not reverse
+ sign for down-slurs.
+2.359
+ Add error exit subroutine stop1 to make exit status g77-compatible..
+ Absolute octave on xtup chord note was 2 octave too high, fixed in getnote
+ Fermata on vertically shifted rest: special trap in putorn() to set height.
+ Correct multiple grace note spacing for small staves (in dograce,
+ define wheadpt1 depending on staff size)
+2.358
+ Allow curvature corrections at start of postscript slur, in dopsslur()
+ Local slur options p[+|-][s|t] for [nos|s]luradjust,[not|t]ieadjust
+ Options for [Nos|S]luradjust,[Not|T]ieadjust,[noh|h]alfties: Ap[+|-][s|t|h]
+ Make t[ID] act like s[ID]t, most mods in spsslur().
+ Add spsslur() to read in data for ps slurs, call from getnote.
+ In beamstrt, save args for SetupB in common comipb to save them for
+ 2nd call when xtup starts with rest
+ Add spacing for ornament ")" as if it were accidental, in make2bar().
+ Horiz shift start and end of ps ties, dep. on stem dir'n, in dopsslur()
+ Horiz. shift start of ps grace slur, 2 places in dograce().
+ Horiz shift end of grace slur in endslur()
+ Make st slurs into postscript ties. Separate subroutine dopsslur(),
+ Non-beamed xtup: "a" in 1st note or rest, before "x" (sets drawbm=.false.)
+ Allow two D"x" on same note. Introduced jtxtdyn1 in dodyn.
+2.357a
+ Fix missing "end" in backfill.com, too-long lines in g1etnote, getnote
+2.357
+ Increase dimension for # of lit TeX strings from 52 to 83.
+ Allow blank rest in middle of xtuplet. Only mods in g*etnote().
+2.356
+ Increased some dimensions from 30 to 40 to allow up to 40 pages.
+ In unbeamed xtups, "n" did not suppress bracket. Fixed in beamstrt().
+ Fix parsing of "f,h,H,HH" in sslur.
+ Fix bug with cdot, note-level for slur termination (in getnote)
+2.355
+ Midi transposition: IT[+|-][n1][+|-][n2]...[+|-][n(noinst)],
+ n=# of half-steps. Restrict to mult. of 12 now, to avoid key-sig issues
+ Make midi recognize ps ties in doslur.
+ Correct ttieforsl so that it eats 2nd argument properly, using \zcharnote
+ to get octave right.
+2.354
+ With postscript slurs, make t-slurs real ties by inserting replacement
+ macros \tieforisu, etc, defined in pmx.tex
+ Check for open cresc or decresc at end of input block, using list[de]cresc
+ Hairpin syntax conditional on postscript slurs. Backup to fill in start
+ level, using new backfill(...). Separate height tweaks for
+ start and finish.
+2.353
+ K-0+n to transpose by half step (rather than just change key)
+ Allow "rm[n]" when nv>1. Require it in all parts. Just write a stack of
+ \mbrest's
+ Enable "Rz"; define \setzalaligne in pmx.tex. Special treatment at end
+ of input block before movement break, and at start of block after
+ movement break, using \newmovement rather than \setzalaligne, since
+ former already redefines \stoppiece. In second case, set rptfg2='z'.
+ Make clefq(nm) common between pmxb and getnote; change references in
+ getnote at 'M' to array elements, setting all new clefs as you go.
+2.352
+ Remove \parskip redefinition from pmx.tex; write it into TeX file when
+ "Ae" is invoked.
+ Ap to activate postscript slurs. Add macro \psforts to pmx.tex to redefine
+ \tslur in case \midslur was used. Allow slur inputs 'f','h','H','HH',
+ translate them thru mapping to (1,4,5,6) as \midslur params, then let
+ \psforts translate them back to ps slur macors.
+2.351
+ Number slurs from 0 up instead of 11 down, anticipating postscript slurs.
+ Write "\eightrm" instead of "\cmr8" for \figfont with small baseline size.
+ Increase length of basenameq to 44 characters everywhere.
+ Increase dimension of mcpitch (midi-chord-pitch) to 20.
+ Set default systems per page to 1 if nv>7
+ In pmxb, move place where isystpg is reset to 0, so that \eject gets
+ written when there is just one system per page.
+2.35
+ Cautionary accidentals with 'c' anywhere in note symbol.
+ NEW pmx.tex with \resetsize to set size to normal or small depending on
+ current \internote. Used with new coding in dograce() to get right
+ new size in case user has \setsize'ed some lines to \smallvalue. For
+ \smallvalue-sized staves, redefine \tinynotesize to give 11-pt font.
+ Affects pmx.tex.
+ Continuation figure with fractional length. May now mix with other figures.
+ If another figure follow Cont-fig, separate with colon.
+2.342
+ Bugfix in getnote to recognize relative octave shift in grace at start of
+ input block.
+ In make2bar, initialize islhgt=0 earlier than before (possible solution
+ to Suse g77 compile problem that I could not reproduce)..
+ Bugfix in beamstrt & beamn1 for r2x6 c4D d d d
+2.341
+ Syntax check: Forced page break page number must be > than previous.
+ Bugfix: Define ivx when "sliding down" breath/caesure data in pmxb.
+2.34
+ New pmx.tex with redefined liftpausc
+ Bug fix with dotted, non-beamed xtups.
+2.332
+ Fix bugs in horizonal shifts, spacing, for accid's, graces, noteheads.
+ Allow arbitrary pos. input to W in g1etnote and getnote.
+2.331
+ Bug-fix in dodyn(..): typo on length of arg of txtdyn
+2.33
+ Caesura (oc), breath (ob). Set iornq(28), store rest of data in ibcdata()
+2.321
+ Rescale accidental shifts. Still use 7 bits but now map (0,127)
+ onto (-1.,5.35)
+ Fix ihornb bug in dodyn, seen with dynamics on lower-voice non-beamed xtups
+2.32 (Noticed after posting)
+ Prohibit "/" as figure.
+2.32 (Posted)
+ Tidied up accidentals in chords, do spacing.
+ Still to do:
+ check for "(" on chord notes in spacing algo
+ small accids
+ double accids
+ autoshift slurs
+2.310
+ Extra call to precrd ahead of spacing chk, and single-note crd/acc
+ shifts seem OK, but not multiple. crd/acc shifts not recorded 1st time.
+2.309
+ Alternate algo for accid shifts in chords.
+2.308
+ Auto horiz. notehead shifting added to precrd.
+2.307
+ Auto shifting of multiple accidentals in chords.
+ "Ao" in main chord note to keep accidentals in order. Set nacc(28).
+ If there are any manual main or chord note shifts, then
+ If any manual shift is preceded by "A" then
+ 1. Auto-shifting proceeds
+ 2. "A"-shifts add to autoshifts
+ 3. non-"A" shifts are ignored!
+ Else (>0 man shifts, none has "A")
+ No auto-ordering, No autoshifts,
+ End if
+ End if
+2.306
+ Initialize legacy note level to middle C in case user forgets to set
+ octave.
+ Shift xtup note?
+ Shift in elemskips rather than noteheads?
+2.305
+ Stop pmxb from multiple endvolta's at start of new page.
+2.304
+ "Sx" in a note means shorten stemlength by x \internotes. "Sx:" turn on
+ for multiple notes in the voice, "S:" last shortened note.
+2.303
+ vshrink stuff all OK? Description is in pmxb.
+2.302
+ Toggle vshrink with "Av". vshrink normally kicks in when \interstaff
+ hits 20. This still needs work.
+ Add " /" to last line if last char is not % or /.
+2.301
+ Check in beamn1 for single note before multiplicity down-up.
+ allow '.PMX' as well as '.pmx'
+2.299
+ Correct typo in pmxb involving PMXbarnotrue.
+ Replacement printed number for xtup: Unsigned integer after 'n' after 'x'
+ Minor upgrade parsing xtuplet options 'x...'
+ Correct dimension of nxtinbm in make2bar.
+2.298
+ Account for doubled xtup notes in subroutine getx (user-defined spaces),
+ by adding ndoub as an argument..
+2.297
+ Created and solved compiler problem. Put drawbm(NM) in its own common.
+ Add new def'ns [\a|PA]usc, \lift[pa|PA]usc to pmx.tex, use them in make2bar
+ when \centerbar is used.
+ Modify \mbrest & \CenterBar in pmx.tex to use \volta@endcor etc. Have PMX
+ use right 2nd and 3rd args for \mbrest when key, meter, or clef changes.
+2.296
+ Correct printed numbers for forced beams with multiple xtups. For each beam
+ make list in setupb by voice of eloff (h-offset) and mtupv (printed #)
+ Increase lengths of jobname and infileq by 20 characters
+ Enable whole notes and breves as 1st or last note of xtup in beamn1 and
+ beamend, and wholes in beamid.
+2.295
+ Midi balance Ib[n1]:[n2]:...[nn]
+ Single-slope beam groups [...]-[...]
+ Trap "i" unless after accidental (main notes, xtups, chord notes)
+2.294
+ Unequal xtups with "D" to double a note in an xtup.
+ As above, "F" will (a) increase multiplicity by 1 for marked note and next
+ one and (b) add a dot to the first one.
+ Fix bug with e.g. c84 [ .d e.f ] by checking whether forced beam is on
+ when "." is encountered, then correcting beam start time.(end of getnote)
+ MIDI velocity (volume) set: Iv[n1]:[n2]:[n3]...
+2.293
+ Check for single notes spanning bar lines.
+ Correct various bugs with staff-jumping beams. (1) for 2nd segment, vxtup
+ must be set in make2bar since beamstrt is not called, fixing problem with
+ dot at end. (2) add ivjb2 to flag which voice has 2nd segment and fix
+ problem when >2 staves.
+ Add nodur to args of dodyn, so can check if stemless and avoid height tweak
+ Correct bug in getdyn setting flag in idynda2(0) for manual horiz. tweak
+2.292a
+ Undo syntax check for Type 2 or 3 TeX string starting in column 1.
+ Meanwhile, Werner's problem with a mid-line Type 3 string has gone away?!
+2.292
+ Allow comments in xtuplets
+ Enable multiple octave jumps in grace notes.
+ Allow dynamics in xtuplets.
+ Fix bug in getdyn searching for end of text string (correct length of lineq
+ to 128)
+ Fix bug in dodyn, must ignore horiz. interaction tweak for
+ user-text (idno = 0)
+ Syntax check for Type 2 or 3 TeX string starting in column 1
+ (NOTE: later undone!)
+ Syntax check for page number > npages at forced line break.
+2.291
+ Fix error in AS command (accid spacing for small systems), making only
+ one spec per staff, nv total.
+ Stop using MIDI channel 10
+2.29
+ Fix error in console output format for # of bytes used in MIDI file.
+ Fix bug in dograce so no space is added between grace and main note when
+ there is a MIDI-only accidental.
+ Fix bug so oes?+4 works. It was too ugly to explain.
+ ...Different ways of storing accidental specs on input and output.
+ No longer zap \writezbarno in special situations.
+ Fix bug in dyntxt level on rest
+ Line spacing equalization. Add macros \starteq, \endeq, \spread, etc.
+ Activate with Ae. (Maybe later could input alternate values for
+ \upamt, \dnamt, \parskip). Put \starteq on 1st note in voice 1
+ in the page, and \endeq on 1st note of next-to-last line in page.
+2.28
+ Flip direction of forced beam "[f..."
+ Fix beam numbering for staff jumping beams. Uses irest(23,24,29,30)
+ Fix bug in sliding ip's for txtdyn's
+ In dyn's allow vert. offsets +/-64, horiz +/-25.6 (store in idnyda2(1-99)
+2.27
+ Comment out lines in dodyn checking number of dynamic marks found. Voice
+ order may not be monotonic if two lines on a staff.
+ Literal dynamic: D"[text]"
+2.26
+ Allow hairpin start-stop on same note by disabling auto-tweaks in dodyn,
+ increasing dimension of idynn to 4 to allow 4 symbols on same note.
+ Increase voltxtq length from 10 to 20.
+ AS[-/0][-/0]... to inform PMX that "-" voices are small, and rough
+ accounting for ast's is done by defining effective headwidth
+ whead1 in makebar2 to be 0.8*whead.
+2.25
+ Fix logic bug with sepsym's when # of instruments changes.
+ Slight increases in default offsets for hairpin starts after "p"
+2.24
+ Hairpins D< or D> as toggle.
+ Many automatic position tweaks for letter-group dynamics and hairpins.
+2.23
+ Continued rhythmic shortcuts: space followed by "." or ","
+2.22
+ In call to doslur, change tno(...) to tnote(...). This was only
+ used when checking to slurs per stem directions, and should have been
+ the note duration all along.
+ MIDI-only accidental, bit 17 in nacc, or 27 in icrdat.
+ Use "i" anywhere in note symbol.
+2.21
+ Increase from 20 to 30 dimensions for movement breaks and midi sections.
+ Fix out-of-order declarations per mutex comments
+ Add "Bad error" and "Kluging" messages to log file.
+2.197
+ add /comips/ to save tie-check midi variables
+ For spacing of clef changes at start of input block, changed integer time
+ lastnodur to prevtn, so it works with xtups. Possible incompatibility!
+2.196
+ Fix Ickbug with time check in ncmid()
+ Interchange \fermataup7 and \pausec to get proper alignment
+ Enable French violin clef "f", number 7 in PMX, but 9 in MusiXTeX.
+ Add defn's of \hsp, \hspp to pmx.tex
+ Fix pre-slurs on xtup chord notes.
+ Fixed raised PAuse, define \liftPAuse
+ Replace \zbreve\sk with \breve.
+ Made "1" work as mtrdenl by doubling it and mtrnuml. BUT WAIT...what
+ about "o" and 1 as shorthand for 16???? Search for "Kluge"
+ Added "vo" (voice) as MIDI instrument 55
+ Allow 3-digit page numbers (search for "toppageno")
+ Fix bug caused by prior fix (cancelling accid after bar line was ignored).
+ Fix double accids in chords
+2.194
+ Fix bug with accid/tie/barline/chord in addmidi by restructuring accid if
+ block.
+ Add meter to MIDI file with every pause
+ Purify FORTRAN?
+2.193
+ Increased # of in-line TeX strings from 36 to 52.
+ Fix entry of # of bytes in header of tempo/meter/key track to allow >255.
+2.191
+ Event track: Tempos, meters, keys all together. Data in comevent
+2.15
+ Pretty good midi capability. Still no attention to slurs on chord notes.
+2.11
+ 11 Dec 99 c rm1
+ 11 Dec 99 "oes?", "oe?"
+ 11 Dec 99 Cancel slur horizontal tweaks with non-stemmed notes
+ 11 Dec 99 Error message for shifted, repeated ornaments.
+2.10 (Version 2.1)
+ Fix bug with lowdot and xtuplets
+2.09
+ Fix bug with multiple ornament heights over beams, when one is . or _
+ Error message from pmxa if rest on last note of xtup.
+ Enable 12 slurs.
+ Reinstate multiple rests at start of xtup.
+2.07
+ Combine consecutive type-1 TeX strings.
+ \midslur and \curve as 3rd signed digit in slur termination, + 2 opt.int's.
+ Fixed breve chord notes in docrd
+ Check irest(28) as well as vxtup when setting nodur for chord notes, since
+ vxtup isn't set until 1st *main* note in xtup
+ Vectorize nolev1, slope, ixrest. Klug fix for xtups with variable spacing.
+2.06+
+ Make deterministic the beam slope calculation when there are an even # of
+ slopes in list and middle two are equal magnitude but opposite sign.
+ pmxa Trap for "o:" before 1st note in block
+ Partial bug fix for 64th notes in xtuplets.
+ Make ixrest a vector, since with new time scheme may not finish xtup in
+ same notes block.
+ Increase max # of pages from 20 to 30 (dimensions of nsystp,..., in pmxb)
+2.06
+ Account for changes in nv when computing \interstaff. Add a counter
+ nistaff(iflb) = # of interstaff spaces per system = nv-1. Set whenever
+ setting isysflb(iflb). Note nv can only change at a forced line break.
+ Note also, iflb starts at 0!
+2.05
+ Automatic start of new notes group with part 2 of staff-jump beam
+ In make1bar, set irest bit 29 of lowest-voice note at same time,
+ use as flag when making notes groups.
+ For now, remove dummy blank line at end...it zaps terminal repeats.
+2.02
+ Fixed slur-counting bug for multiple, slurred, aftergraces.
+2.01
+ Increase to ask(1400)
+ Increase max forced page breaks to 18
+ Define pausc for centered pause
+2.0a
+ Insert dummy blank line at very end to handle input files w/o terminal CR-LF
+pmx03r
+ Option m[n] in S symbol to change musicsize (for parts)
+ Double dotted rests now work.
+ Write file name to log file
+ Check existence of input file
+ Allow 24-char jobname, may end with ".pmx"
+ Comment out time stuff
+ Replace 3-argument getarg with 2-argument + iargc
+ Fix bug with negative noinst due to nint<=int replacement
+ move lovation of iv in isdat1 to allow iv>7.
+ Set nm=12
+pmx03q
+ replace int(x+.001) with nint(x)
+ Write TeX file name to screen and to pml.
+ Replace char(...) with chax(...) to sovle msdev bug.
+ Bug fix: macro terminations when M is on a line by itself.
+ Bug fix: don't accumulate space for XS in pmxa.
+ Streamline Macros: use pointers to bufq instead of scratch files
+pmx03p
+ Store input file in single character array bufq.
+ lbuf(i)*2 is length of line i
+ ipbuf is position just before next line to be read.
+pmx03
+ Optimize read/writes
+pmx02
+ Fix line count (for errors) when there are saved macros
+pmx01
+ In optimize mode, open/close macros (Watch out for residual zz files!)
+ Command line input
+ Option Ao to optimize, otherwise normal processing
+c
diff --git a/support/pmx/doc/accents.eps b/support/pmx/doc/accents.eps
new file mode 100644
index 0000000000..f51f041997
--- /dev/null
+++ b/support/pmx/doc/accents.eps
@@ -0,0 +1,1145 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.993 Copyright 2013 Radical Eye Software
+%%Title: accents.dvi
+%%CreationDate: Sun Feb 21 13:36:34 2016
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 45 640 443 743
+%%DocumentFonts: TeXMUSIX20-Regular CMBX12 CMR10 CMMI10
+%%DocumentPaperSizes: Letter
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: dvips -O0.25in,-0.22in -tletter accents
+%DVIPSParameters: dpi=600
+%DVIPSSource: TeX output 2016.02.21:1336
+%%BeginProcSet: tex.pro 0 0
+%!
+/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
+N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
+mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
+0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
+landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
+mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
+matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
+exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
+statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
+N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
+/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
+/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
+array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
+df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
+definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
+}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
+B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
+1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S
+/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy
+setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask
+restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
+/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
+}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
+bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
+mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
+SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
+userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
+1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/dir 0 def/dyy{/dir 0 def}B/dyt{/dir 1 def}B/dty{/dir 2 def}B/dtt{/dir 3
+def}B/p{dir 2 eq{-90 rotate show 90 rotate}{dir 3 eq{-90 rotate show 90
+rotate}{show}ifelse}ifelse}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0
+N/Ry 0 N/V{}B/RV/v{/Ry X/Rx X V}B statusdict begin/product where{pop
+false[(Display)(NeXT)(LaserWriter 16/600)]{A length product length le{A
+length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse}
+forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{
+BDot}imagemask grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat
+{BDot}imagemask grestore}}ifelse B/QV{gsave newpath transform round exch
+round exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0
+rlineto fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B
+/M{S p delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}
+B/g{0 M}B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p
+-3 w}B/n{p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{
+0 S rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
+
+%%EndProcSet
+%%BeginProcSet: texps.pro 0 0
+%!
+TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
+index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
+exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0
+ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{
+pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get
+div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type
+/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end
+definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup
+sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll
+mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[
+exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if}
+forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def
+end
+
+%%EndProcSet
+%%BeginFont: CMMI10
+%!PS-AdobeFont-1.0: CMMI10 003.002
+%%Title: CMMI10
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMMI10.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMMI10 known{/CMMI10 findfont dup/UniqueID known{dup
+/UniqueID get 5087385 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMMI10 def
+/FontBBox {-32 -250 1048 750 }readonly def
+/UniqueID 5087385 def
+/PaintType 0 def
+/FontInfo 10 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMMI10.) readonly def
+/FullName (CMMI10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle -14.04 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/ascent 750 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 127 /tie put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CE3C05EF98F858322DCEA45E0874C5
+45D25FE192539D9CDA4BAA46D9C431465E6ABF4E4271F89EDED7F37BE4B31FB4
+7934F62D1F46E8671F6290D6FFF601D4937BF71C22D60FB800A15796421E3AA7
+72C500501D8B10C0093F6467C553250F7C27B2C3D893772614A846374A85BC4E
+BEC0B0A89C4C161C3956ECE25274B962C854E535F418279FE26D8F83E38C5C89
+974E9A224B3CBEF90A9277AF10E0C7CAC8DC11C41DC18B814A7682E5F0248674
+11453BC81C443407AF41AF8A831A85A700CFC65E2181BCBFBC7878DFBD546AC2
+1EF6CC527FEEA044B7C8E686367E920F575AD585387358FFF41BCB212922791C
+7B0BD3BED7C6D8F3D9D52D0F181CD4D164E75851D04F64309D810A0DEA1E257B
+0D7633CEFE93FEF9D2FB7901453A46F8ACA007358D904E0189AE7B7221545085
+EDD3D5A3CEACD6023861F13C8A345A68115425E94B8FDCCEC1255454EC3E7A37
+404F6C00A3BCCF851B929D4FE66B6D8FD1C0C80130541609759F18EF07BCD133
+78CBC4A0D8A796A2574260C6A952CA73D9EB5C28356F5C90D1A59DC788762BFF
+A1B6F0614958D09751C0DB2309406F6B4489125B31C5DD365B2F140CB5E42CEE
+88BE11C7176E6BBC90D24E40956279FBDC9D89A6C4A1F4D27EC57F496602FBC4
+C854143903A53EF1188D117C49F8B6F2498B4698C25F2C5E8D8BD833206F88FC
+BD5B495EB993A26B6055BD0BBA2B3DDFD462C39E022D4A1760C845EA448DED88
+98C44BAAB85CD0423E00154C4741240EB3A2290B67144A4C80C88BE3D59AD760
+E553DAC4E8BA00B06398B1D0DFE96FB89449D4AE18CE8B27AFE75D2B84EFDB44
+143FD887F8FB364D000651912E40B0BAEDDA5AD57A3BC0E411E1AD908C77DCE3
+981985F98E258A9BB3A1B845FC4A21BCC54559E51BC0E6C22F0C38540F8C9490
+88A0E23EA504FA79F8960CC9D58611C519D3ACDC63FB2FBCAE6674357D7F2285
+4BCC9F54D3DA421D744D3A341DA3B494BB526C0734E1A8FC71501745399F7683
+FD17EC3044419A88C3979FD2ABA5B0130907B145A8462AAF0A9B511D2C8A7C7F
+347FF6AC057E6512902BFD2918E2CD31DE615F5D643764E900B60287670AE18F
+FDE15545D8BC69591A8CBBB275AFFC9B14BD68DF0AAB32268FB84844D4DBC7BB
+C591C1AC5102C50A9C7BAAA848DA88B0519F0F5F0813BF055CF0E3C86F633A04
+B779D2E8E656DB1E09A66A85FE21CA8BA5523F472A229E83F2C4E91ABA46C733
+F3C7B5775B06C97782BC225C46385BEBDC61572458EFC5CF4190AB7A9C1C92DA
+29F84BAACF552089195966E3AD9E57CC914D20B6962BE80429A16D4DF1ECAA66
+36C4343FADF0B2B48F12E2EB8443C4AA29D00949255F3968617F98B8ABD4CC12
+048B838EE243A21AC808BD295195E4AE9027005F52258BFCA915C8D9AED9A2C0
+80814F79CF943FBE3594C530A22A92E11BE80FCEC1684C4F56712D5846B0749C
+9B54A979B315222F209DEE72583B03093EC38F7C5B9F9BCB21DBE8EDDAE9BE8B
+75ACE6B12A31083AC8348EC84D1D29D2297A266284B7E9734E207DAF59A25F4E
+4AA38509E993C5394FED76E6A2F25462685C4C86C6E8CFC9863338EC1428BDFC
+74616BB1BC8948B0ED4C87C15B4405F3A7796F9DB3798FFFE8BD0A94E834817B
+D5E9812E308D0CC920470A6F2CD088FCB80462BF7CB3F039A7DF3DAF5B2B5355
+E083A385CD2EAF0FC181E40E96DD7E9AB9EF5C7E6866A13B8A54718E950FE097
+EF0951A357114F18CE9933D28B3A77AA71E3CE884661F13284BCED5D5FD1A86D
+543E588FF473DC2CF9A4DC312500135F29C2D0174B32018C8DBD40EF9A232883
+710A1F2AB2CD11312300ACDF789A9B7B93D2035D81D1C84984D92D78A53A00C6
+EDA94B24BBAC1AD17774A4E07E6F74ABD90415965616AD540C8ECD8C3A44EE4F
+7F4F6BB6238C5062D63FA59B7BF08BE93FAEA70A2AB08FBEAAF7DBF56B95FD93
+03CA406543BA6C9527D0DF01F5108D31A51778A5EB1C93F27B72B46146A353A2
+01CACBC829603B9989A87CF64528682CCBA0562A8165B185C58A5C6BB72F5E89
+500ACCAAB8ECEFBB2640E99EAEEC4EA979AA793D013D61D8ACF8784FF8D9398F
+F6A252A709324FB39509F0B3A4E725E82F53543383C6765BE556CC897C758208
+AA3AD37B0406E4A79F8F0A6C1983FC73E71CD858C0DB66ED66D5D992978614EE
+1EA91EBE191E082EBA1FC040AF19A2202575C2EBEB8058833E3520FA03D2F915
+85C1ED337E457B9FEEB0C6EF2735EFDA6E0D05FA641BCF698AC6B97751E8306C
+4DF00A39B8581FF53DB8F8525FDB196D85950906CCB59B8EF171349AA3B567B1
+6A00819947A995FB383C3C1709C9A2C113B2E40BB832B7D4A0FBA0B16A2C455F
+55809CC425C403E9668DC66BE45B71A81C332FD4DB279D22A2959962304A8F18
+085893DAC61317D24A8F198FDAB95F3B86F0AFD35047B868A9A17037A2829A02
+BAB042F75F349E197A7EED41984C2859754CAFD0251439921C248B463B516951
+2E1322C80D73F9CBCAA63A585450275AC2492E4D3FB78E800F788254DB5E610D
+CF788DF5C70FF99892BCDF16133E34B24B77C8F097F546B87C603DDB8998B66E
+BACB68BA27462AF54AA405682EC96D701F0D474DECD5F95CA2102DF639EB169E
+D518162C2BAE45FF698B6DE15FC6E7DE48C336C40A670FD26952A6BAB09115E1
+991F0073419F2CC2A1C08BE91096936AA0C37E4ED3CCCEE235476074B8FF1125
+6BDE3701F85532D8BB64CCC927CC335281C95EA689706F0AC717DC2CF680C754
+E5EFD7FA4BB8880B2B727A964C876D4A223069D4E6001771F0E23EAD2A4BBC80
+E76675297B2EF05F52BF4E71B3EE2BE3048CF088C79540113C66AE98B2FD3CB1
+B0741A215FD070882C52765009D7D711DAA2508F19AE7DDA15229A856AC49BC3
+4DDF40814FF96500E4B9B02D412E94623C5FDCC76C0FB8E42DF56A904FE49D65
+1DA7C53901B2EA71AB658A464D3ABDE27D9DB8D9E0B48F64E61A2495AD5D8DAB
+B5E72424AD017DF37964AF911BD7FA21A5EB4775DC8E95EF0C0EB856B00D89D7
+8172A1DE8530767D317B8256103E53CFB877E10686A04F5A08F8DC58D843DEBA
+FD5F40597588663D103689F6EB3EB14D06E18C8078F2538B43E712DF491FC5C6
+AF639256C8C6134B64D560D8476DEA6329D995E46CC4BC78841C59E73648B47E
+BFA7DE0846422F738454AE77E822A083405289247BD7C478BE4974F742CD6051
+E99FBB1D1B3FBABFEE855174734EE45E87D0AADF32B1283B911162A9955847FD
+38944D70584FAA6B1A7191C5C134B73F98EB632B69E2F0C0F94156787C34C8A3
+7622A029D58F9626B74F8A8A1F3803E0BC20E0EADEB1E99B70F1BD9F980FB751
+2A842843DE42EB142A84D5D3138629AE9EAF6F3479C423E8829C8816FA6EFA27
+DCE5580E65AA9854B1C64163DC318420CD993C15BFD76A8BA1182860A6B03D6D
+22B8CF43CFE6C8AB27C64842E239CAE707D3086BADDE1D7C94E3BC96319470D6
+8D26915C575CFDD03271D6BB9DE86A0EB6EEA6E768B224A626C62A9AB48A6EDB
+44F70BB5AF991CDF9736D65933E81CC57A78F623F33EC9AF535F2F25FA4EEC90
+D50DB7E87F31E971A75A33A301CA6013EEC5A4E179D695B33DADF2C98364434A
+42926776000B610E17524162253F6FA638D6581C18F99EA0BD1D2E24D2424ADF
+C05010D08192485153DD03930C7BF45237593E484F9851E6D464FA10FECA5D9E
+0C8CCC97DE029030900CDBB491C5CF226DBF903CFE7735D939C3FDF3A20B70CE
+66579B28B99313FEE914E295388C7BC8E055A2E54EA3A8206D3C8F4F7C0BA5E6
+E519419FD8CE215F7B8E9BEC604A9E3FE272A0328A24E31997C8A91E0946BCF1
+6943A97CBED2AB9FC636B49828BBB8B89E0BBC2653796431224895ABA5DAC41E
+1854BD9764E86147FD7624F736F40DE3B7582EDDFD15C2BDE3F22B5A54D7DF10
+B87A1301CE85CFC061689A890A321412A13314AE96DCD3EDA75035FDD8F4AB9B
+897A2C68263A68457032C469987970648BA2D88B1C5375DFEAA35A917B8A952E
+EE670427942AEDB3CB599C5746180E392837D371E15D860620ABDB6AA7772C40
+A5E346661673ACA530BE3D8E3FFB895E5DA3DC23B1B43C080C77F7E47847F0F3
+F3AA5CA9E4BF75FC5EBD18D19F21A7DAA3B11CABC6E4070A15F7DBC8B05EB6AA
+A02EF1B078EB66D61D6AFE41DA9B36FE7EC9EF94D1EA26282A9871E2CACB3126
+2AD49C2D9B50A6E47D8F2CCAD50992D1B430979A45FD9E76182A19964BB2A1F6
+51779A2B258DC1DF4C2F3074621286831F3848AC152DDD2BA561E6586ADA88D3
+598A2CE2CD048F027CE0008B828BD915887D7785341E8305DF2346ADB76BE99F
+87B02173BDC334E9221C8DF54114A6B24C1C5340299512FA6C8C51AB4C8778CE
+178CEF531C6D1B5FF0A1BE8EFF767F959BD4C345C52699A29A17B2A230842BF6
+4B011217D6D24EDAC3F6D53482786F1CA33169B90ECD499407D37CE9B70DDF78
+7B7547B32952535BA9ACD1E244447AE3FCED3AF28717083CF9590A09780984D6
+AF0743C82AE4FB3E2BB2856A4153A3967A023FFC35382D6C22D84A924900B6A6
+3DDD400E6D2418DA6C27F2FA34C075C902B89EBAE658B3C9A18EEE449DA5A379
+337DE95CB7AB3F0970CF1A5D8FAD8090E495570FDFB2FBBA79244780D8035547
+C5A55BB21A2270F724BF5D442CDC5BB9F09BE0CAE59B1C2270F0BDACE698F2C5
+DE8F66BFB9634904B161F5BA2B1950048300D69BABD312D58D89C4ED527AF7BA
+7DA2478EDC2CDEE3473DD8A8ED9D891CD1FC21F23013228BB3281B71FCE959BD
+6F8E9059D682A7FCC5265A0620992D4FA8D78377EB34CE3ECA070EE3707239BC
+98907DB0120CE42ABA32CF97127E28382BDDFD685674279F588D4F951216C355
+821361790F64C2CC720DE97E8ECB57326C43EE47367628E05769E106868B54F4
+C33C9951908DF6FC4F5ED2C7787BD8FA591BBB3E9C6C1DA94CC5E38D9B20C886
+7D237572FF46DD896A4D6163408EA6CEFAC398EE041EAE29D577E75326CA17A6
+B072D47A7B13EC441CE6DAA042ECD02134CBFA6809A435050413817193DAEB16
+A5882C8AEA44BCF36E74E9ECCDFE7E19FF5A5DD7A94E5AB4F8702C3DA7F42325
+23C808670A0490F5B373DADE40814FF9650241D3D69C91FBC5ECE728F827D9BF
+C928602E05477903449E079164CA39859C4BCA60C579F490AA455F82B5050BB3
+969AFB478E0D4A257B3356EA3CD62051FCE6C6B1929CFF85BFDF166BEF658E10
+3A55E007F38EBBB248B3F0B8ED1925106B499B762E45113AE1AC9DE09644C84B
+9C08034B297314EE69BC32DB6E7D7FB9913CE5AC17E7335979E9DCCE2BAB3725
+1976155551F9706A576FE0E3ADCCF72C87683291528ECB749CB0ED291966E239
+B5E3630676BD409E08F85BC1AEC9A2D4135376284A96EA24431243BD6FE8B966
+95F11A4BB53F392E0AEFEA623064FF8A7002367B0A515635CB2D2DDFB9B4A8D7
+FE721754E81BBA548848A235B91AD4E4F7DB19CCE2F61D277FC00AB956EB93BE
+44AB4970CA56BF59506C94ED160FB1E25D3DF2988A532BDB787BFB8539D22986
+FDC378AC31444E63C4727FEE121A43751043849E6DCAC5B59D0FC703AAFBBFD4
+E8B7C268F21615AD02CE9DABEFA27B5FE6A6441B619539CAB1F810F1263447AA
+633F5DAF483752EF1A0421740E3A811D2D2898CBF53E7F686C9223FD7235F02D
+6F90D2D48CC20AB87778DE3C6FB335E0F0EC20B5DC5B65223FE117526DE2C72F
+FE839DF93CB2A7D66CD900CB325F891E311BEC932F703FB4FEFA29DB8B9C88DD
+375EC71B3D58C7BC59ADA91971A3BDA1ADEA629CE6CC92BD542CDDFAA7706FB2
+6CDDE2DF07E56D6741916AE8E8744339816F3E6C38062747AA9FDA2A2678A6B7
+EFEA870AA3A4D71B25EE3013EAB1DBA34401B867C7A41AE51E0421D41D3BB83C
+E120C8FEABA6E5DEC53A689C21426D4BBCB68CB37568761C360E6D4E3596FB7D
+F4DEC7918E58C0293D12D6DDA7E9DCDAAD7C939F55CD1BC4A228B31E9A904156
+DA6B40B08E6ACE674618B768DD681C772A3E55FE096CF949CF3B0460ABDCD891
+D17B37B355B29AB5137899C036F31DA026244FA25FB798FBE5105BDA29F46538
+D3D3AC1001A7BCECE64DE94FFE6C354166A0F97256137BDFA07F6E22A3D1D2F4
+9588DBAE95E895BC5E64DDCBBAA8D0A22C229B42CB717FC711E7E9DF793DF80B
+9F14754585A3C7E17F37B32924B9F9870DA8635E3E18BD1DCD81EDF01834D9C6
+B33F23C956C2FCBFA47D84422F583459D827D1E120B97694D12F1F54D02379C0
+D288F7104F3FFCF4F76E3494F4ACBD1BE3A15543CC680924C78A473F8E311ADF
+8FE00A04C6C393DE61AD3EDA5BC031E2353076A2489391B52632387CA28A7B93
+FBB065A6EF3658AE80B1ADA47E9B2539E73A71FA75645F85ED8ECC257FB4CF26
+B6C912DE9D0F9899E70BECCB934AD32CF49A093371A9F73DE6255EBC39DE1E7F
+00D0CBDABD4D0383977E694890E71FBE5C376BE5F3A80C28987417504F515C50
+909F3D31178BB9B1D085BE514F71B910A9085BD6122DDC72A150BFE266920E49
+5661BCB4BAB51D6DEFE32B616963DBD989FCDD1637B294CE4E288655FBEFA1BF
+7F25BBF8CF17C2D5FD161A7C2CC9CC7490D9BF15A1D35B3BFA43ADE256E88BDA
+BD490D92907C57BAC408A575EC84D6AEE070148C7C9A91C03B09FDBD792E8FF0
+C0B886AAD2EDD86541E5E579359D40E3AC312ACD3D8FD49F71BD533DDF8859B1
+BAF17F1884E331DD07CEEF93B71D492AEBAADF7A263450A7A72210CE630A0D37
+BF024BDC09ACC882816B8C22C62AE38A3A8D0F6EBC2B1B2C0B8161A8B076DD5D
+4B779C0788546BB4CF57332230D237856B00D79C28A7C01D11F44B7304F69075
+94B97A745DA43D1BE561372CE611C345A843834E46AD9DDB16CABCD3FA33D6F1
+F6B5C0497F5EE5400B305CDC16A7EC286AA4D45D0EEBB9DA06AC9C5294D68EC9
+E4DC3CA2B92CE8FC0526184A86EDC7AB34D67E60AC12D9CA8FD300235EC968BA
+92C6FBDA47572BC5600F25249F60AD287CBDAE980E747FCBE7EE5CD323E733F0
+63553B494D3DDEB9CC1480B5C3BB79A28E419AA65B18CB297AB383419E890E2A
+CE6F98C9900CCB4675280A10CF060B8D220DDA1BE55DFA65715EABCC1AFAA271
+B1F8732341613E17B231231A0D24D4D7FC198AE04D89A99C4536217769C6FBD9
+5EE24A6302F97438F7C0E311C878F674B4477A5ADA3952CDE4055AC408B8174E
+86F8FB797646DFFFE0ECA25D1BAB9A9F71F3926D3D85AA63E7A8C931D71E79E0
+AF1EAC26FADE468F4FF7F3861D14C10E3BE1F9EAFD6D3A544E8108D5DAB5B180
+3950C74818BC8AF4758A108F462EF1826647A49667F5E482038C54716856D9BC
+35F29922846D2148F92F943E951D7438C73D6A60459A8003174036C64E1629CD
+155D47FD04B03C023AD67CD5A70C98AB556EEAB8C48169706E5B352F6505D580
+AC945171BFE62E81F8F500438AC3B64D857BA5BC54C2C4BBB237F8FA51296255
+E66A92A61FE13FDE781D393557EB72CEBAD86511035F775FAC39A0479CCD400F
+226709118F887F47CC2ECC8F79816D4A945B2845F50AFD62D8C9A9BBF4739496
+9E644BC9F7B04803B7EE75A09EAE94365F6F374B4FCEB0B506C76297564B9B6B
+8B812BC3A33929AA94692572B010E6210AEAA312BDFC88BF302244AB9D587A9B
+919823FD01DE12438D960944D1977800FEB49E638C32E5B188B1CA033E0C37EE
+A142F746367888AA119535F0CCAF7EAA461B790EB089D2D6962E28A398439BB7
+9C9943654D7A2D765B46BC0DD1F915327F369162E1BA1BA83110B93F442905E0
+523BFF5E279508A98568CD5CFD18FABBE9D17265A9081E7BF64155A2CE3C0DF7
+88D00671AD65654709589BAD7EA65BBA811387ABA5CA0BC3F66D3D48597A0D1D
+2C268375DF47CCF62166262AE4840AB03BF49BE67A05EF66328EC729F03CA5FF
+AD3937FC053E223303565DC771ACF32E63DFB96D5030E787961D72D02C195C66
+B48E9AF0309DC169CFE8D16E2818DA94693A18F027DEA0D916672480464F7E22
+CA6E431FE38D3FC019BDD229E064B72C545C61C6EA55984565CCA88ACB01F744
+3B4593CC8940010E0BAAABF2916AC16E116A1D859D33BA673EB3C4E53A20890C
+40AAE11ED78F50CBF337AA14142CAF866D317D14BD18C5D51051A0F07837E003
+01C38255280BF78B391745DAA0113E9DF8BA8A60659187B460BCE00EE2EF8981
+DC7B23EF5FCF822EF5291A4B1A48CE07C78463FDD89CA0A2B44CDE13F73C4354
+99BECB008D72D32547451602077C0D2F8B1B17FCE63228D1436F461BED1B4EA9
+F4EA9D66070141A23B2C6DB64E8173974BFEE3495376
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont
+%%BeginFont: CMR10
+%!PS-AdobeFont-1.0: CMR10 003.002
+%%Title: CMR10
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMR10.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMR10 known{/CMR10 findfont dup/UniqueID known{dup
+/UniqueID get 5000793 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMR10 def
+/FontBBox {-40 -250 1009 750 }readonly def
+/UniqueID 5000793 def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMR10.) readonly def
+/FullName (CMR10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 18 /grave put
+dup 19 /acute put
+dup 20 /caron put
+dup 21 /breve put
+dup 22 /macron put
+dup 23 /ring put
+dup 24 /cedilla put
+dup 25 /germandbls put
+dup 26 /ae put
+dup 27 /oe put
+dup 28 /oslash put
+dup 29 /AE put
+dup 30 /OE put
+dup 31 /Oslash put
+dup 32 /suppress put
+dup 46 /period put
+dup 65 /A put
+dup 76 /L put
+dup 94 /circumflex put
+dup 95 /dotaccent put
+dup 97 /a put
+dup 108 /l put
+dup 111 /o put
+dup 125 /hungarumlaut put
+dup 126 /tilde put
+dup 127 /dieresis put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA
+0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93
+51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71
+7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551
+E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078
+0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273
+C01924195A181D03F5054A93B71E5065F8D92FE23794D2DB9B8591E5F01442D8
+569672CF86B91C3F79C5DDC97C190EE0082814A5B5A2A5E77C790F087E729079
+24A5AC880DDED58334DD5E8DC6A0B2BD4F04B17334A74BF8FF5D88B7B678A04A
+2255C050CB39A389106B0C672A1912AFA86A49EFD02E61E6509E50EE35E67944
+8FC63D91C3D2794B49A0C2993832BC4CDC8F7BD7575AD61BCDF42E2E421AA93E
+3FF9E4FAD980256D8B377043A07FC75D6169338028692CCA8CD1FE92FD60AD26
+D57B7519B80A8F8DCE9CEE5CDF720AF268D3C14099498A843D76E3B6C0328F24
+D36EFE7F5C4E5B5C612786200C8DE3A41EE5F1FFAF4097653CFCDC8F4FD32E0B
+03EDB3E413283B9EFB0AC33B055617005BC9B0057FD68C52D1B0E67F0C571685
+767F2AA85ADE4E0104A1C777733D5E318A22A9944336E5B98D965E50D31F357A
+8B6EA5A0EA98E1B027CE68C2EDB149EDDD04ED74A1B3D206D471A0C11C11449B
+DE190BBFEBC08C9E1B7513B43DA3134D6B11A2516E6E86B67F68C970A320D05E
+94FEC57FB347606DF89989C33482BD09D011C55AA920319E7B26A205D3D0F004
+22466F09C0482A164CFB27EF6ED2B040ECCC3DCAF345B5A73676F193D43123B7
+72FD6CFC5E37930E61EBD5A6307E4DE70194E6384EC0D79DB6AD86D3B319A31C
+8B0589D0FE28241D8ACE280D0530EE99C80723E560BB72AE9D53F4713181F491
+344B06D3027BA4E9E94D4305BE1D817197C54C8FF56CD6964165F6448ECC8A8A
+64B48B4F0FD69299A137589E2491A283509B21A3A5772F75B7602A9F60AE559B
+07A58436D04222C73EAEA72DE9A5A441F88D27C11F4F91255EFE280E91A4ACAC
+1E98A4E5E6C57B9AE86FD218C3CD8F24A4104156A80F13821384E529783C52C8
+78B94AB3A0096090867ED32E8A30980E737922037F75F062BD83BF4F5929BC51
+CC22AEE2DBBAAA001CFFBFF41D258424FAD888FFF1BEAB796A44E3126159E120
+7E4025C676CF94888A1971AEF8B6764B3AF4A92D36FAF6FC56FD049710EE3782
+BC2CD84FE2473F133BE03C1346B875463F126DCAB15C7A9BCC9A727D23611462
+4E8D2BFD2466600285D79518712B8681ABCD69608E6AA9578F7BD771EC36E01A
+5A17BC17E375020ECA59B43790ABEB9DF5F4FBBEF807E5699EFEAC563E1ACC5D
+EFA336E75DE6D8248E9381BB110884FDC89C2F9A41EBBC9A8A1F98E6A41F68BE
+EE30E25CA148C1EFF42DFF8C214A6537AB11F260B8C329A4947B5FC8DC9C5622
+4DF7BF4FBFB00380D47BABB03BC30627AA74103E553F55278F538EDD8C1E64CE
+0F1398CA0AB5A86630139B4A7E8FC02804CAFF3830114640AE50D2FDA3B561B5
+C63AD7EE3347804CBB40FB1E77A6C89735DD870351C3A1811591AB493251B904
+314F65791963C0412377C1D02362C5E9655F1C3D4803CD379A8EF24C48218C2E
+DF1165840462BF37DDE1B8D5FF09FA2C3B261E2F1A65ECFBE5D4EAD43B52C029
+EEB3948CB8A252CBAF545C8FA1C31E920E23A12DD7222CEF2D2A513BD758EA13
+DA33BF5FBF1D734653EB83DA2D374A5B9A0CE316F24EE375D6DF6BDA49954C2E
+DB25A88821193636119D469BA66E5DAA9C92520FD4F84426A4E54273FA469084
+7517817A6EE3E21176D333825E88046F50B3CF6938AF9BA79A2F51398239EB91
+1A2D07F7FCD948427FF62F40FF95E39FE1A1AA8451411563FD5388472251C155
+69BDE9283B41900B21EB1190D06E6B13B7794FED020D2C1BDD205AE77B084BCE
+EF628249398B496DE85B406FC2E1939EF00DFC84C07E26CF72EC401BAAE756E5
+7F6673216E7560D1C2A723CB405EE5CA474A07F61B81F8836482F73DC9516D67
+CE0CB770EAD755B6B356198B4B97EBB29C63456953270CCC8D5650C1D006E69D
+38DE2DFEAB27DAD50A817F0D645D30AF5B75A7B53CBD3D2B8D87BD0A7E525AF3
+22F7ADDFCE31716914C2318260C2E2B4664893921B68C5A93334A361D94A759C
+0D7B146D6FD94F0442D672BDA0F6432E18F3C5DFA37ADA378D95B75F413C9ED1
+BB5C606A3EC7DFB3F796F59B0478C13FD1900381EFE0BB5242D5B5D34D03AF1D
+4BDC93EAF8020E26CA23C8B0E7DDEBBC6762A557067A4CE05A524188A8F02E2F
+3625DA38DFCF381727887F5646A3995A8A38A5FB1E5D5EBB395FDD0B7C8E71AD
+B48EEDB62AB2CE99D121435EFBBFCEEA69AE9ED8238B60CC7288DE33C766CDFE
+15B767B4AE2E6CE0965E77272AC9F86023DA620548CFAC85BC751C44218A29C9
+849F1C2DCBDFAD895B54E51A569952ED50F82DC8A19F367E7E44643854EFD6B3
+FCAEB04E55E4661C82D31E2932611748480EF61FB2FBFB0CFB940BEA81AFCD84
+4C6A6332D7A600170E38A8EAFCD4F93DC153C43175434C86BC747348FAC61B76
+1FEC9027C1A193E55C80F1F20B5317AA0A05AAA36AE235F6E49F06E570FEE798
+84857D7552EA92EF3EFAD52DE39C2F8F43C59E3A957B7B926FC95FC4B60186DF
+7F3523EE2AB74E294C8C4BCD8B4975E84849E0FBDA6C0B0F24A636DFA578B122
+CF97BC5089E21E9F5298D1C9F30CB8BAFF6A3A11BB4D9A0A5CF2B18D055C44CA
+4FD4D8FE1AF3630907DE7E585AA811F9CD11FB2C8FC791851D651009FA5DF20B
+3C33FD2FF848A9E3F5652BD294965A332DD3F246C91B0ADA34017FF2451D1394
+F9C3C95AAC6EC8062BE98E8914D51DA6A164AD13938693D446044859D03A949D
+F9AC5DF4A000CDA98BB516D762CB9F6D44B5268FD0C26E88BC4A760C0F75A140
+DEBDECA4F511128B7D2805872160C55236F0A0FA7637FF0D4E94AC079CD3C8A7
+D03A5A56F26B0438B577C46011A10532FEBCAD14FBD6032E224F45691A726886
+56F305231EB2FCDF59C8BBFCB5DBD2D093A0E84D62AC93A2312CA69295E937C4
+8DBA1802B85F54B5E7E6D6216A918F911FF705D3B5CF055F1D873B96283A0B53
+59344D910CD396D883F6F7836BA65FAB4393A773A8F6BC298069E5BA38210EED
+49C9D920F718E3FCE692527DC7CCE6963BF744F2C91BC5952564196D60574E86
+87A0FAB21F2DB2BD5A51D7FBD8FC19946D24E5A228462C4772F978E650ADCE3B
+8D66B9C21279C531CA1C3A8ECE3420BB65837287A7222CC3673A2A5F8BBFDB60
+C719CD073EF9A23675198462C7C87B24CC92D6AEE5C25AC63855CC3281494342
+D28F3D2FDE0C183486769A4FD5B0143193D31FCB2C2A14E487BBD96D0BADBB64
+D1B56021C363A795BF10E2DB448261C363A54A4AC1182B470C457AA82DF3F5D1
+F4B329806141EBD53CAE309319B94133D7EBDC2D0453A905ADD207364371E178
+0A95C2686E3B34C4A978BFC0EE968C39ABA00889BC5149162C2B54483D44FD3B
+5CFF41F611C7E03B94945F414560E874D7CF27FFD0630890D7D7EA66CBD15448
+229059E1C436BB33D69552B5367AB5D53591C4678D0C704DD3EA23F5D9E8A7AC
+17D003C19E333E726FFFA2961F33C70F429085F7BFE3E2510F59B78F58B19CB4
+01B48E184BAD9020FECCE3AF52048A056981DAEA02AE78197E65855DDB170616
+F54278395D9EA50DC83761AE759F9CDEF9E1948E7002414FC05286ED793E6662
+3347F2A9AF8917493D7305B92CF93E8E9185F70015F5594084298A6C2F9FD3C0
+689F262AC9FEDC9B89577ECDE92F08D3142209FBCE7B5C0A840CC767BCA56C20
+4E4E545E2BE4D21C53855CEE4CD0AB35D1A604C0FFFF77DBAE4289752276559F
+A05FEE65F45ECAF44E95E23FAB6052195C7948AF0B1126482D4E02D72BF8AB03
+DE0F1A632F7672AD9DDE70EDC82AA993678A82BEAD0BC2649C4707FD8509810D
+364B5C6FE0E10772E95288C622C2F06C634F4DF8C7FD1432BC9310D5F24FEE3F
+7AB324863D6DABAA1576E70643CA79EF4D7DF4105093D66CEE0F3B87D2164A7F
+26EA05F5C4645B22D3E1BFD2219657712C168FD90DE801FB0F32759E80DEC1E1
+43CEEB19FED12D757205043FC98FEC62D6A8D8B97BC083B4A0E985AF7850D6FD
+8716B9957C1C35A0675BC53DF672C425C79F43FDABAEE7D63F092CF271C9A9D7
+C41F40C4189510987887942E60A412B3EEC84C9A6E1AC7D54D528F5604B72C08
+94B7882621A5BF1F325B92FF96B80878CC550D1AE4D8196E41CB1251856609A5
+C4D3BD05A922D0D45E039D9450DEF8490A3E924E41434194910BF60BA1B08BE1
+B41824345627745541A4F1703E956328F6227D11C74946B38CFB096139979E56
+4E723B889B44C6D78673868C89912F8B4F0B4B485F1587A637B630F92E6072D5
+7F3B44EA6FD96BBD4FC28A6C1D90805E3BE3E42A7BC9C880762966C55BC04E01
+204D083AE976FAE6F37C94F27E68F8C0F28D52B17F6C0FD7C9150701FD78F8CE
+B8E8DC9260E3974005EB5CA728171F482D765016C94D4ADFE4A42EF42212BC56
+7E4EEEE8B0D2A7856CD4E44F55C0BAB762F92CB8D64C17022D4BF3A47C12F5E6
+279FC23101FEE93753653CE8CEDC3B75C9CCB29BF1D4554C6120DE8EE750FCBB
+E38B5D915206974962E320362E59B3F21B3AB1875703191043D03284D4467346
+CFF2F98CEB4845B73ED8E003E0DC94251B73E13A9B51A3F1430BCF6A21EB9B7A
+65E17FA411F53BE6432F1506232B8159E008FA257F884A4A01AC53BE91754D78
+BF14A5B0FBFB9C31BF4908355F8A762052968DF526D118708CCB0B7CB5BEE285
+6DAB6CD2E3934178E60BECB11AAB5478623CF6C50C92F8BB5D1A583609028FA7
+B8A53B791BDC9EF76A124F3F7641857E4BEA0837CB36176EC9A522EA7F41B8D3
+63C37D1145367BD300F17B54522A834BBB74DE12BF9EB26ACE6F24A046D58F89
+4D4B7DF74875F1A0C1C9D97BE0849593D7B398EB4B00BEBC8C8D1497B6EF831A
+A35380FFB7F1AFA4D888AA52C9482E8B1755CC209905F98F40D95B44D4DCBCB6
+67423D1BC2F3560FF0A8B4F0CAC352A4EE2C1D946E45AAEC8A6AD40303F3382C
+DF0756BFA3B1ED64C169E56ED1C760F2FF0E24DC5C9F41306EF8D2628153D30A
+5DCB0791126BEFD4947D7EF08301FE015F2B0008DFFCBF9F2D4D859FD43EC7D9
+C5BE237E9BF6665B7B1BEBB362F0C0C3A8D86010B9C97FA741C97C2E0513386C
+9C26C235B14DD2A58BFDAC7B5F63DB4DA6D5D37D0098175A9071590E1DF66A3D
+B8173A047C29D7D35557F06132CC920B5460B8AFC11D23D09A4E45D089F5EB51
+963FA1A6256E359D485107FD143B2BF21FDE9DA5744BC2615E86C31C89470CF0
+D06C6397D9FCCB316EA9989430240759D2C4945D941F159FC02327F34B042BAB
+B5C3A47C78E8C1A6FBCD396B1A51CC4B020B8AD401841EDABACECDB482D6EC5B
+72D2BFEB4556720FADD49D07307C8B22ACB7E310CA4151A85C71EEF70E8D15DE
+B3B00F26E0E166C14647A65ADA228A3D1C89025BE059306565DB1B1EFC37D358
+8C1EB024254AFD049BA977BD4C2C605050E17940A89D0D4C5D963E792320F5DB
+3706682E03D25D9E02487247819551465092CC22B6B56E93F3AB528038FEC3F0
+668F866707A19B0463BE706EC729D2EE1653AAC7E29BD25BFB3241D4792F5152
+ED415B4E7FA92C2EE5A22E27E8B75542C492E56D811C192E95542A6FE0BFE5A5
+69273C2ABED4300D491B92D2AECDD278404CB84B1BB1BD7AFEC858215837D118
+C0E928BE7E07CFEEB51A6D21375B772B8248C994564014015232A0DA4BEA1754
+3274F407FED0837A236371F1A32056240F2015B1E7F4B2CA72C6B58610A66F13
+407CFFBA5E0A2893C1F572D50F51286E9133B5A84239C9493B0574E77D281D01
+11D00683354A000C9700EAFBC1FD104EA19DFCB87470190E7E2CE26E3A6FD0FF
+2620B87B82AC8686B6206B530F17E9348BC7D04B948348802CE53A312443DB87
+4DBBA5313A6A2A8DAB8A1CC9A594FF8C299281C0A261C8CB2226B732FBEEDE40
+2C6ACC74A1A61379E2E1CD5548CD908268A32FA83D8504C442EA0E183ADBF7FF
+9FD09C037AB03516ECCA93FF048235BD11A25DB07F164512A079C5392AC7F889
+CE96AE5C8D9580BCAFCC087C35E76EED1A671E87C12E3045E15A687134736DF8
+DA984772AFD189D68571A2ED7256F1E204230E41D3D9DD876F938951714A3973
+0CA9310489F8E807C1C7A4E51AEA5BC030610A5D7263FF7E0F9FDE3E5E37A362
+5B919000BD94D978583B942EB79CF2BEAC33FEBC9A67272EB10865BA8FB75FD7
+9D280AB59F91B96C16C982DE848D76D8FA8620DFD7C80B7DEAE7264350D6FB3A
+EF04794DA3305844A7CF718F6D1A4A3AFF6826173A076A1372ABFC54ED3AC6C2
+09C9287FC830556CA694E21CA5342ECA7B10C90AFC4783D841D7B1E34FA3DB7A
+2B706F3E21B0FBAB23E7257962FC3BC309CEA2C7239A9D6B44CC96825115ABD2
+AF9A2566D2F3382C01569FBDB94C8D664A5DA0F7DC3DD140CA77C743D7BC1420
+324ECF9E4780280EB119885E96A6C619CE3C0C8E1E264E2DEB137E5DC8149786
+486D65667ECF47B1A1E20E9E6E4FC8323E0BC8E61BDD3BCDFC6575C69C03E31A
+EFFC290472CBBD049DE3F840AEE37A2486034240F80E75D8A79E0762377DF660
+52B12EAA16D678990B11A9BFBC03C1D4FCDA9FD4FFBB3E88352438102F10B7C5
+9F04C013B6575B5E948FAB58EA691984A0E54E6B9F3F505FFFEF74D06FA1CDF3
+4B8A95904C8A2763AA8AF5B71D00F5DE09DC1CDF87A08B6D181453063E14C12D
+B7BB3775A6E2A901636273D9EEB833EA8CF20FD83AE899E28DADE10EEEC20BD7
+BD93085A4B1AC80AC1AE8280C14767F1A487BD066007A0D050317BD081131A14
+6EA0898ED59E46DA7B6254BDCCBC660686E2EDA0E77A705A653733BB5C5497D0
+B130359F866CF293FB6EF0C2AC5BAA2DB0DED045E2DED3A2612D078333260359
+16CF0CCB272D34767EA069E0F0B0D42327A18529D72E890EDA6195C2688438ED
+E9ACDBEED41E81CA8EB5E43C2B09CE266EFCA03F2D7FF57F12B06F9E54FCC6A6
+546676F6FFC5B8B7D3F0982B6FF0D21D949309F0C0B175CC1D0976F8C55C6AED
+6E821C39041E22D91AB30922F2B2EC2746BC7DAB484991542FBC82D87B487507
+559AB466F73EE23C2D3194DC5CE4C9AE66D3164613AC5CBB3DB501B64DA7C91B
+C7ED2EE9027FC0906820B35D4F2CF66C4F9CE4A884B7C07155BCA884ECA5EB3A
+ABB83F84DB1F5639599DC7D3F51241AB5D95C3BCB7AB1EC90B4BC989F74FB354
+04B2D7366A34D335A47B8C00C05CB423482BF6C7970A95545424A08AFF9A035B
+7F83F52B65A9799CE76E303B85664B624C65E9CA58184C7BE2BB9D9C86A4DE5A
+8165EE3DA2E652B5022EE7893896BABD88931DE1D538F615787645DF5ACBBA0B
+A8E5B899A37321AA7D4B283AC9234978C2DD81813A1EE5DB6EC170DAC1B6EF02
+94892635B498765C07A38D2E9DB0B7581B11056C28278F89B0E60998379C07EB
+C0EAEDC32AA69B8B836F92A61AFD35688315B2C3F860632FC13E4BDFB63214BC
+41CC6859EAB3AC3034449213CAB99FA1D216563419CD6D6CE4E1B56F33E6C654
+7AA9DCB5B05FC068DF02AC32408C8010AD004F6CCA9887830927F8CBCD49CDB5
+18CAC1EAFF815FF2F6F527F936948201565003022C6C7390B4E3C2B219FB4F76
+9F12BD25CA7B3B61D1A2F8DFEE795D04D5428B42FB66E0C254AF7B7A10CEF7FD
+E5ADA6B0DE25D015E874D9781C6E58BA3DED8555858792C68064773D72E45B84
+ADAD33B9E15B5A6A25612F737876399278839E3C2111A05D71CA7D9E3F827A2C
+A8FC1D6F2939F0631048FFD7F31682DA828E01531857A3BD1BD163518B525EDB
+3004C44AEAE92C7D6E49A68F23BC5D249C4F34A7414158B385AEDF0D4068E59E
+572F18EA1B164627634D49F5942122649EE6B65CFB15D184DE32D70E116BC5EB
+64FDE5E007E243BC3270D1D797D8A63194586DD11A074F3F0B29ABD81E289B58
+C0B3D0FE267EE0682D21664D35522EADAC9FFE1131374EB2AADDB2337DB2A016
+EF151F02BF3BAA09ABE4C1BB62EDA276008395A897AEC52D74BB6747FB9CD5A6
+33DF53752834D0BEA5CD32D55AA3E61DCAE5E57A9D3AD3DED4F1EB816ED38265
+BF356222C354FBF375EC58C2E9FA510419AB80F1B121E0DBB1291EABC3C1681B
+9266B0BAA7F004B5D37F7FC2942673BE5FD5E91307DC570EDF6AB622B948DBD7
+507294E341DBDFA8FE1EEE5C4C8248E590D6C483705CB60F40C4860B1EE04F59
+972D72EA028CA0FD447F078A7CD8B1719D6C9C458980A3690A84614077D7D036
+EE1B9492E53D785C12B6AD35172B26943C56487BB7DDF90F0B10B975B4E3B65F
+483BC8155E7DAD9D0E23A165C83FC3D6CACC6E5C69CDE3EDEE000C3C6CEB6EC4
+1CE1FA470E7F992C0D5CC50A36A9037DAF6FD2A332787E2DC69F55D9D312A15B
+5D2711A37DCF54B21AB4A5DFD1227CBB21912F2881FA513340102CC18D64411A
+41FB44D0E3A577D784872CA691EC93BB025AD0760B0D69011C6F6E6000F11FC2
+357FA3ABC25330D3134DE8F40C716B11D0A6E396D355576B9E53C70763B26763
+27EC212DBEF80F9865CDBD6441ABC890E170EFFC12D2D1F2356F8A3D634E5AA9
+137DBDD228B75223D15695B6ED06E7FB334F4F2A5BEB4C0A925139CDAEF7E741
+7850981E2FC2BB60E3AB70FBF4A282CE3CB43CD00D5017219264F47E5F287393
+BDE47F4A0FB2D029B166D01B44818AF5389329FE1DB14432617CA186D413D7FB
+DE7A1DE16C177B128893D0DE27431534700371469A49A9C05D6FABB7A8C644DE
+59BF031EF5BA8990633918F5A211CC9414A94BE79E2F704DEEEB76DAD21733DE
+55FA05C2A592D1E80050D3E2B615F6F492F8D3AA12B7E2928E87443D6FE06977
+66C2C86C378E8C16EACC723052C57A8D7CA479E41B23C66518608AC5D90D8ABF
+8C1492282910DA2DF652D357596E3A2D629461953F256D85FFA25FBAE4BF76AE
+8BB9A8C848963020A5B15F862E7DCC78F25D7C5647AC7A395E0A83ED0A777D02
+3E226271C826E5FF80FBAF21BC9EA91B74EC159DA81A275C732DACE2E77C4444
+9EF06590F446448C1DADBEF2BCEE271D2BA5DA1874A485BE3CBF2F8211576162
+D806F8F5A1C1D177D8345299B536DCB10CE7B05165DCEEFA72DC1B32829F1580
+5AF829D5869F2C70B0233569EF120DFC5F5FB5FEDADF4E23A07F6C0E1387DD54
+F5C8BD071C4E9F79ED12C18200177C729F813D56D632F88A4EF310FEDE65CF0A
+519FB5A109CA9D14EB30F6F4C1B85C7C52B1620851BE2D39031BCFA0821FED4A
+2A8D9F8B0FEE253FA7BD5DCFEC68DCAC374CC58F53516ECD13D631D0220B9D12
+A4FB00F763274628831334E1E727FEE910CD83EAF19D803FA4B566D7ACAA1BB5
+BB81CDFB6FEE81AFCC44A5C176DDF5EFF2C02F57FE5DDAEF20AAEE8645E1F5AC
+047A8204F464CF29A60BA4DEAE3FFB9A394A21568AA5756B2072DB14584DFAEC
+37FF325F2C397C3D4B3BC97F1CC3EEFB3E577C48B5548AF39513A0614101B04C
+BDDA982E68D06BEF3405EEEAF0E94D35858F00E6A27320CF515B7B8AF90D0682
+E89F0DE665C15797687C7632A189CF44A025208FBB7013739BC3BBEC27564A3E
+4D7B473606A827BE2D3F3CE87AE338F0EC679E1C63E8243807390B2D12C84419
+356DF4AAEBB939DE320592ADCBD738746D3E9F1CCFFB3932AE80CE06895EACC8
+15D11C5043C96E89E9C036EE6C2191D26958AA329DDE6CAB1E9FEF16322F936A
+48395AB4A3F9CEAC274305B54CCE2C3B7D51A061E3F7734DE2DB7D9E0B333DAC
+A34F1E77B2FC8CF7B612D1D4861AE5458EF2CEE3F3D44FD65FDC0F4AB30BA6AC
+4245F76C39075D9EC1A987BD461FC72472E528053EC041E396333C90480C82F2
+BFEE3E5238AB3271A5B75ECE9721E484AEA8DEFA2A7580CE960BFB314E1BCD17
+59871F1D84EBFE2F44AA6A60FF72940BA3ECFA1C2AD0E4174917B2684EF827C7
+9E742336A93039AF47F5F3FD6ED94DC2FD9C5DEB0EC87EBF8DE7F77FCB8A5EA2
+C99F29B4A22D9E9AD1345ACE0F492497BACB4DB51595758AFDC9C644CC5BF728
+A2044B1C0EE6096E008AD67226A9ABBB491C4139F1F5F2B8AB0B4503D1E9AA8E
+377610666E66BF183BFCA55397E2CC27E11DCFA24B47253A03A99363DD7B4CE5
+38113E5BC6BCCBCE4D0F09A5DC24D41FDD14AC7C31D7A36B38DE952F20E91B9F
+1FFF741056B0E064DF6E7494F86F8C3939211D916712A414BB10FACF6C427A7D
+2A858E0999113780E725D31915DB1B2049FA929E4D61960B8408BF7CE6B50320
+2AD177075BED89D832B806286039E75042D590F24D8FE9F50D35EC6BBAFB7C8E
+37A821C28E4BCB80DD25CAF8C992AB1C122C7ED7BA6583A6C2EB5F2781310B9F
+71EF1D05A873B258256AD59910E1B9D0959793EC2AE0FDEB52BB3553777BF90A
+75073302BBE80809A0E934D63F193DF73DB857E80BB677C002F5B67650D9D434
+956C7787A6E90159AA49D316055F12C89AF17686542CC2D5F3E338816E6A00C6
+D1F4A994FD05DD0D2954B32F80C37FD41E6CD2CFF2A335D8E21BDEAC7BDE74DB
+E7654F3BBD951BF1781785213D442C049956A04CB4C3DD6BB91A7926694EC48C
+B03CF1EACFD31FEE3C7AFFFF0C541ABCE1D7B9AD890D6BC64614C5CF9B2479B4
+E7C3BDF225EDD7CE0EAF2EC676BF0059B715DD5462BA30D79D3DBD0851B8BC5D
+A5D6AE5DB8C2A8676394B9AFC566EE1F7C23694636BECCF37854EB8D1A83149B
+DB16A1AFE7D791B07EB542990B715D2F0275F485F8A27B768569194196139732
+69D39C7AC30DC3D3C5CD3B5E0513A540D0C7575D56000265BDDF7E05182EAB8A
+2552D56AA3C47CCD8C1D6E639E7F193BE97BC04E27182EBC4DAF4EDF918D5DFF
+4919FDAB604E024605457F1542C9D6103231E07E329746C603BB348538AA9E7E
+A10777B121C420A66285B634B8AB297A5D347483B3D007AA801A46BCA9E0AE04
+79A2DE64C1D02FD6CAB479553AA9B765C965D69113E9FAC007352614C0B6C531
+C06E1725F3921569489DAEBA2A55A24376D02217FB64BD239285BC326D3CA20C
+489EEEE1EE3B133ED53C51EAB75CF06C2B39A0898B7CC02FE9FAAE87F5A611B1
+D378B62358BF5E25F65788D4F82CB6337B999E290BB4071162282D094BE1C031
+BC75811A1DD5E64C58133F9A3E0EBC98FE3E53527BB50F8BE40D53CE6E71799B
+0C843BA365A2F4BABA71C8F79B55F4F4B85119DC42AD7FBA3CFE5A2C05726643
+A5487ACDE14AD769C9FC397A5AAEFCD3D40868AFE8EE3233385559F8207716EF
+512E25143354112A94A8078E716ACFC5623ADEDCB1A2AAC15697873546780162
+645D80F81FABAFA22D9083A3C41D2DE357174437979F6EBF8F421F50EF88D987
+33C2DFE909C8C5A88B62917924175E42D35054A32489D47C933BCE7D86B6E212
+A934304AE22716B20C8EB6F4E3BA93D4195967818AC4CDAD4D349F459C06B793
+E2E898D2E498EC6EE98660AF2E60E5A9821E3FB5D5882F227F5E02F7552A84D1
+5D6CD8EC3984DAC23909C658DDDC822CD31C8BF81F3C97ACB070F0FB855070AE
+5D6C0A45E70C0BC64BA6EF14A8EE2797590E6D3576CC4E86F01A83EA8F7A255A
+3DD9F7399710FFC6DFDBFD53FDA46C8F4E3CA5C117DCBF87E337517F39CF2A81
+DA04465265B92D93A6176BB021339917ABC323B11AED08B5B3D616DEB8FA7B76
+51CA42570F44CF369F7B491D1916BD5CF6DA9C0E373AF9C87FFDEE82C88D4662
+0819A46222B5CA0725F074B827A868D4872655A2BD4FB49E60F202CF6991AD87
+365EDCDDE2FB1EC836470B81B8C9C85DBBF03EE94C0954BA226146FB8921E919
+8EBC370BCEFD816C3ABA3EDB74B4B0A0C0FCF9D014AD737B1E4E99330959659D
+7E66B007D290E2243487507C2378201CE997FFE034CB211FE6A09ED38DD14C29
+490263CB36DA7E7AD15456A98B2CD42EBD483AA357ED46F6FECFB20A448221C2
+75E205F217EDAFED6CA09BCE61E8CBC89F09F91750A1CB36D5E23009C938389C
+E30A3886FE98AECCB04093C0DDC1AC4A2265D1A370F7AAFCC119EAC81400B855
+6F77DE10D0077EACE4FAA4B1579EA116FFA6C2438F1EFA03A226E33CFC7B84E3
+41BC8CD681027AFEEAB6C0CF88498A1F22A9523974FCE5B9EFC9DB09F0BBE4F4
+39B2E3492CB90468C5D8B8C94CA7847135E6EC3A7D157D101E7A9750DD47D956
+7F5F4EFE3945BD5CD0F249C067A94120A37D4D22E38D5E473887DE036CBBBA11
+B787067D0B48DC3FAF66EC7E190BBCEF473F3785C5FA226BB9E115F6013EE2A4
+52B9019599553C2346B347A6C8E863921B24278DA29CF6437A796C44BFE76A46
+D8C0539B41792E6BB9F821F8CE3296FE6A233884F91A1EF27A5E189C27712418
+383B0C6AF161ECB1B7CADA28487C67CE56285D3D4DC520D171AC6C66FE1F4182
+FD039DA2F5CA498F00A80DE6B199E69ADB7F2A2612217F9FA876C0B3FBA488DB
+5F3AD3F66A5AA600D818F876D2C76AAD1D911CCCFD2670AB6296FA60279A82E0
+E3579DF4826697FB1F0283A69E757D8935884179C5451AF8B399B48DC3C28FFA
+A903DD15CD931F9328E806306889A3A8708B089A0BB453B52C71537278B7C081
+6D22FA50FCB41BAC3820EE915955268578F64C07E7499C16184B911E125BA281
+B53B4A29C6B53E99D39B8BA609BFF6403FC8F3C98E06FA6DF9C7AD42F76F0750
+7109D4C9FFDAD720DACFB5D84704E39BAC39CA4834EAE46C01EA49A82F82B438
+760EE11B29E9DF9512827E980E594B34FCF388FE34B8C5A8E15A468A50E7A1B4
+ECCED1D2386F3BD5B9EB4C4A30FB76CDE3917F660B6CBD804F6D1C6AE0403C2D
+6B40A6D5F13F2624279924A9A1BE472F17A18D466E40C5FEFE673E4C7CC2CCE6
+A1007F22D5F42C9DD1DE9F35FD693AF04668D139B7ADC4C9CBB6153042EFC469
+91EB6730C4FBF1874AE24D20FE93AFE4948E6D5285AAFAA103FED500328B88FE
+F05AB71B6683B2DAD793448FB2ECFC3360B577EDCF1A384230B0E0C1EC47A11E
+7A31EB3B224FF6B7BE8201F4BCA49B03780BBC753F789350328C9C422AE18B04
+1C14524B86373BA9C73D98CB661689ABD0D2A966D98AEE56BB6042243ACDBF91
+184AEFDDF2B41942B72B6C3358D233BB6DC8B1761DF56B5F15C00A159F80102D
+E7D02DCDFADB7B173F7B37EAF206A731236678E41A14DA8FCD63F26517225F33
+5929F33A68F459299FBABE2094675D7D023B8364FD57138773D1EF33CC620CF7
+9F7506F77EB5951F5D1C51E15FB7EA1369CE5B7148A9D22B34F30880A19A7B99
+A57B26A897BE67183F5D457BF1C4A71380D410C321D2580C33213CC9CB07372C
+EDAE3C4111BD41E90DC26CAD0A10AD2104DA0D4BFB3A62282A3F3DFFF850A985
+39C3D57505E266EBC2E91A27A14F0E917B9A8F6681195746A3C7558F3CFCAF00
+C871F110811D0EFCDBA3A9F3F3C56C43003D26486C972D8211C41DC1B4AA2335
+2AB46E4C3F6F3D70BD58A146484F41F0D3ACE414063200AAE1A03BC431E452DC
+1359911A5432037E3820545D5262DCD426912116AA1C2CD77C4F82A0CB9C2941
+891A235128E627886D6BAEFED699554DF04BA4F7B9AFEEA8E276FEB648A794E8
+6574A8A647A730DF4EEF6160CBA9A5CB2CEE710542DD0BD787F492CA713F41E7
+D41F3630EF019546860E5872D5C5419E03A1BF2612C4C30C1C4FF61D61F1B9DE
+E020DF01A876D068274BBB50F9C6DCCA060524818BF1CABBE668D5C3B6BADBEE
+EAAC69E6A7C87B849A5040E293799892A6F516C8E748948532BF285ACD182CD6
+426AB87E99B4A3086C0D40563FAB9873954311D4ECD4071B45A5A18DE65034D0
+CC5768DC673243A7E81D77858E63FCFE7F11E29102901C518A2837DEED861E2D
+433DF012A2EC910BBF595C1EC78C641A6316A2268F1DD5393F08D1728139F37D
+B2EC3507F7CB271C03FCAED8334EACE169D0DFB7C516C6AE99F17428CCA633BF
+2862AB61B33656C96859B7F15937038F75F3C648C3E7D4054EF64DDADC38DF59
+C8460B2B86A2BD6ADB913472083A122FD5378E3F86AEF654A8B0CAEA7480D92F
+0333BC18983EE00EAE93CC6C6845BB435E2DAAED437DB4D0AA569322D1E59613
+84FBF63BD521236742C9FAC67070F026EAEC3455C90F1D36E21DFFAF0B828F45
+1AE2E31A0B5B889F84F3F7A2C2BC1BE64CD3D925B4222284727A23837191BEE0
+404C80BDE4CCFB9AA802F3002A2924F449D390BB0BE17AB7384BBA04AC9E6375
+FE9BAD741CD5267EF8BDE5D7CC3F82379973A653EC4EA229981975CA2832C2E8
+2B12307F60C854A327057CA2DC2DE0A5D2E096C832747168BBC25A3F5D47A279
+08FBECD7EAC521F78BDE171FFF2A3B0A3534A3E5466BAA838CB92AFF9F0924FF
+69E1675AC424EAD43E622096C792EE26645F1458326424E96582E7F178E8C52B
+75FF37BB7F4332DD9B83746022FBC96286ED617F30D6087BDB8D72F20BB9FA08
+AB4090DEBED843C4D8C479494019ED7C604962EB78B915C7332D78A626D76FFD
+B3D1BDB0EFC34C0DAC467D633AC93D98B7D56608733918E9BD9A3648564F4308
+3C1EF4617B7B3480C591C3F2AABA930D3162AEDB1E661EBDC830383A9D5CAF97
+11E55EA2D5AE36ACA2155A504947187A4EE6587FFE33198D8D9145770C400B2C
+FD8191467179CC979A6FBE6DCD379BBE240514E2F15A362AEDF369A4D9F59C30
+BF14BB039FAD6866B77B8CAF088EEF2F506BBA1977CECCABF7595A94260615D8
+0538013DEC9B305E9255FB5DD2478F07049BEC46D3CEF5D19BB35FE555DA224C
+F9BDAFA574C89BC62032085C8514E7D56FE84483E550EBD7FE4E7B4F3925D25C
+B59A77177E120E4E9447DD10437B610C53A3184CB168C739E8288273419F3393
+ECB3AC0907CDEFC793B960637F99B884637328F690D0B3CFD6FAEAB79F30D94E
+0DB440205A7C7E8500B2A419910DAE632270967D2117044E079B5DC46A7AA32E
+C49EA316416F6A5375930A6B2B261BBB7AA059CB4F971B887DA18756C63AF40E
+413EC7001D7284DD1772B5AD304A0696EAFD72719DC22B9CD36B19038696F871
+E4E0121CD16AB1A57866017B2102C6595DF82189E330018956CCD377F80301B2
+5EFDDF1C5ED9C7CB2DDC67444F9333A69F835EAD82334D1289FA059A3C0D5E3E
+5F6751536A0BD1DC82EEB54BCC8B6385AA1DC3DC759694F69474E1AE46618C6D
+49CE13EDE23F7387C697011834C42B47B6408CB2235EF200D7016470436A9DC2
+4D6EC38B7CF0DC4D3D10540B6D884A8CF8B9CA6C08A3A9ED75BBC804E7305EDA
+409B97C5B6E7B5C107E5755B3BE89104D40B5DE63173B33D7B8BDFD4E2CE1356
+775BB53D5EC5DADE022EEAAB9004161842E7CA8CF452BA74CB6839FBCDA9B119
+DBECEE1118C073908430BD400CC34D2184FD6315149EFBEF420363062771EBE5
+E9B713DE4118D491FF00E54DE454C726ADB7F1E08137B8B11B937D9421F7377A
+D51616DE54341BC82D0EC1564615853F80C33BA1C0F4C15BC485A8CCBEDC1A3A
+F638986F53C9E7E917AED236E40DE4220811B76FB5DC312EC0E452D03A24176E
+4F33E7082A9C50A057776DCAC54ECFF72DDA6EDE24493D13E3A0A3218FCC9AB0
+0D05389E41F6070DB554201FD0CF869287C990A1525B2C201F31B10586ABEB98
+7F7159C50DC857A15217A30657E3072F7F4A419FEDC6296C7E0F43B16A51E399
+9B03CE2BE43628A1A4EB141D70B634B91DB1711BB8E7CE101D43CB6740D8CC70
+EFC295ED5F578DD576E42D1510A1014A8ADA918043658F4BBAD3574A6133A609
+9B5CF5CC326D63F48C8C468735375DE35A9D64E4484719AADF563235E334F1CD
+1882B2FA73AC2EC4B342162D997416B9EC92E83590466066363516F67D419769
+1D58134739543B229703DE48891740B8E656C1B528D31966E3889C0B6706D3BE
+C34C93838A1A27722AF8AC284EC003E909131C78A3EFB616425213101789FE1F
+D6C344DDCD333087C09C92A32A3C698325FE575968912BC23BA338DEB7D243B1
+
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont
+%%BeginFont: CMBX12
+%!PS-AdobeFont-1.0: CMBX12 003.002
+%%Title: CMBX12
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMBX12.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMBX12 known{/CMBX12 findfont dup/UniqueID known{dup
+/UniqueID get 5000769 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMBX12 def
+/FontBBox {-53 -251 1139 750 }readonly def
+/UniqueID 5000769 def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMBX12.) readonly def
+/FullName (CMBX12) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 52 /four put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA
+0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93
+51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71
+7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551
+E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078
+0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273
+C01924195A181D03F5054A93B71E5065F8D92FE23794D2D43A151FEE81296FBE
+0CF37DF6A338C826464BA5198991445EC4BE80971DB687336AE8F74B516E333D
+2D8AB74D362C559AAE6ACFAE49AEEF4F52E28C869222C1301D041E7A0BC1B608
+1BF728EF9E98F3A12EB2714E7F16B14E055FE1FA0EEFB058860ACADEDA9D0E4C
+42E3C6F1E4869471BFAA3760175F3FBD842755A9D7847EBF605F18293B42F557
+FBE2715002669091BB033E1AAD657532F34F7C66E4F04D63ABB07E6CB9D9AEAE
+78EDE8B79DD9BC87A1FF445EAA05B5572BB880E69F4DE1F82D7F0E9980AB0C18
+22C448B0B1722D3CC33C56FF287CECB80658B3AF5E7675BE82CEFF3DAD5942EE
+A03C955FF979E41E54BCFB5316A9AB8945C403A73180D0961416EC9C92F49811
+4B91BC4C788392994587517718521E416D469F69952149FF7F9224377EBA1065
+4A727BF806A112A7B45B0A1BA1D5A23683960575368D9EAC8C04753BF7465AF7
+95F25C258C63E4FDFFD0B412FD381946AA38C0B961652BCEC30322C47BF4755D
+9F91880688AF066E32FFB22E1A52DE741307AD3ED830D6BAA1D1F562919666DC
+5E8FD9862AC8600B0AE0BC7FC779252AAC57248744ACC8A8AAFA836BCF09B0DF
+9253DFBB1CB77EA8A59D42D1B18FF25E9AED72FA62FEC3F126F030F5D7DED9C3
+CF60FE890BA4A48E39E687BFFAEAB96AE542A6387F6624486037C8924002A511
+BEE5FBFD780AC1D4BEC3FBC47A930BAD0280D444259528B6C565DE11DE36BB65
+9BADC55C1EDA1A80458E98896D782DFB5C137897419602809F9BF8CA39F00C68
+EFB9E076FB324C2963F23CBFED28B9EF70EAA4E4B903225D1F199A7162AB239A
+D92D71C18B1B682D04C6A48926275BCB16D413B2A0E953E1257E0B12D8B717CE
+2EC84CFBC046A4338A69F454A469B12118E562B4F56C5FFB3CA5D357513E6FFE
+947A564B229C7FD873057D5C7CDF03E958294A1003B37D8DF565A70A00A3734B
+0138AE5277D383D10C2BD853EF806D3CCDC47739F0E374A3DF3B63638B949ED6
+4EC25869DC1C0B1F4DBDFFCC97382841D8F10F3635C792139A1EC462FDBA379C
+BE0990CA2E70FE73137AFBBF30CA54954D7E7377CC50BDD780DDD4C7FDC77AD2
+F3EB1169F14A0041F18160F43C24FAF556DB5D621709FBC544CE55424F7446D4
+6AC07A51C8CD5161AB0AD5084A96FB35D77F1CA155147DEF8D7A590EA6939514
+D4A226588295CE0007BA8A550895511C8D80BBE5CDFB8A50D249C3BDCA974415
+F5557914A9B805782F399E4078DDB6264F1A49A9A5BA45E284A5196E9828EBA8
+481D357B8D9E6ECA631A6204439FDFACE7D7E6A2392726107CB7D2517CD19A24
+FBE592C119626DB221BBB635B6EB84845C16A9585282E34958B961F4A543AF9D
+419B6A9105BF185FC767712D923437BE08A9C0EB92AB6792DBDC671029B6FCA6
+7F717FCE379C0F3B51C6CF042A762ED04898FBB4B0105C3C4ADDDC18C51BAA3B
+70A93666669547081D9246732CFF74C83EE90DA17F5B4F8BAF47FE4D81590988
+2858C9B96071341FA0A0D23BDD4947FC9BC2297913CFBD4FD6CA4303AB3179AE
+0203F1BD502065F90CE9BEA3B52DAFE4A29446082EA0E6B1D7AF1F31D0AD02CC
+9A7FACE2CA86E5FE0F6A425B28A5940ECA306891CECDB3CFC7A5BBC76B5D9E8A
+C754379ADE80B4D72CE493010317BF21A0CF4A0A55C1246218839DCA3F4D626D
+1F4161D38F54AD5142C1CEE95C61D8BB10FAD4B772F4955777AFDE8AE5A837C2
+A2BBB11D0BF5DA2E63D0B75ED421DBA9C789B281B01846B65DC572BA69591969
+21265DB722AE86BD8CAA3D887C975A617ACEDDFB7AAB341F47532AC0F354A530
+7662C089DA3939588774FFA16FC4A52555DED6D6F51DE718BF5F345C23C90198
+17B77CB8B5D53A5CE7A79F3E286B6A59F3F6178AC8BF15C0A15C1A8A95D03B60
+30EBE53DE328CE085CD9A1D49C69AA299C5B58B24334A546F6E274C1B534DC8F
+3289553F560C2F81E413ADB92FA0E7DD1C2F39D5FD268EBA97AB7335ECF28257
+96B4EADB7D0778706CB41C7E9C882760E7670936774A1088FFB2011115FDADB3
+B69EBD5108760762521C25C968C3E282DC3400001AC8FB1EA27FF643E3025950
+1D617BB8BB321281708E496277E11DD3AE0023DA9F25AD06B39C7CF527FED27B
+57397E88D3DF70EE4FCCEFC8A0927D6B05517E571B3E70ECC99F3CBA32CCD4DE
+B8BF22626B6C94FE65598A88AB90D238461EBD9A098DADEA4091AF1CDD7560EC
+8E1B9BC2321686E1759E6B8A270C8CB4A254F7368039602EAEAB86ED21CDED91
+8F2DB9889F46981C494C7EAF5E819B91C129F0740B8002B510014985E5791F59
+B16879CC6521D8E9F1C4C1890AC85A78022BE614BEFF318AB2616F0C3F02405E
+BB425D1555472A2642BA7686E431DC3FB8A1688B76660D9957C3FDE8D58109AC
+21B1234C9DDF3F0FAF93BCF7B2F88A001F23162E1A13E5E9118D51B485B70A91
+D0CBC39CF44413FD8686D9030782DAB58064F5B987E0402AF5B264B17BD31BD4
+FDF63951BECD73ACA6138854EF35B062D01F33073850D9C09A818828C581241F
+A625AB3638081DD0F00F946BE5450D38489CECEA4E66B4D85CC8AE0157E2AEE4
+A22A9313829F24D573101D84CC1784D1CED7DFAD5DD966601370C6CCBB723082
+A86BBAF0A5D867D0D2E3CA16E14E5109A29EF02649C47E12E88B3B397D65CACA
+DEB9940B92100744D686066F8250FF30E5F13D81428EE238A2E4E07ACE0F5C38
+7D79D4A336D0D26AF9C2B84088ED8ECDF94A1E3FADB45AFDAB46CAD6FF950B0F
+07AA2CDF82374DA76C56D29C80138841EB13F0D02ADD32F88B23E282ECC845F9
+BB9AAECE9CDC644AC2D49577A92307A83A99434F6493156DF25DBF0FCF2EC21E
+8C50A312C3D19E0609C0038554CF4FEF3ACEB7A833FD54B06EF0D617C2971C89
+E4C06075B09B84A4F78A82152B9A9C540B1D881313C2C74F20ED064A9606EC2C
+B56D7BB4797F1EEF4A9B13579CCF311FA4A4DFA62D80FDB7F535CC6526D1AAE5
+45C008EAF024B48C377522F74D939A475970533E645B1BFA81997549AFF26F67
+2AAE6C2EFA357DB3B525276EF330905688777057F4E4CBF584520A534A8587E5
+5A8360891E75A15205E8ADAC4A4E5A6E27D0C4A7D492216E4BC023AB027F37AF
+A8DC7579BA50204D5F45A51460C5BD8A5A7F87668CA6451137F2F59E117BBE28
+5C40820882A5546FA76F0CF49F8A6EC445F0647CC3227C400F56E7E9B84A6975
+E85E243CC1666DBAFF4E07EEAF3AF71BDACB30DAEA792F2B8504CAB071544F01
+5D66243D529C479D276FE22F7E275D9E7FA9C6EECA18716B2F213916E32C1D94
+6E32397B41AC6779543218E506569E3544803BBF9B404A983EBA62A494187B30
+8D3DFA4E1237A2E5E08224A60492C09ADAD8775B7CDB830520829BA164209ACB
+BCDEB2D574CEBFB7AE4BE72DF4EB1945FEF2458761AD8DCC0D378AEB7DA002C6
+9C14A665DAAA532B0ABA98D7BFB5A6151FF6703385AF7AE8FD315A492FCCDBCB
+B825707F9566B3B4943A3C61C3DEFDC31A843A2D67AB06891F3E110DD8C73D3B
+B5E4151B51D9F13905D7D94DB9ABBFCAF35F43B6EEE256B1A80ED6D1739D8D5E
+8C767F6F0E8704C5345D028A2A6DAFD9BB7AA048B8B895FE9423A7ACE858BADD
+595CB074A128DAFE08FDFFD6BDAC0114159A702FDCBF8013804B0CAEAD7AF38E
+FAF086A3248AD4FCA1401A85AE2F72E3E6956DC0996FE8ADB18F89B14A208A15
+13F81AF73D0DB72F78C4DA634ADE3C73756CAE6AF2E149C26316DFD93370BE1A
+FB4A79F77A67C07CB0A53C78367F21661D4AFE9E27328E077B522B50FD9AE2E3
+DA087BE481515B5DD7BF894A96A84A6C78874100505B7DDE1D22EFCE8D58B3AB
+313AB5495F72E2CA4E6AE22C0CB854302B9990372F1661D9F0A517F90686F248
+C5643008B3D29F7296E5C8FD4049886662EFDD4106E17C879F5D41CE84F87E89
+F6A3117C968B95A35940CC29C43E1E0DEF51C1E46B676301F40D59615C3F73DD
+DE37B72FF7105DB84227DA5241583272AB1C3CD97AE11C1EE98FFDB5E5F44844
+8FC41BEA5C54B26341AFF6830D9D0A5A2901B0653D8BD0746838194D240FF753
+E99750D3383373F453723D86BE97B571B8B84D8696089B5CFDD53E6C562A2197
+A8C4FB0CC690C27761A816B441029D3D306245052E0C41B53025D8CB7267CFE3
+C17FDFE348E765326F91AEB700CC49162DF748171214252CBC821493DD01AA20
+417D66DF47EBEFFF3E9BB2B0A2BE7D9B8C68BD570FC2EB0FA54CECC318F04C43
+19598BDE93F2F13DC7847354C99059AB20593EE51E94F9D4E9241869D605AAF4
+9D9B5FD88C3798A039A67993C5EC68B6326B132E647F67EACCA7F7AE7F718D85
+12666E90D7C73EF210E344964A38228B236679A2B18F5E081234CAA2458F8D83
+3F0CA308D19663CB12EB904076EF88E556407C33C9380A6A3D68A9EFE65387C1
+A1BCD2D26DFD2AC0881EC30E81C0A4E76C244A2BD822EE88C4A60B480D107E68
+90E419A1F512E865BA922A7830909BC2611A80931CB2E9344529586726614D94
+3AC5200FB9FF68AD9686506C5EFA8788C0AD0251AFE7F95E84683380CDB421C5
+B1A783B6D5F3A6BD1BC1C14B363DB01C87C0796DCDD5BECF41A1A9F43183CF6B
+82C2AE49F0BFDC5DEF7729F2E638EE6EA9E4D059EB9BB1B992AD8C82D501A550
+1BF73CBBFE740179B54E193E84A55DCD61B343C1852780FFB44248FC9426AC94
+AA2B3FE20FBA30F6C4D1E0FF3EDCDD8C0F57CCB50CDB0EFE2E04A8927E239C1D
+9B026C7929BB48461D4D695FFC766C8A0E545B1BCC2AA068D1865333108E7985
+2D93F9B00EA0A90939D0D3840D59B6CC0CE2C147B2E1A9A4F14270FE3ACF51D5
+99F7349106165AD627CBBB0ABA01ECC6D3A14C1DC1ED23A9DB9865BB4396C51A
+31ECD001EAC94B33C34E29C5611148EF3E55DD61813470B8F3CE32564C749414
+3C93C77EA5A3538A0B5AE3FC4DA32813B06772E0E48E25BB39F3F6FDCC077E86
+F86FA50E18FD19EB2F37311CE87F18F3BC85CE7FD71CA92D5C3264E34E04A2E5
+70C79D99F54D6C6D9D527AE45EBB48411221134587D2253E7C8ED7658EDCA34E
+5E768DD14E0200470F73C44D006CE8CB35DE1CA3EC10ADC668B0662A7774C891
+84EC95A31DD872F0728D9F65CA80940080E04630BE4DEC77A2C49E3913C39978
+BF145F8832AF2C4385EBCDB15F9D32C22CBA0CF950877717D6F1591D7C0B8047
+8C9BFCB16AF7124ED83137695F3D69228DB633053208C29E0ABA1B06A7FB3EE7
+5625CB44927E2DA6E038A6E62DEBDA2D96A03177982D8FA33BAAF4426E05F4B7
+9C1748B3FF7691F9888E7FF864A10B9DF761A41E6B5CFAD2BDD7E1C4924AC97B
+F4B352705316DD1A58637CC12D71C18A5CA691AB2AA8F171590EC24582B1123E
+94D4DC587D8F99E18A711776BF4013C96446BFECFEE4C809EA94B169088024DE
+0CBD20199A915AA406F0BD5F3D63D1467C49B4691AEBBB35ED6624F2D7BB74BC
+E80FD92B9FD04DD9C2BE9B6FD29EC7EC07FAB447511C61DD299C783BC09AE2A4
+7B3CBCA6A20C6631D06D0B2E2482A50612BB7C29B7E7D0A205EB0E8436702581
+596BC996ABD58CD8D5BAAE4B1478195CAFF98FE0141287296C4EFB8D2E7A8442
+F0A3AA9F9264329982532295A176BA1867EF732BBAC49AF485D9D0F7130F617E
+7F7DEEF935874D55A22240F8EDE4F247D5F73481373A392D40A8076BD91079E1
+1CE5998BA13D48D56B49A92B4A18430E316405D2E2E391B496A1934671FF1785
+AF42BA3B2D14B8E04014437FD194455C50289DFBA61B5C377BCBDADA48E82DEE
+4E70EF5E9DC03064907BCB8BE4D59DE069FB0C0CB140DA54708E630767313F9F
+744594AD8A499CFEF733E640A11FD74E46A749F9C7D18D49251BF85C6EB4668D
+67598C31A8F90922FEAEAD4B83B6E7184567DC798E4BA1C4C9B3461A478D63CA
+054F13B502DACB674EB49D6BB935E5EC82BF99FDA7D47C581AD7F940DF4FC6FA
+6C6D25D647033AC69505F0CAC58DE99087F365531A6283CB89CB644688963C3B
+8B2203A94294E58739EF23C7803630A1F9121D62BE1977DE2F41687C8CAF87FE
+CBD7AD3B98E0D95C8C6E1A7CCB0E09465AA874DC90A0F5DB2C5E7C130297FD39
+EFE63B0350B5139D09E6864D22C3F1150B29196E40EEF9723E71158B7ECFB8E4
+C426FEDCD439420B7F1C251FADA347C9A2C49738B5A17922E1EA93CA7B125B76
+57449EAA9C1D591CAD327D0E98EF2D44D614EE9ED49DD31ACAC0B956620B6BA5
+5BF6D08CA7541059D5ED2EF00AE2EE95488F5645BF6837D9241C0D3959B7580F
+C9ECB2BCF3E65C07D52EC9CFB21C11CD4C883E44C173214C900C44D2E1E43DD1
+CE8DFE3DA93C38B548BC4EC46FF91F30CFB97525E1FD4E77686433B20BABF8D2
+848C1CDF1BCF185CFD7A81D2D4BB826E837E2AF35CFC4F419F698DB0C43E9F9C
+B0FB628AC9A3CBE9B1FF4A067016E70333E78B32AB2D89C483834B31F5808FDB
+77492E099F1504DABCA5722C7860CDCEDB2DDEB512FFCC7D287F4945FD711F28
+87BC3D36173566B81FC2C1290C717A09697DAC6072408E20926D39270121CE58
+3EF97CE12EDD7F87F2C8CFE36C3C0400869C0D813B71C425343EE0CDF717BDD8
+409D5297D0F8F7FDEB0257C0A391F5635E0DB1116058942FF3E7C94D5F2873A7
+A3B0ADAFC3835AF2BE474E6741319BC6695FB37F59AEE388F81F6E66F910000B
+72E6BA7531B4378CEFEEDC79CCF4947BA1703823B5AB4F4AD73D9615C66C489D
+99D68E49C9BF765B7FC547BAB9640D51D5A7A2396507AB5A4DFF3D14F52422CD
+8FCFEAA06A56C6C7FFCD29C9A7A59DDD2A909A9363FE5F1E9629616D25ED38CB
+E754C059E4379318CC491C3B1A90128693AC53F80F8210FAEA7EE638902A7D3C
+82B95B3F5AE340EC1B648DBB9FB679D6E80B7F426D8671FE7136D97F51E2D2F3
+C9CE9183E4061CA40091A2A70DBB9ECBB19CE3F65ADD0FB346B54BAB182E2CD0
+EAF4C0F402C25573FB344EA771B297BEB615FCD0595172E84ED2A62FF8962634
+23C19076C2A9ECEED5135994EB397303A9619C76DC55E032DA83FBA441BD484A
+59F70A5110A8927F6239A14D4E223E189A5462E4A92EAEFFA4B961A2A32B320F
+C2B4E8C1821FA67A655B5042C15E4DE1FB3652B55078DB123573C4E986B19DB0
+1C5131F3DFAB271C30A5476B4A19D8FC922E31879C34BAED94C07A4841B8209C
+403369FB8E842610D1EB4662B6171A4465FD0E819964F62EC5B0ADC92F08CF90
+1DE0B410FFBAD16F6D355E8AD72CCF67961EDB6CDA82398021007C2D0462E893
+75EB0710AE4A6CDD15077C9DEFC5774EF4A657734D703CE42174259B58E5277E
+0DF26BF59AF8D1A3E7DC12E3C12AA4B67CF35B19962F6950C2020B698D971B35
+82FF84E72F72FBB0C54A112BADBAE6C4CAA358BDE6A705AB59332C3850CA3D25
+C7564499BC1319121CE0D93218210C68080AFF33420E3CB3A48BF9EB66BC07C8
+A79D8CD8E78C200FF7CFA3DAED0B9E87E6141C88B436D8FCBA50AC195FCBB9BC
+9512B95FE3A37FFAAB39850FCEBD4D50A243EA416E73F53B4B00F3B6EAE0CA06
+0693AAE0FFD5C119D11E5D13743E28D843B0F2EE315A2ED05A510CE53A2D06A7
+0C076D4B6BC2B6A928553E7F0FD472760167DB486A777259FA74245EE37D0125
+47314DEE4B29E5D22180BDB1BDA7D33406FD340DC3991F50800BDC90F7678EF1
+1064986DDA53A77FBE2EDD38E20C41EF86CD50E8EC167344A3F3B3C3BD83CD80
+87BE64CAB701D25CFC0796C099C07882A4332A5588B9900849925FE82DFEB1B3
+306700778714A8D72AD7F55F8836D0C1E2D6761CC3499C1771035D21CF191A2A
+9F424F1AAA20430004FE7917E3A6199B483D1CBABA5ECAF65287B7C389E86AF0
+CD55328B3E14C9688832B25EEAA05B69CE25CA606368FC10F30F6D04E5099566
+0F0497F4676676DDEB198758CBC2742F5F5FA5B904616A4F6DDA098FCA6837C1
+D16539998B5F787C29720DDF8A817E5AE94832178857EF7FB6DA2FA0E8BAA5C4
+62DB63EA840133874605DF90C8D027CEFBC212B9E2480DC7D4337D24F5377529
+CF1F14F3FA398C621ECC8AAB77BD1278DB82447A4B3A0784F91EB8706AD2EDEA
+8EAFF674B892ED3B33DDD9BF1A5A8E002DDD34D4172E9B51F4716DDDF3E2
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont
+%%BeginFont: TeXMUSIX20-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX20-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 35768
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX20-Regular known{/TeXMUSIX20-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX20-Regular) readonly def
+/FamilyName (TeXMUSIX20) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX20-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 7 /caron put
+dup 62 /greater put
+dup 71 /G put
+dup 132 /Dcaron put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-619 -1659 3200 1660}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE7F9DA1603F49FA9AEF3E7
+27075B080A569EF1014B7F2D4C3687FA1336676537B82BF4590F962C967795F7
+BF6CD740C57389AB77A273920959FE657B87F76B9403C9586FE85C957B0BFF7B
+26F4AA603883E02139AC15D1360C26E332527461ABDBAA603802CAE75E08F559
+E16B2E623827BEBD40D4661A6B3D10D6C395EECC916F52F99D9D1F19DE5977BB
+73C4EFAEB7FD0052E831BE175C945358083BA2C5690E0CF8B386900A4A51F60D
+C8E98236B16D54A1D94E88A062E0E3D8397F5CB503F51A4F9918D3A902AC7DB3
+25B30A154EF106BF4CB8A369599B3496537F22C842825F69154DD87E05CF9ADA
+B6C94188CB702F53D00BBEC8ACE69CBBFB8C11099395D7BF0D47EB3E41454D13
+AAAC4392E8C0ADCA1E87A6F844D3AD81EDD4CCDD0FBBFCEEE9C70BAC5B4D4861
+E7B9DB2F4DAD612986007DB8CDB3B5384C3C7D77A2609D2255D4098E7A314D80
+1A553DD03007696C9DA22D9E9AD132F09CDC0144E7C1BB169635A24341DE3589
+96D503CB7BC73A81FC12A743C711916CBEEEF61F7273B238B3C0DF1AF4B190B7
+C820DD8F5FDAF73872074E1C95F4A4B7E1B5DED436C03D1020B9FE9F780FF2C5
+920C97B1584B7E0051107EE7789BFAB0B13F32AD2DC01DB5120BFD6B5FA8E386
+EE743D10E6A9E858979543882C19ABB36FE278EAD1304E84DF80E8CF87A994DE
+0DAFBB918B5C13EC0B410CDE19ACC3DCCCC419A6C552410C0CFAAF624006218C
+F236274FE535A25B1399748107BCA62DD24FF611AD06154590701B4F54D1E477
+B50B48E13664D702948BD52E67810674BA5D058566DA6CC9723B4A050CCBDA4B
+8FD30EBFD87EC56E8066F70BA599EB653CFB284B181180037686575E99E5C0BB
+E77A57FEE248B5D5AD7ECD2D17E71639FFB500A3AE87AC4389C467D85208D40E
+F57D23C3D8D280B6455358C20778A78B6F1D5236E17313A5B9DA837B94628F42
+62CFA16DCCB7D16B1433B8B5D7E59D83BAF9EFEE967ABDE6667A5ABDD13785C6
+BDF0FA4FD321EF8EDF5FEDB46D9F64D5ED15852FA1F41F9E8A4F21E9D45A7919
+C796EABF32FDFC699847D095F8CAA278EE2B92127A79E961C4923C2F98F628F8
+24114A265B39DADC68B25A2AEF4802D9746A17DC3D6345ADC5F99196A49D9B29
+6A29EF0ECFC8CD39815B445E13FAA9B48F4BF5BB6DBFBF8C128B24B106A11CDD
+DD7D273D2A1FC9EFA0EC9EE950E2C7B30D4B1E5F3289E38DB4DC044CE2BBF0ED
+BF2D23762517E4629589A75E17FE469086F1E6423491717CAA204608C6CEDFD5
+AD5DAE7C7586E88B5DD6E2EA7FE9125D63DE433831E07CCC89F630326A335B63
+BCC756BC08F5BB5E644F931152933BE70459BA66022B75B583664BFE23E73DDB
+97B9DEB35C502B190DC3C129FF9D30718516C65CB75126D1D6136A3E3EC9698E
+F30404C85712742E064D97E7623C2DDD4129FEA5A65234B45567B724BC22E278
+AEFCF3E52C1D6079A198BDE7E5E1EB5712E209654F8ADFEDB034D703FC73F0F7
+B5C5C3F1BA997451C0FDEED203FBC64D6E838600BFDAF3CCC06EA0A68FE170FF
+0A8B2050073DCD9A381ABA8A0B582B40EAF0CFFA1FF5E4BEC8F946601F1529C3
+A2A56AFB035DE9086EE7CE32B0E6B2C84144272FC9DF80FACA7AC99234542221
+2178C46E51467C3BD8367B53982590483499B5BFE40E9AC667977BD77D742C9D
+C1507ABB947CA63C85E2DD14CB702D0B71AB3BF2DD7FE8A158E9EFC4E9DA426F
+1EE6D1B53B3C1BA652030C5E5C93B9DD94146D1067AE41BA2AFE91AF21EDD13E
+C8CAB19248510182D05A29ACF5FC2E3CF25222317FA3EFDC9646FCD6D295CD77
+A2C5E245853AA3FDF608E5307904A82BB682C38CDDEA8EE2117BCED133EDA549
+E0B87C84689770CBFB3FFF74ABAF0CDB88E61F053B36BE54405953E5DCB6A1FF
+39C30A464759A4349A9585277F3BE1C5C25BC779BF20DD62
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 40258431 52099146 1000 600 600 (accents.dvi)
+@start /Fa 128[23 127[{}1 83.022 /CMMI10 rf /Fb 128[42
+42 42 13[42 2[23 10[42 1[23 42 17[52 10[62 18[23 13[23
+65 84 75 42 65 60 42 37 62 42 42 42 42 42 18[{}26 83.022
+/CMR10 rf /Fc 203[67 52[{}1 119.552 /CMBX12 rf /Fd 123[266
+60[133 8[0 54[0 7[{}4 166.044 /TeXMUSIX20-Regular rf
+end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%BeginPaperSize: Letter
+letter
+%%EndPaperSize
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -214 -117 3288 4 v -214 -76 V -214
+-34 V -214 7 V -214 49 V -214 5 a Fd(G)-51 -39 y Fc(4)-51
+44 y(4)141 194 y Fb(\023)-42 b(o)p 124 90 75 4 v 185
+88 4 146 v 138 88 a Fd(\007)371 194 y Fb(\022)g(o)p 415
+68 V 368 68 a Fd(\007)602 194 y Fb(^)g(o)p 646 47 V 599
+47 a Fd(\007)832 194 y Fb(\177)g(o)p 876 26 V 829 26
+a Fd(\007)p 1058 49 4 168 v 1147 194 a Fb(~)g(o)p 1191
+5 4 146 v 1144 5 a Fd(\007)1378 194 y Fb(\026)g(o)p 1422
+-15 V 1375 -15 a Fd(\007)1617 194 y Fb(_)-32 b(o)p 1604
+109 V 1605 -36 a Fd(\007)1838 194 y Fb(\025)-42 b(o)p
+1834 88 V 1835 -57 a Fd(\007)p 2064 49 4 168 v 2153 194
+a Fb(\024)g(o)p 2137 90 75 4 v 2197 88 4 146 v 2150 88
+a Fd(\007)2384 194 y Fb(})g(o)p 2428 68 V 2381 68 a Fd(\007)2594
+194 y Fa(\177)-23 b Fb(oo)p 2658 47 V 2611 47 a Fd(\007)229
+b(>)p 3071 49 4 168 v -214 327 3288 4 v -214 368 V -214
+410 V -214 451 V -214 493 V -214 450 a(G)21 638 y Fb(\030)-39
+b(o)p 2 534 75 4 v 62 532 4 146 v 15 532 a Fd(\007)241
+638 y Fb(o)250 656 y(.)p 285 512 V 238 512 a Fd(\007)464
+638 y Fb(o)464 694 y(\026)p 508 491 V 461 491 a Fd(\007)675
+638 y Fb(\033)p 730 470 V 683 470 a Fd(\007)p 905 493
+4 168 v 969 638 a Fb(\036)p 1035 450 4 146 v 988 450
+a Fd(\007)1204 638 y Fb(\032)p 1257 429 V 1210 429 a
+Fd(\007)1419 638 y Fb(\035)p 1432 553 V 1433 408 a Fd(\007)1648
+638 y Fb(\027)-52 b(a)p 1654 532 V 1655 387 a Fd(\007)p
+1877 493 4 168 v 1953 625 a Fb(\027)1953 640 y(A)p 1946
+534 75 4 v 2007 532 4 146 v 1960 532 a Fd(\007)2186 638
+y Fb(\034)p 2230 512 V 2183 512 a Fd(\007)2397 638 y
+Fb(\037)p 2452 491 4 165 v 2405 491 a Fd(\007)2575 638
+y Fb( )-23 b(l)p 2609 470 4 152 v 2562 470 a Fd(\007)2721
+638 y Fb( )c(L)p 2767 450 4 139 v 2720 450 a Fd(\007)2452
+335 y(\204)2661 325 y(\204)2880 638 y Fb(\031)p 2924
+429 4 126 v 2877 429 a Fd(\007)p 3033 493 4 168 v 3049
+493 25 168 v eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/support/pmx/doc/examples/prad5x.pmx b/support/pmx/doc/examples/prad5x.pmx
new file mode 100644
index 0000000000..1e6e52990e
--- /dev/null
+++ b/support/pmx/doc/examples/prad5x.pmx
@@ -0,0 +1,104 @@
+4 4 3 4 0 3 0 -1
+3 13 16 .1
+\bigfont B. C.
+\bigfont Soprano
+\bigfont Violin 2
+\bigfont Violin 1
+bttt
+.\
+Abp
+\\input musixlyr \
+\\input musixdbr \indivbarrules\
+\\setinterinstrument{1}{4pt}\
+\\allbarrules\sepbarrule\
+\\allbarrules\sepmultibarrule\
+\\allbarrules\showbarrule\
+%1S9P2
+%\\interinstrument=0\internote\setinterinstrument1{16\internote}\
+Tt
+Cantata "Ah del c\'elebre conf\'in" (1724)
+Tc
+Jos\'e Pradas Gallen\\1689-1757
+h
+Grave
+% 1-4
+gd23 | fs4 6 d f | g2,g | fs4 6 d f /
+r4 "Ah del c\'e-le-bre con-fin,"
+ b44 g | d+.c b8a a | b2,r | rp /
+rp rp r4 g45 b | ad2 /
+rp rp r4 b44 g | d+d c8 b a /
+% 5-8
+gd23 | a4 6 f a | b2,b | a4 6 f a /
+"tro-no~en_ que~ha--bi-ta el a-mor,"
+ d45 b8 c [ d ef ] | f4.ef d8a c | d2,r | rp /
+g25,r | rp | r4 b- d | cd2 /
+b24,r | rp | r4 d b | f+.ef d8 c /
+%9-12
+b23,fs 6 | g,c- t - | c4 t g2 n | c n ,f /
+r4 "cu-yo d\'o-ri-co_ pa-la--cio"
+ d45.a | b g ( ef+ e8 ) da d4.c | c2,r /
+b24,r rp rp g+4 e f t /
+d25,r rp r4 g d | e c a+ t /
+% 13-17
+f42 c+2 | f4.ef d8 6 c 6 | b4 f+2 | b4.af g8 f | ef4 b2 /
+r4 "es cen-tro_ no--ble de~un Dios"
+ c25 | a2 b8 c | d c c4.b | b2,r | rp /
+f45 t e.f | f2,r | rp | f4 d b t | b t d2 /
+a45 t g2 | fd | r4 r f | d b ef8 f | g4 g oT0 .ef /
+% 18-24
+efd2 | a4 6 f2 | ,b f | d-d | b+4 ef-2 | f,c - | f4 6- g2 #5n x147 /
+r4 "Es-cu-chad a-ten-ded, que, con dar-me~a--ten--ci\'on los tro-fe-os que"
+ ef45 b | c f c | d2,r | r4 b c | d ef8 d [ c b ] | a4.b c | c bn b /
+ef25,r | rp | r4 c a | b2,r | rp | rp | rp /
+efd2 | rp | r4 f c | d d ef | f g8 f ef d | c4.d ef | d ef f /
+% 25-31
+c23 - ,d 6 | ef4 6 f2 | b-,ef | c4 - d2 # | g-d | g+4 ef2 | fd /
+"pu-do~al--can-zer, sa-breis_ de mi voz."
+ c25 b4 t | b t a2 | b4 d g- t | g t fs.g | g2,r | rp | rp /
+rp rp rp rp r4 b44 c | d ef d | c a b /
+ef45 e f | g c- ot .b | b2,b | c4 a ot .g | g d+ d | g g-8 g+ a g | f4 c c /
+% 32-37
+f43 d2 | efd | ef4 c2 - | d # ,b 6 | c4 65- d2 # | g-d /
+rp rp rp rp rp rp /
+c45 d c | b g a | b c b | a2,d | c8 b a4 ot .g | gd2 /
+f45 f-8 f+ g f | ef4 b b | ef ef-8 e+ f e | d4 fs g t | g t fs2 ot | gd /
+%L7Mn212bt
+%%
+L7Mn212bt
+m4406
+h
+Recitat
+b02 | a 6 | g 5 x126 /
+r4 r8 "E-sa Dei-dad gi-gan-te, e-se que~hor-ror y~ha-la-go~es jun-ta-"
+ d85 ba c da e | fa f r4 r8 f- ga a | b4 r8 b ba b ba a /
+f42 4 x183 f+ d2 5 | c 4 x183 f | e #6 d t /
+"men-te, es nie-ve~y ra-yo~ar-dien-te; el Ni-\~no~a-mor ven-da-do~es que triun-fan-te,"
+b84a a r c f fa f ea | f ea r1 c ca c a4 r8 f | cs+ ca c da d da r4 /
+d23 t a 6 t | a t 6-5 b t 4 x183 | b t d 6-5 | ef f4 b- /
+"con el vi-so de~ha-la-go~y de fi-ne-za, es ze-\~no,~es so-bre sal-to y~es fi-ne-za."
+r4 d85 ea f4 f8 fa | c ca d efa e da r4 | r r8 b f fa g afa | g ga anc ba b fa r4 /
+% Aria 1-3
+L10P3Mn41234bttt
+b42 r b+ r | a oG 6 r b r | f f1 ef d c b8 f b d /
+rp rp oG rp /
+rp | r4 oG f15 ef d c b8 f b d | c1 b a g f8 f+ d b d f /
+r4 f15 ef d c b8 f b d | c1 oG b a g f8 f+ d8 b1 c d8 b | a f1 g a8 f b1 f f f f f f f /
+% 4-6
+ef43 6 e-8 e+ d4 6 d-8 d+ | c4 6- c-8 c+ b4 6 r8 b | a4 6 g -6 d+8 6 ef f f- /
+rp rp rp /
+ef85 e- g c d d- f b | c c ef- a b b d- g | a f g1 a b c d8 b f a /
+g15 c- c c c c c c f b- b b b b b b | ef a- a a a a a a d g- g g g g g g |
+ c f- g a b c d ef f8 e1 d c8 ot .b /
+% 7-9
+b42 r b r | a 6 r b r | f r b r /
+"Es_ re--l\'am-pa-go y~es true----------------no y~es"
+ r4 [ f15 ef ] d c b8a f ba d | c1 b a g f8 f+ d b1 c d8 b | a f1 g a8 f b4 r8 f+ /
+b24 r | rp | r4 f15 ef d c b8 f b d /
+b24 r | r4 f15 ef d c b8 f b d | c1 b a g f8 f+ d b1 c d8 b /
+% 10-12
+f42 f+1 ef d c b8 f b d | ef4 6 ef-8 e+ d4 6 d-8 d+ | c4 6 c8- c+ b4 6 r8 b /
+"true-no." f45 f- r2 | rp rp /
+c15 b a g f8 f+ d b d f | ef ef- g c d d- f b | c c ef- a b b d- g /
+a84 f1 g a8 f b1 f+ f f f f f f | g c- c c c c c c f b- b b b b b b |
+ ef a- a a a a a a d g- g g g g g g /
+
diff --git a/support/pmx/doc/gapxmpl.eps b/support/pmx/doc/gapxmpl.eps
new file mode 100644
index 0000000000..d84d9a6ace
--- /dev/null
+++ b/support/pmx/doc/gapxmpl.eps
@@ -0,0 +1,1243 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.993 Copyright 2013 Radical Eye Software
+%%Title: gapxmpl.dvi
+%%CreationDate: Sat Jan 25 14:03:50 2020
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 45 234 570 765
+%%DocumentFonts: CMR10 TeXMUSIX20-Regular CMBX12 CMBX8
+%%DocumentPaperSizes: Letter
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: dvips -O0.25in,-0.22in -tletter gapxmpl
+%DVIPSParameters: dpi=600
+%DVIPSSource: TeX output 2020.01.25:1403
+%%BeginProcSet: tex.pro 0 0
+%!
+/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
+N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
+mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
+0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
+landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
+mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
+matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
+exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
+statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
+N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
+/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
+/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
+array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
+df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
+definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
+}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
+B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
+1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S
+/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy
+setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask
+restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
+/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
+}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
+bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
+mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
+SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
+userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
+1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/dir 0 def/dyy{/dir 0 def}B/dyt{/dir 1 def}B/dty{/dir 2 def}B/dtt{/dir 3
+def}B/p{dir 2 eq{-90 rotate show 90 rotate}{dir 3 eq{-90 rotate show 90
+rotate}{show}ifelse}ifelse}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0
+N/Ry 0 N/V{}B/RV/v{/Ry X/Rx X V}B statusdict begin/product where{pop
+false[(Display)(NeXT)(LaserWriter 16/600)]{A length product length le{A
+length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse}
+forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{
+BDot}imagemask grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat
+{BDot}imagemask grestore}}ifelse B/QV{gsave newpath transform round exch
+round exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0
+rlineto fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B
+/M{S p delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}
+B/g{0 M}B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p
+-3 w}B/n{p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{
+0 S rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
+
+%%EndProcSet
+%%BeginProcSet: texps.pro 0 0
+%!
+TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
+index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
+exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0
+ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{
+pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get
+div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type
+/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end
+definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup
+sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll
+mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[
+exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if}
+forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def
+end
+
+%%EndProcSet
+%%BeginFont: CMBX12
+%!PS-AdobeFont-1.0: CMBX12 003.002
+%%Title: CMBX12
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMBX12.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMBX12 known{/CMBX12 findfont dup/UniqueID known{dup
+/UniqueID get 5000769 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMBX12 def
+/FontBBox {-53 -251 1139 750 }readonly def
+/UniqueID 5000769 def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMBX12.) readonly def
+/FullName (CMBX12) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 46 /period put
+dup 49 /one put
+dup 50 /two put
+dup 51 /three put
+dup 52 /four put
+dup 67 /C put
+dup 68 /D put
+dup 72 /H put
+dup 77 /M put
+dup 84 /T put
+dup 97 /a put
+dup 100 /d put
+dup 101 /e put
+dup 104 /h put
+dup 108 /l put
+dup 109 /m put
+dup 110 /n put
+dup 111 /o put
+dup 116 /t put
+dup 118 /v put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA
+0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93
+51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71
+7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551
+E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078
+0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273
+C01924195A181D03F5054A93B71E5065F8D92FE23794D2D43A151FEE81296FBE
+0CF37DF6A338C826464BA5198991445EC4BE80971DB687336AE8F74B516E333D
+2D8AB74D362C559AAE6ACFAE49AEEF4F52E28C869222C1301D041E7A0BC1B608
+1BF728EF9E98F3A12EB2714E7F16B14E055FE1FA0EEFB058860ACADEDA9D0E4C
+42E3C6F1E4869471BFAA3760175F3FBD842755A9D7847EBF605F18293B42F557
+FBE2715002669091BB033E1AAD657532F34F7C66E4F04D63ABB07E6CB9D9AEAE
+78EDE8B79DD9BC87A1FF445EAA05B5572BB880E69F4DE1F82D7F0E9980AB0C18
+22C448B0B1722D3CC33C56FF287CECB80658B3AF5E7675BE82CEFF3DAD5942EE
+A03C955FF979E41E54BCFB5316A9AB8945C403A73180D0961416EC9C92F49811
+4B91BC4C788392994587517718521E416D469F69952149FF7F9224377EBA1065
+4A727BF806A112A7B45B0A1BA1D5A23683960575368D9EAC8C04753BF7465AF7
+95F25C258C63E4FDFFD0B412FD381946AA38C0B961652BCEC30322C47BF4755D
+9F91880688AF066E32FFB22E1A52DE741307AD3ED830D6BAA1D1F562919666DC
+5E8FD9862AC8600B0AE0BC7FC779252AAC57248744ACC8A8AAFA836BCF09B0DF
+9253DFBB1CB77EA8A59D42D1B18FF25E9AED72FA62FEC3F126F030F5D7DED9C3
+CF60FE890BA4A48E39E687BFFAEAB96AE542A6387F6624486037C8924002A511
+BEE5FBFD780AC1D4BEC3FBC47A930BAD0280D444259528B6C565DE11DE36BB65
+9BADC55C1EDA1A80458E98896D782DFB5C137897419602809F9BF8CA39F00C68
+EFB9E076FB324C2963F23CBFED28B9EF70EAA4E4B903225D1F199A7162AB239A
+D92D71C18B1B682D04C6A48926275BCB16D413B2A0E953E1257E0B12D8B717CE
+2EC84CFBC046A4338A69F454A469B12118E562B4F56C5FFB3CA5D357513E6FFE
+947A564B229C7FD873057D5C7CDF03E958294A1003B37D8DF565A70A00A3734B
+0138AE5277D383D10C2BD853EF806D3CCDC47739F0E374A3DF3B63638B949ED6
+4EC25869DC1C0B1F4DBDFFCC97382841D8F10F3635C792139A1EC462FDBA379C
+BE0990CA2E70FE73137AFBBF30CA54954D7E7377CC50BDD780DDD4C7FDC77AD2
+F3EB1169F14A0041F18160F43C24FAF556DB5D621709FBC544CE55424F7446D4
+6AC07A51C8CD5161AB0AD5084A96FB35D77F1CA155147DEF8D7A590EA6939514
+D4A226588295CE0007BA8A550895511C8D80BBE5CDFB8A50D249C3BDCA974415
+F5557914A9B805782F399E4078DDB6264F1A49A9A5BA45E284A5196E9828EBA8
+481D357B8D9E6ECA631A6204439FDFACE7D7E6A2392726107CB7D2517CD19A24
+FBE592C119626DB221BBB635B6EB84845C16A9585282E34958B961F4A543AF9D
+419B6A9105BF185FC767712D923437BE08A9C0EB92AB6792DBDC671029B6FCA6
+7F717FCE379C0F3B51C6CF042A762ED04898FBB4B0105C3C4ADDDC18C51BAA3B
+70A93666669547081D9246732CFF74C83EE90DA17F5B4F8BAF47FE4D81590988
+2858C9B96071341FA0A0D23BDD4947FC9BC2297913CFBD4FD6CA4303AB3179AE
+0203F1BD502065F90CE9BEA3B52DAFE4A29446082EA0E6B1D7AF1F31D0AD02CC
+9A7FACE2CA86E5FE0F6A425B28A5940ECA306891CECDB3CFC7A5BBC76B5D9E8A
+C754379ADE80B4D72CE493010317BF21A0CF4A0A55C1246218839DCA3F4D626D
+1F4161D38F54AD5142C1CEE95C61D8BB10FAD4B772F4955777AFDE8AE5A837C2
+A2BBB11D0BF5DA2E63D0B75ED421DBA9C789B281B01846B65DC572BA69591969
+21265DB722AE86BD8CAA3D887C975A617ACEDDFB7AAB341F47532AC0F354A530
+7662C089DA3939588774FFA16FC4A52555DED6D6F51DE718BF5F345C23C90198
+17B77CB8B5D53A5CE7A79F3E286B6A59F3F6178AC8BF15C0A15C1A8A95D03B60
+30EBE53DE328CE085CD9A1D49C69AA299C5B58B24334A546F6E274C1B534DC8F
+3289553F560C2F81E413ADB92FA0E7DD1C2F39D5FD268EBA97AB7335ECF28257
+96B4EADB7D0778706CB41C7E9C882760E7670936774A1088FFB2011115FDADB3
+B69EBD5108760762521C25C968C3E282DC3400001AC8FB1EA27FF643E3025950
+1D617BB8BB321281708E496277E11DD3AE0023DA9F25AD06B39C7CF527FED27B
+57397E88D3DF70EE4FCCEFC8A0927D6B05517E571B3E70ECC99F3CBA32CCD4DE
+B8BF22626B6C94FE65598A88AB90D238461EBD9A098DADEA4091AF1CDD7560EC
+8E1B9BC2321686E1759E6B8A270C8CB4A254F7368039602EAEAB86ED21CDED91
+8F2DB9889F46981C494C7EAF5E819B91C129F0740B8002B510014985E5791F59
+B16879CC6521D8E9F1C4C1890AC85A78022BE614BEFF318AB2616F0C3F02405E
+BB425D1555472A2642BA7686E431DC3FB8A1688B76660D9957C3FDE8D58109AC
+21B1234C9DDF3F0FAF93BCF7B2F88A001F23162E1A13E5E9118D51B485B70A91
+D0CBC39CF44413FD8686D9030782DAB58064F5B987E0402AF5B264B17BD31BD4
+FDF63951BECD73ACA6138854EF35B062D01F33073850D9C09A818828C581241F
+A625AB3638081DD0F00F946BE5450D38489CECEA4E66B4D85CC8AE0157E2AEE4
+A22A9313829F24D573101D84CC1784D1CED7DFAD5DD966601370C6CCBB723082
+A86BBAF0A5D867D0D2E3CA16E14E5109A29EF02649C47E12E88B3B397D65CACA
+DEB9940B92100744D686066F8250FF30E5F13D81428EE238A2E4E07ACE0F5C38
+7D79D4A336D0D26AF9C2B84088ED8ECDF94A1E3FADB45AFDAB46CAD6FF950B0F
+07AA2CDF82374DA76C56D29C80138841EB13F0D02ADD32F88B23E282ECC845F9
+BB9AAECE9CDC644AC2D49577A92307A83A99434F6493156DF25DBF0FCF2EC21E
+8C50A312C3D19E0609C0038554CF4FEF3ACEB7A833FD54B06EF0D617C2971C89
+E4C06075B09B84A4F78A82152B9A9C540B1D881313C2C74F20ED064A9606EC2C
+B56D7BB4797F1EEF4A9B13579CCF311FA4A4DFA62D80FDB7F535CC6526D1AAE5
+45C008EAF024B48C377522F74D939A475970533E645B1BFA81997549AFF26F67
+2AAE6C2EFA357DB3B525276EF330905688777057F4E4CBF584520A534A8587E5
+5A8360891E75A15205E8ADAC4A4E5A6E27D0C4A7D492216E4BC023AB027F37AF
+A8DC7579BA50204D5F45A51460C5BD8A5A7F87668CA6451137F2F59E117BBE28
+5C40820882A5546FA76F0CF49F8A6EC445F0647CC3227C400F56E7E9B84A6975
+E85E243CC1666DBAFF4E07EEAF3AF71BDACB30DAEA792F2B8504CAB071544F01
+5D66243D529C479D276FE22F7E275D9E7FA9C6EECA18716B2F213916E32C1D94
+6E32397B41AC6779543218E506569E3544803BBF9B404A983EBA62A494187B30
+8D3DFA4E1237A2E5E08224A60492C09ADAD8775B7CDB830520829BA164209ACB
+BCDEB2D574CEBFB7AE4BE72DF4EB1945FEF2458761AD8DCC0D378AEB7DA002C6
+9C14A665DAAA532B0ABA98D7BFB5A6151FF6703385AF7AE8FD315A492FCCDBCB
+B825707F9566B3B4943A3C61C3DEFDC31A843A2D67AB06891F3E110DD8C73D3B
+B5E4151B51D9F13905D7D94DB9ABBFCAF35F43B6EEE256B1A80ED6D1739D8D5E
+8C767F6F0E8704C5345D028A2A6DAFD9BB7AA048B8B895FE9423A7ACE858BADD
+595CB074A128DAFE08FDFFD6BDAC0114159A702FDCBF8013804B0CAEAD7AF38E
+FAF086A3248AD4FCA1401A85AE2F72E3E6956DC0996FE8ADB18F89B14A208A15
+13F81AF73D0DB72F78C4DA634ADE3C73756CAE6AF2E149C26316DFD93370BE1A
+FB4A79F77A67C07CB0A53C78367F21661D4AFE9E27328E077B522B50FD9AE2E3
+DA087BE481515B5DD7BF894A96A84A6C78874100505B7DDE1D22EFCE8D58B3AB
+313AB5495F72E2CA4E6AE22C0CB854302B9990372F1661D9F0A517F90686F248
+C5643008B3D29F7296E5C8FD4049886662EFDD4106E17C879F5D41CE84F87E89
+F6A3117C968B95A35940CC29C43E1E0DEF51C1E46B676301F40D59615C3F73DD
+DE37B72FF7105DB84227DA5241583272AB1C3CD97AE11C1EE98FFDB5E5F44844
+8FC41BEA5C54B26341AFF6830D9D0A5A2901B0653D8BD0746838194D240FF753
+E99750D3383373F453723D86BE97B571B8B84D8696089B5CFDD53E6C562A2197
+A8C4FB0CC690C27761A816B441029D3D306245052E0C41B53025D8CB7267CFE3
+C17FDFE348E765326F91AEB700CC49162DF748171214252CBC821493DD01AA20
+417D66DF47EBEFFF3E9BB2B0A2BE7D9B8C68BD570FC2EB0FA54CECC318F04C43
+19598BDE93F2F13DC7847354C99059AB20593EE51E94F9D4E9241869D605AAF4
+9D9B5FD88C3798A039A67993C5EC68B6326B132E647F67EACCA7F7AE7F718D85
+12666E90D7C73EF210E344964A38228B236679A2B18F5E081234CAA2458F8D83
+3F0CA308D19663CB12EB904076EF88E556407C33C9380A6A3D68A9EFE65387C1
+A1BCD2D26DFD2AC0881EC30E81C0A4E76C244A2BD822EE88C4A60B480D107E68
+90E419A1F512E865BA922A7830909BC2611A80931CB2E9344529586726614D94
+3AC5200FB9FF68AD9686506C5EFA8788C0AD0251AFE7F95E84683380CDB421C5
+B1A783B6D5F3A6BD1BC1C14B363DB01C87C0796DCDD5BECF41A1A9F43183CF6B
+82C2AE49F0BFDC5DEF7729F2E638EE6EA9E4D059EB9BB1B992AD8C82D501A550
+1BF73CBBFE740179B54E193E84A55DCD61B343C1852780FFB44248FC9426AC94
+AA2B3FE20FBA30F6C4D1E0FF3EDCDD8C0F57CCB50CDB0EFE2E04A8927E239C1D
+9B026C7929BB48461D4D695FFC766C8A0E545B1BCC2AA068D1865333108E7985
+2D93F9B00EA0A90939D0D3840D59B6CC0CE2C147B2E1A9A4F14270FE3ACF51D5
+99F7349106165AD627CBBB0ABA01ECC6D3A14C1DC1ED23A9DB9865BB4396C51A
+31ECD001EAC94B33C34E29C5611148EF3E55DD61813470B8F3CE32564C749414
+3C93C77EA5A3538A0B5AE3FC4DA32813B06772E0E48E25BB39F3F6FDCC077E86
+F86FA50E18FD19EB2F37311CE87F18F3BC85CE7FD71CA92D5C3264E34E04A2E5
+70C79D99F54D6C6D9D527AE45EBB48411221134587D2253E7C8ED7658EDCA34E
+5E768DD14E0200470F73C44D006CE8CB35DE1CA3EC10ADC668B0662A7774C891
+84EC95A31DD872F0728D9F65CA80940080E04630BE4DEC77A2C49E3913C39978
+BF145F8832AF2C4385EBCDB15F9D32C22CBA0CF950877717D6F1591D7C0B8047
+8C9BFCB16AF7124ED83137695F3D69228DB633053208C29E0ABA1B06A7FB3EE7
+5625CB44927E2DA6E038A6E62DEBDA2D96A03177982D8FA33BAAF4426E05F4B7
+9C1748B3FF7691F9888E7FF864A10B9DF761A41E6B5CFAD2BDD7E1C4924AC97B
+F4B352705316DD1A58637CC12D71C18A5CA691AB2AA8F171590EC24582B1123E
+94D4DC587D8F99E18A711776BF4013C96446BFECFEE4C809EA94B169088024DE
+0CBD20199A915AA406F0BD5F3D63D1467C49B4691AEBBB35ED6624F2D7BB74BC
+E80FD92B9FD04DD9C2BE9B6FD29EC7EC07FAB447511C61DD299C783BC09AE2A4
+7B3CBCA6A20C6631D06D0B2E2482A50612BB7C29B7E7D0A205EB0E8436702581
+596BC996ABD58CD8D5BAAE4B1478195CAFF98FE0141287296C4EFB8D2E7A8442
+F0A3AA9F9264329982532295A176BA1867EF732BBAC49AF485D9D0F7130F617E
+7F7DEEF935874D55A22240F8EDE4F247D5F73481373A392D40A8076BD91079E1
+1CE5998BA13D48D56B49A92B4A18430E316405D2E2E391B496A1934671FF1785
+AF42BA3B2D14B8E04014437FD194455C50289DFBA61B5C377BCBDADA48E82DEE
+4E70EF5E9DC03064907BCB8BE4D59DE069FB0C0CB140DA54708E630767313F9F
+744594AD8A499CFEF733E640A11FD74E46A749F9C7D18D49251BF85C6EB4668D
+67598C31A8F90922FEAEAD4B83B6E7184567DC798E4BA1C4C9B3461A478D63CA
+054F13B502DACB674EB49D6BB935E5EC82BF99FDA7D47C581AD7F940DF4FC6FA
+6C6D25D647033AC69505F0CAC58DE99087F365531A6283CB89CB644688963C3B
+8B2203A94294E58739EF23C7803630A1F9121D62BE1977DE2F41687C8CAF87FE
+CBD7AD3B98E0D95C8C6E1A7CCB0E09465AA874DC90A0F5DB2C5E7C130297FD39
+EFE63B0350B5139D09E6864D22C3F1150B29196E40EEF9723E71158B7ECFB8E4
+C426FEDCD439420B7F1C251FADA347C9A2C49738B5A17922E1EA93CA7B125B76
+57449EAA9C1D591CAD327D0E98EF2D44D614EE9ED49DD31ACAC0B956620B6BA5
+5BF6D08CA7541059D5ED2EF00AE2EE95488F5645BF6837D9241C0D3959B7580F
+C9ECB2BCF3E65C07D52EC9CFB21C11CD4C883E44C173214C900C44D2E1E43DD1
+CE8DFE3DA93C38B548BC4EC46FF91F30CFB97525E1FD4E77686433B20BABF8D2
+848C1CDF1BCF185CFD7A81D2D4BB826E837E2AF35CFC4F419F698DB0C43E9F9C
+B0FB628AC9A3CBE9B1FF4A067016E70333E78B32AB2D89C483834B31F5808FDB
+77492E099F1504DABCA5722C7860CDCEDB2DDEB512FFCC7D287F4945FD711F28
+87BC3D36173566B81FC2C1290C717A09697DAC6072408E20926D39270121CE58
+3EF97CE12EDD7F87F2C8CFE36C3C0400869C0D813B71C425343EE0CDF717BDD8
+409D5297D0F8F7FDEB0257C0A391F5635E0DB1116058942FF3E7C94D5F2873A7
+A3B0ADAFC3835AF2BE474E6741319BC6695FB37F59AEE388F81F6E66F910000B
+72E6BA7531B4378CEFEEDC79CCF4947BA1703823B5AB4F4AD73D9615C66C489D
+99D68E49C9BF765B7FC547BAB9640D51D5A7A2396507AB5A4DFF3D14F52422CD
+8FCFEAA06A56C6C7FFCD29C9A7A59DDD2A909A9363FE5F1E9629616D25ED38CB
+E754C059E4379318CC491C3B1A90128693AC53F80F8210FAEA7EE638902A7D3C
+82B95B3F5AE340EC1B648DBB9FB679D6E80B7F426D8671FE7136D97F51E2D2F3
+C9CE9183E4061CA40091A2A70DBB9ECBB19CE3F65ADD0FB346B54BAB182E2CD0
+EAF4C0F402C25573FB344EA771B297BEB615FCD0595172E84ED2A62FF8962634
+23C19076C2A9ECEED5135994EB397303A9619C76DC55E032DA83FBA441BD484A
+59F70A5110A8927F6239A14D4E223E189A5462E4A92EAEFFA4B961A2A32B320F
+C2B4E8C1821FA67A655B5042C15E4DE1FB3652B55078DB123573C4E986B19DB0
+1C5131F3DFAB271C30A5476B4A19D8FC922E31879C34BAED94C07A4841B8209C
+403369FB8E842610D1EB4662B6171A4465FD0E819964F62EC5B0ADC92F08CF90
+1DE0B410FFBAD16F6D355E8AD72CCF67961EDB6CDA82398021007C2D0462E893
+75EB0710AE4A6CDD15077C9DEFC5774EF4A657734D703CE42174259B58E5277E
+0DF26BF59AF8D1A3E7DC12E3C12AA4B67CF35B19962F6950C2020B698D971B35
+82FF84E72F72FBB0C54A112BADBAE6C4CAA358BDE6A705AB59332C3850CA3D25
+C7564499BC1319121CE0D93218210C68080AFF33420E3CB3A48BF9EB66BC07C8
+A79D8CD8E78C200FF7CFA3DAED0B9E87E6141C88B436D8FCBA50AC195FCBB9BC
+9512B95FE3A37FFAAB39850FCEBD4D50A243EA416E73F53B4B00F3B6EAE0CA06
+0693AFFEF215D00BFCAD02E45496D7C8F5E99EB9096FC4300D038C1AFD31EC4C
+5ACA6B72C1BE7204E37A4CBBCB1EC26AB87F2FF82DE20601025169A5FBD2D060
+62B5B2DBC288C79C33B596832AA18D730AD572C6EDFABCBD36DEA87C0F323C3D
+6E537AD3B43C6F3A905597570A8C6B0B4A5E08C08A430B643B6ED36DCAA09B41
+FEFDB90E10C8A8B74EB358437D0CEBB9E03109C593BAC09CA996278246E7CA38
+4F311F23DC5A7F7DB374E0E3D066C874EEE28CFA47054DC41A389203BFB3D601
+BC9A4817F8DAC250A102E7404CA135B33DD66F8FF40D106F52081FBA3E79CE29
+FCA5C502B38C86D8D507AEF30436472D2381DEA09B8B3BCB109BCD72332A9483
+E61ECF0F89A85BC37B8C10FF3F7C0A84FB8D0F4A7898D3F8B06202FF8DCD698B
+56544751347E9AA35209B18D3D416E5E034E36D9C5FC0B33B7AA0D46F3A3F925
+7FCAD9D6B9E25671F9AC599A40C37B2439C06FDFDFB3E78DCE515BE82B5BE1AD
+2F205E8249407179559DF39CF29120C4B92C5283B609D0445B30F3AC71A1A678
+8F43D8B12D7FD722606252CF4902733EA4B2537462B5BD9C7BFDC2F5C4ECB91A
+F64F3B9C6161ECF8A915023D2ADAFB92307C9095DFF4FBB8E732521EB394C4A7
+99D09151340C8F0A3F260DF18DDAB0BA5A946FBE5FB48D7E3DB8167066DD58A1
+321A5D5C85739DC41A1B86D87CA8EF1A936796E59409AB7B28ED527E3256C678
+970EDB788B65D0FFB919652DF4A23EDD2DBC29BD4A7B8B11CEDAEC17A38F1BF3
+6D4C9DE1D951E93EA0DE92E5581D2A3050C7E808CA03C9406A424393CBFA080C
+CF0BF49186C8FFF65304F4102B4C771ED77B82E219F27CBCCD0A629D1046EC78
+059C54D64E2FC129488FAE43D7C948310106F403BAD307528DF531EB26B17A5C
+C1E86541C32AF9C03BCBDF98BC78ED751C821BFC31D9D602D8E2FDF739298497
+0B6F4976A1EAAB46EFE1719DE1D46F58CFDF82A68AD1ABF82F1679A242250EB9
+BD86DE15586051189667CF3BADB326B061AE07A21697941BE4166BABA34148A3
+4DA613812ED14953A0CC3B36305276839F55542C65A21A346619337BF25CCA6F
+5BB02ADDBCCBDE6A05FEA2870D0F2622E85536990306AB20EF99874EC1AF6132
+163BAC621E8DD44794DC61A4F56820031D1B2CB55812D94D18BD4C8F71A181A1
+6F0228A1BB8D3CFAB1250E476E50FE648F0D082609BC154CEB364F964D13E1BE
+47663B388D5B9BEBBFFEC5A5934BB5DE77BB16D46EE98CD36018D0AB49E0FF88
+7540B0716A0335BF254B8523680B4C8429F93872FD6AEC7108CE3DFEB1535AEE
+AA0D188BB89DBD10340B55ED8FA5FC9092C7F0C6F9BB574674174ABDE43B13BA
+23CB424A9E247761830A3F5EDC885D8F9E0D672D63DBAACBD071C370BFF1941D
+D42AD48C6DDBDE0B785FFBBE67546A90FA90D79065C1FBA8F8C6475D7577B712
+D44DB1527BCB0EF44889D06AC11A95DA833B2AB813C86021ADD87EBAFAB7BB6F
+E05C56A7929F2A6145EA70B7EE8A7D06A74238F3A7DD2C6ED9164549F5ACC15B
+62200E4ABB2AE712350F111F557121D5678A21F357066CF840EC5A6837E0FD1F
+1D43065851887CE8299F546BDABD920E561CED9653C76406F089EE5338B48388
+5D93D991A3760E1C1BBCBC7C4B4238921EC6CD27B53C85DE0352FCDCF5867DE3
+3C489F086B03762EE7425BE748ECBB0216F5DE2B236E3BCBD37BA5D0AA49DFD8
+0232BD29154DB883E8CB22CE99CBA9C20C386642A62C8A2C5C2D70B995903BE3
+200F625B70E02FF5C7CE74312A191C08FA9C8CAED12090EDEA250D6E2E733C9A
+8F5802DD53E6B71BA8000334D2136641C1AA8E527DA4D69B200E6DE15DA4913F
+4ACD27070E78B7AB768FB3918067BFC75A05B1063C7567B27A33295058BA18C7
+EFC4F9B519C078AC9135ED29D1165B82E4B9F4EC99A94A23BC4DA6D7C13522AF
+5D9565FF13BF765591FB392A5F16403DDA83770DEDE2A146F8E49DEF0350BE78
+4C9E13F0795427889830B6137EDA7DCD74BC653B4A4B7A917D54151797A9D6D9
+DEFA591F8B2685C35CE147EE9DFDCC9E3AAA2510755A802E79DD05D0F0B590A9
+C20C55B229854255E5CACE41DA182FF1D85B3B45BD7BF811DFB11201295141DA
+B8BAD0A3BD129B84740CFB7D81E4D43A81544FA24CD9FC16187B25ECC405DD68
+07E1020BE9B8F0364D6BE03D204A4EAE5D4AC2ED74061800D9066C218C0C1D7B
+94F5A597BF5C6CEB9115589FD11910352E96E5C84C15B4FD7C652B8000235E7B
+24CD96D7C647B1ACF31B3E45CE7683948CB5CFEE1F057DD65C8A42EC4DCE7977
+C230C3FA3219DAAAFD0096C56E65FEEF8DE39117EC6E5FA8125EDDF1E4D20F45
+13442CE7D35B529798F9C180A206CA5B0572A0797DFC8CCC21B695D29361F825
+3C267CF46A6908010166275C7E16130656A10C1017AEEDAB16D781622B4099AF
+EC4F190B74145E158399B33AA45C91815CB1A8E3ACF8C1E6F97DD1613B06F65D
+108F57EA59D971E3E81013968151A1F17E40EAB4EBF7246426ABBEEE3B5C9ADF
+774E19A99512A0F5E5C600D464355273CF256DDD5FEC0DD82C92D53D564158AC
+43CE360F2F33D13D235C569C809669E6F11A7F29BAEA9E6F585BE3A93065F8A9
+40815E22C73573FDD775499376ECDE6BE2C40332610CB77C17609B947B07873E
+1193BA45205BCCC0D81B72D87FC8A0DC245DDC8245D440BD89BD4867F547CC3A
+098F2CD1382E6467AC65E5A616142CFCB27FFDC25D54B0755B6762289CBD27A9
+136CA1F7A82AB3407328D554047962FD70D643150F533008BB59221FC7CD590F
+3101C32B1A2AA78F9A76E7920B60E2D836EB18801CC1B2230E4CDC23E7102F3E
+AD479933C820559A3F5D2891C1510B66CE9C8E9AAFEA22651C752C7EE0276401
+A93707791720C9EC5F1641E850D01DDA8FC1E97AC0637215E7AC910F4759CBC2
+995DB086DB285BEF4CA5FEBAC9DDF98CC464F61B071B5906CBADE42DC6F31151
+4916B03F9F4F60CA6F2950FB9FDFA29E63FA6762F7EFC4C1F414A80D4EB0401B
+718DFC57C500FE57C7C66139DB39D1AC0A39CE7DC57017787C04374978DEC663
+80E87CA7A8671C5D442F4CB3B0BDAFAA432BF6AADA725547892357CFF0E5D141
+EA60C20954BE1B49DDA61A247DFE81486CA38215F6CC8248A4B312DB232CF42B
+FD5FC0F49B433A4C211508374B41688E9AA41DEFCD93C9F0E8A0C2AEDABFE47D
+6378E5CE48F9003440B3E33018B98863ADCBDD7FA671BF5397773908C6AF7C98
+E547DA56BF1DD5C079935B92B9E02B612EF9521941F1D5F340DF0BD1BC1EC2AA
+38045E5EDF02B712DDCEA28E5ABB3049380C60E38CF4F8D12CE696CDE0F53D73
+9962ED5CB6991315C66B8F354CF9989F9C09C9D13B9A65DB14FEB8CED31F0452
+ACBD239EC915362C83D45DA97D03938310FA265C536BB22A0A4B91A9F4B40A3B
+17D17A85DDCB89E6BE5D95B5BA9393EC184D58EA612FECE94A62F24AD2CCB86B
+C02260AD8EC417E93FC251196D561BB1CB44BE42FB7492E6C18AA18D5D45512D
+308662EBA2E802CABE5C356A59CB05C4B9B7B84118A9BAF2BC4A47C0DA2FDBAF
+14167ED33BBDFC0925777FF38CFE3768B87907DC25939896584E14F7461E4AD9
+C15E808DDC45BAB75E953A8D1F17A9DEBB8F26164F6C8BE9722275CE02DBF42B
+E65D5EA76FE393A6B114AE21C04A1FBA0B70403240A8475A47135FD81A95999F
+AA617BA8FDA4DA7AAC318A4E07AA4D7D8A01E467C48A7FF034BED591272A9503
+05A53D4AFA7ECEDA0805EB83EC996BD0F2C0E428943310AC4CFA21E32C28BC05
+4A366498119E9C91CFA93783D7DAEC9CB20717A9E3336E87ED69BF5CDEF78D76
+A281E581B439A12ADC6FA378D3B15E370B68E5BDC6C82420BA165C8E19BEC8FA
+B1519B7E08760BCD307140F95346B88706D5E99B9368DFCF788F30BFDD408A04
+47E55E85F969A8A87986C8C5D6F334DB9C21E618346956BA50481A874B22A212
+6902F85FF97E9246A156B1131100E3E2CD3C2BA28DE2D7288B5B431B94F795B1
+9649DD2919596BD6605BE51DAEE36035753074AB6F602D585ED719C952C4A931
+3B310C30D5C491F8A0177E5555FABFDD95749CE25FEC9BF6BBD0C116944D5800
+B9DB8AC2AE09970B9290340488D4AF0165F79FD45C08C7F1AB25FC9EF7E41AC3
+90BC184F7BFC19D0CAE8E8BF7AC9913D3EBC305B8CD90BEBED829C933E86C603
+58E87DE63B7CE41133B1AD7C8EFF48F2D6972CBF763C0DA976246667663C5FCC
+BC09EC4F60092780A1D08F517A876E25C61EB21379174F1B7B528B0D7B25180C
+622AB398022D524E3ACCCE53D109A8E4AF331725774D99C495FCA69D565EDFCD
+D1D9370CFF8C0AB1A9D24AE4619560BF3AD7412A4D09E5247B049AA98014AF01
+CDE1B29A5EEAB01EA2E3783EB83DBEB3CE8CB11B42D2BF31F13AFEFD2045C052
+E920FBE22C27B7B7D9CC0DF132F08C2FB79E12B327E1763C6B2204C164BFF9F8
+FC7C40F6FB3A2BB8DFD03057E4D36E4D7286D79557CE91DD6E3C9FC044087C6B
+BDFF6EE48FA8430F0304BF09AEBB390AB0D693AED8CFB6E07F90DB281DF38215
+5E7C0DEAA4F89E401040367B3578C5E9F100B9239774DF937FEE9E68E38B499D
+60CA9562C7CFADE74DD827C59CD4DD8EF2F7936710F490A95E94D9F0B8EFC657
+4D354C60A330556CD6799E51498265119F9D8ED542BB3FC97E9B1E15136BF2A7
+B108C48F8D8B77EF4DFB67A15F1F15D332463AF6CCFC6AEE8E93721B59AF6821
+B10CC89EEB0572A72624671A22031563661DC5A4944DC88BC1825171BD6E94D6
+F168B0EC840F33E03AAE8D8760E7FF9258BCB8C8CB9A6752BCC1FA836B4FD9BB
+A922969F199BAF6C36A5E0CF6F474AFE360E62F3E96B995056AE44FE8CF72689
+6DDA1FE223AED2F337E7A3547F7D2A3BD04DEC8451BEDC94D5DE3349450D8969
+9274AB9B620CED1FE04E5D4937F16D773F4E3D4748BBBFAD940A0EFB3B0CBB77
+36F050CCAA7D21DEE4ED90AF97200AB81C4227060E27DB22668E86F0B357A38F
+C66DCD3EC4AB6240147C3D146D0ADE63A111C9020769D1DC8A36BE8FD73A1E6F
+F0CB94FBC0657F9491C14D45A88C5DBAC08C900C2BCC4B43A357A32A52426A01
+EE7A526D7F1C8462ACF9D331D63612E1D35511AEEF5CE9DDC5E850F1940CF994
+DB6442AA86D7C9E9B7BFCCED40FEB6DC6AAA6F868CF3D5C28D4E1C91F3A569C2
+782125312D896FA8C179DFADBB6505A854A4AF8CC620E491676C4643F8EE6546
+B6670A01410F385A06C4E8C650FB212958AFCE844148262246302F14C90B43F5
+8916F6741748A22FE2F91ECFB3B895FE7B0EF22EC80E82208E44C8B8261FE3B8
+FB74758B71A815E424A4A52A95B59C1D86FA
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont
+%%BeginFont: CMBX8
+%!PS-AdobeFont-1.0: CMBX8 003.002
+%%Title: CMBX8
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMBX8.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMBX8 known{/CMBX8 findfont dup/UniqueID known{dup
+/UniqueID get 5000766 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMBX8 def
+/FontBBox {-59 -250 1235 750 }readonly def
+/UniqueID 5000766 def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMBX8.) readonly def
+/FullName (CMBX8) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 49 /one put
+dup 53 /five put
+dup 56 /eight put
+dup 57 /nine put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA
+0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93
+51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71
+7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551
+E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078
+0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273
+C01924195A181D03F5054A93B71E5065F8D92FE23794D2D4350D67F24B396427
+8808B79FF5CAF896E4A8A31E46499CEE35E6A5AF0CFD175C2DD628620C681947
+A02A01D3C2B715AB79D7FDAB638D887B77DFFEC5C3A9484104D84FCECC7296CE
+2A3488AE246E233A8D5B40ED5DCC44558B77422BDE47E0435F960EEC3A26DA9C
+E137555F0638511AAA14992C8DDA9A4A11B3F90BD4DAAD1883BBEC357DBD8389
+16EBE2AA8F93C2AD44F383ABE13B8C95B240563FAB987EA98794D301785E1E9F
+03DD545E51A6D58B3618E0750208D3AB913F9CE8C3B865D4CB83B90FB24962D6
+142B0204A1E271854F903A2FF600E087EE2FC222326051F155BE709B3E7A808A
+487B8AC3CD7D2EAB52C2ED68285F962D06677C2A5015A16B3D12D15D658D89E5
+18513C020222D1A995EA14D7D9CCAC4A552172146B53AA4DCF6DD217B61CFE98
+1E14709295D97DC8B168AFBBA9990F0BFB9F72A5305570A1848A9E2CCA702C77
+DF4F414CDDA4FD7DA25D9B09F05A77F37F1496F2601AA5FBE9B52C1C16FBE860
+A3FCA20DCAA3BBADDA16304242A306400D2BEC9BA12788A5AE0E0CABDCF565BF
+474A615DB6A14695E6C7288DE0B852EB91153F8A337E66DB5CB43E8234589F00
+4868530A5216CFCFA0DCDB92D6BDB092855E9BA80682D5679EF88F3152E8C2B9
+E38D0D6F26276BC74B8664E13D4B388124C88D19FFD2448E2743BC02AEB14694
+1AC48CB776F8526FA416549A3C35616E8FA5632AA0D557B90C5CF40BE1B62325
+97E45F7EC4F04CBC178B72A195912CD18498098C901CD35834FD6EEF765CB292
+5A753BAACA557BEA0AF989BDEE0F0C5DF8177084AFC20E7A78BFA536DC28E9DA
+FEBFF50E908CA6B5DA15D3CC28A00DBFF8A1D7FF0D82F2A397C0B8B23F959C99
+63BFBA5FC83D7F51CD0EA2E2C925F7F4AAEEC8A0483F50E02E4C0373FA4D7891
+3EDAB498C44A259B6A2E3E176143C12E25C7B880E2E6B96592BE77AEE1190C74
+35F4BA28952C002AB6B3A4B0BD9054855CBDC143CA9D20D20EB111A030D1C979
+86BDE77F3BB47918F4A456513EDCB90B7CF72E97296FE07F51D0DF8C9E666024
+69C209E6A4A5343F3DEDB6F09B06297505F8F8AC2AA857DC545E030DC9337FBC
+E48DC186C5DB047D0FF564B444054F7664AC72B7C39F39959BD574C099562FAF
+9832B2260D4F1E9FE64F6BE5243308B57499B6220EB4431A53E8D9A3C6BDF5F3
+8D7EA0754D363E897EC68D7E45DB4635D3E7D7176C8C364082D1D6B00D9A7AEE
+5E978FC3AC4D9D73E8FAE3086930DA11497F8867E01CAE42CD9D7D1558DA4694
+48501C4729614948B9DD2065E5F13275325302C24E28A22AC2F33304EAE0A317
+FE51288D91EFB7AF68B8B9C3BE1294CBC390862BC28463FBBD62A32E0AE3344C
+5F96E2343E5E1662E5626C6014E1F0E661126A00E1E24A4F7A2546C37B701BA8
+F18F93372B48893E3C0449CEA14D228BDB8FD17256DF2FE0767661F6A3972DA9
+33C746E2AFF1EFF2B44159CFF6A570C10260751299D8A30A3BC19239C9FE0DC6
+BAD2AD2558223FF4CA1B672426EBC422A12514F67D9152099848B13E131C0E90
+9037A6DBEC1CB183720F78C37D5EE5BFE81FCB2F615A9595791C6F56210C84FE
+62FF6F5F15B866C686D8881212D7B3F4342FD09FC1E4874D35DCDFDB9D506D5A
+06E5DB61F496E70C8E8B145B9BB951B2160B6FE86EA7AC1671BC40CDD866A9DB
+3103E91EB483E5BE3C037F2D2388A44D8154B216C433FB85231DA4F55D3D4A8E
+7FDA4387923679067F13454B02D9F2E2B030FD62C0750576F32F090E9A054DBF
+4BBB729B94162C080ECD81F2DB2BD1D65C1D50CE414D0FFB4C7E994B65177F04
+E786CACF71A5690F62AE3AE57F43247B8392D2BBD4E61262EA0CAD3868F33296
+BC7002271448E865DED4324FCD923313969D1355A579F918E6225955A2BD5B7E
+C2A0E02809102F295895722930FCCCE6E8DB301635221B57FA589533C2C3BEC4
+9B1958680BE6102180C667E4984C7B9250C5BB231F8E443B98EF07FAE3AC29F0
+B4CC4BE8A3DC0058FB2CCEB90262FC959D5ECC3A887E10E1E43FAE7DFBDE4882
+BA9035B38BB0F69F8659C0094EA643DEBCACFC8EB5C73AA25A1B83B2DA2D1D47
+29A27B554BB9A762D020EC05001DC8559E096F82581B248AF95D6F12FB73E4E9
+58BFF246EB803809F561F8E17E6B1B7B1472FC342761EF29FA2C3890FEEB96FF
+6B1A173A74A2A61837BE90AD9574EFD8D65602C63C560DEFBE5F0C1F8250E66B
+E7A8C1A68E8445CF67F672E2F11583F70E77F479916339FA7E5672DFD1907CAE
+45A5DBD35C535D903442EECF453495A6B256DC635941A6781C426A2E12BAF3BB
+73C147A74DDE4925D642BB73D9F2608554D967A0944D38CB29F984379073F6B2
+77301EA7AD503121EAA1AF349D72677869515D0E537AD762304A6A5CF31E8431
+D053D4A1B6C03A4DBE6BDAE2312FBC65F18FC8F4AA546FA69D09DCC722CEE1DA
+E02B6F69B69F675AE544ACAEFCDE959350E1EB6C45C162E08E153D1F3151AFF7
+B539D0834CA4B87B06732D5EC077B37373348A5CD7B39811286092ADBDD86931
+3F6867AC5D53E565234847205FEDC23BC1E1166CA113787DEB72AC251FE7FD1E
+250557284E533F3B2DA3BB22AFF13428D2537BBAFB70734A7FDDC68AF58A9D3F
+DD456ED2E4A0A89C6E22080101412164A955748ED5E689308C96FA5D23D63513
+5B8890A57983C9DAE333B38ADFE356C6CD6BB865C493151B24B9A1FC4D66C491
+12E8637906EBCBD60E76227E8847112135CE4FFB00B396FE3DC237292B8D2EA3
+03B263C1B6CDA2719C0D99B6CEEE6C86CB397C4D0C058BC2EE9D6298612D01BD
+31531819BFC228868453DB8EB836AF2394D45A222A21EBDE795E558E84A277F7
+D8591ADCD9E16C34201CB0D0FC1FE62FB107D53DA0D95F61A9A55585A3D106B5
+48B258A35D3AF66995A9DEE4312C0DA4C91CD3AA7FFBB7A5278FACBA05E5BBA0
+F936BC210EA4E107EB883DEBC83BBA0798B665F2DAF2BCFC00D524930B394187
+4712AC73DC2F901BDA21589E9132A50B6F16FE8C6153209BDEEC9025C3C24035
+F8623B3CDF420E064D2D3F1BEDA64E39C8482972C96B38BF7D25C1025A9DC57C
+40BE36086161C419BE1B0CB4B653DB07FA28934C41AFE90152A14AF2688FB6A0
+71AEB8175EEA7775C13F2B7C598C30E91EA8DB07ECDDAD64E40A8C8FAA3ACCAE
+ECD1296AB2075DE150F10502847E970256A70B7329834B1D80D40AC5C8DF55DD
+E3922D85820114F898F87E644EB8F460BFCFF752B635B6D08F46AEF2123A2E86
+913CF1B45DD2D01B8E560EC04230CC8DE7C78EA2970C224B371777430ED41B02
+63C87C9B29161341DAC785F547C2E6256370BF3BD8D7AEC72F6F9A4BDDFB6EFD
+45AF0A366B9387A4CD9164326B997BCDCFFE0D25D88E22888889D8E47C5709F7
+CAD17E0DD435B20E767B31521E9E14ADE57C7C9CDC2FD7D09DAF912F6C5CDC34
+6362133B50B8E5954814EFAE6AB8D004AF3CBE097BB0F61FDF1E10170F4EA28D
+CD93B802BE124A435403D3BAEBE8C1131718579194420AD650A3986AF9220363
+75155975B60093A9A6CD171834B2E39629041BEDA7CFAC7BA6411A206B09DD78
+CFF14E36304B7FAC838FEC6E4AC6847C6CEC1559B41D81383017668DD230C98B
+C317B08B199C270FEAF50868DFE6AD4243EAEB67590855074A248CEF8F64DB80
+D5CCAE6445AE92150058660E861467D0CECF61DCD5D4062CE9DF07CB098B90FB
+6CB59553A0956BD6339CAC2FA9C519C46AE9775672DD69D33C0E6D7F626EC2D5
+85070A68A450227CD535911F9E0CCD1BA379C750CD10C4190EC8B979C1E4ECBD
+DE2836E85616406FC2DFDA7E27A411276AD1B3900453DC3AD85C7A9BE51CCAEE
+315E3E5C31F8E6962721DA166B9660C8087C1F1ABD77950E061A2D924FBF4A89
+3FF5C570ABAC5EED011D2BF94BC1268EE4F2A2CCBCBA29FBCC4B186A3FCDDDD3
+B462305EABECBFD279C9860D5E490EA63D9231638E06EE8D58EE6E926C4A3D3A
+C5E957A20F1F99FA05C43BC4D1918DA051656EEF0C498748879BA4258DD73CAB
+0F32F20B98014C2B14A77186E43470F0182828955730F440493D34B0877065A7
+6E7B704B27F93DAD747DA77109C541A15F08A694A703E6E7C62BD0A86331EE79
+6C18A6C38923B88BF83BF212C76BA6EAC620CC859F0365F5511821261CE29DC2
+BFEBDE0CD36F0052692C9945077CD606E4841CB991D3C3DE9BE28EC7CBEC2FA6
+75984071CFDFA8857CCDF9005AA8FC549EF295DC701260CB4A5CE8FA0F439B22
+BC2C19D3C14E7B2B6B41AAA158659C307D9C91C2B12331BE152D3EF8FD324B9F
+8C3B74D553AADE2B0E89805F47FA2DF36766B8DF01CC2B6B44344BF4B11C7FD3
+186662A11137448ACE7D3F4CA515E0BEC21859D2BB5A25F67C48817404DFA0CA
+7B3D11495250150C6A1E32B80334E8F5C52D4769C8BDF3E6E3DA4FF1BC97E009
+A1AFD195205FC741837F21CC2942CC8322F3D6AAB6D330E6CE120E1A15E91987
+AD98FC12019A945B215BC72768F32A7635AB0F0E6E185AC7099F1A0EAEEC5FA0
+341EBECA077B25102310331CA87B74345506156CA5E853728217608416EC8173
+2D24CEE766E2B3B0BE183CF2A8B794E0E0E91C11D59B98DF5F4E5EA119F197B5
+D8800744F9FD45015FCF5E740105ECE72AB5AB7E1CFEB15807A0D1CDE00A44AD
+E94EF57AB546990A691FB2E24CB55477B7FAB6F12A28676DB7ECCC014AC70C80
+9199E921F449C232EEB88268A48DD86FCFA2E29FB450FEC618E9E317F4AACC68
+C51EBDB1B9E43F7574B40C0EB05E769D30F1C172645006D799E8C3D7C79DACD4
+FD269ABF9B24B215B534365D79535AE3578D714606D22AAA5A2039FE7A5DD52E
+506D293824BEF78F5E1C7228FF9097FF5AE8CB7B46E69C72FB43EEA7110A9EAA
+546E9975C54CFD56022EB1B21E00CEC393DFA488C49C90E73D57CAB0324E36CD
+0D2F0F0641DC3785CA9BFD680D609392CC2F852056E90276DA93043B14F30BDB
+C32808FCF16CD13E4A13B727BEB4FD42B29D6C215AF4811B965822960F6D7CDE
+92BBB8FB84B59075FC14075C30CEFD9D095ADD8043FD12452D3C5E4EFABC9671
+6E929D5932C337969F3F5448A2BC8001ACDDA043EE975F35E64D7436FB73B197
+697E87860E071F326C7080E9C2930CBA600C6875ECFA85DD4C3741945004B3C3
+298F2B741302E0FD39D990F20D68542B2FD0D71F52DE1ADF30FFA332306360C7
+C6BE3E6D510A691029D503FBFE96831D332831C69B590025C831281881968B86
+42817BFDCE322355F994FA9C8BE68A9222CC09AF9AB2AAE8BCFDEB69B8481CB5
+75E66873B08A4E8265F369448F0E3BC0C82D82F65216D0C93DE88322EE7D0FD4
+1089A1D6CC3B52F681BAEADB1C82EC3B82949C27C6C340BE7E27020015CF142C
+37DC3BA8E4EC2A4FA81E50EE6854C23B3EE301E43D83CF6B82E80ABAA01EC82A
+36CFE930297EE3A45783871EC4E77DCCC0923A9FB1654406FC8070BDADBD27D6
+0BA8837A459481ECB63F03DC3007700D360643864AFB3728C5573A20870E5D55
+4F698DB4B5610C30876DE56786D84C71AA9FDD5198B4F3F8918AF319B7FCD04C
+F06C90B2CD0CF2241C2055DB68F1CA5CD57990E68F6F832A5820A481B0823F98
+0F4BAE4D7E92F4F2BC118E01ADDB7D527E6BB49E85D37D7E0BE7BEFBD1BF9E1B
+9ECE91D28E664284D190010D1578C1F61F02610A9AA6E9527872276E59A25362
+68F74B88959CE84F497D8D89735413981FE4EF573E4E0C02D3F0EED5FC100A4A
+563949D21A3E29D86A84C9F945602D9EDA860C6C44492EF219DFEBCC016FA7A4
+AA12A727D4E218D22805E5EC878AEA7D8B5D79E84E74E78FD9E017FEC4220A7F
+9ABCD125BA6E9D378BDC19D0B267A323FDD0831C5E7EB7D4A5CE7047F272D3AD
+1E25F7C5327127A058C287FEC98BD81144447D5BF73C56472E552C7B1AAF6705
+05286122B612BF5A2AA8C4A6CD64088BAB59B008A43121FBF5692418FFCFAF05
+260D6EB20C680BB73F3988C3E4E3CEFC65BA637FDFBA60E6D9D63E6C7FE196F4
+412367C1F43343EC6FEE8F97FA0E95BF1BC2C15F14CB6C8E8B28248B5EBB6478
+FDDA9D183AFF6A63145824E518377F384740984DC6095FCF3F8B777DD23A221B
+AB1ED5EE27C19941184967846B8800E489E1B86F23ABC34237502ABCAF092C77
+38A1720A851E8EED24BFEC9AB4C8D4D7FFC3ED0C1CF4FC73B962EB53725DB67D
+983A8C2B9E30F4F85AFAA17D86EEFD57CB17BACFB8BB2204E7CDAC446C679226
+F21D1A5CF2EA719888BC727725346D58479B69213F9EC3520B9C3A1778061AB0
+3B330514114833525D40B3F7F45EE401534732803B807953EE20C9660FB790C2
+71513A220EBE1731295B205324F275FE110D60A77CBB43441472193570E67BD0
+E97D51AEDD94B4DA0D71DE66E18F22F1E6CCB81D1DAD113125743D82DD4BBC8C
+190BF7073078FB1235E8A329EC3C69E3D25B37B1BCBDFA50D0C34BA486AB50CE
+0F411AE5DDD05BF3ABA16151A06D566860A08B2C634786C823D615BE622BC8DC
+36FADBEE389BA4F7A5A32BBAC6403282F02E92ADF11C14F45B51D579631F067E
+09C17ACC247837A8B6F66C66574F91317CC12C73D09A75B80CFD11993FEFCED9
+859D36B55033A149ECF0A845F611FAC0A8DEE32B407091C0233808C79857C2C1
+540A530EBFAE98C5D51C955D02FE62C8F207C97D614636AF826A7F2247E56B54
+3B496509DEDA8A277F0100A94376F5FF85586C6721F65F3F6BCF8B19CAAF8E4A
+EB16AC97AB71C32FD3DC9E7F1CF02D29ED516BE9F8F0BA027C68A5467A91338C
+CB52C099EC4FB72775138197BFF472B4FB75B84D5D45824A705412F13EC5A2DF
+363D37E7ED7DEBD14AB754B8F7C829998351F76E0660BBBFAE6DE96BEA394965
+F14D65CD28C593B5056D41FBE0780AE9AFE5F697D3F41FD750D327F5DC23FE02
+1DC31AC1DC74721C939D38710BB1BE55E895C2181365CD2BF61E8B59023253B9
+7694B2215942A702B855A0102029229F2CFB8EBDED2BA9B723CD915E0CF54FD2
+D8B4CA2A0BD43DEB478AC342F292FF590B2FDCFEB7195BA687A7C7D4E17D5E06
+EDA0D7F0195D255CEA7288396CB53A961DC4EC29F949EA8AA48DBFD6BD2BC7C5
+7019E26D342B8BBD0AD9D48E689550DC1FD581EB0D6E4156D107E116D9326BF7
+E29F3479790283C8FA5AD1BF8562D11A26F81783E7B9CB3C74EDB9A2BCEE56F0
+0A6FF68026B320FAA86EF294C07F310B832941D400337C0A1C8DD466F2AEA9C9
+7284F09CF01CB6D17E333AFEAB84DB7E5451829DEE0B97F8D4037877EB32BE6C
+871C9B477865AFA9BECE34891B81B4416BF1C82CEBFBBB6757B7032E04E2ED10
+38DC59E06E65379DF10372264804733507A929783916D02CF3158E4AEC0531EB
+95502E07ECAAAE6EF0E70EE934263D6C8404739F468228484BC5BF2EDF9BF06C
+D5CABBE2E28975711AD2F485846A92D22DB307ED63FDF99120684837B21AE421
+751B4681AF90A153AE3B977850AF1B7FADFB4A0D074AEE539DD1B553D99CF869
+0D589B7C27086CD89458E78A94E33C2610617A56771E56B146D9143488B01742
+017A7EE0444948173C783DB8643039B61CAE1D863047ED474E47A1CB49DC43DA
+0099D2BE926D5C8CE61D98B0DF3B532AAB90EE57BC17191EF4119FCDB991ACE4
+B124110BEAD7BC80EC8A205638E2727D8464AFE44C65F47D33F454316DD87FAF
+A1C93E7C6C1E357F3E111E41706635476A360F789F0153DD8DBBFD19826BDB1C
+AD807F7DC8E3B4FC65AF1AFF2B5F23727E87CBB5B28857BB09DB24DA0108AC68
+5D78CADFEA384D7451C16602F9891FE1A54C2FA09AE44D439F8EDA1737952610
+6ADC59D1E8DFD741EE046B1C12BFA1805CB95465143A974C742CC2A4DE9757F6
+D39720632467BD4C29F7D81E4732EE868C28D22CF1B0F5E3DB01ECE22DB2BA87
+F43A973880DE8BCA102C0CDE55BEA23A80805CF9B4424B33D813EAF6F030D6EC
+4A23F5A8AAA20340DF3D3A8D347D38C954F559500326F09B89A79101FC0687AC
+D1D9A52D5C7D65C39296EB63F9C68C013B31B5EFB435E39ABE193361F1BD2A7A
+522F3DACEE93502E5A25ADA16540CB10C430F2024A97E551274FC768059F812A
+9DA535E722F1AE482FE3C289D21FF13DE6B6A7899EDB0637AC219D4FAA55EBBD
+9500DC38289468A27FAC7A3BF48D9B8874CE74C2403EF64CE9493FEF5766A661
+89A29CEA44DC51DCEFE71B5F458B42166D07C33579842C28CE6F7BFC6698A1BE
+8841E555EA3DC91FC2A8A3938DCC21B9E8DF2179E80F169CB5005C4C1B0A0D33
+2CFD77310C3A420403409EFA81F600CA37A31087D48E30720C8892B1122189BD
+7A3CF264B075C24D5AA20BA3251EDBBCD4B52494296F26BFD2D113C95D484C66
+4C6C9E13A1D6456017B5F2EF749BC141AE961B212C2B6AF01282C3209C27684B
+7EC90D5FBE7F12F2E8FEDCF61BAA6297CFAC67892E4567A910DB2024A151E2CA
+BD149C93371A2262C1027D4B35D4D94635B257B6A011FCC702208E51D86B34E9
+2D8CD2520DB282E7BD39EEE37CC816B98325804045B0748A23BBC25E9650829D
+E2A3B98D2BE4EC11699DE708454D414ADDFBC07B3E959E523A2638E369D3220C
+D9430EDBFE656FE18B89DFF47059719296198BB464CB2FC9C91F43627C0437EE
+E961D9A559087251DDD9410F5A0E4ED72B3331836B848BE8C79B7719BA995222
+12604331FCC84EA0A652885866C8DD3D456BFD9762B551466559741F2CFE7F60
+D676B7E31B920251307043626EC6D0EFC50729F1A28C9E2D267E13DA7DDAC6A5
+ED26E1B062A6E8344563B05CBEAE0959BE0B12541758E533A99941F795E677C8
+41D079306E883C1CD921AD2C06BBE33E181C146645FAF0C83AA91B48EC9818D8
+E97CB4631323560D5F796FF98D1D
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont
+%%BeginFont: TeXMUSIX20-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX20-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 35768
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX20-Regular known{/TeXMUSIX20-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX20-Regular) readonly def
+/FamilyName (TeXMUSIX20) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX20-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 7 /caron put
+dup 50 /two put
+dup 71 /G put
+dup 85 /U put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-619 -1659 3200 1660}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE7F9DA1603F49FA9AEF3E7
+27075B080A569EF1014B7F2D4C3687FA1336676537B82BF4590F962C967795F7
+BF6CD740C57389AB77A273920959FE657B87F76B9403C9586FE85C957B0BFF7B
+26F4AA603883E02139AC15D1360C26E332527461ABDBAA603802CAE75E08F559
+E16B2E623827BEBD40D4661A6B3D10D6C395EECC916F52F99D9D1F19DE5977BB
+73C4EFAEB7FD0052E831BE175C945358083BA2C5690E0CF8B386900A4A51F60D
+C8E98236B16D54A1D94E88A062E0E3D8397F5CB503F51A4F9918D3A902AC7DB3
+25B30A154EF106BF4CB8A369599B3496537F22C842825F69154DD87E05CF9ADA
+B6C94188CB702F53D00BBEC8ACE69CBBFB8C11099395D7BF0D47EB3E41454D13
+AAAC4392E8C0ADCA1E87A6F844D3AD81EDD4CCDD0FBBFCEEE9C70BAC5B4D4861
+E7B9DB2F4DAD612986007DB8CDB3B5384C3C7D77A2609D2255D4098E7A314D80
+1A553DD03007696C9DA22D9E9AD132F09CDC0144E7C1BB169635A24341DE3589
+96D503CB7BC73A81FC12A743C711916CBEEEF61F7273B238B3C0DF1AF4B190B7
+C820DD8F5FDAF73872074E1C95F4A4B7E1B5DED436C03D1020B9FE9F780FF2C5
+920C97B1584B7E0051107EE7789BFAB0B13F32AD2DC01DB5120BFD6B5FA8E386
+EE743D10E6A9E858979543882C19ABB36FE278EAD1304E84DF80E8CF87A994DE
+0DAFBB918B5C13EC0B410CDE19ACC3DCCCC419A6C552410C0CFAAF624006218C
+F236274FE535A25B1399748107BCA62DD24FF611AD06154590701B4F54D1E477
+B50B48E13664D702948BD52E67810674BA5D16DBF37481B4847AB1053F4DCD13
+21E97F4A4EDD6FAB8EC10976E2833BC7BC7091827D64CEDD4200199DD4C2E02D
+B3A00B71CB3CCAD44123D9DF9F82EE852E53DC6B974333A0049C05CB65F9BFC6
+D7DE5DEA8F847914575DC2638D68668776CA0A4596E19C3B2067E17D5D9564C9
+487D1BA5971C59AE61F7E99DAEB520C1EB53F7AE28879DFFFA0B75F72B460BC8
+D3C64E90F48FF1FE5481798011345171E6E1B22EC8AA4A0DAAAF03CD98EBFC61
+5FC26C6D9E3C3AC13953E033B235304E2D38FBA249BB40B9EA55026E83069E54
+35D0289834FA3EBCE37FAF01A2C77BB55B28CCC265EDCC5FAE00561E2A365E03
+5A109565AE24568C3E5AB8D80828A9CE717406B80CF697638421FEF9E74E6096
+C7BFB2B05F9937C1A5F6FF971DBC565DB46985D405B31D7B3E97C0ECEBCD68E2
+34DDB4544C1A9323C18606C953ED17153D9713F13C1CE56E6F0C09FAAB8FD11F
+CC8ADFDFDE42B6ACFA8AFAF2C8F0CBD7F6A07322E8A5554314FAF58D1C511ED9
+743294F53AF9AFD0A40943F21CDA99CC37594E444B5863D19A02B93CEF93BCB7
+FE8889084DBA449CB89485C0C6BC9B843AC7032C007BDFC6830A98555E8435A6
+E04471265C24CE87455514A41FFA8E051C803BB2D2FC5884D08B528D5F95697D
+306D0B77D4901E3A2FEE88ABD43D7A5B88EA7D20802D6E2A5868B88FA3012BA5
+CF53F24BD6ACE03800E20CD7723DA527427D075E1F2031035F5FA47D33D843A5
+A6C719C41DB1B0F2551A72FED8446240933F5E57677DC190566257D1841ABAC2
+A2F1207BF9C8CDFFC2F3790FDA3268A9830D9F9B5822FDB36DE636F629E8379E
+9F1C59D80642690249E87D1CF0D1E369D1E34821EBC67CBBCB45790B3A9B73B0
+6A1DC82BD838916B79C22317DEA91B9F364FBDD71FF4A6B1E0575D4108B3554C
+23DCAD074DB6C902B30FBAFBFABE56F50212E10B34EB734A2EA7B00947A9DFAD
+F3C31C576813190D929DE66B91B9DF680F383D5652865EB561E8D811524FFB16
+EDCFB17C5951166E2DD0FA70DB2C4EA2F0522D6AE227A91BDA3ED6293F260480
+0E994C31D82D26E69AAC153402BBC2CCF1F1ED899E4AA36A15115E62A860C77C
+DFC304428A9495AD26F1AD1E57CA4B13A14C35E8A4B80E3416AB4AC06290038D
+2C7F1938F8908CB444FF9C6B1A9EBEF6A6A3828AB8DC86282A7782860D500F9E
+9D6273930803F9731E32866A1AFF6367D6BA9F6E8CB5CA7F43A060D463405F61
+C97364ED
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+%%BeginFont: CMR10
+%!PS-AdobeFont-1.0: CMR10 003.002
+%%Title: CMR10
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMR10.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMR10 known{/CMR10 findfont dup/UniqueID known{dup
+/UniqueID get 5000793 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMR10 def
+/FontBBox {-40 -250 1009 750 }readonly def
+/UniqueID 5000793 def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMR10.) readonly def
+/FullName (CMR10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 72 /H put
+dup 97 /a put
+dup 112 /p put
+dup 114 /r put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA
+0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93
+51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71
+7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551
+E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078
+0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273
+C01924195A181D03F5054A93B71E5065F8D92FE23794D2DB9B8591E5F01442D8
+569672CF86B91C3F79C5DDC97C190EE0082814A5B5A2A5E77C790F087E729079
+24A5AC880DDED58334DD5E8DC6A0B2BD4F04B17334A74BF8FF5D88B7B678A04A
+2255C050CB39A389106B0C672A1912AFA86A49EFD02E61E6509E50EE35E67944
+8FC63D91C3D2794B49A0C2993832BC4CDC8F7BD7575AD61BCDF42E2E421AA93E
+3FF9E4FAD980256D8B377043A07FC75D6169338028692CCA8CD1FE92FD60AD26
+D57B7519B80A8F8DCE9CEE5CDF720AF268D3C14099498A843D76E3B6C0328F24
+D36EFE7F5C4E5B5C612786200C8DE3A41EE5F1FFAF4097653CFCDC8F4FD32E0B
+03EDB3E413283B9EFB0AC33B055617005BC9B0057FD68C52D1B0E67F0C571685
+767F2AA85ADE4E0104A1C777733D5E318A22A9944336E5B98D965E50D31F357A
+8B6EA5A0EA98E1B027CE68C2EDB149EDDD04ED74A1B3D206D471A0C11C11449B
+DE190BBFEBC08C9E1B7513B43DA3134D6B11A2516E6E86B67F68C970A320D05E
+94FEC57FB347606DF89989C33482BD09D011C55AA920319E7B26A205D3D0F004
+22466F09C0482A164CFB27EF6ED2B040ECCC3DCAF345B5A73676F193D43123B7
+72FD6CFC5E37930E61EBD5A6307E4DE70194E6384EC0D79DB6AD86D3B319A31C
+8B0589D0FE28241D8ACE280D0530EE99C80723E560BB72AE9D53F4713181F491
+344B06D3027BA4E9E94D4305BE1D817197C54C8FF56CD6964165F6448ECC8A8A
+64B48B4F0FD69299A137589E2491A283509B21A3A5772F75B7602A9F60AE559B
+07A58436D04222C73EAEA72DE9A5A441F88D27C11F4F91255EFE280E91A4ACAC
+1E98A4E5E6C57B9AE86FD218C3CD8F24A4104156A80F13821384E529783C52C8
+78B94AB3A0096090867ED32E8A30980E737922037F75F062BD83BF4F5929BC51
+CC22AEE2DBBAAA001CFFBFF41D258424FAD888FFF1BEAB796A44E3126159E120
+7E4025C676CF94888A1971AEF8B6764B3AF4A92D36FAF6FC56FD049710EE3782
+BC2CD84FE2473F133BE03C1346B875463F126DCAB15C7A9BCC9A727D23611462
+4E8D2BFD2466600285D79518712B8681ABCD69608E6AA9578F7BD771EC36E01A
+5A17BC17E375020ECA59B43790ABEB9DF5F4FBBEF807E5699EFEAC563E1ACC5D
+EFA336E75DE6D8248E9381BB110884FDC89C2F9A41EBBC9A8A1F98E6A41F68BE
+EE30E25CA148C1EFF42DFF8C214A6537AB11F260B8C329A4947B5FC8DC9C5622
+4DF7BF4FBFB00380D47BABB03BC30627AA74103E553F55278F538EDD8C1E64CE
+0F1398CA0AB5A86630139B4A7E8FC02804CAFF3830114640AE50D2FDA3B561B5
+C63AD7EE3347804CBB40FB1E77A6C89735DD870351C3A1811591AB493251B904
+314F65791963C0412377C1D02362C5E9655F1C3D4803CD379A8EF24C48218C2E
+DF1165840462BF37DDE1B8D5FF09FA2C3B261E2F1A65ECFBE5D4EAD43B52C029
+EEB3948CB8A252CBAF545C8FA1C31E920E23A12DD7222CEF2D2A513BD758EA13
+DA33BF5FBF1D734653EB83DA2D374A5B9A0CE316F24EE375D6DF6BDA49954C2E
+DB25A88821193636119D469BA66E5DAA9C92520FD4F84426A4E54273FA469084
+7517817A6EE3E21176D333825E88046F50B3CF6938AF9BA79A2F51398239EB91
+1A2D07F7FCD948427FF62F40FF95E39FE1A1AA8451411563FD5388472251C155
+69BDE9283B41900B21EB1190D06E6B13B7794FED020D2C1BDD205AE77B084BCE
+EF628249398B496DE85B406FC2E1939EF00DFC84C07E26CF72EC401BAAE756E5
+7F6673216E7560D1C2A723CB405EE5CA474A07F61B81F8836482F73DC9516D67
+CE0CB770EAD755B6B356198B4B97EBB29C63456953270CCC8D5650C1D006E69D
+38DE2DFEAB27DAD50A817F0D645D30AF5B75A7B53CBD3D2B8D87BD0A7E525AF3
+22F7ADDFCE31716914C2318260C2E2B4664893921B68C5A93334A361D94A759C
+0D7B146D6FD94F0442D672BDA0F6432E18F3C5DFA37ADA378D95B75F413C9ED1
+BB5C606A3EC7DFB3F796F59B0478C13FD1900381EFE0BB5242D5B5D34D03AF1D
+4BDC93EAF8020E26CA23C8B0E7DDEBBC6762A557067A4CE05A524188A8F02E2F
+3625DA38DFCF381727887F5646A3995A8A38A5FB1E5D5EBB395FDD0B7C8E71AD
+B48EEDB62AB2CE99D121435EFBBFCEEA69AE9ED8238B60CC7288DE33C766CDFE
+15B767B4AE2E6CE0965E77272AC9F86023DA620548CFAC85BC751C44218A29C9
+849F1C2DCBDFAD895B54E51A569952ED50F82DC8A19F367E7E44643854EFD6B3
+FCAEB04E55E4661C82D31E2932611748480EF61FB2FBFB0CFB940BEA81AFCD84
+4C6A6332D7A600170E38A8EAFCD4F93DC153C43175434C86BC747348FAC61B76
+1FEC9027C1A193E55C80F1F20B5317AA0A05AAA36AE235F6E49F06E570FEE798
+84857D7552EA92EF3EFAD52DE39C2F8F43C59E3A957B7B926FC95FC4B60186DF
+7F3523EE2AB74E294C8C4BCD8B4975E84849E0FBDA6C0B0F24A636DFA578B122
+CF97BC5089E21E9F5298D1C9F30CB8BAFF6A3A11BB4D9A0A5CF2B18D055C44CA
+4FD4D8FE1AF3630907DE7E585AA811F9CD11FB2C8FC791851D651009FA5DF20B
+3C33FD2FF848A9E3F5652BD294965A332DD3F246C91B0ADA34017FF2451D1394
+F9C3C95AAC6EC8062BE98E8914D51DA6A164AD13938693D446044859D03A949D
+F9AC5DF4A000CDA98BB516D762CB9F6D44B5268FD0C26E88BC4A760C0F75A140
+DEBDECA4F511128B7D2805872160C55236F0A0FA7637FF0D4E94AC079CD3C8A7
+D03A5A56F26B0438B577C46011A10532FEBCAD14FBD6032E224F45691A726886
+56F305231EB2FCDF59C8BBFCB5DBD2D093A0E84D62AC93A2312CA69295E937C4
+8DBA1802B85F54B5E7E6D6216A918F911FF705D3B5CF055F1D873B96283A0B53
+59344D910CD396D883F6F7836BA65FAB4393A773A8F6BC298069E5BA38210EED
+49C9D920F718E3FCE692527DC7CCE6963BF744F2C91BC5952564196D60574E86
+87A0FAB21F2DB2BD5A51D7FBD8FC19946D24E5A228462C4772F978E650ADCE3B
+8D66B9C21279C531CA1C3A8ECE3420BB65837287A7222CC3673A2A5F8BBFDB60
+C719CD073EF9A23675198462C7C87B24CC92D6AEE5C25AC63855CC3281494342
+D28F3D2FDE0C183486769A4FD5B0143193D31FCB2C2A14E487BBD96D0BADBB64
+D1B56021C363A795BF10E2DB448261C363A54A4AC1182B470C457AA82DF3F5D1
+F4B329806141EBD53CAE309319B94133D7EBDC2D0453A905ADD207364371E178
+0A95C2686E3B34C4A978BFC0EE968C39ABA00889BC5149162C2B54483D44FD3B
+5CFF41F611C7E03B94945F414560E874D7CF27FFD0630890D7D7EA66CBD15448
+229059E1C436BB33D69552B5367AB5D53591C4678D0C704DD3EA23F5D9E8A7AC
+17D003C19E333E726FFFA2961F33C70F429085F7BFE3E2510F59B78F58B19CB4
+01B48E184BAD9020FECCE3AF52048A056981DAEA02AE78197E65855DDB170616
+F54278395D9EA50DC83761AE759F9CDEF9E1948E7002414FC05286ED793E6662
+3347F2A9AF8917493D7305B92CF93E8E9185F70015F5594084298A6C2F9FD3C0
+689F262AC9FEDC9B89577ECDE92F08D3142209FBCE7B5C0A840CC767BCA56C20
+4E4E545E2BE4D21C53855CEE4CD0AB35D1A604C0FFFF77DBAE4289752276559F
+A05FEE65F45ECAF44E95E23FAB6052195C7948AF0B1126482D4E02D72BF8AB03
+DE0F1A632F7672AD9DDE70EDC82AA993678A82BEAD0BC2649C4707FD8509810D
+364B5C6FE0E10772E95288C622C2F06C634F4DF8C7FD1432BC9310D5F24FEE3F
+7AB324863D6DABAA1576E70643CA79EF4D7DF4105093D66CEE0F3B87D2164A7F
+26EA05F5C4645B22D3E1BFD2219657712C168FD90DE801FB0F32759E80DEC1E1
+43CEEB19FED12D757205043FC98FEC62D6A8D8B97BC083B4A0E985AF7850D6FD
+8716B9957C1C35A0675BC53DF672C425C79F43FDABAEE7D63F092CF271C9A9D7
+C41F40C4189510987887942E60A412B3EEC84C9A6E1AC7D54D528F5604B72C08
+94B7882621A5BF1F325B92FF96B80878CC550D1AE4D8196E41CB1251856609A5
+C4D3BD05A922D0D45E039D9450DEF8490A3E924E41434194910BF60BA1B08BE1
+B41824345627745541A4F1703E956328F6227D11C74946B38CFB096139979E56
+4E723B889B44C6D78673868C89912F8B4F0B4B485F1587A637B630F92E6072D5
+7F3B44EA6FD96BBD4FC28A6C1D90805E3BE3E42A7BC9C880762966C55BC04E01
+204D083AE976FAE6F37C94F27E68F8C0F28D52B17F6C0FD7C9150701FD78F8CE
+B8E8DC9260E3974005EB5CA728171F482D765016C94D4ADFE4A42EF42212BC56
+7E4EEEE8B0D2A7856CD4E44F55C0BAB762F92CB8D64C17022D4BF3A47C12F5E6
+279FC23101FEE93753653CE8CEDC3B75C9CCB29BF1D4554C6120DE8EE750FCBB
+E38B5D915206974962E320362E59B3F21B3AB1875703191043D03284D4467346
+CFF2F98CEB4845B73ED8E003E0DC94251B73E13A9B51A3F1430BCF6A21EB9B7A
+65E17FA411F53BE6432F1506232B8159E008FA257F884A4A01AC53BE91754D78
+BF14A5B0FBFB9C31BF4908355F8A762052968DF526D118708CCB0B7CB5BEE285
+6DAB6CD2E3934178E60BECB11AAB5478623CF6C50C92F8BB5D1A583609028FA7
+B8A53B791BDC9EF76A124F3F7641857E4BEA0837CB36176EC9A522EA7F41B8D3
+63C37D1145367BD300F17B54522A834BBB74DE12BF9EB26ACE6F24A046D58F89
+4D4B7DF74875F1A0C1C9D97BE0849593D7B398EB4B00BEBC8C8D1497B6EF831A
+A35380FFB7F1AFA4D888AA52C9482E8B1755CC209905F98F40D95B44D4DCBCB6
+67423D1BC2F3560FF0A8B4F0CAC352A4EE2C1D946E45AAEC8A6AD40303F3382C
+DF0756BFA3B1ED64C169E56ED1C760F2FF0E24DC5C9F41306EF8D2628153D30A
+5DCB0791126BEFD4947D7EF08301FE015F2B0008DFFCBF9F2D4D859FD43EC7D9
+C5BE237E9BF6665B7B1BEBB362F0C0C3A8D86010B9C97FA741C97C2E0513386C
+9C26C235B14DD2A58BFDAC7B5F63DB4DA6D5D37D0098175A9071590E1DF66A3D
+B8173A047C29D7D35557F06132CC920B5460B8AFC11D23D09A4E45D089F5EB51
+963FA1A6256E359D485107FD143B2BF21FDE9DA5744BC2615E86C31C89470CF0
+D06C6397D9FCCB316EA9989430240759D2C4945D941F159FC02327F34B042BAB
+B5C3A47C78E8C1A6FBCD396B1A51CC4B020B8AD401841EDABACECDB482D6EC5B
+72D2BFEB4556720FADD49D07307C8B22ACB7E310CA4151A85C71EEF70E8D15DE
+B3B00F26E0E166C14647A65ADA228A3D1C89025BE059306565DB1B1EFC37D358
+8C1EB024254AFD049BA977BD4C2C605050E17940A89D0D4C5D963E792320F5DB
+3706682E03D25D9E02487247819551465092CC22B6B56E93F3AB528038FEC3F0
+668F866707A19B0463BE706EC729D2EE1653AAC7E29BD25BFB3241D4792F5152
+ED415B4E7FA92C2EE5A22E27E8B75542C492E56D811C192E95542A6FE0BFE5A5
+69273C2ABED4300D491B92D2AECDD278404CB84B1BB1BD7AFEC858215837D118
+C0E928BE7E07CFEEB51A6D21375B772B8248C994564014015232A0DA4BEA1754
+3274F407FED0837A236371F1A32056240F2015B1E7F4B2CA72C6B58610A66F13
+407CFFBA5E0A2893C1F572D50F51286E9133B5A84239C9493B0574E77D281D01
+11D00683354A000C9700EAFBC1FD104EA19DFCB87470190E7E2CE26E3A6FD0FF
+2620B87B82AC8686B6206B530F17E9348BC7D04B948348802CE53A312443DB87
+4DBBA5313A6A2A8DAB8A1CC9A594FF8C299281C0A261C8CB2226B732FBEEDE40
+2C6ACC74A1A61379E2E1CD5548CD908268A32FA83D8504C442EA0E183ADBF7FF
+9FD09C037AB03516ECCA93FF048235BD11A25DB07F164512A079C5392AC7F889
+CE96AE5C8D9580BCAFCC087C35E76EED1A671E87C12E3045E15A687134736DF8
+DA984772AFD189D68571A2ED7256F1E204230E41D3D9DD876F938951714A3973
+0CA9310489F8E807C1C7A4E51AEA5BC030610A5D7263FF7E0F9FDE3E5E37A362
+5B919000BD94D978583B942EB79CF2BEAC33FEBC9A67272EB10865BA8FB75FD7
+9D280AB59F91B96C16C982DE848D76D8FA8620DFD7C80B7DEAE7264350D6FB3A
+EF04794DA3305844A7CF718F6D1A4A3AFF6826173A076A1372ABFC54ED3AC6C2
+09C9287FC830556CA694E21CA5342ECA7B10C90AFC4783D841D7B1E34FA3DB7A
+2B706F3E21B0FBAB23E7257962FC3BC309CEA2C7239A9D6B44CC96825115ABD2
+AF9A2566D2F3382C01569FBDB94C8D664A5DA0F7DC3DD140CA77C743D7BC1420
+324ECF9E4780280EB119885E96A6C619CE3C0C8E1E264E2DEB137E5DC8149786
+486D65667ECF47B1A1E20E9E6E4FC8323E0BC8E61BDD3BCDFC6575C69C03E31A
+EFFC290472CBBD049DE3F840AEE37A2486034240F80E75D8A79E0762377DF660
+52B12EAA16D678990B11A9BFBC03C1D4FCDA9FD4FFBB3E88352438102F10B7C5
+9F04C013B6575B5E948FAB58EA691984A0E54E6B9F3F505FFFEF74D06FA1CDF3
+4B8A95904C8A2763AA8AF5B71D00F5DE09DC1CDF87A08B6D181453063E14C12D
+B7BB3775A6E2A901636273D9EEB833EA8CF20FD83AE899E28DADE10EEEC20BD7
+BD93085A4B1AC80AC1AE8280C14767F1A487BD066007A0D050317BD081131A14
+6EA0898ED59E46DA7B6254BDCCBC660686E2EDA0E77A705A653733BB5C5497D0
+B130359F866CF293FB6EF0C2AC5BAA2DB0DED045E2DED3A2612D078333260359
+16CF0CCB272D34767EA069E0F0B0D42327A18529D72E890EDA6195C2688438ED
+E9ACDBEED41E81CA8EB5E43C2B09CE266EFCA03F2D7FF57F12B06F9E54FCC6A6
+546676F6FFC5B8B7D3F0982B6FF0D21D949309F0C0B175CC1D0976F8C55C6AED
+6E821C39041E22D91AB30922F2B2EC2746BC7DAB484991542FBC82D87B487507
+559AB466F73EE23C2D3194DC5CE4C9AE66D3164613AC5CBB3DB501B64DA7C91B
+C7ED2EE9027FC0906820B35D4F2CF66C4F9CE4A884B7C07155BCA884ECA5EB3A
+ABB83F84DB1F5639599DC7D3F51241AB5D95C3BCB7AB1EC90B4BC989F74FB354
+04B2D7366A34D335A47B8C00C05CB423482BF6C7970A95545424A08AFF9A035B
+7F83F52B65A9799CE76E303B85664B624C65E9CA58184C7BE2BB9D9C86A4DE5A
+8165EE3DA2E652B5022EE7893896BABD88931DE1D538F615787645DF5ACBBA0B
+A8E5B899A37321AA7D4B283AC9234978C2DD81813A1EE5DB6EC170DAC1B6EF02
+94892635B498765C07A38D2E9DB0B7581B11056C28278F89B0E60998379C07EB
+C0EAEDC32AA69B8B836F92A61AFD35688315B2C3F860632FC13E4BDFB63214BC
+41CC6859EAB3AC3034449213CAB99FA1D216563419CD6D6CE4E1B56F33E6C654
+7AA9DCB5B05FC068DF02AC32408C8010AD004F6CCA9887830927F8CBCD49CDB5
+18CAC1EAFF815FF2F6F527F936948201565003022C6C7390B4E3C2B219FB4F76
+9F12BD25CA7B3B61D1A2F8DFEE795D04D5428B42FB66E0C254AF7B7A10CEF7FD
+EC7762B3A0C6518E8855CEBB9937C972EA909F25CA31C33A6AC307FF01317AD7
+58BD08D95697E699B40A3CA81F8A9ADBC5AC368A2D56BD00684494819CF72865
+86D1DE7A349F3C98F89FF38B30D840294DD3E51258FB4208CCAA455C3A13C6F8
+9B4DBC3027B3CAF2C6EF0A5000F53914FC469769D1D2D72D9F57A11C5BB44D8A
+1857472CC47B532E2A0CD7BD2F7F99930FE769403B46E25CFC2041759BBC27CB
+A60525182B0BAC8AB381658DF10814D8C2A0F73A0415B8AD23DF0A82CC481EAD
+70AADE0E2676CAC46D5C39B92C18AAD0147814BF27C8FA6DCA0BBA0FF0775836
+2210962B3400AE0CDF57242EA8A7DA911652D5DF61139650117E65779D80FA5D
+F0DE22F7D2CCD0185380E1D346582C2E719ACB75A70367913F69BADAA2F9B4BE
+5A76DAF30053CE655A7C984B6BB390F7DE687B10EEA2F1D2F4353AD17B032900
+6E4AF46A848A94E69B6B7F3EC896D42594593A016CB5FD306F41F1E396EA1B59
+8CDC2B459A81B19A090AA25E8D003483A64C21070738838BE7E8F0DA026A315C
+DAD06E46B3BFDF5D0A48DEAAA63DC107C8352E4BD2361E66C1CCFE8E3C283C02
+A4655C579BF21B53D1FD37996C682D1B232ED1F6A1B37ED3F17DE0D82EF0E15D
+FECF39F8EA9A1804A05B350671BA8D9838EC6FD9269FC73192DDFBD4CEDD9954
+5675E7431A7793960485EAB5778EA899E98988CAFF8DCCEBF494D5676912D5E8
+68E4B6E8380F66A410FF23883099831871EC2B5353AB2F0E8D941BCB25FBF929
+F49068E8F65763CF259036DFEA1AAB44ED4B4F457EFD4B9B0BBED34041206F8F
+2CF988CFDEFF949914C4B69F50F6628F9EEC6842B79E4DEF88F1FEE5AC7014E8
+652E21891F7FBB5D720CDA676189F016B1FEABC10785FEEF0F4B11C7658A59CA
+73528778D2213CA6DC3A62BE2D64A05860D0930D7EA56788DD87665BF143F034
+85E11FFE1F67FB6D16AD327872C04F8876134E5B5D5D1D811F297520B630C1FC
+45D9A4531606AE86CEF0D876894372B84D03D1BAB918DA530B3F2D2A59FED439
+D11DED107279134ECD4728803979CDBBCDC96B5F791E79254ECD13F2577B13AD
+665ADBE9C5032A6D6EBB105FA5656E64E8E61C718E533A2C71F469930F296766
+4F0D17A94A65D60F87DE73CD3E463B692A4B59BA7A760DD7A81CDDA23CD0698F
+4C6FA5667BE5D25FFF2E69922C496CB4EFE5117A04277C8B701D81BF0951FDC6
+C238657A7D1B2E5FC7E8261F0CAF9CA00E0A0219C771FF38A45647D2F019FEC8
+39F4D48736977F5B21F6961C8A9ACF420971A8B4B3EB237EB85B600FD483DA2A
+8717A30EB97DF714C48065871D95F479057A8A29DC524D9781A602791A5E6D1F
+F41C00075B1FED387D98CF7EB11374C849D87018D4F17E60D3CEE00CC979AD41
+0F813119C60C8E89BD209DB0CCDDC342CC3D438356296934D03AFCC9B2A2F85E
+CF808E3F4F73415A620F8F1D9563FDE6DFF71385693E6B75BFC0436205231264
+EAB0C8398DD7DD9C0DDFF09EAFAA8D67F25F80B39F4A584B94E08408C02326B4
+0E27E034DC75E7E797B53DEB549AF0590C15DB00EFEDAA1F5EFA3F7A08023326
+6EB529F0B4B8DD91CB69558534CCE31AE7E157D0B060877EE4F153EEC4FDC93D
+0FEEC724C9AFC18168AE7D0CA13F0B4F66C9F9C1A3BAC53475B5A70CA1B83D37
+D276F00DA0A9318C09C86A3CB60F8FF548AF36F41E219F071A8638431CE2A931
+13031EB40F0EACF90949369A67E8793F1C76C3A2577467242CC0BA47B411DF2A
+9D9FA70D335D41F59317F44A60ED73DAB72A2F1AC1D8400534CE5162CB3751D1
+DAC13FBB3B99C04815F958AD5B9B44388979B95C2AE6E66E90645AA34F8C455B
+E6EF471BB8E5036B399054FE6BD3B4E612415883B53B6C5971EBED8F462F4DC2
+C59118D0C3921FE8A238D2E3CF0C0DDCAED669667EA5390087B2FC75CAD18883
+113AAADF162B023352069A442B6682C3FF51D628BE1DBBD89A7AAB946AF7132C
+1739C239C496145E7DD84FDA4F11EEEA103137618571BDCD4958E166EC99FE60
+AA5334CB63B98D4A88FFAFBD8962186FAABF1E2593031D084359B02ECE352A5C
+8B4F4C828D7FF50D459FB6C913BB52FEF3A6D47C338EC99E6FE3FB13AB6FB9F6
+6BECF95B625F9BE81A4C9E5CBFB6407856406CC9C52353EAB3C79BAAEFD69628
+448FB6E92B0345E5D3AD7E0009212A52D33A0DD0870C6834B8CFC8A8488B4BEA
+EBBA5C743CA53E8EDEA6034994F5A338B85C4ADD0A28C7A8FB765C4A027ACC65
+C774E5244912470606D852A39CBBE5E41177FFDF5DACF00BCE930F6409136C17
+93AAD1ECAA2A3D88D47656ED2CBC816B173B01048BE9D1E4B54ABC063AA483DA
+D551D0ECDC163CEAD83A7B901741578483203BE72E4B676F7A211F72225DB3DB
+146BDB01C7EB13041306FB82B973E484683DFB445134A9805F40B22CEFABB5A7
+A66796AC5B925B8021ED155E58FA101CACA594C7503B7E343ACD1B94657EB3E3
+7F509A1F69D934014A04624F43FF1E9BF2F55A8A2A7E3EFCEA27582959FD01BD
+E891530114DBC5F754A238B7ED890A1F80E836F340D0286D7334BC5E28D184E6
+A895BDCCEE38F5EC170D3BFB792D2DDA7E57BD2FBD1E6304DD03CD20842B335D
+7FA068735311F96609995E26B0F630CDFC5AB855D56CEBEEBF94D111260C0212
+E7EB17ECCCC87FE8878535BCD8619D29EF97ABF0145D6824F0514D9716DEBCFC
+9E82635CAEA24178E29C4CE99D72268FE8DDE42697988A4974226A16CA2B5C11
+B169965B9F8FC6BD4CD581D381D212A0A28D4A44AEC567E94EB24EBF471E5C4A
+BCBD7576320CCD8530E963D0E26A035ACCEF2F9907FA86DF3301A707606734F0
+FD11DAB90103A5679DE35F079686D41EBB178539ECC9D2642278E664701A2734
+8169C341BDAE29D7D9FF6B70FD7FDEE5AF87A8F2D29A8EB31AA1F43F8EA2B412
+9F373BF55F8B6F39BE1DFCAC77739309DAC06E611A988C7A52803B68778F61D6
+948783D125CF6DCC92A782A220C706FB04EA7F557E7C4ACFBEDFAF9845F260FE
+69A02FB078D023D395D0597D33119430301E1AA71C59ACEA32EB0486252C86A4
+39BF53F48ED5FDC8CAE4B4B82FA08AA4AA713467F1B67A0FAA2A3599E4F11969
+5FBFDB5CB6C50DD3456FBE0ED46D519A4DF0460658D5FC6AC70242AAF40CCB42
+D8A7F1EBF6A08226C7E293DF58978F897FC2A064A48C0BA9889256FCCC681003
+270E57A7FA7E122BA9E485BD270A36CFE59DCFF75F52663243F379183287C1FB
+9125F74AD6BC865CB040324F31694B34AA9A59952D8379FD1E03B285AFC3D8A7
+763B01901CB9D2D6D7661AC86A5670FD1A669F7A3EBC1F9B51B883477D41E0A2
+180C6EC74730B48E34C6DF5E17BE66FBCAE3E62F906657E24EDB68B65B979C68
+16DA62B2D513971B9495F6C6B2CC9EA0324667DE7CB380EAA91C91E8D1FDFDB9
+48876FAABDA95743B87081DD91C5FB6292B024AD61E5F104174387BBAF158ED5
+81B8A774318D7488E273ECF31FB7C852AA3EAE39D09596729F36AF3C6E0802C3
+3BFF624A3ED426EA821588BA547AE9C95E5A31BD7969B74F8A3EFA328227D35B
+3422F6FE038BCF008A0D37533483D4D012DC41B7ED4797A9BA43A3EE01DB61F7
+F25C014CCF48ADDAD0F820F1CA4FB7E6053BB26FD6B034604696092FD747DC1C
+10E378A08E09FADC650615435AA6574E3A11FB1314D40F3D0C289B0837A97C0E
+4163F7AB434FCC774501B7B6E3B0C4C415271D66F58620A7F1D268F91B3EC459
+C877CBB1D3CB8AF6AD234944E2CFBCA036C06BA266D8DE5AD1402AF05A00A570
+78A6C92833589A5A10257C81646E17D59BF6DA4AC4378A8345D6EF04F624EED5
+C57146972E3CB064E63B6AF8804D9928343F91F44FCE53DC5C04D6D6C78F15DB
+135C38C52E710C62E371409C775351D87DED6A18C83BBB94A91C9DA5C57D04E2
+CEF60E5D286D50F568463AF569B78CBDC6B618DCD032198666142BAD655C9BC8
+8D9B5416418E515A03BC75FA4D87E92E98204594211FFCFF7FB7ADA62C5FB21B
+84A48FD25D38FEE1BCE41B5B203BD6D57753F53DEC3C4AE8C3EB52A9348E3FE2
+3C1C960705F4B40127CC21392444DAC1CB0AC4A94499459D8756F970D5B930FC
+F8A67F620DB3D6E3210034DC9543
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont
+TeXDict begin 40258431 52099146 1000 600 600 (gapxmpl.dvi)
+@start /Fa 145[108 5[108 2[88 108 15[135 84[{}5 172.154
+/CMBX12 rf /Fb 198[41 41 2[41 3[41 49[{}4 66.4176 /CMBX8
+rf /Fc 137[71 1[52 4[67 75 112 37 6[61 75 2[65 19[128
+4[105 3[103 97 14[67 67 67 67 2[37 46[{}18 119.552 /CMBX12
+rf /Fd 170[0 13[133 20[50 42[0 7[{}4 166.044 /TeXMUSIX20-Regular
+rf /Fe 141[33 1[46 14[42 24[62 72[{}4 83.022 /CMR10 rf
+end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%BeginPaperSize: Letter
+letter
+%%EndPaperSize
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop 218 -118 3919 4 v 218 -77 V 218
+-35 V 218 6 V 218 48 V -144 -9 a Fe(Harp)218 4 y Fd(G)355
+-37 y(2)423 -40 y Fc(2)423 43 y(4)415 -286 y(Mo)l(v)l(emen)l(t)46
+b(1)p 712 25 4 146 v 665 25 a Fd(\007)p 1094 4 V 1047
+4 a(\007)p 1427 48 4 168 v 1614 -16 4 146 v 1567 -16
+a(\007)p 1996 4 V 1949 4 a(\007)p 2329 48 4 168 v 2516
+25 4 146 v 2469 25 a(\007)p 2898 4 V 2851 4 a(\007)p
+3231 48 4 168 v 3418 -16 4 146 v 3371 -16 a(\007)p 3800
+4 V 3753 4 a(\007)p 4133 48 4 168 v -214 279 1741 4 v
+-214 321 V -214 362 V -214 404 V -214 445 V -141 109
+98 4 v -141 202 4 93 v -112 177 a Fb(5)p -47 202 V -141
+205 98 4 v -214 402 a Fd(G)-77 361 y(2)p 102 423 4 146
+v 55 423 a(\007)p 320 402 V 273 402 a(\007)p 490 446
+4 168 v 619 381 4 146 v 572 381 a(\007)p 837 402 V 790
+402 a(\007)p 1007 446 4 168 v 1135 381 4 146 v 1088 381
+a(\007)616 b Fc(Hello)p 1353 402 V 1306 402 a Fd(\007)p
+1523 446 4 168 v 2396 279 1741 4 v 2396 321 V 2396 362
+V 2396 404 V 2396 445 V 2469 109 98 4 v 2469 202 4 93
+v 2498 177 a Fb(8)p 2563 202 V 2469 205 98 4 v 2396 402
+a Fd(G)2533 361 y(2)p 2713 423 4 146 v 2666 423 a(\007)p
+2931 402 V 2884 402 a(\007)p 3100 446 4 168 v 3229 381
+4 146 v 3182 381 a(\007)p 3447 402 V 3400 402 a(\007)p
+3617 446 4 168 v 3745 381 4 146 v 3698 381 a(\007)p 3963
+402 V 3916 402 a(\007)p 4133 446 4 168 v -214 677 4351
+4 v -214 718 V -214 760 V -214 801 V -214 843 V -141
+507 138 4 v -141 599 4 93 v -112 574 a Fb(11)p -7 599
+V -141 602 138 4 v -214 800 a Fd(G)-77 758 y(2)p 180
+820 4 146 v 133 820 a(\007)p 616 800 V 569 800 a(\007)p
+1004 843 4 168 v 1210 779 4 146 v 1163 779 a(\007)p 1647
+800 V 1600 800 a(\007)p 2035 843 4 168 v 2241 820 4 146
+v 2194 820 a(\007)p 2677 800 V 2630 800 a(\007)p 3065
+843 4 168 v 3271 779 4 146 v 3224 779 a(\007)p 3708 800
+V 3661 800 a(\007)p 4096 843 4 168 v 4112 843 25 168
+v 218 1420 3919 4 v 218 1462 V 218 1503 V 218 1545 V
+218 1587 V 218 1543 a(G)355 1502 y(2)423 1499 y Fc(2)423
+1582 y(4)415 1211 y(Mo)l(v)l(emen)l(t)46 b(2)p 712 1564
+4 146 v 665 1564 a Fd(\007)p 1094 1543 V 1047 1543 a(\007)p
+1427 1587 4 168 v 1614 1523 4 146 v 1567 1523 a(\007)p
+1996 1543 V 1949 1543 a(\007)p 2329 1587 4 168 v 2516
+1564 4 146 v 2469 1564 a(\007)p 2898 1543 V 2851 1543
+a(\007)p 3231 1587 4 168 v 3418 1523 4 146 v 3371 1523
+a(\007)p 3800 1543 V 3753 1543 a(\007)p 4133 1587 4 168
+v -214 1843 4351 4 v -214 1885 V -214 1926 V -214 1968
+V -214 2009 V -141 1673 98 4 v -141 1766 4 93 v -112
+1741 a Fb(5)p -47 1766 V -141 1769 98 4 v -214 1966 a
+Fd(G)-77 1925 y(2)p 181 1987 4 146 v 134 1987 a(\007)p
+621 1966 V 574 1966 a(\007)p 1014 2010 4 168 v 1221 1946
+4 146 v 1174 1946 a(\007)1912 1779 y(U)p 1661 1966 V
+1614 1966 a(\007)p 2054 2010 4 168 v 2261 1987 4 146
+v 2214 1987 a(\007)p 2701 1966 V 2654 1966 a(\007)p 3093
+2010 4 168 v 3301 1946 4 146 v 3254 1946 a(\007)p 3741
+1966 V 3694 1966 a(\007)p 4133 2010 4 168 v -214 2266
+1741 4 v -214 2308 V -214 2349 V -214 2391 V -214 2432
+V -141 2096 98 4 v -141 2189 4 93 v -112 2164 a Fb(9)p
+-47 2189 V -141 2192 98 4 v -214 2389 a Fd(G)-77 2348
+y(2)p 100 2410 4 146 v 53 2410 a(\007)p 313 2389 V 266
+2389 a(\007)p 478 2433 4 168 v 604 2368 4 146 v 557 2368
+a(\007)p 817 2389 V 770 2389 a(\007)p 982 2433 4 168
+v 1108 2368 4 146 v 1061 2368 a(\007)1572 2327 y Fc(D.C.)g(al)1572
+2451 y(Co)t(da)p 1321 2389 V 1274 2389 a Fd(\007)p 1486
+2433 4 168 v 1501 2433 25 168 v 2396 2266 1741 4 v 2396
+2308 V 2396 2349 V 2396 2391 V 2396 2432 V 1122 w(G)2533
+2348 y(2)2264 2161 y Fc(Co)t(da)2663 2202 y Fd(U)p 2711
+2410 4 146 v 2664 2410 a(\007)p 2923 2389 V 2876 2389
+a(\007)p 3088 2433 4 168 v 3215 2368 4 146 v 3168 2368
+a(\007)p 3427 2389 V 3380 2389 a(\007)p 3592 2433 4 168
+v 3719 2368 4 146 v 3672 2368 a(\007)p 3931 2389 V 3884
+2389 a(\007)p 4096 2433 4 168 v 4112 2433 25 168 v 218
+3010 3919 4 v 218 3051 V 218 3093 V 218 3135 V 218 3176
+V 218 3133 a(G)355 3091 y(2)423 3088 y Fc(2)423 3171
+y(4)415 2801 y(Mo)l(v)l(emen)l(t)g(3)p 712 3154 4 146
+v 665 3154 a Fd(\007)p 1094 3133 V 1047 3133 a(\007)p
+1427 3176 4 168 v 1614 3112 4 146 v 1567 3112 a(\007)p
+1996 3133 V 1949 3133 a(\007)p 2329 3176 4 168 v 2516
+3154 4 146 v 2469 3154 a(\007)p 2898 3133 V 2851 3133
+a(\007)p 3231 3176 4 168 v 3418 3112 4 146 v 3371 3112
+a(\007)p 3800 3133 V 3753 3133 a(\007)p 4133 3176 4 168
+v -214 3408 4351 4 v -214 3449 V -214 3491 V -214 3532
+V -214 3574 V -141 3237 98 4 v -141 3330 4 93 v -112
+3305 a Fb(5)p -47 3330 V -141 3333 98 4 v -214 3531 a
+Fd(G)-77 3489 y(2)p 181 3551 4 146 v 134 3551 a(\007)p
+621 3531 V 574 3531 a(\007)p 1014 3574 4 168 v 1221 3510
+4 146 v 1174 3510 a(\007)p 1661 3531 V 1614 3531 a(\007)p
+2054 3574 4 168 v 2261 3551 4 146 v 2214 3551 a(\007)p
+2701 3531 V 2654 3531 a(\007)p 3093 3574 4 168 v 3301
+3510 4 146 v 3254 3510 a(\007)p 3741 3531 V 3694 3531
+a(\007)p 4133 3574 4 168 v -214 3805 3481 4 v -214 3847
+V -214 3888 V -214 3930 V -214 3971 V -141 3635 98 4
+v -141 3728 4 93 v -112 3703 a Fb(9)p -47 3728 V -141
+3731 98 4 v -214 3928 a Fd(G)-77 3887 y(2)p 188 3949
+4 146 v 141 3949 a(\007)p 647 3928 V 600 3928 a(\007)p
+1058 3972 4 168 v 1272 3907 4 146 v 1225 3907 a(\007)p
+1731 3928 V 1684 3928 a(\007)p 2142 3972 4 168 v 2356
+3907 4 146 v 2309 3907 a(\007)3315 3949 y Fa(The)64 b(end)p
+2815 3928 V 2768 3928 a Fd(\007)p 3226 3972 4 168 v 3242
+3972 25 168 v eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/support/pmx/doc/pmx-install.pdf b/support/pmx/doc/pmx-install.pdf
index e4c9429da6..5538f8db89 100644
--- a/support/pmx/doc/pmx-install.pdf
+++ b/support/pmx/doc/pmx-install.pdf
Binary files differ
diff --git a/support/pmx/doc/pmx-install.tex b/support/pmx/doc/pmx-install.tex
index e49bfd0f8c..c6bf78dc6d 100644
--- a/support/pmx/doc/pmx-install.tex
+++ b/support/pmx/doc/pmx-install.tex
@@ -5,7 +5,7 @@
\RequirePackage{hyperref}
\usepackage{xcolor}
\newcommand{\myurl}[1]{\textcolor{blue}{\underline{\textcolor{black}{\url{#1}}}}}
-\newcommand{\pmxVersion}{2.8.4}
+\newcommand{\pmxVersion}{2.9.4}
\begin{document}
\title{Installation of the CTAN PMX Distribution}
\author{Bob Tennent\\
@@ -32,25 +32,16 @@ which tree to use\footnote{%
and installing files\footnote{%
\myurl{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=inst-wlcf}}.
-\section{Installing \texttt{pmx.tds.zip}}
+\section{Installing \texttt{texmf} Files}
-In this distribution of PMX, most of the files to be installed
-(including macros, documentation, and a processing script) are in
-\myurl{http://mirror.ctan.org/install/support/pmx.tds.zip} at CTAN.
-The file \verb|pmx.tds.zip| is a zipped TEXMF
-hierarchy; simply download it and unzip in the root folder/directory of whichever TEXMF tree
-you decide is most appropriate, likely a ``local'' or ``personal'' one.
-This should work with any TDS\footnote{%
-\myurl{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=tds}}
-compliant TeX distribution, including MikTeX, TeXlive and teTeX.
+Copy \verb|tex/pmx.tex| to \verb|/tex/generic/pmx| in a personal or local
+TEXMF tree.
+Copy files in \verb|doc| to \verb|/tex/doc/generic/pmx| in the TEXMF tree.
-After unzipping the archive, update the filename database as necessary,
+Update the filename database as necessary,
for example, by executing \verb\texhash ~/texmf\ or
clicking the button labelled ``Refresh FNDB" in the MikTeX settings program.
-Documentation for PMX is installed under \verb\doc/generic/pmx\
-in the TEXMF tree.
-
\section{Installing \texttt{pmxab} and \texttt{scor2prt}}
The next step in the installation is to install
@@ -87,6 +78,7 @@ and \texttt{gcc}\footnote{%
on your platform,
you should be able to build \texttt{pmxab} and \texttt{scor2prt} executables.
+
To build \texttt{pmxab} and \texttt{scor2prt} for your platform:
\begin{enumerate}
\item Unpack the \texttt{pmx-\pmxVersion.tar.gz} archive:
@@ -112,7 +104,7 @@ as root (admin) to install to the system path, or just
\end{list}
to install in your own path.
\end{enumerate}
-You should now have executables \verb\pmxab\ and
+You should now have executables \verb\pmxab\ and
\verb\scor2prt\ available for use.
\section{The \texttt{musixtex.lua} Processing Script}
diff --git a/support/pmx/doc/pmx25-284.html b/support/pmx/doc/pmx25-284.html
deleted file mode 100644
index 29d811084c..0000000000
--- a/support/pmx/doc/pmx25-284.html
+++ /dev/null
@@ -1,384 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
- <meta http-equiv="Content-Type" content="text/html">
- <title>PMX 2.84 vs 2.5</title>
-</head>
-
-<body bgcolor="#E1E1E1">
-
-<h2>Changes from PMX 2.5 to the Latest Full Release (2.84), 10 February 2018</h2>
-
-<p>2.501 <strong>(Note: new scor2prt)</strong></p>
-<ul>
- <li>Bugfix: initialize index in PMX subroutine putorn to eliminate subscript
- error detected in some compilers</li>
- <li>Bugfix in <strong>scor2prt</strong>: Ignore special treatment of special
- symbols if they appear between double quotes.</li>
- <li>Tweak: move end of first part of line-break ties slightly to the right.</li>
-</ul>
-
-<p>2.502 <strong>(Note: new pmx.tex)</strong></p>
-<ul>
- <li>The height of a figured bass vertical stack can now be adjusted upward by
- an integral number of \internote by appending "+" and the number. Recall that
- it can already be moved downward 4\internote by prepending "_" (underscore). The
- two options can be combined to provide full control over the vertical position.</li>
- <li>Ties can now be represented with braces "{" before a note and "}" after. Both are
- equivalent to "t" after the note. (Thanks to Dirk Laurie).</li>
- <li>In <strong>pmx.tex</strong> all the commands of the form
- \font\...=\fontid sy1000 have been changed to \font\...=cmsy10 (Thanks to
- Olivier Vogel).</li>
-</ul>
-
-<p>2.503</p>
-<ul>
- <li>Enable arpeggio left shift with ?-[x]</li>
- <li>Allow musicsize of 24 and 29.</li>
- <li>Bugfix: Fix bug introduced in 2.415 which caused error in printing replacement
- number in xtup.</li>
-</ul>
-
-<p>2.504</p>
-<ul>
- <li>Gap between normal grace and main note: X[x] as option to the G command,
- where x is the gap size in notehead widths.</li>
- <li>Bugfix: og (segno) now works OK when nv .ne. noinst.</li>
-</ul>
-
-<p>2.505</p>
-<ul>
- <li>A new global option AK activates special rules for vertical positioning
- of rests in two-voice staves. By way of background, without the new option,
- rests in two-voice staves have default positions based on
- a simple rule that is not context-sensitive: those
- in the lower voice (the one before "//") are 4\internote below their
- single-voice default positions, and those in the upper line are 2\internote
- above the single-voice default. The new option invokes a set of
- context-sensitive rules to set the default position. The baseline rule is to
- align the rest in a horizontal line with the next following note in the same
- bar. If there is no following note in the bar, then it is aligned with the
- next prior note. If there are simulataneous rests in both voices, the old
- rule is applied. When the AK option is in force, it only affects places
- where there are two voices in a staff. It may be toggled on and off at the
- beginning of any input block, using
- just AK. When the option is in effect, any user-defined tweaks on the height
- of a rest will supersede the option for that particular rest, i.e., the tweak
- will be applied relative to the single-voice default position.</li>
-</ul>
-
-<p>2.506</p>
-<ul>
- <li>Fixes a bug in AK. Simultaneous, equal-duration rests will be positioned
- according to the default rules.</li>
-</ul>
-
-<p>2.507</p>
-<ul>
- <li>Enhancement to global option AK for vertical positioning of rests in
- two-voice staves (see version 2.505): The option L ("look left") in a rest will cause the
- vertical position of that rest to be based on the preceding note, rather than the
- following one as is the default when AK has been issued </li>
- <li>Partial bugfix: In unbeamed xtuplets, the length of the bracket and position of
- the number are now adjusted to account for any inserted hardspaces.</li>
- <li>Bugfix: unbeamed xtups with two flags are now allowed.</li>
-</ul>
-
-<p>2.508</p>
-<ul>
- <li>Allow grace notes in xtuplets.</li>
-</ul>
-
-<p>2.509</p>
-<ul>
- <li>Correct small bug in arpeggio left-shifting (it got confused when there
- was more than one voice on a staff).</li>
-</ul>
-
-<p>2.510</p>
-<ul>
- <li>Bugfix: Correct omission of character variable declarations in new subroutine getgrace
- introduced in 2.508.</li>
-</ul>
-
-<p>2.511 <strong>(Note: new scor2prt named s2p2511.exe)</strong></p>
-<ul>
- <li>Bugfix: Correct error in horizontal spacing introduced in 2.507.</li>
- <li>Experiment: Remove prohibition against tempo changes in MIDI macros.</li>
- <li>Bugfix in <strong>scor2prt</strong>: Make it work right when "R" command occurs at end of
- input block and "/" is on next line (as produced by M-Tx).</li>
-</ul>
-
-<p>2.512</p>
-<ul>
- <li>Enable multiplicity down-up "][" within xtuplet</li>
-</ul>
-
-<p>2.513</p>
-<ul>
- <li>Bugfix: If there is more than one rest at start of a beamed xtuplet marked as a forced
- beam, beam height and slope tweaks are now properly handled.</li>
- <li>Bugfix: If an xtuplet with multiplicity 2 or 3 starts with a rest, the rest is now printed
- correctly.</li>
- <li>Bugfix: Unbeamed xtuplets (with option 'a' on first note) with multiplicity 2 or 3 are now printed correctly.</li>
-</ul>
-
-<p>2.514</p>
-<ul>
- <li>Bugfix: Correct horizontal spacing when after-grace is immediately followed by
- normal grace.</li>
- <li>Bugfix: Correct transpose register when it has been changed in a single
- after-grace.</li>
-</ul>
-
-<p>2.515</p>
-<ul>
- <li>Bugfix: Correct error in automatic forced beams. Before the fix, if the
- beam did not start an integral number of beam durations from the start of
- the bar, incorrect results would occur.
- <li>Bugfix: Properly center fermata over centered whole-bar rest. </li>
-</ul>
-
-<p>2.516 <strong>(Note: new pmx.tex)</strong></p>
-<ul>
- <li>Allow figures in voice #2.</li>
-</ul>
-
-<p>2.517</p>
-<ul>
- <li>Allow figures in two voices, voice 1 and any other one.</li>
-</ul>
-
-<p>2.518</p>
-<ul>
- <li>Bug fixes in 2-voice figures.</li>
-</ul>
-
-<p>2.519</p>
-<ul>
- <li>Fix bug that prevented \sk from being output, misaligning some voices.</li>
-</ul>
-
-<p>2.520</p>
-<ul>
- <li>New feature: special characters 2+, 4+, 5+, 6+, 9+ for figured bass. In the PMX
- string for any figure, follow the number by 's'. This uses the font cmrj from the
- new package figbas. You must install this font in your TeX setup for this to work.</li>
-</ul>
-
-<p>2.521</p>
-<ul>
- <li>Bugfix: Font definition syntax corrected so no extra space is introduced.</li>
-</ul>
-
-<p>2.602 <strong>(Note: new pmx.tex; requires eTeX)</strong></p>
-<ul>
- <li>Allow 24 voices, beams, slurs. Require etex.</li>
- <li>Include comment about doubling size of internal buffer to 131072, requiring gfortran for Windows to compile.</li>
- <li>Correct slur indexing in linebreakslurs.</li>
- <li>Account for comment lines in line count for error messages</li>
-</ul>
-
-<p>2.603 <strong>(Note: new scor2prt)</strong></p>
-<ul>
- <li>In getpmxmod.for, decrease nline by 2 to fix locating errors
- following reading in an include file.
- <li>Add some error messages in g1etset.for setup data
-</ul>
-
-<p>2.610</p>
-<ul>
- <li>Instrument-wise transposition: Ki[instrument #][+/-][trans amt.][+/-][new key].
- For more than one instrument, may immediately repeat everything after "K". Must
- either be at start of score (right after setup), or if later, must be preceded
- by normal (full score) key
- change command K+0[+/-][new key]. Must be used with relative accidentals ("Ar").
- Part(s) to be transposed must be entered in concert key, and will appear transposed
- in the score. MIDI behavior not yet
- tested. Has not yet been integrated into scor2prt, so for now
- if you want to make parts, only use Ki... as score-only (on line after "%%") and/or
- instrument only (on same line after %[Instrument #]).
-</ul>
-
-<p>2.613</p>
-<ul>
- <li>Set error trap if "D" is entered before any notes.</li>
- <li>Enhance "AS" to allow spacing adjustments tailored for either smallsize or
- tinysize. As before, "AS" must be followed by nv characters, but now they
- may be "0" for normal, "-" or "s" for small, or "t" for tiny. Still must
- set sizes of instruments with inline TeX.</li>
- <li>Bugfix: Fixed broken "K-..." in 2.610.
-</ul>
-
-<p>2.614</p>
-<ul>
- <li>Bugfix: revise raised dotted rests by separately raising rest and dot.
-</ul>
-
-<p>2.615 <strong>(Note: new scor2prt)</strong></p>
-<ul>
- <li>Command "AS", described above under 2.163, now also causes staff sizes to change
- (in score only, not parts), so inline TeX is no longer needed to change sizes of
- selected staves.</li>
- <li>Scor2prt transfers partwise transposition commands Ki... (see 2.610 above)
- into parts. </li>
-</ul>
-
-<p>2.616</p>
-<ul>
- <li>"Feature" added: Hairpin dynamics now may span input blocks.</li>
-</ul>
-
-<p>2.617</p>
-<ul>
- <li>Repaired several obscure bugs related to platform and compiler dependencies;
- see pmxab.for for details.
- </li>
-</ul>
-
-<p>2.618</p>
-<ul>
- <li>For letter and a4 paper respectively, commands "Acl" and "Ac4" set horizontal
- and vertical sizes and offsets that center the page with no further adjustments
- required in dvips. </li>
-</ul>
-
-<p>2.619 <strong>(Note: new pmx.tex)</strong></p>
-<ul>
- <li> Several changes at movement breaks to improve compatibility with M-Tx
- and musixlyr.</li>
-</ul>
-
-<p>2.621</p>
-<ul>
- <li> Bugfix: Made keyboard rest positioning ("AK" command) work properly
- when there are rests are within xtuplets.
- Also fine-tune default positioning of number and
- bracket in unbeamed xtuplets containing rests. Position of both can still
- be overridden with options on first note command for xtuplet.</li>
-</ul>
-
-<p>2.622</p>
-<ul>
- <li> New option in "K" command: "Kn..." inserts \ignorenats before signature
- change, supressing naturals in new signature</li>
- <li> Many small fixes in transposition and key changes with "K", "Ki", and
- "IT" to make MIDI come out OK. Basic function of "K" and "Ki" unchanged.
- "IT[+/- n1][+/- n2]..." now transposes MIDI by \internotes, not half steps
- as before. E.g. to transpose MIDI of 2nd instrument out of 3 up by one octave,
- use "IT+0+7+0". May also use to untranspose a transposing instrument that
- has been entered transposed, to make MIDI come out at concert pitch.</li>
-</ul>
-
-<p>2.70 <strong>(Note: new scor2prt.exe and pmx.tex)</strong></p>
-<ul>
- <li>Bugfix in AN, to make it behave as advertised, which is to assign user-
- defined names to part files rather than using the default.</li>
-</ul>
-
-<p>2.71 <strong>(Note: new pmx.tex and MusiXTeX 1.21)</strong></p>
-<ul>
- <li>Octave treble clef ("C8" command).</li>
- <li>In figured bass, apply vertical shift for remainder of line with
- option "v[-](number)" to the figure command</li>
- <li>Internal changes in multi-bar rests to accommodate changes in
- musixtex.tex.</li>
- <li>Slurs aligned with stem ends, postscript slurs only, option "v".</li>
- <li>Coda "oC".</li>
- <li>New, smaller segno "oG". Unlike "og", must enter on every staff. </li>
-</ul>
-
-<p>2.72 <strong>(Note: new pmx.tex; still requires MusiXTeX 1.21)</strong></p>
-<ul>
- <li>Bugfix when arpeggios go from one voice to another in the same staff.</li>
- <li>Further tweaks in multibar rests.</li>
- <li>Tweaks in centered full-bar rests.</li>
- <li>Fix bug in clef changes for multi-staff instruments.</li>
-</ul>
-
-<p>2.73 <strong>(Note: new pmx.tex)</strong></p>
-<ul>
- <li>Enabled lyrics with "[text]".</li>
- <li>Internally replace each '\' in pathname in input file with '/', so files made
- in Window are compatible with linux systems.
-</ul>
-
-<p>2.74 <strong>(Note: new pmx.tex, new scor2prt)</strong></p>
-<ul>
- <li>Enabled staff-crossing chords with single stems, as ordinary beams, and as
- beamed xtuplets.</li>
- <li>Allow \" in lyrics string, for umlaut.</li>
- <li>Fix bug in scor2prt that was causing crashes when last line started with %.</li>
- <li>Enable note option Lx to lengthen a stem by x \internotes.</li>
-</ul>
-
-<p>2.76</p>
-<ul>
- <li>Allow accented characters in lyrics.</li>
- <li>Behind-the-scenes modifications to allow staff-crossing chords that
- are unbeamed or beamed, as illustrated in staffcrossall.pmx.</li>
- <li>Modifications to allow accented characters in text strings in
- lyrics, page headers, and text dynamics.</li>
- <li>Bugfixes in unbeamed, dotted xtuplets.</li>
- <li>Increased allowable length of text dynamic strings from 52 to 64
- characters.</li>
-</ul>
-
-<p>2.77</p>
-<ul>
- <li>Enable AV+/-x+/-y to add vskip bigh before or after \eject.</li>
-</ul>
-
-<p>2.78</p>
-<ul>
- <li>Expand bufq to 131072 bytes.</li>
- <li>Expand maxblks tp 9600.</li>
- <li>Allow up to 75 pages.</li>
- <li>Index postscript hairpins from 1 up instead of by voice #.</li>
- <li>Add option 'o' to forced beam for open notehead (\hb); set ipl(3).</li>
- <li>Add option T[n], n=1,2,3 for single stem tremolo.</li>
-</ul>
-
-<p>2.80</p><strong>(Note: new pmx.tex)</strong></p>
-<ul>
- <li>Add 2-note tremolos.</li>
-</ul>
-
-<p>2.81</p>
-<ul>
- <li>Allow string of rests to end xtup,</li>
- <li>In chordal half-note 2-note tremolo, make chord notes open.</li>
-</ul>
-
-<p>2.82</p>
-<ul>
- <li>Bugfix: beams with rests, not confused with xtups.</li>
- <li>x option after slur index to allow slurs to go from one voice to another.</li>
- <li>x option also for ties.</li>
-</ul>
-
-<p>2.83</p>
-<ul>
- <li>Fix problems when changing to or from octave treble clef.</li>
- <li>Fix beaming (or not) and number location for xtups with
- multiple rests. Still some problems with number height but
- can be band-aided with number height tweak option.</li>
- <li>Tweak error messages for options on "R" command.</li>
- <li>Allow forced beam height and slope tweaks with 2-note tremolos.</li>
- <li>Allow chordal note with 2-note tremolos, adding dots as needed.</li>
- <li>Fix call to ncmid in beamstrt when setting start height for beam of
- 2-note trem, by changing arg from ivx to iv.</li>
-</ul>
-
-<p>2.84</p>
-<ul>
- <li>Bug fix: dots in chordal seconds.</li>
- <li>Bug fix: Initialize ihornb for non-beamed, down xtup.</li>
- <li>Bug fix when using "AT" with 2-note x3c rD.</li>
-</ul>
-
-<p>Revised 12 February 2018, Don Simons (dsimons at roadrunner dot com)</p>
-</body>
-</html>
-
diff --git a/support/pmx/doc/pmx284.pdf b/support/pmx/doc/pmx284.pdf
deleted file mode 100644
index a62ebabf24..0000000000
--- a/support/pmx/doc/pmx284.pdf
+++ /dev/null
Binary files differ
diff --git a/support/pmx/doc/pmx294.pdf b/support/pmx/doc/pmx294.pdf
new file mode 100644
index 0000000000..2a0d2d1887
--- /dev/null
+++ b/support/pmx/doc/pmx294.pdf
Binary files differ
diff --git a/support/pmx/doc/pmx284.tex b/support/pmx/doc/pmx294.tex
index ce13127428..69bf5269b8 100644
--- a/support/pmx/doc/pmx284.tex
+++ b/support/pmx/doc/pmx294.tex
@@ -1,6 +1,6 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
-% pmx284.tex 12/30/2017
+% pmx294.tex 1/22/2020
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[11pt]{article}
@@ -47,7 +47,7 @@
PMX~--~a Preprocessor for \MusiXTeX{}\\
\null\vskip-15pt
\Large\sl
- Version 2.84~--~20 December 2017\\
+ Version 2.94~--~22 January 2020\\
\author{\Large\rm Don \sc Simons\\
\large\sl
Dr. Don's PC and Harpsichord Emporium\\
@@ -66,12 +66,18 @@
\maketitle
\section*{Preface}
-Compared to version 2.80, aside from bug fixes which are documented in the
-opening comments in the source code, \PMX version 2.84 allows arbitrary
-numbers of rests in xtuplets, chordal notes in 2-note tremolos, and
-user-defined adjustments of beam height and slope in 2-note tremolos.
+Compared to version 2.84, aside from bug fixes documented in the
+opening comments in the source code, \PMX version 2.94
+enables blank gaps at the end or in the middle of a system (\ref{Gaps}),
+allows virtually
+arbitrary staff jumping beams with multiplicity changes at the jump (\ref{Jumps}),
+allows
+changes to the vertical position of the number for a multibar rest (\ref{MultibarRest}),
+and has more flexibility in setting stem lengths (\ref{Stemlength}).
\setcounter{page}1
+% Need extra line to push last line of TOC to next page
+~~
\tableofcontents
%\setcounter{secnumdepth}1
\pagestyle{headings}
@@ -85,11 +91,12 @@ user-defined adjustments of beam height and slope in 2-note tremolos.
\font\ded=cmssdc10 scaled \magstep3
\bigskip
\setbox4=\vbox{
- \hsize3in\noindent\strut
+% \hsize3in\noindent\strut
+ \hsize4in\noindent\strut
\centerline{\ded Dedication}
\vskip 3pt
The \MusiXTeX~community was stunned by the sudden death of Werner Icking on
-\break February 8, 2001. He had been a benevolent patriarch, touching many
+February 8, 2001. He had been a benevolent patriarch, touching many
of us not only
with his technical savvy and gentle guidance, but also his genuine kindness
and generosity. His spirit runs deep through all of \PMX. His encouragement
@@ -140,10 +147,10 @@ that defines the score and the individual parts.
The basic \PMX
distribution as of this version of the manual is
-\href{http://icking-music-archive.org/software/pmx/pmx276.zip}
-{\underline{\tt pmx276.zip}}.\NEW{2.76} It
+\href{http://icking-music-archive.org/software/pmx/pmx294.zip}
+{\underline{\tt pmx294.zip}}.\NEW{2.94} It
contains the FORTRAN sources, binaries that will run in a DOS
-window on a PC with WINDOWS95 or higher, manuals for useage and for installation
+window on a PC with WINDOWS95 or higher, manuals for usage and for installation
in DOS/Windows, and example typesetting files. Alternatively, the
\href{http://www.icking-music-archive.org/software/htdocs/Getting_Started_Four_Scenar.html}
{\underline{software section}} of the Werner Icking Music Archive (WIMA) has instructions
@@ -151,7 +158,7 @@ for acquiring and installing \MusiXTeX~and \PMX on various platforms
(Windows, Mac-OSX, Unix-like systems) including using automated procedures from
several external \TeX~distribution sites.
The packages from those other sites will
-all eventually incorporate all the upgrades in {\tt pmx276.zip} but will take
+all eventually incorporate all the upgrades in {\tt pmx294.zip} but will take
varying amounts of time to do so. \PMX is often upgraded; the most current version will
always be available directly from the ``News'' paragraph
\href{http://www.icking-music-archive.org/software/htdocs/htdocs.html}{\underline{here}}.
@@ -264,6 +271,7 @@ files like you did the original one to create separate parts.
To see how the input file is put together, we'll look at
{\tt barsant.pmx}. For reference, here are are the first few lines:
+\pagebreak
\begin{verbatim}
%----------------%
%
@@ -471,8 +479,9 @@ direction of any un-beamed note; {\tt e} or {\tt r} to shift the notehead
l{\bf e}ft
or {\bf r}ight by its own width; {\tt a} (for {\bf a}lone) which inhibits
beaming for this note (or, if the first note of an xtuplet, for the
-entire xtuplet); and \NEW{2.80}{\tt T} to insert a {\it tremolo}
-on the stem.
+entire xtuplet); and \NEW{2.80}{\tt T} to insert a single-note {\it tremolo}
+on the stem (not to be confused with a 2-note tremolo, discussed later in
+section~\ref{TwoNoteT}).
The {\tt T} may be followed by a single digit {\tt 1}, {\tt 2}, or {\tt 3}
to indicate the
number of slashes in the tremolo symbol; {\tt 1} is the default if no digit
@@ -549,7 +558,7 @@ more {\tt +} or {\tt -} . In earlier versions, {\tt +} or {\tt -} was
ignored if an octave number was specified. This is a slight backward
incompatibility; \PMX prints a warning when it happens.
-Stem length \NEW{2.73} can be {\bf s}hortened or {\bf l}engthened by {\it x}
+\label{Stemlength}Stem length \NEW{2.73} can be {\bf s}hortened or {\bf l}engthened by {\it x}
\bs{\tt internote} with the options {\tt S}{\it x} or {\tt L}{\it x}~.
{\it x} is restricted to the range (0.5,4.0) for shortening and 0.5 to 27.5
for lengthening.
@@ -663,7 +672,7 @@ note and an extra flag to the next, include {\tt d} in the note command,
As an example, an ascending quarter-note triplet scale would be
notated\hfil\break {\tt~c44x3~d~e~f4x3~g~a~b4x3~c~d~\dots}
-\subsubsection{2-note tremolos}
+\subsubsection{2-note tremolos}\label{TwoNoteT}
A 2-note tremolo \NEW{2.80}is a special case of an xtuplet.
It represent a rapid alternation between two notes.
@@ -671,43 +680,58 @@ It is notated with a pair of
notes, either beamed or unbeamed, with the possible addition of from one to three
indented, disconnected beams between the two note stems.
Like an ordinary
-xtuplet, it begins with a note name, optional duration and octave level, then
+xtuplet, it begins with a note name, optional duration and octave, then
the character {\tt x}. The duration applies to the total time value of the
-two notes, and is currently limited to either a half note ({\tt 2}),
-quarter ({\tt 4}), or eighth ({\tt 8}). The duration may be dotted.
+two notes, is currently limited to either a half note ({\tt 2}),
+quarter ({\tt 4}), or eighth ({\tt 8}), and may be dotted by including~{\tt d}~after
+the duration digit.
Next comes a {\tt T}. This is optionally followed by one or two
integers from 0 to 3. The first indicates the number of ordinary beams
-connecting the two notes; the second, the number of indented beams.
+connecting the two notes; the second, the number of indented beams.
+
+The only other option allowed on the first note is to move the dot. After
+the~{\tt d}~enter one or two signed integers, where the first
+is a vertical shift in {\tt \bs internote}s, and the second, a horizontal shift
+in notehead widths. If the note has both a moved dot and a digit for an explicit octave,
+the~{\tt d} must follow the octave number
+
No other options are allowed, and some options are prohibited, such as zero
ordinary beams on anything except a quarter or dotted quarter tremolo. If no
-integers are entered, defaults are assigned: (3,0) for a half, (0,3) for a
-quarter, and (1,2) for an eighth. After a space, the
-second note of the tremolo is entered. If the total duration is a half or dotted
-half, the
+integers are entered after the~{\tt T}, defaults are assigned: (3,0) for a half,
+(0,3) for a quarter, and (1,2) for an eighth.
+
+After a space, the second note of the tremolo is entered. If the total duration
+is a half or dotted half, the
noteheads will be open. For a whole note tremolo, two consecutive half note
tremolos should be used. As with ordinary xtuplets, the horizontal spacing of the
notes will always be the
-correct value for notes with half the duration of the total.
+correct value for notes with half the duration of the total. If the tremolo duration
+is dotted, a dot will appear by default on the second note, and no~{\tt d}~should
+be entered there unless the dot needs to be moved, in which case the syntax is as
+described above for the first note.
Either\NEW{2.84} or both members of the tremolo may include chordal notes,
-using the normal {\tt z} notation described in section~\ref{chords}. Also,
-if the tremolo is beamed, the height and angle of the beam may be adjusted
-after making it a forced beam as described in section!\ref{beams}.
-
-Some examples are shown below. When two versions are shown for a given duration,
+using the normal {\tt z} notation described in section~\ref{chords}. If the
+duration is dotted, dots will appear by default on chord notes, and again
+no~{\tt d}~should be entered there unless the dot needs to be moved.
+If the tremolo is beamed, the height and angle of the beam may be adjusted
+after making it a forced beam as described in section~\ref{beams}.
+
+Some examples of 2-note tremolos are shown below. When two versions are shown
+for a given duration,
the first is the default. The following \PMX code generates the example.
~
{\tt f24xT a fxT a | fxT20 a fxT20 a /}
-{\tt L2 fd24xT a r4 | f24xT a f2xT20 a /}
+{\tt L2 fd24xT zefd-2+1 zcd-2+1 a r4 | f24xT a f2xT20 a /}
{\tt L3 fd44xT a r8 f44xT a r4 | f44xT02 a fd8xT a r1 f8xT a r4 f8xT11 a /}
~
-\includegraphics[scale=1.0]{tremxmpl3.eps}
+\includegraphics[scale=1.0]{tremxmpl4.eps}
\subsubsection{Rests}
@@ -732,14 +756,6 @@ option {\tt o} (for {\bf o}ff-center) suppresses centering a full bar rest. If
you don't exercise this option, then
{\it all} full-bar rests will be horizontally centered between bar
lines, including pauses ({\tt rp}) as well as normal rests that fill the bar.
-\label{MultibarRest}{\tt rm} followed immediately by an integer will generate a
-{\bfi m}{\it ulti-bar}
-rest, a special combination of characters between two bar lines with an integer
-above representing two or more bars of rest.
-This command will generally only be used in separate parts
-after having been automatically generated by {\bfx scor2prt}. However, it
-\NEW{2.4}may be used in a multi-line score, provided it is entered for the same
-number of bars in every staff.
The default vertical position of a rest depends on whether there
are one or two voices in the staff.
@@ -777,6 +793,20 @@ The option {\tt K} (for {\bf K}eyboard) in the
aligned horizontally with notes in the voice in which they are entered. See
section~\ref{Acommands} for a detailed description.
+ \label{MultibarRest}The command {\tt rm} followed immediately by an
+unsigned integer will generate a {\bfi m}{\it ulti-bar}
+rest, a special combination of characters between two bar lines
+representing two or more bars of rest. The integer will always be printed,
+horizontally centered. The integer in the command \NEW{2.91}may optionally
+be followed by {\tt n} and then another integer, possibly negative, indicating a
+different vertical position for the number relative to the bottom staff line.
+The default is 9. To put the number
+below the staff use -5 or -6. Once the height is changed it will stay the same until
+changed again. The {\tt rm} command will generally only be used in separate parts
+that have been automatically generated by {\bfx scor2prt}. However, it
+\NEW{2.4}may be used in a multi-line score, provided it is entered for the same
+number of bars in every staff.
+
\subsubsection{Chords}\label{chords}
Chordal notes, which always share a stem and the same time value as the
@@ -841,8 +871,8 @@ blank rests \bs{\tt rb} inside the force beam. So for example a set of beamed ch
that starts only in the
lower staff and ends only in the upper could be represented by
\begin{verbatim}
-{\tt [+28 g83 g g rb ]j /
-[jf rb g84 g g ] /}
+[+28 g83 g g rb ]j /
+[jf rb g84 g g ] /
\end{verbatim}
This example highlights some other issues, viz., that the beam height or direction of one
or both beam groups may need to be altered. Often this will require trial and error.
@@ -858,8 +888,8 @@ staff-crossing beamed xtuplets is more robust than for non-xtuplets, and will ad
more intuitive coding. So for example, the reverse of the above example, where
the beam starts in the upper staff and ends in the lower, could be obtained with
\begin{verbatim}
-{\tt [+28 rb2x4n g3 g g ]j /
-[jf g24x4 g g rb ] /}
+[+28 rb2x4n g3 g g ]j /
+[jf g24x4 g g rb ] /
\end{verbatim}
\newdimen\psav\psav=\parindent\parindent=0pt where we used the option {\tt n} to
suppress printing the number. As you might expect, more general staff-crossing
@@ -1148,9 +1178,14 @@ or {\tt <} . The last two are diminuendo and crescendo, and they are toggles,
i.e., the first one of each starts the symbol and the next one ends it.
The one surrounded by \NEW{2.76} double quotes is an arbitrary text string
no longer than 64 characters, which may include embedded \TeX.
-With any dynamic mark, you can also
+By default a single note dynamic mark is horizontally centered below the note
+to which it is assigned, or below the staff, whichever is lower. Dim. or cresc.
+follow the obvious extension of that rule to the starting and ending note taken
+together. Examples of the default positions of dynamic marks are contained
+in the file {\tt dyntest.pmx}. However, with any dynamic mark you can also
enter position shifts, vertical as a signed integer representing
-the number of {\tt \bs internote}s, then horizontal as a signed number representing
+the number of {\tt \bs internote}s, then (if desired) horizontal as a signed
+number representing a
number of notehead widths. There can only be one of the letter-groups on each
note, but there may also be {\tt D<} and/or {\tt D>} on the same note. These must be
entered as separate {\tt D...} commands, and must come in the right order, e.g.,
@@ -1164,7 +1199,7 @@ Hairpins \NEW{2.7} may span from one input block to the next.
There are numerous context-sensistive automagic adjustments to the positions
of all the dynamic symbols. If you don't like the result you can adjust the
-position as just described.
+position as just described.
Due to \MusiXTeX's limitations,
there are some restrictions on hairpins when using font-based slurs.
@@ -1282,8 +1317,50 @@ from its proper position by one notehead width.
Each voice must still have the right number
of beats, so you will probably need to fill time with blank rests after the
first member of the beam in one staff and before the second member in the other.
-There can
-still only be one staff-jumping beam open at a time.
+There can still only be one staff-jumping beam open at a time.
+
+ \label{Jumps}In most cases \NEW{2.91} it is possible within \PMX to set a staff-jumping
+beam that changes multiplicity right at the jump. The only cases where the author
+hasn't yet found a way are where multiplicity increases and the beam runs
+at a height between the notes in the two staves. In that case some inline \TeX\
+is needed. The example below covers all possible combinations of jump direction;
+whether the beam runs below all, between, or above all of the notes; and
+whether multiplicity stays the same, increases, or decreases at the jump.
+
+~
+\begin{verbatim}
+h4.4i
+w5.5i
+\\let\nbbut\nbbu\let\nbblt\nbbl\
+% Fixed mult, up jump
+[ g83 g ]j rb4 | [u g83 g ]j rb4 | [u+14 g83 g ]j rb4 /
+rb4 [j f84 f ] | rb4 [j f84 f ] | rb4 [jl f84 f ] /
+% down jump
+rb4 [j g83 g ] | rb4 [j g83 g ] | rb4 [ju g83 g ] /
+[ f84 f ]j rb4 | [l f84 f ]j rb4 | [l-14 f84 f ]j rb4 /
+L2
+% Bar 7 Incr mult, up jump
+[ g83 g ]j rb4 | [l+14 g83 g ]j rb4 /
+rb4 [j f14 f f8 ] | rb4 \def\nbbu#1{\nbbl{#1}\let\nbbu\nbbut}\ [ju f14 f f8 ] /
+[u+14 g83 g ]j rb4 /
+rb4 [jl f14 f f8 ] /
+% down jump
+rb4 [j g13 g g8 ] | rb4 \def\nbbl#1{\nbbu{#1}\let\nbbl\nbblt}\ [j g13 g g8 ] /
+[ f84 f ]j rb4 | [u-14 f84 f ]j rb4 /
+rb4 [ju g13 g g8 ] /
+[l-14 f84 f ]j rb4 /
+L3
+% Bar 13 Decrease mult, up jump
+[ g83 g1 g1 ]j rb4 | [u g83 g1 g1 ]j rb4 | [u+14 g83 g1 g1 ]j rb4 /
+rb4 [j f84 f ] | rb4 [j f84 f ] | rb4 [jl f84 f ] /
+% down jump
+rb4 [j g83 g ] | rb4 [j g83 g ] | rb4 [ju g83 g ] /
+[ f84 f1 f ]j rb4 | [l f84 f1 f ]j rb4 | [l-14 f84 f1 f ]j rb4 /
+\end{verbatim}
+
+\includegraphics[scale=1.0]{sjb291.eps}
+
+~
\subsubsection{Clefs}
@@ -1294,13 +1371,13 @@ vertical position, refer to the note in {\tt pmx.tex}.
\subsubsection{Arpeggios}
-To set an arpeggio (a vertical wavy line), simply place the command {\tt ?}
+To set an arpeggio (a vertical wavy line), simply place the \bs {\tt ?}
after the commands for both the first and last note. To shift the symbol to
the left by {\it x} notehead widths, use the option {\tt -}[{\it x}]\NEW{2.6} .
\subsubsection{Lyrics}\NEW{2.73}\label{lyrics}
-Lyrics depend on the underlying \TeX\ command {\tt\bs pmxlyr} developed by Dirk
+Lyrics rely on the underlying \TeX\ command {\tt\bs pmxlyr} developed by Dirk
Laurie, which is defined in {\tt pmx.tex}. It in turn makes use of the macro
package {\tt musixlyr.tex} developed by Rainer Dunker. So to enable lyrics within \PMXX,
you will need to
@@ -1365,7 +1442,7 @@ It may also be necessary to allow extra vertical space where the lyrics are posi
There is no \PMX command for this, but type 2 inline \TeX~can be used to insert extra
vertical space above any instrument. For example, if the voice is in instrument \#2 and
lyrics are below that staff,
-\bs\bs{\tt interinstrument=0\bs internote\bs\bs setinterinstrument1\{8\bs internote\}}\bs~ will
+\bs\bs{\tt interinstrument=0\bs internote\bs setinterinstrument1\{8\bs internote\}}\bs~ will
add \newline 8 \bs{\tt internote}s in the space for the lyrics.
Present limitations allow lyrics at upper and lower voices on the bottom two
@@ -1381,11 +1458,13 @@ Type~1 \TeX\ strings apply. To ensure that the length of all the Type 1 \TeX\
strings belonging to a particular note combined does not exceed 128, remember
to account for the nine characters in {\tt\bs pmxlyr\{\}}.
-This way of entering lyrics is a convenient interface to a small subset of the
+The sample files {\tt prad5.pmx} and {\tt netsoos.pmx} illustrate many aspects of
+this direct method for entering lyrics in pure \PMX.
+
+This way of entering lyrics is a convenient interface to a subset of the
facilities offered by {\tt musixlyr}. If more advanced features than those supported by
-{\tt\bs pmxlyr} are needed, the necessary {\tt musixlyr} macros could be entered as
-in-line \TeX\ directly into the .pmx file - see the example file {\tt netsoos.pmx} for
-some of those.
+{\tt\bs pmxlyr} are needed, the necessary {\tt musixlyr} macros could be manually
+entered as in-line \TeX\ directly into the .pmx file.
If really advanced features are needed (such as having several verses of lyrics
at once), most users would prefer the convenient interface to {\tt musixlyr} via
@@ -1401,7 +1480,7 @@ automatically be
transferred from score to parts when separate parts are generated by
{\bfx scor2prt} (see section~\ref{scor2prt}).
-\subsubsection{Repeats, double bars, forced single bars}
+\subsubsection{Repeats, double bars, forced single bars} \label{Repeats}
Repeat signs, double bars, and other bar-ending options are signaled
by {\tt R} followed by
@@ -1466,6 +1545,25 @@ digit and the next as a 2-digit integer, between 10 and 19 inclusive.
{\bfx Method 2.} \NEW{1.4} Enter the four numbers verbatim in the order just
listed, but separate them with slashes ({\it /}).
+\subsubsection{Bar numbers}
+
+ By default \PMX will place a boxed bar number at the start of every system
+except the first, above the clef at the beginning of the top staff. Numbers start at
+1 unless the first bar is a pickup included in the first input block, in which case
+the pickup bar is numbered 0. There is no way to change any of this except with
+inline \TeX.
+
+ There are several ways to modify specific aspects of bar numbering
+when blank gaps have been inserted (see section~\ref{Gaps}), or to continue
+numbering rather than resetting to zero at a movement break
+(see section~\ref{movbrk}).
+
+ If you wish to mover the bar number box at the start of any system,
+enter the type 1 inline \TeX~ command {\tt\bs bnrs[i][j]} anywhere in the
+system before the linebreak, where {\tt [i]} is the vertical shift in
+{\tt \bs internotes} and {\tt [j]} is the horizontal shift in notehead
+widths.
+
\subsubsection{Fundamentals of key changes and transposition}\label{transpose}
As explained in section~\ref{setupdata}, the intial key signature, also called
@@ -2065,8 +2163,8 @@ the {\tt M}. Options following {\tt M} are {\tt +}[{\it integer}] to insert
vertical space in \bs{\tt internote}s before the break,
{\tt i}[{\it decimal number}] to reset the first-line indentation as a fraction
of the line width, and {\tt c}\NEW{1.41} to {\bf c}ontinue bar numbering rather
-than resetting the bar number to 0. \NEW{1.4}Also, to change the {\bf n}umber
-of instruments,
+than resetting the bar number to 0 (which is the default). \NEW{1.4}Also, to
+change the {\bf n}umber of instruments,
enter {\tt n}[{\it integer}], then the number of each instrument in their new
order, then a clef-designating character for each staff of each instrument.
(An instrument's number is simply its position in the original sequence.)
@@ -2085,6 +2183,95 @@ them if the number of instruments changes, but otherwise not.
Immediately after a movement break, any desired meter changes,
key changes, or text can be entered in the normal way.
+\subsubsection{Blank gaps} \label{Gaps}
+
+A blank gaps can be insterted in the middle or at the end of almost any system.
+The middle gap might be used to create a very short coda at the end of a
+system. The end gap leaves the system shorter than the others. Both types
+create a space that could be used for text comments.
+
+Both types of gapped systems are initiated by an option to an {\tt L} command at
+the beginning of the system in question. The syntax is
+{\tt L}[{\it n}]{\tt S}[{\it x}] where [{\it n}] is the system number,
+[{\it x}] is the fraction of the width of the system up to the beginning of the
+gap, and no brackets are to be entered. This must be soon followed by a normal
+{\tt L}[{\it n+1}] command to start the next line. With no intervening {\tt LC}
+command (see below), the system entered between the two {\tt L}'s will simply
+start at the left margin and be shortened to a length of {\it x} times the
+default.
+
+To create a middle gap, begin as above with {\tt L}[{\it n}]{\tt S}[{\it x}]
+followed by the material to the left of the gap. Then enter {\tt LC}[{\it y}]
+to insert a gap followed by another segment of music extending to the end of
+the system. Here {\it y} is the fraction of the total system length occupied
+by the second segment (so the fraction of the width occupied by the gap will
+be 1-{\it x}-{\it y} ). The second segment must soon be followed by
+{\tt L}[{\it n+1}] to start the next normal line. Obviously {\it x}+{\it y}
+must be less than 1.
+
+Normally a bar number will appear at the beginning of the second segment after
+a gap. To suppress this, use {\tt LC}[{\it y}]{\tt n} to start the second
+segment.
+
+If you want to insert text into the gap, one way is to use the text-dynamics
+command after the last note before the gap:
+{\tt D"}{\it text}{\tt "}[{\tt +},{\tt -}][{\it n}][{\tt +},{\tt -}][{\it m}] , where
+{\it n} and {\it m} are the vertical and horizontal offsets from default
+position. Some trial and error will always be needed here.
+
+In a system with a gap, the default barline at the end of one or two segments
+of music will be a single bar unless the following line starts a new movement
+in which case it will be a double bar. If you want to change either of these
+segment-ending barline symbols to something else, then after the last note in
+the lowest voice before the gap, you may use the normal ``repeat'' command,
+e.g. {\tt RD} for a thin-thick double bar, or with other options for different
+symbols as explained in \ref{Repeats}. If you use this option, it must be
+immediately followed by a space and {\tt /} to end the input block. So in
+particular if you have entered some text with the {\tt D} command, that must
+come before the {\tt R} command.
+
+Here is an example \PMX file incorporating the different types of gaps,
+followed by the output it produces:
+
+%\pagebreak
+\begin{verbatim}
+1 1 2 4 2 4 0 -1
+1 9 20 .1
+Harp
+t
+.\
+h7.4i
+Abe
+h
+Movement 1
+f44 g a g f g a g /
+L2S.4
+f44 g a g a g D"\bigfont Hello"+8+8 /
+LC.4
+f44 g a g a g /
+L3
+f44 g a g f g a g /
+L4Mi.1+11
+h
+Movement 2
+f44 g a g f g a g /
+f44 g a g oC+1+6 f g a g /
+L6S.4
+f44 g a g a g
+ D"\bigfont D.C. al"+10+6 D"\bigfont Coda"+4+6 RD /
+LC.4n
+f44 oC+2 D"\bigfont Coda"+18-8 g a g a g /
+L7Mi.1+11
+h
+Movement 3
+f44 g a g f g a g /
+f44 g a g f g a g /
+L9S.8
+f44 g a g a g D"\BIgfont The end"+6+11 /
+\end{verbatim}
+
+\includegraphics[scale=.7]{gapxmpl.eps}
+
\subsubsection{Fractional bars}
Often if a piece starts with a pickup, the last bar may not be
@@ -2706,11 +2893,13 @@ Matthias Weckmann
(1616-1674). It uses many techniques peculiar to keyboard scores, most notably
two voices per staff.
-{\tt netsoos.pmx}\NEW{2.73} is an example with lyrics, including several inline \TeX\
-commands to enhance the layout.
+{\tt prad5.pmx} {\tt netsoos.pmx} are examples of how to enter lyrics purely in \PMX.
+They include several inline \TeX\ commands to enhance the layout.
{\tt staffcrossall.pmx}\NEW{2.74} contains examples of staff-crossing chords. Some are
-single-stemmed, some are beamed non-xtuplets, and finally beamed xtuplets.
+single-stemmed, some are beamed non-xtuplets, and finally beamed xtuplets.
+
+{\tt dyntest.pmx} contains examples showing the default vertical positions of dynamic marks.
\subsection{A Benign Bug}
diff --git a/support/pmx/doc/ref284.pdf b/support/pmx/doc/ref284.pdf
deleted file mode 100644
index 422a0b12f2..0000000000
--- a/support/pmx/doc/ref284.pdf
+++ /dev/null
Binary files differ
diff --git a/support/pmx/doc/ref294.pdf b/support/pmx/doc/ref294.pdf
new file mode 100644
index 0000000000..6161911998
--- /dev/null
+++ b/support/pmx/doc/ref294.pdf
Binary files differ
diff --git a/support/pmx/doc/ref284.tex b/support/pmx/doc/ref294.tex
index 0355f13e36..28c426f663 100644
--- a/support/pmx/doc/ref284.tex
+++ b/support/pmx/doc/ref294.tex
@@ -1,6 +1,6 @@
%%%%%%%%%%%%%%%%%
%%
-%% ref284.tex (latex)
+%% ref294.tex (latex)
%%
%%%%%%%%%%%%%%%%%
\ifx\documentstyle\undefined
@@ -43,8 +43,8 @@
%\let\blank\ \def\ {\blank\blank}
\centerline{QUICK REFERENCE TABLE FOR {\bf PMX},
-Version 2.84,
-February 2018~~~
+Version 2.94,
+Jan 2020~~~
\hfill Don Simons (dsimons@roadrunner.com)}
%\begin{multicols}{2}
@@ -61,7 +61,7 @@ characters, chosen from different lines that are indented the same
amount, may be used in sequence. {\it d1, d2} are single digits, so
for example {\it d1}{\tt[}{\it d2}{\tt]} is a one- or two-digit integer.
{\it i}, {\it i1}, or {\it i2} is any non-negative integer.
-{\it x} is any non-negative decimal number.
+{\it x} or {\it y} is any non-negative decimal number.
%\end{multicols}
@@ -119,7 +119,8 @@ a,b,c,d,e,f,g & Note name.\\
\ \ \ \ [+,- {\it x}] & Horiz. shift, notehead widths.\\
\ \ \ [s] & Fine tune slope of bracket for non-beamed xtuplet.\\
\ \ \ \ +,- {\it i} & Slope adjustment.\\
-\ [xT] & Start a 2-note tremolo.\\
+\ [xT] & Start a 2-note tremolo. Next note is 2nd note. If starting note
+ has {\tt d}, 2nd note must not, unless dot needs to be moved.\\
\ \ [0,1,2,3] & Number of main beams between 2 notes.\\
\ \ \ [0,1,2,3] & Number of indented beams.\\
\dhline
@@ -142,6 +143,8 @@ r & Rest.\\
\ [d] & Dot.\\
\ [p] & Full-bar rest using 'Pause' symbol (no digit).\\
\ [m{\it i}] & Multi-bar rest of {\it i} bars.\\
+\ \ [n{\it j}] & Put number at level {\it j}. Default is 9, below staff
+ is -6. Change is ``sticky''.\\
\ [b] & Blank rest, not printed (this line of music
drops from sight).\\
\ [o] & Suppress centering full-bar rest.\\
@@ -320,6 +323,10 @@ L{\it i} & Force a line break at line {\it i}. Voice \#1 only. Start of
\ \ \ {\it d1d2...di} & Numbers of instruments. Precede 2-digit numbers with {\tt :}\\
\ \ \ \ {\it c1c2...ck} & Clef symbols. Enter one for
every staff in new lineup.\\
+\ [S{\it x}] & Shorten this system to fraction {\it X} of orig.\\
+LC{\it y} & After L{\it i}S{\it x} and after gap, short segment of
+ length fraction {\it y} to end of system.\\
+\ [n] & Suppress bar number at start of 2nd segment\\
\dhline
m & Meter change. Voice \#1 only. Start of input block only.\\
\ o,{\it d1}[{\it d2}] & True numerator of meter.
@@ -337,7 +344,7 @@ M & Macro. If alone, ends recording or saving.\\
\ [R,S,P] & Record (store and execute), save (store but do not execute),
or playback. \\
\ \ {\it i} & Macro ID number, from 1 to 20. \\
-\dhline
+\newcol
P & Start page numbering in this page. Voice \#1 only.
Start of input block only.\\
\ [{\it i}] & Starting page number. Default is 1.\\
@@ -346,7 +353,7 @@ P & Start page numbering in this page. Voice \#1 only.
Default text is instrument name \\
\ \ [{\it text}] & Text with no blanks \\
\ \ ["{\it text}"] & Text with blanks \\
-\newcol
+\dhline
R & Repeat or doublebar. Voice \#1 only.
Doublebars at start of bar only.\\
\ l,r,lr,d,D,dl & Left repeat, right repeat, l-r rpt, doublebar, doubleBAR,
@@ -375,7 +382,7 @@ V & Toggle for Volta. Voice \#1 only. Start of bar only.
and it must come at start of block.\\
\ [{\it text}] & Text for start of volta. May not be ``b" or ``x".\\
\ b,x & At end of volta, boxed end or horizontal (no box).\\
-\dhline
+\newcol
W & Set new minimum horizontal space between noteheads.\\
\ . & Decimal point (required).\\
\ \ {\it d1} & Tenths of notehead width. Default is 3.\\
@@ -386,7 +393,7 @@ x & Floating figure (offset to right).\\
\ \ \ 2,3,\dots,9,\break\rightline{\#,-,n,0{\it d1}}
& Characters for floating figure,
arranged as in normal figure.\\
-\newcol
+\dhline
X & Shift or insert hardspace. \\
\ [-]{\it x} & Distance. Default units are notehead widths.\\
\ \ [{\tt p}] & Units are points.\\
@@ -421,7 +428,7 @@ X & Shift or insert hardspace. \\
\dhline
] & End forced beam.\\
\ [j] & Keep beam open, prepare to jump to other staff \\
-\dhline
+\newcol
][ & Between two notes in a forced beam,
decrease multiplicity to 1, then immediately increase.
Treated as a single symbol, set off by spaces.\\
@@ -431,7 +438,7 @@ X & Shift or insert hardspace. \\
\dhline
( & Placed before a note, equivalent to {\tt s} after note. \\
) & Equivalent to {\tt s} . \\
-\newcol
+\dhline
\{ & Placed before a note, equivalent to {\tt t} after note. \\
\} & Equivalent to {\tt t} . \\
\dhline
@@ -467,8 +474,8 @@ X & Shift or insert hardspace. \\
\dhline
,\break\null\ {\it note command} & Detatched 2:1 shortcut. Note will have
1/2 duration of prior note. See note name command.\\
-\dhline
-"\break\null\ {\it text}" & Lyrics. See pmx274.pdf section 2.2.14 for details.\\
+\newcol
+"\break\null\ {\it text}" & Lyrics. See pmx294.pdf section 2.2.15 for details.\\
\ \ [@] & Set a vertical offset\\
\ \ \ a,b & Above or below the staff\\
\ \ \ \ +,- {\it i} & Amount of offset, \bsn{}internotes\\
diff --git a/support/pmx/doc/sjb291.eps b/support/pmx/doc/sjb291.eps
new file mode 100644
index 0000000000..d00e4f363d
--- /dev/null
+++ b/support/pmx/doc/sjb291.eps
@@ -0,0 +1,1208 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.993 Copyright 2013 Radical Eye Software
+%%Title: sjb291.dvi
+%%CreationDate: Sat Jun 08 08:40:31 2019
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 38 451 442 745
+%%DocumentFonts: TeXMUSIXSPX-Regular TeXMUSIX20-Regular CMBX12 CMBX8
+%%DocumentPaperSizes: Letter
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: dvips -O0.25in,-0.22in -tletter sjb291
+%DVIPSParameters: dpi=600
+%DVIPSSource: TeX output 2019.06.08:0840
+%%BeginProcSet: tex.pro 0 0
+%!
+/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
+N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
+mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
+0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
+landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
+mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
+matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
+exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
+statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
+N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
+/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
+/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
+array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
+df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
+definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
+}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
+B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
+1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S
+/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy
+setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask
+restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
+/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
+}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
+bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
+mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
+SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
+userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
+1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/dir 0 def/dyy{/dir 0 def}B/dyt{/dir 1 def}B/dty{/dir 2 def}B/dtt{/dir 3
+def}B/p{dir 2 eq{-90 rotate show 90 rotate}{dir 3 eq{-90 rotate show 90
+rotate}{show}ifelse}ifelse}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0
+N/Ry 0 N/V{}B/RV/v{/Ry X/Rx X V}B statusdict begin/product where{pop
+false[(Display)(NeXT)(LaserWriter 16/600)]{A length product length le{A
+length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse}
+forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{
+BDot}imagemask grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat
+{BDot}imagemask grestore}}ifelse B/QV{gsave newpath transform round exch
+round exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0
+rlineto fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B
+/M{S p delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}
+B/g{0 M}B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p
+-3 w}B/n{p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{
+0 S rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
+
+%%EndProcSet
+%%BeginProcSet: psslurs.pro 0 0
+% This file can be used instead of psslurs.pro, it is only commented
+% and indented.
+%
+% VERSION: 1.01
+%
+% WARNING! This is a heavy magic! If you want something more understandable,
+% you will have to write it yourself (if it is possible in a stack-oriented
+% language that PostScript is). There are some constants you can
+% change and see what happens, but I think the slurs should be almost
+% always satisfiable. When not, let me know at:
+% stanislav@kneifl.net
+% Also any bug reports and comments are welcomed.
+%
+% Stanislav Kneifl.
+
+/slur@Dict 200 dict def
+
+% this dictionary is for \setslurtext, overriding some dvips's definitions
+/temp@xx@dict 4 dict def temp@xx@dict begin
+ /a { moveto ax1 ay1 rmoveto } def
+ /V {gsave newpath transform round exch round exch itransform
+ exch ax1 add exch ay1 add moveto rulex 0 rlineto 0 ruley neg
+ rlineto rulex neg 0 rlineto fill grestore} def
+end
+
+TeXDict begin
+% get dimen from TeX's string ("125pt" -> 125 PS points)
+/psxGD { dup length 2 sub 0 exch getinterval cvr 1.045 mul} def
+% get dimen adjusted to Resolution
+/psxGDAR { dup length 2 sub 0 exch getinterval cvr 4 psxAR mul 1.045 mul} def
+% Adjust to Resolution
+/psxAR { Resolution mul 300 div } def
+% the distances in dvips's PostScript are resolution dependant!
+end
+
+slur@Dict begin
+/CP /currentpoint load def
+/ED { exch def } bind def
+/psxAR { Resolution mul 300 div } def % stands for Adjust to Resolution,
+/VS { dup /ay1 exch ay1 exch linew mul 4 mul add def /ay2 exch ay2 exch linew mul 4 mul add def } def
+/y { 3 2 roll ax1 ay1 rmoveto show moveto } def
+/M { mul } def
+/A { add } def
+/SB { sub } def
+/P { pop } def
+/DP { dup } def
+/R { roll } def
+
+/drawseg { 0 0 moveto
+ ax1 ay1
+ ax1 0.6 mul ax2 0.4 mul add ay1 0.6 mul ay2 0.4 mul add
+ ax1 ax2 add 2 div ay1 ay2 add 2 div curveto
+ ax1 0.4 mul ax2 0.6 mul add ay1 0.4 mul ay2 0.6 mul add
+ ax2 ay2
+ x2 0 curveto } def
+
+/DS {
+ psxAR /maxe ED
+ /ifadjust ED
+ /ifdash ED
+ psxAR /m ED % max height of the slur
+ /e ED % "angularity" of the slur; 0.1 = very angular,
+ % 0.3 = very round
+ /aa exch neg def % what to multiply the height with
+ % AFTER the max height checking
+ /y2 ED % y coordinate of the end of the slur
+ /x2 ED % x coordinate of the end of the slur
+ /y1 ED % y coordinate of the beginning of the slur
+ /x1 ED % x coordinate of the beginning of the slur
+ /yr2 ED
+ /yr1 ED
+ /internote ED
+ /x2 x2 x1 sub def % x2=x2-x1
+ /y2 y2 y1 sub def % y2=y2-y1
+ /sx y2 x2 div def
+ /b x2 300 mul Resolution div abs sqrt psxAR 2 mul def % b=2*sqrt(x2)
+ b 3 psxAR lt {/b 3 psxAR def} if % b=max(b,3)
+ b m gt {/b m def} if % b=min(b,m)
+ /aa b aa mul def % aa=aa*b
+ /s 90 x2 y2 atan sub def % s=90-arctan(x2,y2) slope of the slur
+ /aa aa s cos div def % aa=aa/cos(s) height of the slur
+ /x2 s neg cos x2 mul s neg sin y2 mul sub def % x2 = x2*cos(-s) - y2*sin(-s)
+ % is the length of the slur
+ e x2 mul maxe gt { /e maxe x2 div def } if
+ /beta e x2 mul aa neg atan def
+ beta 90 gt {/beta 180 beta sub def} if
+ /ax1 e x2 mul def % control points
+ /ay1 aa def
+ /ax2 1 e sub x2 mul def
+ /ay2 aa def
+
+% check if the starting and endin vector stay in desired quadrants
+% => beta < abs(s)
+ beta s abs lt {
+ /b aa abs s abs 2 add sin mul s abs 2 add cos div def
+ s aa mul 0 lt {
+ s cos 0.75 lt { /ax1 ax1 b 1 s cos sub mul 0.5 mul sub def /ay1 ay1 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+% (values to play with)
+ /ax2 x2 b sub def
+ }
+ {
+ /ax1 b def
+ s cos 0.75 lt { /ax2 b 1 s cos sub mul 0.5 mul ax2 add def /ay2 ay2 s cos mul 0.8 mul def } if
+% ^^^^ ^^^ ^^^
+ } ifelse
+ } if
+
+% align the slur to the staff lines
+
+ gsave
+ x1 y1 translate
+ s rotate
+% [1 0 sx 1 0 0] concat
+ drawseg
+ gsave
+ initmatrix
+ flattenpath
+ pathbbox
+ exch pop
+ sub
+ /slh ED % in slh we have the height of the whole slur
+ pop
+ grestore
+
+ /yr s aa mul 0 ge { yr1 } { yr2 } ifelse internote div def
+ /slh yr slh internote div aa 0 gt { add } { sub } ifelse 2 div def
+% check if the slur gets too close to staff line
+ /shift 0 def
+ slh 4.45 lt slh -0.5 gt and {
+ /slh slh dup truncate sub def
+ slh 0 lt { /slh 1 slh add def } if
+ aa 0 gt { /slh 1 slh sub def } if
+
+ % slh now contains the position ot the slur top/bottom in the space
+ % between the nearest staff lines (from <0,1>), regardless direction
+
+ % slur is too low:
+ slh 0.45 lt { /shift 0.45 slh sub def } if
+ % slur is too high, but we can be shift it down:
+ slh 0.7 gt slh 0.85 lt and { /shift 0.7 slh sub def } if
+ % slur is too high, must be shifted up:
+ slh 0.85 ge { /shift 1.45 slh sub def } if
+ } if
+
+ aa 0 gt { /shift shift neg def } if
+
+ ifadjust 0 eq {
+ /shift 0 def
+ } if
+
+
+% and finally draw it...
+
+ grestore
+ gsave
+ /linew internote 0.06 mul psxAR def
+ linew 4 mul setlinewidth
+ 1 setlinecap
+ 0 setlinejoin
+ ifdash 1 eq
+ { [internote 8 mul psxAR internote 5 mul psxAR] 0 setdash } if
+ x1 y1 shift neg 2 mul internote mul 4 psxAR mul add translate
+ s rotate
+% [1 sx 0 1 0 0] concat
+
+% uncomment this to see the control points
+% 5 psxAR setlinewidth ax1 ay1 moveto 0.1 0 rlineto stroke
+% ax2 ay2 moveto 0.1 0 rlineto stroke linew setlinewidth
+
+ drawseg
+ 1 VS
+ drawseg
+ -2 VS
+ drawseg
+ x2 20 psxAR gt {
+ 3 VS
+ drawseg
+ } if
+ x2 50 psxAR gt {
+ -4 VS
+ drawseg
+ } if
+ x2 80 psxAR gt {
+ 5 VS
+ drawseg
+ } if
+ stroke
+
+ grestore
+
+ % now some \slurtext code...
+
+ /x1 ax1 ax2 add 2 div def % middle of the slur
+ /y1 ay1 ay2 add 2 div def
+ x1 s cos mul y1 s sin mul add neg
+ y1 s cos mul x1 s sin mul sub
+ aa 0 lt {1} {0} ifelse
+ end
+
+ % this is a hack to place the slurtext in the middle of the slur.
+ % From unknown reasons simple 'ax1 ay1 translate' did not work,
+ % so we have to overlay some definitions with our own, namely
+ % 'a', which is originally 'moveto' and 'V' for drawing rules.
+ % maybe there are some other operations that should be redefined,
+ % but for almost all cases this will be sufficient. If you find
+ % anything that won't be typeset at the correct position, let me know...
+
+ temp@xx@dict begin
+ /dir exch def
+ /ay1 exch def
+ /ax1 exch def
+} def
+
+% crescendos
+/DC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 psxAR ceiling setlinewidth % line thickness: this results
+ 1 setlinecap % to exactly 2 pixels in 300 dpi
+ 1 setlinejoin
+ x2 y2 10 psxAR add moveto % the 10's specify wideness of the
+ x1 y1 lineto % open end of the crescendo,
+ x2 y2 10 psxAR sub lineto % similarly the 11's below
+ stroke
+ grestore
+} def
+
+% half crescendos
+/DHC {
+ /y2 ED
+ /x2 ED
+ /y1 ED
+ /x1 ED
+ gsave
+ 1 psxAR ceiling setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ x2 y2 11 psxAR add moveto
+ x1 y1 4 psxAR add lineto stroke
+ x1 y1 4 psxAR sub moveto
+ x2 y2 11 psxAR sub lineto
+ stroke
+ grestore
+} def
+
+% differenced line
+
+/DLN {
+ gsave
+ psxGDAR ceiling setlinewidth
+ psxGDAR exch psxGDAR neg rlineto
+ stroke
+ grestore
+} def
+
+% sloped line
+
+/DSLN {
+ gsave
+ psxGDAR ceiling setlinewidth
+ psxGDAR exch 1.125 mul neg rotate 0 rlineto
+ stroke
+ grestore
+} def
+
+% free line (init & terminate)
+
+/DFLN {
+ gsave
+ psxGDAR ceiling setlinewidth
+ CP moveto
+ lineto
+ stroke
+ grestore
+} def
+
+end
+
+
+%%EndProcSet
+%%BeginProcSet: texps.pro 0 0
+%!
+TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
+index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
+exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0
+ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{
+pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get
+div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type
+/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end
+definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup
+sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll
+mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[
+exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if}
+forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def
+end
+
+%%EndProcSet
+%%BeginProcSet: special.pro 0 0
+%!
+TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N
+/vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N
+/rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N
+/@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{
+/hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho
+X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B
+/@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{
+/urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known
+{userdict/md get type/dicttype eq{userdict begin md length 10 add md
+maxlength ge{/md md dup length 20 add dict copy def}if end md begin
+/letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S
+atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{
+itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll
+transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll
+curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf
+pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}
+if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1
+-1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3
+get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip
+yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub
+neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{
+noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop
+90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get
+neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr
+1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr
+2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4
+-1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S
+TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{
+Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale
+}if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState
+save N userdict maxlength dict begin/magscale true def normalscale
+currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts
+/psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x
+psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx
+psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub
+TR/showpage{}N/erasepage{}N/setpagedevice{pop}N/copypage{}N/p 3 def
+@MacSetUp}N/doclip{psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll
+newpath 4 copy 4 2 roll moveto 6 -1 roll S lineto S lineto S lineto
+closepath clip newpath moveto}N/endTexFig{end psf$SavedState restore}N
+/@beginspecial{SDict begin/SpecialSave save N gsave normalscale
+currentpoint TR @SpecialDefaults count/ocount X/dcount countdictstack N}
+N/@setspecial{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs
+neg 0 rlineto closepath clip}if ho vo TR hsc vsc scale ang rotate
+rwiSeen{rwi urx llx sub div rhiSeen{rhi ury lly sub div}{dup}ifelse
+scale llx neg lly neg TR}{rhiSeen{rhi ury lly sub div dup scale llx neg
+lly neg TR}if}ifelse CLIP 2 eq{newpath llx lly moveto urx lly lineto urx
+ury lineto llx ury lineto closepath clip}if/showpage{}N/erasepage{}N
+/setpagedevice{pop}N/copypage{}N newpath}N/@endspecial{count ocount sub{
+pop}repeat countdictstack dcount sub{end}repeat grestore SpecialSave
+restore end}N/@defspecial{SDict begin}N/@fedspecial{end}B/li{lineto}B
+/rl{rlineto}B/rc{rcurveto}B/np{/SaveX currentpoint/SaveY X N 1
+setlinecap newpath}N/st{stroke SaveX SaveY moveto}N/fil{fill SaveX SaveY
+moveto}N/ellipse{/endangle X/startangle X/yrad X/xrad X/savematrix
+matrix currentmatrix N TR xrad yrad scale 0 0 1 startangle endangle arc
+savematrix setmatrix}N end
+
+%%EndProcSet
+%%BeginFont: CMBX8
+%!PS-AdobeFont-1.0: CMBX8 003.002
+%%Title: CMBX8
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMBX8.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMBX8 known{/CMBX8 findfont dup/UniqueID known{dup
+/UniqueID get 5000766 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMBX8 def
+/FontBBox {-59 -250 1235 750 }readonly def
+/UniqueID 5000766 def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMBX8.) readonly def
+/FullName (CMBX8) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 49 /one put
+dup 51 /three put
+dup 55 /seven put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA
+0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93
+51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71
+7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551
+E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078
+0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273
+C01924195A181D03F5054A93B71E5065F8D92FE23794D2D4350D67F24B396427
+8808B79FF5CAF896E4A8A31E46499CEE35E6A5AF0CFD175C2DD628620C681947
+A02A01D3C2B715AB79D7FDAB638D887B77DFFEC5C3A9484104D84FCECC7296CE
+2A3488AE246E233A8D5B40ED5DCC44558B77422BDE47E0435F960EEC3A26DA9C
+E137555F0638511AAA14992C8DDA9A4A11B3F90BD4DAAD1883BBEC357DBD8389
+16EBE2AA8F93C2AD44F383ABE13B8C95B240563FAB987EA98794D301785E1E9F
+03DD545E51A6D58B3618E0750208D3AB913F9CE8C3B865D4CB83B90FB24962D6
+142B0204A1E271854F903A2FF600E087EE2FC222326051F155BE709B3E7A808A
+487B8AC3CD7D2EAB52C2ED68285F962D06677C2A5015A16B3D12D15D658D89E5
+18513C020222D1A995EA14D7D9CCAC4A552172146B53AA4DCF6DD217B61CFE98
+1E14709295D97DC8B168AFBBA9990F0BFB9F72A5305570A1848A9E2CCA702C77
+DF4F414CDDA4FD7DA25D9B09F05A77F37F1496F2601AA5FBE9B52C1C16FBE860
+A3FCA20DCAA3BBADDA16304242A306400D2BEC9BA12788A5AE0E0CABDCF565BF
+474A615DB6A14695E6C7288DE0B852EB91153F8A337E66DB5CB43E8234589F00
+4868530A5216CFCFA0DCDB92D6BDB092855E9BA80682D5679EF88F3152E8C2B9
+E38D0D6F26276BC74B8664E13D4B388124C88D19FFD2448E2743BC02AEB14694
+1AC48CB776F8526FA416549A3C35616E8FA5632AA0D557B90C5CF40BE1B62325
+97E45F7EC4F04CBC178B72A195912CD18498098C901CD35834FD6EEF765CB292
+5A753BAACA557BEA0AF989BDEE0F0C5DF8177084AFC20E7A78BFA536DC28E9DA
+FEBFF50E908CA6B5DA15D3CC28A00DBFF8A1D7FF0D82F2A397C0B8B23F959C99
+63BFBA5FC83D7F51CD0EA2E2C925F7F4AAEEC8A0483F50E02E4C0373FA4D7891
+3EDAB498C44A259B6A2E3E176143C12E25C7B880E2E6B96592BE77AEE1190C74
+35F4BA28952C002AB6B3A4B0BD9054855CBDC143CA9D20D20EB111A030D1C979
+86BDE77F3BB47918F4A456513EDCB90B7CF72E97296FE07F51D0DF8C9E666024
+69C209E6A4A5343F3DEDB6F09B06297505F8F8AC2AA857DC545E030DC9337FBC
+E48DC186C5DB047D0FF564B444054F7664AC72B7C39F39959BD574C099562FAF
+9832B2260D4F1E9FE64F6BE5243308B57499B6220EB4431A53E8D9A3C6BDF5F3
+8D7EA0754D363E897EC68D7E45DB4635D3E7D7176C8C364082D1D6B00D9A7AEE
+5E978FC3AC4D9D73E8FAE3086930DA11497F8867E01CAE42CD9D7D1558DA4694
+48501C4729614948B9DD2065E5F13275325302C24E28A22AC2F33304EAE0A317
+FE51288D91EFB7AF68B8B9C3BE1294CBC390862BC28463FBBD62A32E0AE3344C
+5F96E2343E5E1662E5626C6014E1F0E661126A00E1E24A4F7A2546C37B701BA8
+F18F93372B48893E3C0449CEA14D228BDB8FD17256DF2FE0767661F6A3972DA9
+33C746E2AFF1EFF2B44159CFF6A570C10260751299D8A30A3BC19239C9FE0DC6
+BAD2AD2558223FF4CA1B672426EBC422A12514F67D9152099848B13E131C0E90
+9037A6DBEC1CB183720F78C37D5EE5BFE81FCB2F615A9595791C6F56210C84FE
+62FF6F5F15B866C686D8881212D7B3F4342FD09FC1E4874D35DCDFDB9D506D5A
+06E5DB61F496E70C8E8B145B9BB951B2160B6FE86EA7AC1671BC40CDD866A9DB
+3103E91EB483E5BE3C037F2D2388A44D8154B216C433FB85231DA4F55D3D4A8E
+7FDA4387923679067F13454B02D9F2E2B030FD62C0750576F32F090E9A054DBF
+4BBB729B94162C080ECD81F2DB2BD1D65C1D50CE414D0FFB4C7E994B65177F04
+E786CACF71A5690F62AE3AE57F43247B8392D2BBD4E61262EA0CAD3868F33296
+BC7002271448E865DED4324FCD923313969D1355A579F918E6225955A2BD5B7E
+C2A0E02809102F295895722930FCCCE6E8DB301635221B57FA589533C2C3BEC4
+9B1958680BE6102180C667E4984C7B9250C5BB231F8E443B98EF07FAE3AC29F0
+B4CC4BE8A3DC0058FB2CCEB90262FC959D5ECC3A887E10E1E43FAE7DFBDE4882
+BA9035B38BB0F69F8659C0094EA643DEBCACFC8EB5C73AA25A1B83B2DA2D1D47
+29A27B554BB9A762D020EC05001DC8559E096F82581B248AF95D6F12FB73E4E9
+58BFF246EB803809F561F8E17E6B1B7B1472FC342761EF29FA2C3890FEEB96FF
+6B1A173A74A2A61837BE90AD9574EFD8D65602C63C560DEFBE5F0C1F8250E66B
+E7A8C1A68E8445CF67F672E2F11583F70E77F479916339FA7E5672DFD1907CAE
+45A5DBD35C535D903442EECF453495A6B256DC635941A6781C426A2E12BAF3BB
+73C147A74DDE4925D642BB73D9F2608554D967A0944D38CB29F984379073F6B2
+77301EA7AD503121EAA1AF349D72677869515D0E537AD762304A6A5CF31E8431
+D053D4A1B6C03A4DBE6BDAE2312FBC65F18FC8F4AA546FA69D09DCC722CEE1DA
+E02B6F69B69F675AE544ACAEFCDE959350E1EB6C45C162E08E153D1F3151AFF7
+B539D0834CA4B87B06732D5EC077B37373348A5CD7B39811286092ADBDD86931
+3F6867AC5D53E565234847205FEDC23BC1E1166CA113787DEB72AC251FE7FD1E
+250557284E533F3B2DA3BB22AFF13428D2537BBAFB70734A7FDDC68AF58A9D3F
+DD456ED2E4A0A89C6E22080101412164A955748ED5E689308C96FA5D23D63513
+5B8890A57983C9DAE333B38ADFE356C6CD6BB865C493151B24B9A1FC4D66C491
+12E8637906EBCBD60E76227E8847112135CE4FFB00B396FE3DC237292B8D2EA3
+03B263C1B6CDA2719C0D99B6CEEE6C86CB397C4D0C058BC2EE9D6298612D01BD
+31531819BFC228868453DB8EB836AF2394D45A222A21EBDE795E558E84A277F7
+D8591ADCD9E16C34201CB0D0FC1FE62FB107D53DA0D95F61A9A55585A3D106B5
+48B258A35D3AF66995A9DEE4312C0DA4C91CD3AA7FFBB7A5278FACBA05E5BBA0
+F936BC210EA4E107EB883DEBC83BBA0798B665F2DAF2BCFC00D524930B394187
+4712AC73DC2F901BDA21589E9132A50B6F16FE8C6153209BDEEC9025C3C24035
+F8623B3CDF420E064D2D3F1BEDA64E39C8482972C96B38BF7D25C1025A9DC57C
+40BE36086161C419BE1B0CB4B653DB07FA28934C41AFE90152A14AF2688FB6A0
+71AEB8175EEA7775C13F2B7C598C30E91EA8DB07ECDDAD64E40A8C8FAA3ACCAE
+ECD1296AB2075DE150F10502847E970256A70B7329834B1D80D40AC5C8DF55DD
+E3922D85820114F898F87E644EB8F460BFCFF752B635B6D08F46AEF2123A2E86
+913CF1B45DD2D01B8E560EC04230CC8DE7C78EA2970C224B371777430ED41B02
+63C87C9B29161341DAC785F547C2E6256370BF3BD8D7AEC72F6F9A4BDDFB6EFD
+45AF0A366B9387A4CD9164326B997BCDCFFE0D25D88E22888889D8E47C5709F7
+CAD17E0DD435B20E767B31521E9E14ADE57C7C9CDC2FD7D09DAF912F6C5CDC34
+6362133B50B8E5954814EFAE6AB8D004AF3CBE097BB0F61FDF1E10170F4EA28D
+CD93B802BE124A435403D3BAEBE8C1131718579194420AD650A3986AF9220363
+75155975B60093A9A6CD171834B2E39629041BEDA7CFAC7BA6411A206B09DD78
+CFF14E36304B7FAC838FEC6E4AC6847C6CEC1559B41D81383017668DD230C98B
+C317B08B199C270FEAF50868DFE6AD4243EAEB67590855074A248CEF8F64DB80
+D5CCAE6445AE92150058660E861467D0CECF61DCD5D4062CE9DF07CB098B90FB
+6CB59553A0956BD6339CAC2FA9C519C46AE9775672DD69D33C0E6D7F626EC2D5
+85070A68A450227CD535911F9E0CCD1BA379C750CD10C4190EC8B979C1E4ECBD
+DE2836E85616406FC2DFDA7E27A411276AD1B3900453DC3AD85C7A9BE51CCAEE
+315E3E5C31F8E6962721DA166B9660C8087C1F1ABD77950E061A2D924FBF4A89
+3FF5C570ABAC5EED011D2BF94BC1268EE4F2A2CCBCBA29FBCC4B186A3FCDDDD3
+B462305EABECBFD279C9860D5E490EA63D9231638E06EE8D58EE6E926C4A3D3A
+C5E957A20F1F99FA05C43BC4D1918DA051656EEF0C498748879BA4258DD73CAB
+0F32F20B98014C2B14A77186E43470F0182828955730F440493D34B0877065A7
+6E7B704B27F93DAD747DA77109C541A15F08A694A703E6E7C62BD0A86331EE79
+6C18A6C38923B88BF83BF212C76BA6EAC620CC859F0365F5511821261CE29DC2
+BFEBDE0CD36F0052692C9945077CD606E4841CB991D3C3DE9BE28EC7CBEC2FA6
+75984071CFDFA8857CCDF9005AA8FC549EF295DC701260CB4A5CE8FA0F439B22
+BC2C19D3C14E7B2B6B41AAA158659C307D9C91C2B12331BE152D3EF8FD324B9F
+8C3B74D553AADE2B0E89805F47FA2DF36766B8DF01CC2B6B44344BF4B11C7FD3
+186662A11137448ACE7D3F4CA515E0BEC21859D2BB5A25F67C48817404DFA0CA
+7B3D11495250150C6A1E32B80334E8F5C52D4769C8BDF3E6E3DA4FF1BC97E009
+A1AFD195205FC741837F21CC2942CC8322F3D6AAB6D330E6CE120E1A15E91987
+AD98FC12019A945B215BC72768F32A7635AB0F0E6E185AC7099F1A0EAEEC5FA0
+341EBECA077B25102310331CA87B74345506156CA5E853728217608416EC8173
+2D24CEE766E2B3B0BE183CF2A8B794E0E0E91C11D59B98DF5F4E5EA119F197B5
+D8800744F9FD45015FCF5E740105ECE72AB5AB7E1CFEB15807A0D1CDE00A44AD
+E94EF57AB546990A691FB2E24CB55477B7FAB6F12A28676DB7ECCC014AC70C80
+9199E921F449C232EEB88268A48DD86FCFA2E29FB450FEC618E9E317F4AACC68
+C51EBDB1B9E43F7574B40C0EB05E769D30F1C172645006D799E8C3D7C79DACD4
+FD269ABF9B24B215B534365D79535AE3578D714606D22AAA5A2039FE7A5DD52E
+506D293824BEF78F5E1C7228FF9097FF5AE8CB7B46E69C72FB43EEA7110A9EAA
+546E9975C54CFD56022EB1B21E00CEC393DFA488C49C90E73D57CAB0324E36CD
+0D2F0F0641DC3785CA9BFD680D609392CC2F852056E90276DA93043B14F30BDB
+C32808FCF16CD13E4A13B727BEB4FD42B29D6C215AF4811B965822960F6D7CDE
+92BBB8FB84B59075FC14075C30CEFD9D095ADD8043FD12452D3C5E4EFABC9671
+6E929D5932C337969F3F5448A2BC8001ACDDA043EE975F35E64D7436FB73B197
+697E87860E071F326C7080E9C2930CBA600C6875ECFA85DD4C3741945004B3C3
+298F2B741302E0FD39D990F20D68542B2FD0D71F52DE1ADF30FFA332306360C7
+C6BE3E6D510A691029D503FBFE96831D332831C69B590025C831281881968B86
+42817BFDCE322355F994FA9C8BE68A9222CC09AF9AB2AAE8BCFDEB69B8481CB5
+75E66873B08A4E8265F369448F0E3BC0C82D82F65216D0C93DE88322EE7D0FD4
+1089A1D6CC3B52F681BAEADB1C82EC3B82949C27C6C340BE7E27020015CF142C
+37DC3BA8E4EC2A4FA81E50EE6854C23B3EE301E43D83CF6B82E80ABAA01EC82A
+36CFE930297EE3A45783871EC4E77DCCC0923A9FB1654406FC8070BDADBD27D6
+0BA8837A459481ECB63F03DC3007700D360643864AFB3728C5573A20870E5D55
+4F698DB4B5610C30876DE56786D84C71AA9FDD5198B4F3F8918AF319B7FCD04C
+F06C90B2CD0CF2241C2055DB68F1CA5CD57990E68F6F832A5820A481B0823F98
+0F4BAE4D7E92F4F2BC118E01ADDB7D527E6BB49E85D37D7E0BE7BEFBD1BF9E1B
+9ECE91D28E664284D190010D1578C1F61F02610A9AA6E9527872276E59A25362
+68F74B88959CE84F497D8D89735413981FE4EF573E4E0C02D3F0EED5FC100A4A
+563949D21A3E29D86A84C9F945602D9EDA860C6C44492EF219DFEBCC016FA7A4
+AA12A727D4E218D22805E5EC878AEA7D8B5D79E84E74E78FD9E017FEC4220A7F
+9ABCD125BA6E9D378BDC19D0B267A323FDD0831C5E7EB7D4A5CE7047F272D3AD
+1E25F7C5327127A058C287FEC98BD81144447D5BF73C56472E552C7B1AAF6705
+05286122B612BF5A2AA8C4A6CD64088BAB59B008A43121FBF5692418FFCFAF05
+260D6EB20C680BB73F3988C3E4E3CEFC65BA637FDFBA60E6D9D63E6C7FE196F4
+412367C1F43343EC6FEE8F97FA0E95BF1BC2C15F14CB6C8E8B28248B5EBB6478
+FDDA9D183AFF6A63145824E518377F384740984DC6095FCF3F8B777DD23A221B
+AB1ED5EE27C19941184967846B8800E489E1B86F23ABC34237502ABCAF092C77
+38A1720A851E8EED24BFEC9AB4C8D4D7FFC3ED0C1CF4FC73B962EB53725DB67D
+983A8C2B9E30F4F85AFAA17D86EEFD57CB17BACFB8BB2204E7CDAC446C679226
+F21D1A5CF2EA719888BC727725346D58479B69213F9EC3520B9C3A1778061AB0
+3B330514114833525D40B3F7F45EE401534732803B807953EE20C9660FB790C2
+71513A220EBE1731295B205324F275FE110D60A77CBB43441472193570E67BD0
+E97D51AEDD94B4DA0D71DE66E18F22F1E6CCB81D1DAD113125743D82DD4BBC8C
+190BF7073078FB1235E8A329EC3C69E3D25B37B1BCBDFA50D0C34BA486AB50CE
+0F411AE5DDD05BF3ABA16151A06D566860A08B2C634786C823D615BE622BC8DC
+36FADBEE389BA4F7A5A32BBAC6403282F02E92ADF11C14F45B51D579631F067E
+09C17ACC247837A8B6F66C66574F91317CC12C73D09A75B80CFD11993FEFCED9
+859D36B55033A149ECF0A845F611FAC0A8DEE32B407091C0233808C79857C2C1
+540A530EBFAE98C5D51C955D02FE62C8F207C97D614636AF826A7F2247E56B54
+3B496509DEDA8A277F0100A94376F5FF85586C6721F65F3F6BCF8B19CAAF8E4A
+EB16AC97AB71C32FD3DC9E7F1CF02D29ED516BE9F8F0BA027C68A5467A91338C
+CB52C099EC4FB72775138197BFF472B4FB75B84D5D45824A705412F13EC5A2DF
+363D37E7ED7DEBD14AB754B8F7C829998351F76E0660BBBFAE6DE96BEA394965
+F14D65CD28C593B5056D41FBE0780AE9AFE5F697D3F41FD750D327F5DC23FE02
+1DC31AC1DC74721C939D38710BB1BE55E895C2181365CD2BF61E8B59023253B9
+7694B2215942A702B855A0102029229F2CFB8EBDED2BA9B723CD915E0CF54FD2
+D8B4CA2A0BD43DEB478AC342F292FF590B2FDCFEB7195BA687A7C7D4E17D5E06
+EDA0D7F0195D255CEA7288396CB53A961DC4EC29F949EA8AA48DBFD6BD2BC7C5
+7019E26D342B8BBD0AD9D48E689550DC1FD581EB0D6E4156D107E116D9326BF7
+E29F3479790283C8FA5AD1BF8562D11A26F81783E7B9CB3C74EDB9A2BCEE56F0
+0A6FF68026B320FAA86EF294C07F310B832941D400337C0A1C8DD466F2AEA9C9
+7284F09CF01CB6D17E333AFEAB84DB7E5451829DEE0B97F8D4037877EB32BE6C
+871C9B477865AFA9BECE34891B81B4416BF1C82CEBFBBB6757B7032E04E2ED10
+38DC59E06E65379DF10372264804733507A929783916D02CF3158E4AEC0531EB
+95502E07ECAAAE6EF0E70EE934263D6C8404739F468228484BC5BF2EDF9BF06C
+D5CABBE2E28975711AD2F485846A92D22DB307ED63FDF99120684837B21AE421
+751B4681AF90A153AE3B977850AF1B7FADFB4A0D074AEE539DD1B553D99CF869
+0D589B7C27086CD89458E78A94E33C2610617A56771E56B146D9143488B01742
+017A7EE0444948173C783DB8643039B61CAE1D863047ED474E47A1CB49DC43DA
+0099D2BE926D5C8CE61D98B0DF3B532AAB90EE57BC17191EF4119FCDB991ACE4
+B124110BEAD7BC80EC8A205638E2727D8464AFE44C65F47D33F454316DD87FAF
+A1C93E7C6C1E357F3E111E41706635476A360F789F0153DD8DBBFD19826BDB1C
+AD807F7DC8E2E5E5B899A3736AD5B763730B56580EEFF4344C817F5F957D846F
+DA451E88904ABC2AB6D91D65C09AD057E2E5C57B50489AA55AF46A636EEEE6A6
+2B82261A04F36F8C26048328571475A5ECCECB8C037E41A8BC22D608EDFB2675
+103CDFFB44F1BD1BF9637A67426BE60C51F6BC9D02B6197A1E65FB3707765DD6
+051AE76C812DDB88EA1E9AF29946B09CE34557DBDEEBF27F8972F32EB1E49D39
+8EAC824980A6AD3851F565B89F2BABAA5C69FBF7A7ED299E5DA6274584F3FEA4
+C818B0A3812B71F88C93CEA8C1D67B685B1803C2EE03B6F0CF79820167529946
+9CBCCA3814BB486957BF0E45B1A09A0807E4875A871100A4D713909D5474851D
+06BB8370E5CFF0B6882CB65C9B0E399E01E19CC5555CDE7EFEED41A8AE2CCFC0
+8A3A43C83B60B75F64FB3A49E7E107E23C6FB6D2E8F9215AD057B865B6F1387B
+CF5AB90034AD44AA5B4E6563C9A09B80ACD4D02979DB3D8F5E0D23B3E134C7F6
+49BC4680FBA5F712EB64AE9E2FA55E8C31366547A301014AC3A79F99A94D8441
+F3E70866721B078B8FB1ECA1A24E43B98BF26A44FA3467A34F3B0D824E7D5E0E
+C15640A00C3DAAF5D159D85A4798EC66446F1369C9039FF1F99246C35D87034C
+83F663664B5A0B9C50E3DEAA6E9CB3DA6152EAFE8C93ABCFAB27EEA07318E63A
+222508B6999F6CC8AD0A04FB5C6175D5C071D9FF0C3B46AF9B345CF1F4D68875
+860DF221AA5CBFB0AC73453651796545F6DDCA5435EC7E38809EEE9F56928E9D
+0C19D53FCE2DC5084999A0A912787486FFFDB857B3A855E81F9B4D551F4AF2D8
+27AA078CE1015FA1B5FCC44D9031A03B889AC9BAC1FC08F75D35289889BE0A07
+EC27C07E65D9C791001742DA
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont
+%%BeginFont: CMBX12
+%!PS-AdobeFont-1.0: CMBX12 003.002
+%%Title: CMBX12
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMBX12.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMBX12 known{/CMBX12 findfont dup/UniqueID known{dup
+/UniqueID get 5000769 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMBX12 def
+/FontBBox {-53 -251 1139 750 }readonly def
+/UniqueID 5000769 def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMBX12.) readonly def
+/FullName (CMBX12) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 50 /two put
+dup 52 /four put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA
+0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93
+51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71
+7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551
+E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078
+0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273
+C01924195A181D03F5054A93B71E5065F8D92FE23794D2D43A151FEE81296FBE
+0CF37DF6A338C826464BA5198991445EC4BE80971DB687336AE8F74B516E333D
+2D8AB74D362C559AAE6ACFAE49AEEF4F52E28C869222C1301D041E7A0BC1B608
+1BF728EF9E98F3A12EB2714E7F16B14E055FE1FA0EEFB058860ACADEDA9D0E4C
+42E3C6F1E4869471BFAA3760175F3FBD842755A9D7847EBF605F18293B42F557
+FBE2715002669091BB033E1AAD657532F34F7C66E4F04D63ABB07E6CB9D9AEAE
+78EDE8B79DD9BC87A1FF445EAA05B5572BB880E69F4DE1F82D7F0E9980AB0C18
+22C448B0B1722D3CC33C56FF287CECB80658B3AF5E7675BE82CEFF3DAD5942EE
+A03C955FF979E41E54BCFB5316A9AB8945C403A73180D0961416EC9C92F49811
+4B91BC4C788392994587517718521E416D469F69952149FF7F9224377EBA1065
+4A727BF806A112A7B45B0A1BA1D5A23683960575368D9EAC8C04753BF7465AF7
+95F25C258C63E4FDFFD0B412FD381946AA38C0B961652BCEC30322C47BF4755D
+9F91880688AF066E32FFB22E1A52DE741307AD3ED830D6BAA1D1F562919666DC
+5E8FD9862AC8600B0AE0BC7FC779252AAC57248744ACC8A8AAFA836BCF09B0DF
+9253DFBB1CB77EA8A59D42D1B18FF25E9AED72FA62FEC3F126F030F5D7DED9C3
+CF60FE890BA4A48E39E687BFFAEAB96AE542A6387F6624486037C8924002A511
+BEE5FBFD780AC1D4BEC3FBC47A930BAD0280D444259528B6C565DE11DE36BB65
+9BADC55C1EDA1A80458E98896D782DFB5C137897419602809F9BF8CA39F00C68
+EFB9E076FB324C2963F23CBFED28B9EF70EAA4E4B903225D1F199A7162AB239A
+D92D71C18B1B682D04C6A48926275BCB16D413B2A0E953E1257E0B12D8B717CE
+2EC84CFBC046A4338A69F454A469B12118E562B4F56C5FFB3CA5D357513E6FFE
+947A564B229C7FD873057D5C7CDF03E958294A1003B37D8DF565A70A00A3734B
+0138AE5277D383D10C2BD853EF806D3CCDC47739F0E374A3DF3B63638B949ED6
+4EC25869DC1C0B1F4DBDFFCC97382841D8F10F3635C792139A1EC462FDBA379C
+BE0990CA2E70FE73137AFBBF30CA54954D7E7377CC50BDD780DDD4C7FDC77AD2
+F3EB1169F14A0041F18160F43C24FAF556DB5D621709FBC544CE55424F7446D4
+6AC07A51C8CD5161AB0AD5084A96FB35D77F1CA155147DEF8D7A590EA6939514
+D4A226588295CE0007BA8A550895511C8D80BBE5CDFB8A50D249C3BDCA974415
+F5557914A9B805782F399E4078DDB6264F1A49A9A5BA45E284A5196E9828EBA8
+481D357B8D9E6ECA631A6204439FDFACE7D7E6A2392726107CB7D2517CD19A24
+FBE592C119626DB221BBB635B6EB84845C16A9585282E34958B961F4A543AF9D
+419B6A9105BF185FC767712D923437BE08A9C0EB92AB6792DBDC671029B6FCA6
+7F717FCE379C0F3B51C6CF042A762ED04898FBB4B0105C3C4ADDDC18C51BAA3B
+70A93666669547081D9246732CFF74C83EE90DA17F5B4F8BAF47FE4D81590988
+2858C9B96071341FA0A0D23BDD4947FC9BC2297913CFBD4FD6CA4303AB3179AE
+0203F1BD502065F90CE9BEA3B52DAFE4A29446082EA0E6B1D7AF1F31D0AD02CC
+9A7FACE2CA86E5FE0F6A425B28A5940ECA306891CECDB3CFC7A5BBC76B5D9E8A
+C754379ADE80B4D72CE493010317BF21A0CF4A0A55C1246218839DCA3F4D626D
+1F4161D38F54AD5142C1CEE95C61D8BB10FAD4B772F4955777AFDE8AE5A837C2
+A2BBB11D0BF5DA2E63D0B75ED421DBA9C789B281B01846B65DC572BA69591969
+21265DB722AE86BD8CAA3D887C975A617ACEDDFB7AAB341F47532AC0F354A530
+7662C089DA3939588774FFA16FC4A52555DED6D6F51DE718BF5F345C23C90198
+17B77CB8B5D53A5CE7A79F3E286B6A59F3F6178AC8BF15C0A15C1A8A95D03B60
+30EBE53DE328CE085CD9A1D49C69AA299C5B58B24334A546F6E274C1B534DC8F
+3289553F560C2F81E413ADB92FA0E7DD1C2F39D5FD268EBA97AB7335ECF28257
+96B4EADB7D0778706CB41C7E9C882760E7670936774A1088FFB2011115FDADB3
+B69EBD5108760762521C25C968C3E282DC3400001AC8FB1EA27FF643E3025950
+1D617BB8BB321281708E496277E11DD3AE0023DA9F25AD06B39C7CF527FED27B
+57397E88D3DF70EE4FCCEFC8A0927D6B05517E571B3E70ECC99F3CBA32CCD4DE
+B8BF22626B6C94FE65598A88AB90D238461EBD9A098DADEA4091AF1CDD7560EC
+8E1B9BC2321686E1759E6B8A270C8CB4A254F7368039602EAEAB86ED21CDED91
+8F2DB9889F46981C494C7EAF5E819B91C129F0740B8002B510014985E5791F59
+B16879CC6521D8E9F1C4C1890AC85A78022BE614BEFF318AB2616F0C3F02405E
+BB425D1555472A2642BA7686E431DC3FB8A1688B76660D9957C3FDE8D58109AC
+21B1234C9DDF3F0FAF93BCF7B2F88A001F23162E1A13E5E9118D51B485B70A91
+D0CBC39CF44413FD8686D9030782DAB58064F5B987E0402AF5B264B17BD31BD4
+FDF63951BECD73ACA6138854EF35B062D01F33073850D9C09A818828C581241F
+A625AB3638081DD0F00F946BE5450D38489CECEA4E66B4D85CC8AE0157E2AEE4
+A22A9313829F24D573101D84CC1784D1CED7DFAD5DD966601370C6CCBB723082
+A86BBAF0A5D867D0D2E3CA16E14E5109A29EF02649C47E12E88B3B397D65CACA
+DEB9940B92100744D686066F8250FF30E5F13D81428EE238A2E4E07ACE0F5C38
+7D79D4A336D0D26AF9C2B84088ED8ECDF94A1E3FADB45AFDAB46CAD6FF950B0F
+07AA2CDF82374DA76C56D29C80138841EB13F0D02ADD32F88B23E282ECC845F9
+BB9AAECE9CDC644AC2D49577A92307A83A99434F6493156DF25DBF0FCF2EC21E
+8C50A312C3D19E0609C0038554CF4FEF3ACEB7A833FD54B06EF0D617C2971C89
+E4C06075B09B84A4F78A82152B9A9C540B1D881313C2C74F20ED064A9606EC2C
+B56D7BB4797F1EEF4A9B13579CCF311FA4A4DFA62D80FDB7F535CC6526D1AAE5
+45C008EAF024B48C377522F74D939A475970533E645B1BFA81997549AFF26F67
+2AAE6C2EFA357DB3B525276EF330905688777057F4E4CBF584520A534A8587E5
+5A8360891E75A15205E8ADAC4A4E5A6E27D0C4A7D492216E4BC023AB027F37AF
+A8DC7579BA50204D5F45A51460C5BD8A5A7F87668CA6451137F2F59E117BBE28
+5C40820882A5546FA76F0CF49F8A6EC445F0647CC3227C400F56E7E9B84A6975
+E85E243CC1666DBAFF4E07EEAF3AF71BDACB30DAEA792F2B8504CAB071544F01
+5D66243D529C479D276FE22F7E275D9E7FA9C6EECA18716B2F213916E32C1D94
+6E32397B41AC6779543218E506569E3544803BBF9B404A983EBA62A494187B30
+8D3DFA4E1237A2E5E08224A60492C09ADAD8775B7CDB830520829BA164209ACB
+BCDEB2D574CEBFB7AE4BE72DF4EB1945FEF2458761AD8DCC0D378AEB7DA002C6
+9C14A665DAAA532B0ABA98D7BFB5A6151FF6703385AF7AE8FD315A492FCCDBCB
+B825707F9566B3B4943A3C61C3DEFDC31A843A2D67AB06891F3E110DD8C73D3B
+B5E4151B51D9F13905D7D94DB9ABBFCAF35F43B6EEE256B1A80ED6D1739D8D5E
+8C767F6F0E8704C5345D028A2A6DAFD9BB7AA048B8B895FE9423A7ACE858BADD
+595CB074A128DAFE08FDFFD6BDAC0114159A702FDCBF8013804B0CAEAD7AF38E
+FAF086A3248AD4FCA1401A85AE2F72E3E6956DC0996FE8ADB18F89B14A208A15
+13F81AF73D0DB72F78C4DA634ADE3C73756CAE6AF2E149C26316DFD93370BE1A
+FB4A79F77A67C07CB0A53C78367F21661D4AFE9E27328E077B522B50FD9AE2E3
+DA087BE481515B5DD7BF894A96A84A6C78874100505B7DDE1D22EFCE8D58B3AB
+313AB5495F72E2CA4E6AE22C0CB854302B9990372F1661D9F0A517F90686F248
+C5643008B3D29F7296E5C8FD4049886662EFDD4106E17C879F5D41CE84F87E89
+F6A3117C968B95A35940CC29C43E1E0DEF51C1E46B676301F40D59615C3F73DD
+DE37B72FF7105DB84227DA5241583272AB1C3CD97AE11C1EE98FFDB5E5F44844
+8FC41BEA5C54B26341AFF6830D9D0A5A2901B0653D8BD0746838194D240FF753
+E99750D3383373F453723D86BE97B571B8B84D8696089B5CFDD53E6C562A2197
+A8C4FB0CC690C27761A816B441029D3D306245052E0C41B53025D8CB7267CFE3
+C17FDFE348E765326F91AEB700CC49162DF748171214252CBC821493DD01AA20
+417D66DF47EBEFFF3E9BB2B0A2BE7D9B8C68BD570FC2EB0FA54CECC318F04C43
+19598BDE93F2F13DC7847354C99059AB20593EE51E94F9D4E9241869D605AAF4
+9D9B5FD88C3798A039A67993C5EC68B6326B132E647F67EACCA7F7AE7F718D85
+12666E90D7C73EF210E344964A38228B236679A2B18F5E081234CAA2458F8D83
+3F0CA308D19663CB12EB904076EF88E556407C33C9380A6A3D68A9EFE65387C1
+A1BCD2D26DFD2AC0881EC30E81C0A4E76C244A2BD822EE88C4A60B480D107E68
+90E419A1F512E865BA922A7830909BC2611A80931CB2E9344529586726614D94
+3AC5200FB9FF68AD9686506C5EFA8788C0AD0251AFE7F95E84683380CDB421C5
+B1A783B6D5F3A6BD1BC1C14B363DB01C87C0796DCDD5BECF41A1A9F43183CF6B
+82C2AE49F0BFDC5DEF7729F2E638EE6EA9E4D059EB9BB1B992AD8C82D501A550
+1BF73CBBFE740179B54E193E84A55DCD61B343C1852780FFB44248FC9426AC94
+AA2B3FE20FBA30F6C4D1E0FF3EDCDD8C0F57CCB50CDB0EFE2E04A8927E239C1D
+9B026C7929BB48461D4D695FFC766C8A0E545B1BCC2AA068D1865333108E7985
+2D93F9B00EA0A90939D0D3840D59B6CC0CE2C147B2E1A9A4F14270FE3ACF51D5
+99F7349106165AD627CBBB0ABA01ECC6D3A14C1DC1ED23A9DB9865BB4396C51A
+31ECD001EAC94B33C34E29C5611148EF3E55DD61813470B8F3CE32564C749414
+3C93C77EA5A3538A0B5AE3FC4DA32813B06772E0E48E25BB39F3F6FDCC077E86
+F86FA50E18FD19EB2F37311CE87F18F3BC85CE7FD71CA92D5C3264E34E04A2E5
+70C79D99F54D6C6D9D527AE45EBB48411221134587D2253E7C8ED7658EDCA34E
+5E768DD14E0200470F73C44D006CE8CB35DE1CA3EC10ADC668B0662A7774C891
+84EC95A31DD872F0728D9F65CA80940080E04630BE4DEC77A2C49E3913C39978
+BF145F8832AF2C4385EBCDB15F9D32C22CBA0CF950877717D6F1591D7C0B8047
+8C9BFCB16AF7124ED83137695F3D69228DB633053208C29E0ABA1B06A7FB3EE7
+5625CB44927E2DA6E038A6E62DEBDA2D96A03177982D8FA33BAAF4426E05F4B7
+9C1748B3FF7691F9888E7FF864A10B9DF761A41E6B5CFAD2BDD7E1C4924AC97B
+F4B352705316DD1A58637CC12D71C18A5CA691AB2AA8F171590EC24582B1123E
+94D4DC587D8F99E18A711776BF4013C96446BFECFEE4C809EA94B169088024DE
+0CBD20199A915AA406F0BD5F3D63D1467C49B4691AEBBB35ED6624F2D7BB74BC
+E80FD92B9FD04DD9C2BE9B6FD29EC7EC07FAB447511C61DD299C783BC09AE2A4
+7B3CBCA6A20C6631D06D0B2E2482A50612BB7C29B7E7D0A205EB0E8436702581
+596BC996ABD58CD8D5BAAE4B1478195CAFF98FE0141287296C4EFB8D2E7A8442
+F0A3AA9F9264329982532295A176BA1867EF732BBAC49AF485D9D0F7130F617E
+7F7DEEF935874D55A22240F8EDE4F247D5F73481373A392D40A8076BD91079E1
+1CE5998BA13D48D56B49A92B4A18430E316405D2E2E391B496A1934671FF1785
+AF42BA3B2D14B8E04014437FD194455C50289DFBA61B5C377BCBDADA48E82DEE
+4E70EF5E9DC03064907BCB8BE4D59DE069FB0C0CB140DA54708E630767313F9F
+744594AD8A499CFEF733E640A11FD74E46A749F9C7D18D49251BF85C6EB4668D
+67598C31A8F90922FEAEAD4B83B6E7184567DC798E4BA1C4C9B3461A478D63CA
+054F13B502DACB674EB49D6BB935E5EC82BF99FDA7D47C581AD7F940DF4FC6FA
+6C6D25D647033AC69505F0CAC58DE99087F365531A6283CB89CB644688963C3B
+8B2203A94294E58739EF23C7803630A1F9121D62BE1977DE2F41687C8CAF87FE
+CBD7AD3B98E0D95C8C6E1A7CCB0E09465AA874DC90A0F5DB2C5E7C130297FD39
+EFE63B0350B5139D09E6864D22C3F1150B29196E40EEF9723E71158B7ECFB8E4
+C426FEDCD439420B7F1C251FADA347C9A2C49738B5A17922E1EA93CA7B125B76
+57449EAA9C1D591CAD327D0E98EF2D44D614EE9ED49DD31ACAC0B956620B6BA5
+5BF6D08CA7541059D5ED2EF00AE2EE95488F5645BF6837D9241C0D3959B7580F
+C9ECB2BCF3E65C07D52EC9CFB21C11CD4C883E44C173214C900C44D2E1E43DD1
+CE8DFE3DA93C38B548BC4EC46FF91F30CFB97525E1FD4E77686433B20BABF8D2
+848C1CDF1BCF185CFD7A81D2D4BB826E837E2AF35CFC4F419F698DB0C43E9F9C
+B0FB628AC9A3CBE9B1FF4A067016E70333E78B32AB2D89C483834B31F5808FDB
+77492E099F1504DABCA5722C7860CDCEDB2DDEB512FFCC7D287F4945FD711F28
+87BC3D36173566B81FC2C1290C717A09697DAC6072408E20926D39270121CE58
+3EF97CE12EDD7F87F2C8CFE36C3C0400869C0D813B71C425343EE0CDF717BDD8
+409D5297D0F8F7FDEB0257C0A391F5635E0DB1116058942FF3E7C94D5F2873A7
+A3B0ADAFC3835AF2BE474E6741319BC6695FB37F59AEE388F81F6E66F910000B
+72E6BA7531B4378CEFEEDC79CCF4947BA1703823B5AB4F4AD73D9615C66C489D
+99D68E49C9BF765B7FC547BAB9640D51D5A7A2396507AB5A4DFF3D14F52422CD
+8FCFEAA06A56C6C7FFCD29C9A7A59DDD2A909A9363FE5F1E9629616D25ED38CB
+E754C059E4379318CC491C3B1A90128693AC53F80F8210FAEA7EE638902A7D3C
+82B95B3F5AE340EC1B648DBB9FB679D6E80B7F426D8671FE7136D97F51E2D2F3
+C9CE9183E4061CA40091A2A70DBB9ECBB19CE3F65ADD0FB346B54BAB182E2CD0
+EAF4C0F402C25573FB344EA771B297BEB615FCD0595172E84ED2A62FF8962634
+23C19076C2A9ECEED5135994EB397303A9619C76DC55E032DA83FBA441BD484A
+59F70A5110A8927F6239A14D4E223E189A5462E4A92EAEFFA4B961A2A32B320F
+C2B4E8C1821FA67A655B5042C15E4DE1FB3652B55078DB123573C4E986B19DB0
+1C5131F3DFAB271C30A5476B4A19D8FC922E31879C34BAED94C07A4841B8209C
+403369FB8E842610D1EB4662B6171A4465FD0E819964F62EC5B0ADC92F08CF90
+1DE0B410FFBAD16F6D355E8AD72CCF67961EDB6CDA82398021007C2D0462E893
+75EB0710AE4A6CDD15077C9DEFC5774EF4A657734D703CE42174259B58E5277E
+0DF26BF59AF8D1A3E7DC12E3C12AA4B67CF35B19962F6950C2020B698D971B35
+82FF84E72F72FBB0C54A112BADBAE6C4CAA358BDE6A705AB59332C3850CA3D25
+C7564499BC1319121CE0D93218210C68080AFF33420E3CB3A48BF9EB66BC07C8
+A79D8CD8E78C200FF7CFA3DAED0B9E87E6141C88B436D8FCBA50AC195FCBB9BC
+9512B95FE3A37FFAAB39850FCEBD4D50A243EA416E73F53B4B00F3B6EAE0CA06
+0693AAE0FFD5C119D11E5D13743E28D843B0F2EE315A2ED05A510CE53A2D06A7
+0C076D4B6BC2B6A928553E7F0FD472760167DB486A777259FA74245EE37D0125
+47314DEE4B29E5D22180BDB1BDA7D33406FD340DC3991F50800BDC90F7678EF1
+1064986DDA53A77FBE2EDD38E20C41EF86CD50E8EC167344A3F3B3C3BD83CD80
+87BE64CAB70004E636FCC0B60C1E624A19A63D8B3B27EE2B6FD0FFDC310AC6FD
+BC56E92FDE53A26F13B6BEF922905F5F23BB2554D356DBD37D5A8E1ECA63FC9A
+5E1A9ED378B01663BC53EAE81244DFC8AE19B1372B866DC3A508F09A4F1FDB12
+88DF0D99F082CC8B6B1D600410710DDD937682D66A4A29D64B2CEE98BDECF885
+E5EAE2A50EDEE1CFAB48CE9A325183A85823C5D718D2E8245436AF96823DA2EA
+7DDA7B105FED5B4D542CD5C7B5B761F677311C80989982505F93BCBFBFCBFB90
+7A32B43293A377F91E8E3E785599A60CE7D8D4C7057CA3ED41F50FF063E97D53
+EFCCD9C0453C526332842D456F5161F611FE49354644A1EA6FC444D4F30F24E7
+C9764282150BEB515D424F9755C7599FFE8DC8451475BFC76D13FAF787A63341
+00E35E210846F2140BBCF9773AF5B7D4353E71E5180A5CD24DC2173E300240CA
+56A658494DA7DA66111C4FA27A0142CB046BE1327CEC1510E2BBAB735B8C348E
+1C549923B2EE4BB4388DC6233196254EB7728585BCDF504F626A45953DE8E44D
+A00211B58758A51E9BBB0E50329080ED8E82E4D35FE01F65A6E68F7187B5E188
+61F009FE689F7A5A69051858237E0BB82E6CABB8A86D15
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont
+%%BeginFont: TeXMUSIX20-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX20-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 35768
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX20-Regular known{/TeXMUSIX20-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX20-Regular) readonly def
+/FamilyName (TeXMUSIX20) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX20-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 7 /caron put
+dup 71 /G put
+dup 73 /I put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-619 -1659 3200 1660}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE7F9DA1603F49FA9AEF3E7
+27075B080A569EF1014B7F2D4C3687FA1336676537B82BF4590F962C967795F7
+BF6CD740C57389AB77A273920959FE657B87F76B9403C9586FE85C957B0BFF7B
+26F4AA603883E02139AC15D1360C26E332527461ABDBAA603802CAE75E08F559
+E16B2E623827BEBD40D4661A6B3D10D6C395EECC916F52F99D9D1F19DE5977BB
+73C4EFAEB7FD0052E831BE175C945358083BA2C5690E0CF8B386900A4A51F60D
+C8E98236B16D54A1D94E88A062E0E3D8397F5CB503F51A4F9918D3A902AC7DB3
+25B30A154EF106BF4CB8A369599B3496537F22C842825F69154DD87E05CF9ADA
+B6C94188CB702F53D00BBEC8ACE69CBBFB8C11099395D7BF0D47EB3E41454D13
+AAAC4392E8C0ADCA1E87A6F844D3AD81EDD4CCDD0FBBFCEEE9C70BAC5B4D4861
+E7B9DB2F4DAD612986007DB8CDB3B5384C3C7D77A2609D2255D4098E7A314D80
+1A553DD03007696C9DA22D9E9AD132F09CDC0144E7C1BB169635A24341DE3589
+96D503CB7BC73A81FC12A743C711916CBEEEF61F7273B238B3C0DF1AF4B190B7
+C820DD8F5FDAF73872074E1C95F4A4B7E1B5DED436C03D1020B9FE9F780FF2C5
+920C97B1584B7E0051107EE7789BFAB0B13F32AD2DC01DB5120BFD6B5FA8E386
+EE743D10E6A9E858979543882C19ABB36FE278EAD1304E84DF80E8CF87A994DE
+0DAFBB90FDEFE07349EA1C6929C969E589CBF28622D60F85C11F38915A362243
+1044875525E1F4EA3559A0764F61C126D6ECA21CADD273A1978083D5434CFCBD
+33AB3DC917F0E67010C48829C2F5B2A0B328C4A93C19511CAE397EA2AD7D02E4
+7B5CF16128C924B567CA0BDF9BB92B6E5C5627D8EF1EB01A110EE6D133012C79
+8B32A46ECC8DD7BBB259EDFCAD4DB4F57A9B003E728A7F8A6523B9AA71E61D62
+6E6164F1A47D627E50216C79CD72914607E998C6979F12150EA659388A335C72
+317116BB737EF06429CFDD1FC82146D5EB330496AD418D1EA61F85048F8628B4
+9AAF2E6834B1807A0EBD629EE680B782012F2E6DF26B76613BE3978CA6005958
+C254B571B95075E030C912E6B5C8B82BC4FAF0B0A83DD58058A762DE0178440F
+D8E1EE0AE57432D0EE5DFCF0E5BC5B2FAADA2AFC97C6F4EC57FD7784419DBC50
+F824BA99F093039669EEA1592E54F81EDBE5CAEF48DA0407CBA155463B7752EC
+478B7698C0B3529F658AE73D382A70F7CC1678ADD4D05C25EE06D9160B36358F
+7DAF4714CD6171A78FB4069EC676A781180EA9B8AD7372C259F83DE2419D606A
+707C39344CA1A6BFEB3200CF352C34546766B5726326FF97427E8BACBBF32A58
+6F500934C1B7B8BDF8F98798DE2E7DBE52F1E14A483B69B5D56EDC0E8DBB1ECC
+65B37E0C7274B33E8556CFC21FA07110D17170ABAD5F210D3D382F9D252381D9
+D1EBEFF2B63CF3A80291F4D879D20DC2DC4DC89FD6B073EBDD6373894467449F
+5D3233283EBB3FCF772F8502DD958987751A74BC531768F894D16A330C4B4DE0
+FAAD81F767E3DC4297A664AB2D66A4480D9D92A78A1F7E908D26DB01BB620557
+8E0375863DB66E3D3CCCA7097938F420A3729EDA88662F90B19ADAB0585D15B5
+BDCFBAC7F164F759DEB4E82E5598A00CA55973756D569C56AEABA08E8CDE58B0
+6C1B7F4EE7491945F49968990F62AABFEE1AE447B6F8BE463E32DE13DC7D4B59
+4E5536B564B0EE3EF1DBE4F1E796A415BE7E9C9568D78353B0A2C2C1147B10E8
+F28584FC54E67F8AC0C131DFEFA3186FE7832C4C485AA946B525A463D37FCBE4
+8EC2B78EFA75B1467C6A2B8AC606E9D4A79FE151927E51ACA879AEEFBE63D9EF
+D6A1E6EF83258CA02FEF2CF3A119F3DE26FFB9DD779AC5EA0F48D4946B0B81A1
+600A427825911AE0DB1DEC8E49C9EF73D73415F9C1B5342FFC97C0
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+%%BeginFont: TeXMUSIXSPX-Regular
+%!PS-AdobeFont-1.0: TeXMUSIXSPX-Regular 001.000
+%%CreationDate: 01-07-22 at 22.39
+%%VMusage: 1024 69400
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 502 498 0
+%%EndComments
+FontDirectory/TeXMUSIXSPX-Regular known{/TeXMUSIXSPX-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIXSPX-Regular) readonly def
+/FamilyName (TeXMUSIXSPX) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -300.3 def
+/UnderlineThickness 150.15 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 502 def
+/descent 498 def
+end readonly def
+/FontName /TeXMUSIXSPX-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 163 /ccaron put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-810 -5754 9613 5760}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE455D5521EFD88CCE1386F
+E8D48F5606EBD4D022398AA55DBFD3FAB451145AE45A9253E619BA949342B84F
+84BD47EC98CDC296A7E2B4E87EAD0B1A6BD1ACAFA79EF1F4A452EE8A57B40167
+81461C6603C0824B10F8D2F842C6A41B3ECF50F5EE3D2D0291A7037CA41C519E
+758E4CF0C26800B402E2390DB84BDE63ED4DCE76E536FD3498D26C0C294B633F
+CBC6B23DCFE3398FF0AB8221466C645B943DF5EF81057D1F1EA8859EA97DB16C
+F0FA4DEDD2485D24AF441D59298B52565C859B457D0748A5E86B8EDD3E890764
+13026367C68BDF2CBF79A49E48CFC4B516DB1DEAF67DC23E838C438EB6150937
+BFB2ECF6892415AE14817AF3592D8B0173C5CB41F224F9E3302E40E12F6FAF8F
+1452239E36DAFE964572A4995036387E93AC6E41812A143B802D395133479ABB
+DF095148465533FD237E818F856FFD85515C73C3B6353A0004D9CEC8C95DD5A6
+84547B6F5E170EBFA3FB64626BEBF9362E25526EB6440F799F3D710DBB5880CB
+5D80B4B11525BD2B8C3F6F760C82458B5EFCA2692C44857A6A338F84F82E6236
+912F5AE9878F7E4B430627FC4D8D0B79BDFB5EE52618C9DEDC32BBC5D4AAA9E1
+F9F218F54C1F84D48DFFB451A709EEF61D29E39883433D4EAA86956A5DCE4E91
+91AD2AB3528E7F851C85343F64B6AC84761F5ECFBD85744D9FDD6E51C82C8E2F
+BE59939CFDECC063CDD43A31E728776D1EB1F691DE9123778D1269290F914A51
+3C1FF6D7D97B664F0FA3F3F01125CCFFE0CE15B5A5C830C04967B33BBE972862
+D1451763CE3C7ED364A11FDACFD1B33CE8220724F563C06D33036DBE7B3453A6
+1F6E5BC371B461BFBBD0B72DC2BC810A98ADCFD9AE70C7A173A7C5AF68D37181
+B97E120BB846A9AF1A141BE13712E2C23CB9EB923F48DC26682D56B58DC8115F
+78AAEE692D9BA1CA14EDA80D443A3246E01FC48C888829FB0305413A008D8690
+DC063D60E9ED61FEE0F1C81BB644367A52C126D8EF6F01DF05AB584287830509
+364641DDA5B6931D192A83F571C37590B59609E2438530C262D5E2A364AC32D4
+62D3908DF0E6D02266D5BD5840E7A947A973BBCA55A3A45C7620090FAD36D745
+A7C704D290A40ECE52BB064B213B2695DB705D3A323BACFBBCC08BCCF3E857
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 40258431 52099146 1000 600 600 (sjb291.dvi)
+@start /Fa 200[41 3[41 1[41 49[{}3 66.4176 /CMBX8 rf
+/Fb 203[67 1[67 50[{}2 119.552 /CMBX12 rf /Fc 182[133
+1[133 63[0 7[{}3 166.044 /TeXMUSIX20-Regular rf /Fd 92[0
+163[{}1 166.044 /TeXMUSIXSPX-Regular rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%BeginPaperSize: Letter
+letter
+%%EndPaperSize
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -214 151 a Fd(\243)p -214 277 3288
+4 v -214 318 V -214 360 V -214 401 V -214 443 V -214
+-138 V -214 -97 V -214 -55 V -214 -14 V -214 28 V -214
+443 4 583 v 166 x Fc(I)-214 -15 y(G)-50 355 y Fb(2)-50
+438 y(4)-50 -60 y(2)-50 23 y(4)p 111 439 4 144 v 112
+296 a Fc(\007)p 222 439 V 111 w(\007)p 333 439 4 435
+v 334 5 a(\007)p 111 440 337 20 v 444 439 4 435 v 111
+w(\007)p 555 443 4 583 v 662 296 4 144 v 615 296 a(\007)p
+773 296 V 111 w(\007)p 836 170 4 165 v 837 5 a(\007)p
+662 171 289 20 v 947 170 4 165 v 111 w(\007)p 1058 443
+4 583 v 1165 296 4 435 v 1118 296 a(\007)p 1276 296 V
+111 w(\007)p 1387 5 4 144 v 1340 5 a(\007)p 1165 -120
+335 20 v 1498 5 4 144 v 111 w(\007)p 1561 443 4 583 v
+1668 5 4 144 v 170 w(\007)p 1779 5 V 111 w(\007)p 1890
+296 4 435 v 1843 296 a(\007)p 1668 -120 335 20 v 2002
+296 4 435 v 112 w(\007)p 2064 443 4 583 v 2123 149 4
+144 v 2124 5 a(\007)p 2234 149 V 111 w(\007)p 2394 296
+4 165 v 2347 296 a(\007)p 2123 150 383 20 v 2505 296
+4 165 v 111 w(\007)p 2568 443 4 583 v 2626 439 4 435
+v 2627 5 a(\007)p 2737 439 V 111 w(\007)p 2848 439 4
+144 v 2849 296 a(\007)p 2626 440 337 20 v 2960 439 4
+144 v 112 w(\007)p 3071 443 4 583 v 3074 441 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3074 441
+a -214 1044 a Fd(\243)p -214 1171 3288 4 v -214 1212
+V -214 1254 V -214 1295 V -214 1337 V -214 755 V -214
+797 V -214 839 V -214 880 V -214 922 V -214 1337 4 583
+v -141 585 98 4 v -141 678 4 93 v -112 653 a Fa(7)p -47
+678 V -141 681 98 4 v -214 1210 a Fc(I)-214 878 y(G)p
+-11 1333 4 144 v -10 1190 a(\007)p 94 1333 V 105 w(\007)p
+200 1333 4 435 v 201 899 a(\007)p 201 1303 78 20 v 275
+1333 4 435 v 75 w(\007)p -11 1335 365 20 v 350 1333 4
+435 v 75 w(\007)p 455 1337 4 583 v 560 1190 4 165 v 513
+1190 a(\007)p 666 1190 V 106 w(\007)p 723 1043 4 144
+v 724 899 a(\007)p 724 1013 78 20 v 798 1043 4 144 v
+75 w(\007)p 561 1044 315 20 v 873 1043 4 144 v 75 w(\007)p
+978 1337 4 583 v 1083 1190 4 435 v 1036 1190 a(\007)p
+1189 1190 V 106 w(\007)p 1295 899 4 144 v 1248 899 a(\007)p
+1296 805 77 20 v 1369 899 4 144 v 74 w(\007)p 1083 774
+363 20 v 1444 899 4 144 v 75 w(\007)p 1501 1337 4 583
+v 1606 899 4 144 v 162 w(\007)p 1712 899 V 106 w(\007)p
+1818 1190 4 435 v 1771 1190 a(\007)p 1819 805 77 20 v
+1892 1190 4 435 v 74 w(\007)p 1606 774 363 20 v 1967
+1190 4 435 v 75 w(\007)p 2024 1337 4 583 v 2081 1064
+4 165 v 2082 899 a(\007)p 2187 1064 V 106 w(\007)p 2341
+1190 4 144 v 2294 1190 a(\007)p 2342 1096 77 20 v 2415
+1190 4 144 v 74 w(\007)p 2079 1065 413 20 v 2490 1190
+4 144 v 75 w(\007)p 2548 1337 4 583 v 2604 1333 4 435
+v 2605 899 a(\007)p 2710 1333 V 106 w(\007)p 2815 1333
+4 144 v 2816 1190 a(\007)p 2816 1303 78 20 v 2890 1333
+4 144 v 75 w(\007)p 2604 1335 365 20 v 2965 1333 4 144
+v 75 w(\007)p 3071 1337 4 583 v 3074 1335 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3074 1335
+a -214 1938 a Fd(\243)p -214 2064 3288 4 v -214 2106
+V -214 2147 V -214 2189 V -214 2230 V -214 1649 V -214
+1691 V -214 1732 V -214 1774 V -214 1815 V -214 2231
+4 583 v -141 1479 138 4 v -141 1572 4 93 v -112 1547
+a Fa(13)p -7 1572 V -141 1575 138 4 v -214 2104 a Fc(I)-214
+1772 y(G)p -12 2227 4 144 v -11 2083 a(\007)p 93 2227
+V 105 w(\007)p 94 2197 78 20 v 166 2227 4 144 v 73 w(\007)p
+240 2227 4 435 v 241 1793 a(\007)p -12 2228 360 20 v
+345 2227 4 435 v 105 w(\007)p 449 2231 4 583 v 553 2083
+4 144 v 506 2083 a(\007)p 657 2083 V 104 w(\007)p 658
+1990 76 20 v 731 2083 4 144 v 74 w(\007)p 757 1957 4
+165 v 758 1793 a(\007)p 553 1958 312 20 v 861 1957 4
+165 v 104 w(\007)p 966 2231 4 583 v 1070 2083 4 435 v
+1023 2083 a(\007)p 1174 2083 V 104 w(\007)p 1175 1699
+76 20 v 1248 2083 4 435 v 74 w(\007)p 1322 1793 4 144
+v 1275 1793 a(\007)p 1070 1668 359 20 v 1426 1793 4 144
+v 104 w(\007)p 1483 2231 4 583 v 1587 1793 4 144 v 161
+w(\007)p 1691 1793 V 104 w(\007)p 1692 1699 76 20 v 1765
+1793 4 144 v 74 w(\007)p 1839 2083 4 435 v 1792 2083
+a(\007)p 1587 1668 359 20 v 1943 2083 4 435 v 104 w(\007)p
+2000 2231 4 583 v 2055 1937 4 144 v 2056 1793 a(\007)p
+2160 1937 V 105 w(\007)p 2161 1907 78 20 v 2234 1937
+4 144 v 74 w(\007)p 2355 2083 4 165 v 2308 2083 a(\007)p
+2055 1938 407 20 v 2460 2083 4 165 v 105 w(\007)p 2516
+2231 4 583 v 2572 2227 4 435 v 2573 1793 a(\007)p 2677
+2227 V 105 w(\007)p 2678 2197 78 20 v 2750 2227 4 435
+v 73 w(\007)p 2824 2227 4 144 v 2825 2083 a(\007)p 2572
+2228 360 20 v 2929 2227 4 144 v 105 w(\007)p 3033 2231
+4 583 v 3049 2231 25 583 v 3074 2229 a
+ slur@Dict begin /pss@rega 0 N /psc@rega 0 N /pst@rega 0 N end
+ 3074 2229 a eop
+end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/support/pmx/doc/tremxmpl4.eps b/support/pmx/doc/tremxmpl4.eps
new file mode 100644
index 0000000000..cd20d88c79
--- /dev/null
+++ b/support/pmx/doc/tremxmpl4.eps
@@ -0,0 +1,972 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: dvips(k) 5.993 Copyright 2013 Radical Eye Software
+%%Title: tremxmpl4.dvi
+%%CreationDate: Thu Jan 23 16:12:47 2020
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 45 578 406 747
+%%DocumentFonts: TeXMUSIX20-Regular CMBX12 CMR10
+%%DocumentPaperSizes: Letter
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: dvips -O0.25in,-0.22in -tletter tremxmpl4
+%DVIPSParameters: dpi=600
+%DVIPSSource: TeX output 2020.01.23:1612
+%%BeginProcSet: tex.pro 0 0
+%!
+/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
+N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
+mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
+0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
+landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
+mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
+matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
+exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
+statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
+N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
+/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
+/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
+array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
+df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
+definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
+}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
+B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
+1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S
+/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy
+setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask
+restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
+/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
+}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
+bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
+mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
+SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
+userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
+1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/dir 0 def/dyy{/dir 0 def}B/dyt{/dir 1 def}B/dty{/dir 2 def}B/dtt{/dir 3
+def}B/p{dir 2 eq{-90 rotate show 90 rotate}{dir 3 eq{-90 rotate show 90
+rotate}{show}ifelse}ifelse}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0
+N/Ry 0 N/V{}B/RV/v{/Ry X/Rx X V}B statusdict begin/product where{pop
+false[(Display)(NeXT)(LaserWriter 16/600)]{A length product length le{A
+length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse}
+forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{
+BDot}imagemask grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat
+{BDot}imagemask grestore}}ifelse B/QV{gsave newpath transform round exch
+round exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0
+rlineto fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B
+/M{S p delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}
+B/g{0 M}B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p
+-3 w}B/n{p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{
+0 S rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
+
+%%EndProcSet
+%%BeginProcSet: texps.pro 0 0
+%!
+TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
+index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
+exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0
+ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{
+pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get
+div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type
+/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end
+definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup
+sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll
+mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[
+exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if}
+forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def
+end
+
+%%EndProcSet
+%%BeginFont: CMR10
+%!PS-AdobeFont-1.0: CMR10 003.002
+%%Title: CMR10
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMR10.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMR10 known{/CMR10 findfont dup/UniqueID known{dup
+/UniqueID get 5000793 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMR10 def
+/FontBBox {-40 -250 1009 750 }readonly def
+/UniqueID 5000793 def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMR10.) readonly def
+/FullName (CMR10) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Medium) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 47 /slash put
+dup 97 /a put
+dup 99 /c put
+dup 100 /d put
+dup 101 /e put
+dup 102 /f put
+dup 103 /g put
+dup 104 /h put
+dup 105 /i put
+dup 108 /l put
+dup 109 /m put
+dup 110 /n put
+dup 111 /o put
+dup 113 /q put
+dup 114 /r put
+dup 115 /s put
+dup 116 /t put
+dup 117 /u put
+dup 118 /v put
+dup 119 /w put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA
+0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93
+51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71
+7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551
+E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078
+0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273
+C01924195A181D03F5054A93B71E5065F8D92FE23794D2DB9B8591E5F01442D8
+569672CF86B91C3F79C5DDC97C190EE0082814A5B5A2A5E77C790F087E729079
+24A5AC880DDED58334DD5E8DC6A0B2BD4F04B17334A74BF8FF5D88B7B678A04A
+2255C050CB39A389106B0C672A1912AFA86A49EFD02E61E6509E50EE35E67944
+8FC63D91C3D2794B49A0C2993832BC4CDC8F7BD7575AD61BCDF42E2E421AA93E
+3FF9E4FAD980256D8B377043A07FC75D6169338028692CCA8CD1FE92FD60AD26
+D57B7519B80A8F8DCE9CEE5CDF720AF268D3C14099498A843D76E3B6C0328F24
+D36EFE7F5C4E5B5C612786200C8DE3A41EE5F1FFAF4097653CFCDC8F4FD32E0B
+03EDB3E413283B9EFB0AC33B055617005BC9B0057FD68C52D1B0E67F0C571685
+767F2AA85ADE4E0104A1C777733D5E318A22A9944336E5B98D965E50D31F357A
+8B6EA5A0EA98E1B027CE68C2EDB149EDDD04ED74A1B3D206D471A0C11C11449B
+DE190BBFEBC08C9E1B7513B43DA3134D6B11A2516E6E86B67F68C970A320D05E
+94FEC57FB347606DF89989C33482BD09D011C55AA920319E7B26A205D3D0F004
+22466F09C0482A164CFB27EF6ED2B040ECCC3DCAF345B5A73676F193D43123B7
+72FD6CFC5E37930E61EBD5A6307E4DE70194E6384EC0D79DB6AD86D3B319A31C
+8B0589D0FE28241D8ACE280D0530EE99C80723E560BB72AE9D53F4713181F491
+344B06D3027BA4E9E94D4305BE1D817197C54C8FF56CD6964165F6448ECC8A8A
+64B48B4F0FD69299A137589E2491A283509B21A3A5772F75B7602A9F60AE559B
+07A58436D04222C73EAEA72DE9A5A441F88D27C11F4F91255EFE280E91A4ACAC
+1E98A4E5E6C57B9AE86FD218C3CD8F24A4104156A80F13821384E529783C52C8
+78B94AB3A0096090867ED32E8A30980E737922037F75F062BD83BF4F5929BC51
+CC22AEE2DBBAAA001CFFBFF41D258424FAD888FFF1BEAB796A44E3126159E120
+7E4025C676CF94888A1971AEF8B6764B3AF4A92D36FAF6FC56FD049710EE3782
+BC2CD84FE2473F133BE03C1346B875463F126DCAB15C7A9BCC9A727D23611462
+4E8D2BFD2466600285D79518712B8681ABCD69608E6AA9578F7BD771EC36E01A
+5A17BC17E375020ECA59B43790ABEB9DF5F4FBBEF807E5699EFEAC563E1ACC5D
+EFA336E75DE6D8248E9381BB110884FDC89C2F9A41EBBC9A8A1F98E6A41F68BE
+EE30E25CA148C1EFF42DFF8C214A6537AB11F260B8C329A4947B5FC8DC9C5622
+4DF7BF4FBFB00380D47BABB03BC30627AA74103E553F55278F538EDD8C1E64CE
+0F1398CA0AB5A86630139B4A7E8FC02804CAFF3830114640AE50D2FDA3B561B5
+C63AD7EE3347804CBB40FB1E77A6C89735DD870351C3A1811591AB493251B904
+314F65791963C0412377C1D02362C5E9655F1C3D4803CD379A8EF24C48218C2E
+DF1165840462BF37DDE1B8D5FF09FA2C3B261E2F1A65ECFBE5D4EAD43B52C029
+EEB3948CB8A252CBAF545C8FA1C31E920E23A12DD7222CEF2D2A513BD758EA13
+DA33BF5FBF1D734653EB83DA2D374A5B9A0CE316F24EE375D6DF6BDA49954C2E
+DB25A88821193636119D469BA66E5DAA9C92520FD4F84426A4E54273FA469084
+7517817A6EE3E21176D333825E88046F50B3CF6938AF9BA79A2F51398239EB91
+1A2D07F7FCD948427FF62F40FF95E39FE1A1AA8451411563FD5388472251C155
+69BDE9283B41900B21EB1190D06E6B13B7794FED020D2C1BDD205AE77B084BCE
+EF628249398B496DE85B406FC2E1939EF00DFC84C07E26CF72EC401BAAE756E5
+7F6673216E7560D1C2A723CB405EE5CA474A07F61B81F8836482F73DC9516D67
+CE0CB770EAD755B6B356198B4B97EBB29C63456953270CCC8D5650C1D006E69D
+38DE2DFEAB27DAD50A817F0D645D30AF5B75A7B53CBD3D2B8D87BD0A7E525AF3
+22F7ADDFCE31716914C2318260C2E2B4664893921B68C5A93334A361D94A759C
+0D7B146D6FD94F0442D672BDA0F6432E18F3C5DFA37ADA378D95B75F413C9ED1
+BB5C606A3EC7DFB3F796F59B0478C13FD1900381EFE0BB5242D5B5D34D03AF1D
+4BDC93EAF8020E26CA23C8B0E7DDEBBC6762A557067A4CE05A524188A8F02E2F
+3625DA38DFCF381727887F5646A3995A8A38A5FB1E5D5EBB395FDD0B7C8E71AD
+B48EEDB62AB2CE99D121435EFBBFCEEA69AE9ED8238B60CC7288DE33C766CDFE
+15B767B4AE2E6CE0965E77272AC9F86023DA620548CFAC85BC751C44218A29C9
+849F1C2DCBDFAD895B54E51A569952ED50F82DC8A19F367E7E44643854EFD6B3
+FCAEB04E55E4661C82D31E2932611748480EF61FB2FBFB0CFB940BEA81AFCD84
+4C6A6332D7A600170E38A8EAFCD4F93DC153C43175434C86BC747348FAC61B76
+1FEC9027C1A193E55C80F1F20B5317AA0A05AAA36AE235F6E49F06E570FEE798
+84857D7552EA92EF3EFAD52DE39C2F8F43C59E3A957B7B926FC95FC4B60186DF
+7F3523EE2AB74E294C8C4BCD8B4975E84849E0FBDA6C0B0F24A636DFA578B122
+CF97BC5089E21E9F5298D1C9F30CB8BAFF6A3A11BB4D9A0A5CF2B18D055C44CA
+4FD4D8FE1AF3630907DE7E585AA811F9CD11FB2C8FC791851D651009FA5DF20B
+3C33FD2FF848A9E3F5652BD294965A332DD3F246C91B0ADA34017FF2451D1394
+F9C3C95AAC6EC8062BE98E8914D51DA6A164AD13938693D446044859D03A949D
+F9AC5DF4A000CDA98BB516D762CB9F6D44B5268FD0C26E88BC4A760C0F75A140
+DEBDECA4F511128B7D2805872160C55236F0A0FA7637FF0D4E94AC079CD3C8A7
+D03A5A56F26B0438B577C46011A10532FEBCAD14FBD6032E224F45691A726886
+56F305231EB2FCDF59C8BBFCB5DBD2D093A0E84D62AC93A2312CA69295E937C4
+8DBA1802B85F54B5E7E6D6216A918F911FF705D3B5CF055F1D873B96283A0B53
+59344D910CD396D883F6F7836BA65FAB4393A773A8F6BC298069E5BA38210EED
+49C9D920F718E3FCE692527DC7CCE6963BF744F2C91BC5952564196D60574E86
+87A0FAB21F2DB2BD5A51D7FBD8FC19946D24E5A228462C4772F978E650ADCE3B
+8D66B9C21279C531CA1C3A8ECE3420BB65837287A7222CC3673A2A5F8BBFDB60
+C719CD073EF9A23675198462C7C87B24CC92D6AEE5C25AC63855CC3281494342
+D28F3D2FDE0C183486769A4FD5B0143193D31FCB2C2A14E487BBD96D0BADBB64
+D1B56021C363A795BF10E2DB448261C363A54A4AC1182B470C457AA82DF3F5D1
+F4B329806141EBD53CAE309319B94133D7EBDC2D0453A905ADD207364371E178
+0A95C2686E3B34C4A978BFC0EE968C39ABA00889BC5149162C2B54483D44FD3B
+5CFF41F611C7E03B94945F414560E874D7CF27FFD0630890D7D7EA66CBD15448
+229059E1C436BB33D69552B5367AB5D53591C4678D0C704DD3EA23F5D9E8A7AC
+17D003C19E333E726FFFA2961F33C70F429085F7BFE3E2510F59B78F58B19CB4
+01B48E184BAD9020FECCE3AF52048A056981DAEA02AE78197E65855DDB170616
+F54278395D9EA50DC83761AE759F9CDEF9E1948E7002414FC05286ED793E6662
+3347F2A9AF8917493D7305B92CF93E8E9185F70015F5594084298A6C2F9FD3C0
+689F262AC9FEDC9B89577ECDE92F08D3142209FBCE7B5C0A840CC767BCA56C20
+4E4E545E2BE4D21C53855CEE4CD0AB35D1A604C0FFFF77DBAE4289752276559F
+A05FEE65F45ECAF44E95E23FAB6052195C7948AF0B1126482D4E02D72BF8AB03
+DE0F1A632F7672AD9DDE70EDC82AA993678A82BEAD0BC2649C4707FD8509810D
+364B5C6FE0E10772E95288C622C2F06C634F4DF8C7FD1432BC9310D5F24FEE3F
+7AB324863D6DABAA1576E70643CA79EF4D7DF4105093D66CEE0F3B87D2164A7F
+26EA05F5C4645B22D3E1BFD2219657712C168FD90DE801FB0F32759E80DEC1E1
+43CEEB19FED12D757205043FC98FEC62D6A8D8B97BC083B4A0E985AF7850D6FD
+8716B9957C1C35A0675BC53DF672C425C79F43FDABAEE7D63F092CF271C9A9D7
+C41F40C4189510987887942E60A412B3EEC84C9A6E1AC7D54D528F5604B72C08
+94B7882621A5BF1F325B92FF96B80878CC550D1AE4D8196E41CB1251856609A5
+C4D3BD05A922D0D45E039D9450DEF8490A3E924E41434194910BF60BA1B08BE1
+B41824345627745541A4F1703E956328F6227D11C74946B38CFB096139979E56
+4E723B889B44C6D78673868C89912F8B4F0B4B485F1587A637B630F92E6072D5
+7F3B44EA6FD96BBD4FC28A6C1D90805E3BE3E42A7BC9C880762966C55BC04E01
+204D083AE976FAE6F37C94F27E68F8C0F28D52B17F6C0FD7C9150701FD78F8CE
+B8E8DC9260E3974005EB5CA728171F482D765016C94D4ADFE4A42EF42212BC56
+7E4EEEE8B0D2A7856CD4E44F55C0BAB762F92CB8D64C17022D4BF3A47C12F5E6
+279FC23101FEE93753653CE8CEDC3B75C9CCB29BF1D4554C6120DE8EE750FCBB
+E38B5D915206974962E320362E59B3F21B3AB1875703191043D03284D4467346
+CFF2F98CEB4845B73ED8E003E0DC94251B73E13A9B51A3F1430BCF6A21EB9B7A
+65E17FA411F53BE6432F1506232B8159E008FA257F884A4A01AC53BE91754D78
+BF14A5B0FBFB9C31BF4908355F8A762052968DF526D118708CCB0B7CB5BEE285
+6DAB6CD2E3934178E60BECB11AAB5478623CF6C50C92F8BB5D1A583609028FA7
+B8A53B791BDC9EF76A124F3F7641857E4BEA0837CB36176EC9A522EA7F41B8D3
+63C37D1145367BD300F17B54522A834BBB74DE12BF9EB26ACE6F24A046D58F89
+4D4B7DF74875F1A0C1C9D97BE0849593D7B398EB4B00BEBC8C8D1497B6EF831A
+A35380FFB7F1AFA4D888AA52C9482E8B1755CC209905F98F40D95B44D4DCBCB6
+67423D1BC2F3560FF0A8B4F0CAC352A4EE2C1D946E45AAEC8A6AD40303F3382C
+DF0756BFA3B1ED64C169E56ED1C760F2FF0E24DC5C9F41306EF8D2628153D30A
+5DCB0791126BEFD4947D7EF08301FE015F2B0008DFFCBF9F2D4D859FD43EC7D9
+C5BE237E9BF6665B7B1BEBB362F0C0C3A8D86010B9C97FA741C97C2E0513386C
+9C26C235B14DD2A58BFDAC7B5F63DB4DA6D5D37D0098175A9071590E1DF66A3D
+B8173A047C29D7D35557F06132CC920B5460B8AFC11D23D09A4E45D089F5EB51
+963FA1A6256E359D485107FD143B2BF21FDE9DA5744BC2615E86C31C89470CF0
+D06C6397D9FCCB316EA9989430240759D2C4945D941F159FC02327F34B042BAB
+B5C3A47C78E8C1A6FBCD396B1A51CC4B020B8AD401841EDABACECDB482D6EC5B
+72D2BFEB4556720FADD49D07307C8B22ACB7E310CA4151A85C71EEF70E8D15DE
+B3B00F26E0E166C14647A65ADA228A3D1C89025BE059306565DB1B1EFC37D358
+8C1EB024254AFD049BA977BD4C2C605050E17940A89D0D4C5D963E792320F5DB
+3706682E03D25D9E02487247819551465092CC22B6B56E93F3AB528038FEC3F0
+668F866707A19B0463BE706EC729D2EE1653AAC7E29BD25BFB3241D4792F5152
+ED415B4E7FA92C2EE5A22E27E8B75542C492E56D811C192E95542A6FE0BFE5A5
+69273C2ABED4300D491B92D2AECDD278404CB84B1BB1BD7AFEC858215837D118
+C0E928BE7E07CFEEB51A6D21375B772B8248C994564014015232A0DA4BEA1754
+3274F407FED0837A236371F1A32056240F2015B1E7F4B2CA72C6B58610A66F13
+407CFFBA5E0A2893C1F572D50F51286E9133B5A84239C9493B0574E77D281D01
+11D00683354A000C9700EAFBC1FD104EA19DFCB87470190E7E2CE26E3A6FD0FF
+2620B87B82AC8686B6206B530F17E9348BC7D04B948348802CE53A312443DB87
+4DBBA5313A6A2A8DAB8A1CC9A594FF8C299281C0A261C8CB2226B732FBEEDE40
+2C6ACC74A1A61379E2E1CD5548CD908268A32FA83D8504C442EA0E183ADBF7FF
+9FD09C037AB03516ECCA93FF048235BD11A25DB07F164512A079C5392AC7F889
+CE96AE5C8D9580BCAFCC087C35E76EED1A671E87C12E3045E15A687134736DF8
+DA984772AFD189D68571A2ED7256F1E204230E41D3D9DD876F938951714A3973
+0CA9310489F8E807C1C7A4E51AEA5BC030610A5D7263FF7E0F9FDE3E5E37A362
+5B919000BD94D978583B942EB79CF2BEAC33FEBC9A67272EB10865BA8FB75FD7
+9D280AB59F91B96C16C982DE848D76D8FA8620DFD7C80B7DEAE7264350D6FB3A
+EF04794DA3305844A7CF718F6D1A4A3AFF6826173A076A1372ABFC54ED3AC6C2
+09C9287FC830556CA694E21CA5342ECA7B10C90AFC4783D841D7B1E34FA3DB7A
+2B706F3E21B0FBAB23E7257962FC3BC309CEA2C7239A9D6B44CC96825115ABD2
+AF9A2566D2F3382C01569FBDB94C8D664A5DA0F7DC3DD140CA77C743D7BC1420
+324ECF9E4780280EB119885E96A6C619CE3C0C8E1E264E2DEB137E5DC8149786
+486D65667ECF47B1A1E20E9E6E4FC8323E0BC8E61BDD3BCDFC6575C69C03E31A
+EFFC290472CBBD049DE3F840AEE37A2486034240F80E75D8A79E0762377DF660
+52B12EAA16D678990B11A9BFBC03C1D4FCDA9FD4FFBB3E88352438102F10B7C5
+9F04C013B6575B5E948FAB58EA691984A0E54E6B9F3F505FFFEF74D06FA1CDF3
+4B8A95904C8A2763AA8AF5B71D00F5DE09DC1CDF87A08B6D181453063E14C12D
+B7BB3775A6E2A901636273D9EEB833EA8CF20FD83AE899E28DADE10EEEC20BD7
+BD93085A4B1AC80AC1AE8280C14767F1A487BD066007A0D050317BD081131A14
+6EA0898ED59E46DA7B6254BDCCBC660686E2EDA0E77A705A653733BB5C5497D0
+B130359F866CF293FB6EF0C2AC5BAA2DB0DED045E2DED3A2612D078333260359
+16CF0CCB272D34767EA069E0F0B0D42327A18529D72E890EDA6195C2688438ED
+E9ACDBEED41E81CA8EB5E43C2B09CE266EFCA03F2D7FF57F12B06F9E54FCC6A6
+546676F6FFC5B8B7D3F0982B6FF0D21D949309F0C0B175CC1D0976F8C55C6AED
+6E821C39041E22D91AB30922F2B2EC2746BC7DAB484991542FBC82D87B487507
+559AB466F73EE23C2D3194DC5CE4C9AE66D3164613AC5CBB3DB501B64DA7C91B
+C7ED2EE9027FC0906820B35D4F2CF66C4F9CE4A884B7C07155BCA884ECA5EB3A
+ABB83F84DB1F5639599DC7D3F51241AB5D95C3BCB7AB1EC90B4BC989F74FB354
+04B2D7366A34D335A47B8C00C05CB423482BF6C7970A95545424A08AFF9A035B
+7F83F52B65A9799CE76E303B85664B624C65E9CA58184C7BE2BB9D9C86A4DE5A
+8165EE3DA2E652B5022EE7893896BABD88931DE1D538F615787645DF5ACBBA0B
+A8E5B899A37321AA7D4B283AC9234978C2DD81813A1EE5DB6EC170DAC1B6EF02
+94892635B498765C07A38D2E9DB0B7581B11056C28278F89B0E60998379C07EB
+C0EAEDC32AA69B8B836F92A61AFD35688315B2C3F860632FC13E4BDFB63214BC
+41CC6859EAB3AC3034449213CAB99FA1D216563419CD6D6CE4E1B56F33E6C654
+7AA9DCB5B05FC068DF02AC32408C8010AD004F6CCA9887830927F8CBCD49CDB5
+18CAC1EAFF815FF2F6F527F936948201565003022C6C7390B4E3C2B219FB4F76
+9F12BD25CA7B3B61D1A2F8DFEE795D04D5428B42FB66E0C254AF7B7A10CEF7FD
+E5ADA5E217BE24851180E9A1700FBA66C7D2B0D7BFDE4F4EED1D24B821A40947
+5620363657F6D048E651A689822CF815E72FC8AE9D835BE31D1DD8B54C9A717F
+4DC319B4B59AE073936EA40B070524C7E71D5A7B64436DA107749746B516E29F
+E3BBCB8F8C473E706670E11E5B221716F315FF097CD1841D0069FA69EA1898FF
+9F9EC2518C77806A19730C97F54BEAD10B4729E5749A10EDBE644886443D1249
+2C8517DF8D8AE98E2882439FA81903941B363A7D885F93C6DF9E1FD89F2F8CEE
+B870C409ED13E78B4C914813B0A01DF8F876EDCC4F384055FD37C575726AD69F
+F23D50EC5BEE2FB95A44F2B2E2DD94C933D90BED2C97B53738B4B2ED56EBE617
+BEF17B9DF4F314A37F10FDE34C570D7BE76A496A58242F51E7321380CB042424
+855F4B53071DF5A0DA5A31B8AAF9FB4F4C491625FF8FD008BD4402918043BEDF
+77B840B2BE0DAAB4EF904FFEF935954AFB9BD2041241B1BC8519EB642C89E288
+479664226DBB6F1171F9EEBC7E1273D0CABCF6B1BF7F26AF21C21D9B1B916F4F
+603DDB68D3614B86566FC91D67AC3F4A4A96E256FA1A3BD35F4465AE4EC64D82
+34BEB4BBDDCEEBD9A89D932E55F14CA2776F927C4FD3E0920790A57DAEA08C5B
+169A3E2309DA6BA8684A5D1DEE81415796E13DCF906FCDADB092047831B16841
+B250CD148557D72DD7E683BF122B38E2C4F614E59B395D1D9823D7D5F126D932
+14B50A37FCA7120F8F3A8E42134F1B6B0C248D56F247AA68FB941839F600F61C
+14247EFF780BBA3E5198D37CED44DEEC3455048FC451BCDB48DC414AE5293A60
+5A59877D6DFD21EAD729CDB7B378CEDD34262B37A194EDD0BDB24AA42649375B
+491DC08F6B03DFEB517B2FC125DA9373AFAA94F4E4BC09510A73E079F4ABDD8F
+93529E898B13ABCDE7322323B3A2A02A0BF388E89B4F529A66FA22D38E3EE342
+54475A1989BFB7A119CF95750D5A18BB4FA9CDA30DB6F1AEF8AE8448BBC999C9
+FD0D74DE9A17A3153617F07CACE92977B68FB5A1CFB29FD42494D5D2B9C1ED81
+2F3CCEEC1BC079E837DDBB57C7E351F9925FB96349F8D9786D8E6FF03E9C4C1E
+67DB235577B68003BA14073E2702296B284F803259283005D97035874D2B9AFD
+4D3F29B4B1E6EDE30DDB9C68348CC174A091791FA74520C8614D4FB1125CBD6F
+B9367559D715ED057FDF6DAAC180C7FA5CCEFD0C5878A91B20D4919792C03CA9
+3AFC986C34C08358A3E85F241E3F8F815FCE7C8E07C2A4258E17D65823264049
+3803D47C96A2745580EDC957AC4291730A840A2BADA50A28342A2B7093A3F731
+4F4F656E974389E133C53F89D5DD6407BB98B211697941A927BC72A0956FA78E
+2DC624B2C253F76778698BD1510D509244AB0465D4261E3AC31D77C4F755096B
+50C9CD8103CFF51490796CF35B02E38BFB36CBF2E6D0D7304344C4523C369946
+C3BAD318835D4707E90A0340BB7B6ABEBE9EF7E7FF54D1784AB514FAC0FDC8DE
+B8DE95405811AB2F25F2391855929C2C452295D698C749DF868A962183036CEE
+800D650FE2CD2E74C038665ECA680B173A27305874D4AEC967043DBCF9275F02
+7D92A0AC4C098A5DA5939BFA435FE56060110EA1E9FF2BCC9C5E93964FD43199
+8133454CF0A83B9946D6D2235AE3F345BEFA7D935A4FD76D7A9CF080E34D1983
+6FAB58E2C907D4EC63F6431805A40EF837884510B1A8C7CF8F290F034784C81D
+9FA6ED8ACCFF15B6ADA1CD0460591326B7A7A5FE7216BCE081EF42F0846374B5
+0FF9F6FB8025D2DBEE17991FF93E7C09B55135397A77ECB051306B93C58A2598
+60E294DF402A6F07B1FD679025022AFFEC2938452C72400B45A1A49F1DA9113A
+BA4C4528E9DAB7F86323AE99A1932A49161F10A37FF2A4D56FAF883DB84F209D
+76982A6131DE0B316E898A4C039154A90CA72991180F9EEA6E0105B8A4443A37
+3C8DE253233006178B9A6BC69ECF2556E28A2DEFB6371422CDD07263005CD570
+9DC4C9DAC7FB491ACDD3A0CE095427DE50D773723E3DCE57EFB99B8101346CBF
+8DB7048568AD276734D04A28CB871097AB4579D1893E600DE58BDEE4BC4575CC
+FE9E9AF726419F8750DC71A816B0D51004C77A4369B6A7D01150E5B38FBF7B92
+17339137D3FD9CE162A2ABF274FAE6558CFB8408890ECB590BDF2F0F67ED73B8
+A5D56C84E137099152D6E7D0E9CC6D98AC4BA8FEB255F3E4E53F6CD25B5C822A
+258436EB7CEC5BD2E149FD142EC895039F047FE4EAE9A104F63B84043D6D46C4
+BD7442D393B3431CDECCC3C5F700156741524F3B6849F155190D7B100F83DB88
+2945035D366B2ACBF52033A1EE281956136B44C763B2D94549A80ED356C8E735
+FC7E0B435EF4FD5640E6FAD3E2351FB9C4417142CAFA51D5688F745FFB4F9E56
+CDAF10B1ADB7983BF339540A8D723B76B5D29EEE58B4319663BE1BE0F3B85D19
+15F413B78C1C686CAD65DDE0CE08F57484329B50602BAE656C24F850F3CCDF25
+1BD43ED3D6520EC39CF40A1F5B90A8BD1C5076026D659E33793CACC755C9B6B8
+8480A6E644D334438BC9B5C8003F3356AB44A01EC91BEEEE1ABCE3E5328D3F81
+11610DB32C86FF6F9DBF0347BB833B0D91A874F95B68C0CAAAC8FAEBA26263A4
+85DE775F51E4142EB9C98F3EE74B8D1148027A54302E2F24F221982DD1D988D5
+66417E5C380B1B2C67654E0116CD08A59EF71EDCE99543E8C3D09D5ECA608B93
+03F49F586D8F839808711285ED8CEF18A7EF23430F28DB530FFE61BE5B988BDC
+4D0A2756030F0BDDC05356642D5BEFFB6185CE33981A6294B15AC6950D17C56A
+50C18E51E036260C2CD2EDF579BB1648BD39E1555BD2ADA08CAAC84AB583421E
+5C08469D8D97C2901493D1604CB862B72FFA7E7B566BCAAAED470B4E2C609BCA
+B47E2BE4D6AB773091F637C28635249EFE888D9D707640BC2319DDAB734A9932
+1F57F6794E4F8C7831D78B5707F95831BF9C8B7AC15AECBFCA3DC5195C2C4AD7
+1C5CA302C70B99717F9EF91A6AFFB1DD780D0F90C353F464EAFB98CEB5C4CF14
+B29BD79D2CA19396CEEB5ACEB048DD2379BAD1DD8C8C6EA162AE5CFF0CDDA4F6
+CB8FBB8BC49B88F02084B5D91D7A871767F244A807198A678EF58EFF3AD805AA
+74F655EDBB4FB39703A50A2AE8EB4B0FB04D638A04C43BCA562C9F91ABC2584F
+49D54A45AE6D378F5C2B4E313931D7B1A9ECD38E02928D94089E6544907FD666
+21C06EAFBA21CC46BB3207ECB77F12D5E1F1BDC673D822C8AF1B8426EFA3D588
+D0388F4C6201C1CF8827EC041777122CA6199A082E3EC02CD97A18D48F30E056
+CEE265838696F1C374EBAC4EAF1F31FD2889F302A9C5496EDAFD874A8038553D
+70B02DA2F49827CCF0F39BE0C94CAF9E0E65A2AE944CDEDB8CB0483DBAE03637
+CC4C30DF26D497C3D66D5E119D5DEED4875C5A6AAE4A8578D52CE0F268EDF068
+6123521F8621E8F287A4A0CCB5A0BE5D0FA620CDBECB86DB797DED1294F82716
+9D7C886CB29E7AA68D3B64900093FAAFEC255B5B146B3CB1BE25453AFBD5B878
+504A44F084A4FF5005A959C34ADF2D9D5AEB2B1483938BB155475A45FC32755B
+5CEED304E60FBE05B62DCB58755BE2F2B40817ECD640B52FF6C69244E1F7209F
+C8F1F1C9DA0453B564B8FD5D5C6FC917E2A4CFA8FEEAD0D31837702BFD50EC8C
+417FAC1D67BE98E348C2215C1207DA6FCBF266295BE92A624BCE6EE9EEF09589
+FEAD49CB6F6CDFBEA8F56A2BCA48DBD42C11E120CBD1E6BE4F06F96167078A9C
+B36CDFE0F59EE4CD641767F939AB0F14F17E738DEAE1354F4243B0EC2E85A7FF
+90A0EBF3A94791C2EF3F51F7F6555AF4AF8D18D977F95FA25306444914ADD15E
+CD70D7D3AF32203F6E03A90ED01E5DCBA2B904BD2850D8670A62F27A4C5BA543
+20D9C40AC94F0B5E9FCA2B699D69BAE91BB28754674191C7F2F090780DAC6D42
+1357EC558DF727530EF6451BA65AAE08165CE5D729DB475A86893C605E4B3FFD
+FAD74314725B903C4F818E862EC4465D40D092FC5DF0B7AB1BC8DCE69C7BF463
+857F78DB84B549BBA0939F6C86B508676CE8549886C1052E91E5AAE6C29A0E47
+471765E9307409D6951F4B00F4BB494AFF30B988E064EF6A1A882ABD14E876A3
+22E8186462DAD21CE270D79D8B34E663B6982E97902A0410A61294EA6E6B6969
+EDC4BF764C6EAC51B41CA5A14EEF3F3155B6458DB074BAA59ABC0F39A2B3DA1F
+EF055A5E030B49B9BB5CE4759F4E02EBB7880DF534F81AA7C0CABD1FC0CCD848
+2EC70CA6A002213C05E9463E63B4B03FB0D56FFA8366785888F6B6CE55ABCE71
+FF872CD39E8E152828AB8833265C21A589C42AA588A5334F3DB30D92AC573AEA
+940810252EF183A8251C58177DCEC752A48C26A4C56E07959804809059867FCB
+6160F3BDE7B8E646EC549ABF64402B5F6243AA60B82E1B0B2F7D7107052E9BE8
+54F4CE1EC6071BC8972B6689C32B8CC191BFA74A9160687CCC26F8962AFC4600
+78E8636A5964C7A22899473DF1E8F0C9CD1921EC13E658C9876266903A85C059
+3E8619DF7ACB8FA3BC78009E457C580ACB6D1B68A73F53772C70CFB500DA2667
+BB318CF220975BFA54EFB0024D9F595B4887991B78140EEDD85CA3B23B90C403
+01326C9A12EBCBD3EBBC192B5F8752A2C5232BB664805A6ABBD0BC780A2A236A
+4FE5D32D77D2C760F18204A348E20451E51BECD363B4D92DD4E2C0CBEEACD6DA
+2B2ED0FD52657E7FD4773C68650E5AE4935AFF6A09AA4B34842A36F9A607A379
+AC1E7A7CD644009CFF69A4D2BC417D49EF6E234F8C6C141962435F47054880F3
+2A3DABACD5610F2ABC876714801160E4BFA86DBCF513B5FDB5A424933DA0073C
+4979887868A3A1C65073D6756AA4004625B3B9F3483B9FAF142931D639FCF79E
+9E0A0C2F32D70D2219C3E9E77C3F35CD8185DE97F9CE5577A0B912D6982E43F5
+97237FE4EF8577252DBC521A37F20D7AA466D4ADA3344DA152990AE9481760DF
+937DDC622CFFA275AB68D60050B85B4925D67F9E955619C0EB8DE8090111461D
+36456825760496DAB2BA7BF38A30EBD22BDA92860032C883E19392B15602C09D
+140A648E14706904A7543AD23823205986A8CD7C47B5021CCCB514CE1A8F3155
+FEE37F95402BFC2F766E85E48CA855F9DACF0B9562D08F69D8AEB62D32265D57
+F4D29C5FA13275F02997408FC89D1721B1E948E823772F66F4BEBDAFAE843A6F
+51371D9B0283161A9927ABCBE36B107166CCAD2F137B547E5AD55582754898EB
+D7A82FD08CE8CA5D8E0C4A5E2E39C3B440C3D90A02C07795FF16B63D4FE696B2
+283C6546D38AC08229780424E23B00A858248AC3D1EBDD134720E31DCBE624EA
+4A4EE99E7A6F3B57B4101196F16133D5C8540C7582ED8B6AC3624AFC7622660A
+EDACBEB94BCA2CBF9EBE2AA1462A92B05E6A63FF24E0BC7585BD29858F65E937
+CDE3BDD17DA258934D6179445E9F7D356A156582E57CA8BC529BFAC7EE620699
+958AB21127EC4A285981D3270DBE59E9DD527B697F1AC809B7CCFEF4BC1C9742
+C3A4A11EB732CB51292AE1D398A439B9D8A5AB59266147B280311042AB99E359
+921A0F74FB5B715A45AE820FC4D4A224CCA7CDD903E14790AC78C0A39A8EE2B3
+EE436AFC2881BCD19E0E4FCBACECA691D7AEEA869AB67CEC7B06FDC19FFC0D89
+949B7382D1BC953A6193F8103086EE12FA45B2328CA75D93B7A27E71BA96D487
+E3BCAE4979888BB4309714303748659C20D646335287E949B2DAB7D052D7E124
+077469758ECC533B7DCECDFA9160BB6DABDC9A9A58D57CC1BF6BC0B1FA562CFF
+4DDDF319B5F65B8D761EDF5C091D3770BC1D57AB4D4A213AA8C92AB452041DF4
+FC5A0951F89CC59B67FCA2F420F43CBD846115CF843F9F33FE743A45CC321102
+3A57F5C4F16E9CDE908E8E2CAC593EA28601E0637AA08D1ECEDA6B38DFA83C82
+4917A0FDD378828071EB0A9999BB0DEA95398827F9D6B8BE634950F4BDE68400
+C6706D29DFAB7588E65756AD81AC423F92022AAF3E4023CBD9671AAD2347AAC6
+72C3DB9E230387C5D6A49DFFA9D0F9ACBF231D93002C2D335753F18EA9C3FD04
+D285C4144FC3919C4F8935790AD00E74D802DAD6D829ED9CEA53072E19D1EE8B
+C0546E181BD5D069FE2440A882CD78E32059C413067A1D5FA518597669C903B3
+74F55294934F99238A9958D57E36F379A1AF1827888CDB8B0C9615DB99E02694
+92A7016976BAC79761093758989D6345990002BBF6870AA147DB78005854C473
+96C9BE143879F74067B0D56FDF01A2CB4D288AA7DF071E167A1CD29AD9A80EE9
+612A96EE7CD08890DC9446BF6F4D29E4F41451FE548FC7075C626796C6CE881C
+7CAE00BFC4C085392A8B231C6EF61C8FB77F160C52364F016D6FADBD03E09CDA
+F15FA5117DB4AAF5E9564CE2D6759323D5016A79183BB93968E015930B9502FC
+9F56307A23F535DA59D72FB809C7F317469C304080E6119B4BA016787AC98EDC
+069A2362AF3B1BD60EDB39FA9866F895B095F45410B22973D8C8886D937511AA
+443F8243353C2A00E0B017373C905D003DA455E45F33F7ACC43DEC0F900E751E
+E5E739B3C5D9F60C5F37FF30531A7EE8EA22C730A9DD6F587BEB504F101A742A
+EC16BE556BA57750B10881E3D1CEE353702536DB57D2069684912074EB84DB6D
+FD6FDDE930556A3EE87A2997CB5C1A469A35FD6BE1B64768ADBC161363F664EE
+3BA32C078A339340124C69F2CBA78588CE51FADF73F35C553E8744EE0513948E
+FFEA5BB759CE3BE8B6FCA6704F6FD98AAD7F958A1F2C546F31A6EF6A95E30AC1
+B26C86D7CD24E2CE5A8528918CA5FEA106E54AF8D5BCA5460F7E952DB226A716
+9A7E1D610E771518873AE5D43118448363425F0F42453C2146E264C311125A3E
+EDB45FFFBC8E3CD1001750E615359DCCB9A756D0DA96736AF5A73F4AD5534420
+373F3FAB6E736CA1756D1396EC59075068DE369CA8AA78647205DF05A52E6A88
+ADE7B75DFD13656C2A43DDA34CBEDF2CA6A01D8CFD51552749BD6774C8611A44
+91E1C0736C8B789AE2E290566194E2A44D55CB8A9D1F75C45995D066436341FE
+94A15C62F6259EDFE9CD0663F1CB183CEC400717A97E04DA732725C02F6BB460
+825C1E7FE952C244D78B6766458DD4D765997D06AE61E1822D904D1698210AB6
+E3C64E95DCF735CC563F31C2B5C7D36E3E7AC523EF30A03C13602B2EA4F924F7
+F1463B2A3B23C6CAAA5074CFFEF2594FD1DD942109BC3CBD078E760E269B0F51
+02FB36E8A1B006723F21BF0DA3957371E9FAA4C10661730ECB2917BFC673A465
+970BEDF35A65D199FDA714CEDAA1FFFE3AC54333F2FFA773F5E174E7E23F86D8
+77CCF23085F7ED4D852E6C23FFA1A079A9F2DDE7F546BB53778CD9E442E7DF79
+AB022E801DCC718777AED552DA5A0DD78E0BC18F793C5B760EA086E970203990
+F183BDEF296B72B457D9767672CDCE15D0A388A903095B76E39E6C0284849F5C
+B3A5FF846843C84731A2D40B072F71F32DEDD2FF723210B357B910FE99E64CBC
+61DB759D5087A7CB3B764A75D7EF28A08A6361E4EB0675100EEA6B7C70663F60
+EB615427F82616268866DD513D981BA63F2B8872225803042AE1F59A3EBF1B05
+EB476377BDC907360D944875E8BCB5E7E3B5E7F0D1970B3C375CD133E90814FC
+89D68CE3932AB8E16FDD714AC31AC92B87986FCF2AE72A04172B9939E969582E
+01AAF7B26D983429D8D3AD019F62CBDAEB6E86A7DC62B8357AF3C66A5AA66DB3
+A4C899470227F2F99C31BAFB8C5748EF85AE8B996ED2E7C22B6C52BA25C75CA0
+8FCE6C32FE0A062207B828C876EF01D0319F1AC1DEEAC1EBC18C7795CB072C88
+7CE030657F81ADA516FCBC81C0D471A61D4931A4AA662FC67493609C0D593F66
+1442F1E5965030DD9644B027C5620A954615B3FB820CBDA2833C9E50D108A802
+E9891578E5988ED7FFBF47A00169AFD649E78DC3FB18C75EAF336E3598F9442A
+554BBC5C7C76CC093A22EB7785EF340F60168D358737652EB26013694A9AA621
+9EB3EB10D27EAEF97E0586033A06AEE2AD85DB5E48BBD712F7CC2DD06469557A
+316FFCD34106F59781CFA3412936A1932B232433F70B129CC1409EEE3FC52842
+3E1D1B8C9024760369A8A15408AC4B5487CF8D6562250DAB20ED95E5613571B6
+58224FDF02FD4A4B4DC9893D517A4C6E566EEA4891D3D42515FA5B2B5C35FC29
+B78C68BDC4A4FFE2D0208EDA33ACA8DA2E2EC02A7CC96CE9DE972914D98873A5
+F92CB2E48FBB47B6D86B6C6CD52250C316CEA37C6EC415028B5ED3D20057772C
+B5F4914E9E296F37B44AA0686C1EDD62B285E0AEAA22CEAFC711DC184E1331FF
+00C55C192D0993D3ACB6E5C339E5CC2BB4C1D3DEB1E0DA8C50860D9E8CB66B17
+0A8471BA34DA0D7674BC9E5741582FCACA01B08434C5CD11ED8F5D071D96F9CD
+E753822C5A4DECDCB502BAC9CEBA2CF18F8012751E322C8452514977B6230274
+430CB1428A1ABD5B74A864B8B8BB13EAC59482C4C08672AC1C93CE1E4F3ED962
+DC0F89D085DF732E9617D0F7828EDCEB3BA4F6C9EC716B3A11C3C9BD474B87E7
+D2C82F72D5FA3C4EB8B56A9222F1853349E5B0FCD45429F0D29566BBBA5A1235
+AE5BDF5047D7D89A6D181EB9514DF17E02988F3FBB547F10C5A6E8EB78F7D2AE
+3CBA45FDFA55570FFF8B4BEB874136AFC86C08C40CB0D19A7EAEDB818D0E9387
+3FB8A168E8385C6537B3616DA73D466B41771CFD6003DA76A6E70A3597DDD349
+8D2799BE3FDF8BD96BB802
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont
+%%BeginFont: CMBX12
+%!PS-AdobeFont-1.0: CMBX12 003.002
+%%Title: CMBX12
+%Version: 003.002
+%%CreationDate: Mon Jul 13 16:17:00 2009
+%%Creator: David M. Jones
+%Copyright: Copyright (c) 1997, 2009 American Mathematical Society
+%Copyright: (<http://www.ams.org>), with Reserved Font Name CMBX12.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is in the accompanying file OFL.txt, and is also
+% available with a FAQ at: http://scripts.sil.org/OFL.
+%%EndComments
+FontDirectory/CMBX12 known{/CMBX12 findfont dup/UniqueID known{dup
+/UniqueID get 5000769 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /CMBX12 def
+/FontBBox {-53 -251 1139 750 }readonly def
+/UniqueID 5000769 def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+/version (003.002) readonly def
+/Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050<http://www.ams.org>\051, with Reserved Font Name CMBX12.) readonly def
+/FullName (CMBX12) readonly def
+/FamilyName (Computer Modern) readonly def
+/Weight (Bold) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 52 /four put
+readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA
+0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93
+51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71
+7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551
+E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078
+0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273
+C01924195A181D03F5054A93B71E5065F8D92FE23794D2D43A151FEE81296FBE
+0CF37DF6A338C826464BA5198991445EC4BE80971DB687336AE8F74B516E333D
+2D8AB74D362C559AAE6ACFAE49AEEF4F52E28C869222C1301D041E7A0BC1B608
+1BF728EF9E98F3A12EB2714E7F16B14E055FE1FA0EEFB058860ACADEDA9D0E4C
+42E3C6F1E4869471BFAA3760175F3FBD842755A9D7847EBF605F18293B42F557
+FBE2715002669091BB033E1AAD657532F34F7C66E4F04D63ABB07E6CB9D9AEAE
+78EDE8B79DD9BC87A1FF445EAA05B5572BB880E69F4DE1F82D7F0E9980AB0C18
+22C448B0B1722D3CC33C56FF287CECB80658B3AF5E7675BE82CEFF3DAD5942EE
+A03C955FF979E41E54BCFB5316A9AB8945C403A73180D0961416EC9C92F49811
+4B91BC4C788392994587517718521E416D469F69952149FF7F9224377EBA1065
+4A727BF806A112A7B45B0A1BA1D5A23683960575368D9EAC8C04753BF7465AF7
+95F25C258C63E4FDFFD0B412FD381946AA38C0B961652BCEC30322C47BF4755D
+9F91880688AF066E32FFB22E1A52DE741307AD3ED830D6BAA1D1F562919666DC
+5E8FD9862AC8600B0AE0BC7FC779252AAC57248744ACC8A8AAFA836BCF09B0DF
+9253DFBB1CB77EA8A59D42D1B18FF25E9AED72FA62FEC3F126F030F5D7DED9C3
+CF60FE890BA4A48E39E687BFFAEAB96AE542A6387F6624486037C8924002A511
+BEE5FBFD780AC1D4BEC3FBC47A930BAD0280D444259528B6C565DE11DE36BB65
+9BADC55C1EDA1A80458E98896D782DFB5C137897419602809F9BF8CA39F00C68
+EFB9E076FB324C2963F23CBFED28B9EF70EAA4E4B903225D1F199A7162AB239A
+D92D71C18B1B682D04C6A48926275BCB16D413B2A0E953E1257E0B12D8B717CE
+2EC84CFBC046A4338A69F454A469B12118E562B4F56C5FFB3CA5D357513E6FFE
+947A564B229C7FD873057D5C7CDF03E958294A1003B37D8DF565A70A00A3734B
+0138AE5277D383D10C2BD853EF806D3CCDC47739F0E374A3DF3B63638B949ED6
+4EC25869DC1C0B1F4DBDFFCC97382841D8F10F3635C792139A1EC462FDBA379C
+BE0990CA2E70FE73137AFBBF30CA54954D7E7377CC50BDD780DDD4C7FDC77AD2
+F3EB1169F14A0041F18160F43C24FAF556DB5D621709FBC544CE55424F7446D4
+6AC07A51C8CD5161AB0AD5084A96FB35D77F1CA155147DEF8D7A590EA6939514
+D4A226588295CE0007BA8A550895511C8D80BBE5CDFB8A50D249C3BDCA974415
+F5557914A9B805782F399E4078DDB6264F1A49A9A5BA45E284A5196E9828EBA8
+481D357B8D9E6ECA631A6204439FDFACE7D7E6A2392726107CB7D2517CD19A24
+FBE592C119626DB221BBB635B6EB84845C16A9585282E34958B961F4A543AF9D
+419B6A9105BF185FC767712D923437BE08A9C0EB92AB6792DBDC671029B6FCA6
+7F717FCE379C0F3B51C6CF042A762ED04898FBB4B0105C3C4ADDDC18C51BAA3B
+70A93666669547081D9246732CFF74C83EE90DA17F5B4F8BAF47FE4D81590988
+2858C9B96071341FA0A0D23BDD4947FC9BC2297913CFBD4FD6CA4303AB3179AE
+0203F1BD502065F90CE9BEA3B52DAFE4A29446082EA0E6B1D7AF1F31D0AD02CC
+9A7FACE2CA86E5FE0F6A425B28A5940ECA306891CECDB3CFC7A5BBC76B5D9E8A
+C754379ADE80B4D72CE493010317BF21A0CF4A0A55C1246218839DCA3F4D626D
+1F4161D38F54AD5142C1CEE95C61D8BB10FAD4B772F4955777AFDE8AE5A837C2
+A2BBB11D0BF5DA2E63D0B75ED421DBA9C789B281B01846B65DC572BA69591969
+21265DB722AE86BD8CAA3D887C975A617ACEDDFB7AAB341F47532AC0F354A530
+7662C089DA3939588774FFA16FC4A52555DED6D6F51DE718BF5F345C23C90198
+17B77CB8B5D53A5CE7A79F3E286B6A59F3F6178AC8BF15C0A15C1A8A95D03B60
+30EBE53DE328CE085CD9A1D49C69AA299C5B58B24334A546F6E274C1B534DC8F
+3289553F560C2F81E413ADB92FA0E7DD1C2F39D5FD268EBA97AB7335ECF28257
+96B4EADB7D0778706CB41C7E9C882760E7670936774A1088FFB2011115FDADB3
+B69EBD5108760762521C25C968C3E282DC3400001AC8FB1EA27FF643E3025950
+1D617BB8BB321281708E496277E11DD3AE0023DA9F25AD06B39C7CF527FED27B
+57397E88D3DF70EE4FCCEFC8A0927D6B05517E571B3E70ECC99F3CBA32CCD4DE
+B8BF22626B6C94FE65598A88AB90D238461EBD9A098DADEA4091AF1CDD7560EC
+8E1B9BC2321686E1759E6B8A270C8CB4A254F7368039602EAEAB86ED21CDED91
+8F2DB9889F46981C494C7EAF5E819B91C129F0740B8002B510014985E5791F59
+B16879CC6521D8E9F1C4C1890AC85A78022BE614BEFF318AB2616F0C3F02405E
+BB425D1555472A2642BA7686E431DC3FB8A1688B76660D9957C3FDE8D58109AC
+21B1234C9DDF3F0FAF93BCF7B2F88A001F23162E1A13E5E9118D51B485B70A91
+D0CBC39CF44413FD8686D9030782DAB58064F5B987E0402AF5B264B17BD31BD4
+FDF63951BECD73ACA6138854EF35B062D01F33073850D9C09A818828C581241F
+A625AB3638081DD0F00F946BE5450D38489CECEA4E66B4D85CC8AE0157E2AEE4
+A22A9313829F24D573101D84CC1784D1CED7DFAD5DD966601370C6CCBB723082
+A86BBAF0A5D867D0D2E3CA16E14E5109A29EF02649C47E12E88B3B397D65CACA
+DEB9940B92100744D686066F8250FF30E5F13D81428EE238A2E4E07ACE0F5C38
+7D79D4A336D0D26AF9C2B84088ED8ECDF94A1E3FADB45AFDAB46CAD6FF950B0F
+07AA2CDF82374DA76C56D29C80138841EB13F0D02ADD32F88B23E282ECC845F9
+BB9AAECE9CDC644AC2D49577A92307A83A99434F6493156DF25DBF0FCF2EC21E
+8C50A312C3D19E0609C0038554CF4FEF3ACEB7A833FD54B06EF0D617C2971C89
+E4C06075B09B84A4F78A82152B9A9C540B1D881313C2C74F20ED064A9606EC2C
+B56D7BB4797F1EEF4A9B13579CCF311FA4A4DFA62D80FDB7F535CC6526D1AAE5
+45C008EAF024B48C377522F74D939A475970533E645B1BFA81997549AFF26F67
+2AAE6C2EFA357DB3B525276EF330905688777057F4E4CBF584520A534A8587E5
+5A8360891E75A15205E8ADAC4A4E5A6E27D0C4A7D492216E4BC023AB027F37AF
+A8DC7579BA50204D5F45A51460C5BD8A5A7F87668CA6451137F2F59E117BBE28
+5C40820882A5546FA76F0CF49F8A6EC445F0647CC3227C400F56E7E9B84A6975
+E85E243CC1666DBAFF4E07EEAF3AF71BDACB30DAEA792F2B8504CAB071544F01
+5D66243D529C479D276FE22F7E275D9E7FA9C6EECA18716B2F213916E32C1D94
+6E32397B41AC6779543218E506569E3544803BBF9B404A983EBA62A494187B30
+8D3DFA4E1237A2E5E08224A60492C09ADAD8775B7CDB830520829BA164209ACB
+BCDEB2D574CEBFB7AE4BE72DF4EB1945FEF2458761AD8DCC0D378AEB7DA002C6
+9C14A665DAAA532B0ABA98D7BFB5A6151FF6703385AF7AE8FD315A492FCCDBCB
+B825707F9566B3B4943A3C61C3DEFDC31A843A2D67AB06891F3E110DD8C73D3B
+B5E4151B51D9F13905D7D94DB9ABBFCAF35F43B6EEE256B1A80ED6D1739D8D5E
+8C767F6F0E8704C5345D028A2A6DAFD9BB7AA048B8B895FE9423A7ACE858BADD
+595CB074A128DAFE08FDFFD6BDAC0114159A702FDCBF8013804B0CAEAD7AF38E
+FAF086A3248AD4FCA1401A85AE2F72E3E6956DC0996FE8ADB18F89B14A208A15
+13F81AF73D0DB72F78C4DA634ADE3C73756CAE6AF2E149C26316DFD93370BE1A
+FB4A79F77A67C07CB0A53C78367F21661D4AFE9E27328E077B522B50FD9AE2E3
+DA087BE481515B5DD7BF894A96A84A6C78874100505B7DDE1D22EFCE8D58B3AB
+313AB5495F72E2CA4E6AE22C0CB854302B9990372F1661D9F0A517F90686F248
+C5643008B3D29F7296E5C8FD4049886662EFDD4106E17C879F5D41CE84F87E89
+F6A3117C968B95A35940CC29C43E1E0DEF51C1E46B676301F40D59615C3F73DD
+DE37B72FF7105DB84227DA5241583272AB1C3CD97AE11C1EE98FFDB5E5F44844
+8FC41BEA5C54B26341AFF6830D9D0A5A2901B0653D8BD0746838194D240FF753
+E99750D3383373F453723D86BE97B571B8B84D8696089B5CFDD53E6C562A2197
+A8C4FB0CC690C27761A816B441029D3D306245052E0C41B53025D8CB7267CFE3
+C17FDFE348E765326F91AEB700CC49162DF748171214252CBC821493DD01AA20
+417D66DF47EBEFFF3E9BB2B0A2BE7D9B8C68BD570FC2EB0FA54CECC318F04C43
+19598BDE93F2F13DC7847354C99059AB20593EE51E94F9D4E9241869D605AAF4
+9D9B5FD88C3798A039A67993C5EC68B6326B132E647F67EACCA7F7AE7F718D85
+12666E90D7C73EF210E344964A38228B236679A2B18F5E081234CAA2458F8D83
+3F0CA308D19663CB12EB904076EF88E556407C33C9380A6A3D68A9EFE65387C1
+A1BCD2D26DFD2AC0881EC30E81C0A4E76C244A2BD822EE88C4A60B480D107E68
+90E419A1F512E865BA922A7830909BC2611A80931CB2E9344529586726614D94
+3AC5200FB9FF68AD9686506C5EFA8788C0AD0251AFE7F95E84683380CDB421C5
+B1A783B6D5F3A6BD1BC1C14B363DB01C87C0796DCDD5BECF41A1A9F43183CF6B
+82C2AE49F0BFDC5DEF7729F2E638EE6EA9E4D059EB9BB1B992AD8C82D501A550
+1BF73CBBFE740179B54E193E84A55DCD61B343C1852780FFB44248FC9426AC94
+AA2B3FE20FBA30F6C4D1E0FF3EDCDD8C0F57CCB50CDB0EFE2E04A8927E239C1D
+9B026C7929BB48461D4D695FFC766C8A0E545B1BCC2AA068D1865333108E7985
+2D93F9B00EA0A90939D0D3840D59B6CC0CE2C147B2E1A9A4F14270FE3ACF51D5
+99F7349106165AD627CBBB0ABA01ECC6D3A14C1DC1ED23A9DB9865BB4396C51A
+31ECD001EAC94B33C34E29C5611148EF3E55DD61813470B8F3CE32564C749414
+3C93C77EA5A3538A0B5AE3FC4DA32813B06772E0E48E25BB39F3F6FDCC077E86
+F86FA50E18FD19EB2F37311CE87F18F3BC85CE7FD71CA92D5C3264E34E04A2E5
+70C79D99F54D6C6D9D527AE45EBB48411221134587D2253E7C8ED7658EDCA34E
+5E768DD14E0200470F73C44D006CE8CB35DE1CA3EC10ADC668B0662A7774C891
+84EC95A31DD872F0728D9F65CA80940080E04630BE4DEC77A2C49E3913C39978
+BF145F8832AF2C4385EBCDB15F9D32C22CBA0CF950877717D6F1591D7C0B8047
+8C9BFCB16AF7124ED83137695F3D69228DB633053208C29E0ABA1B06A7FB3EE7
+5625CB44927E2DA6E038A6E62DEBDA2D96A03177982D8FA33BAAF4426E05F4B7
+9C1748B3FF7691F9888E7FF864A10B9DF761A41E6B5CFAD2BDD7E1C4924AC97B
+F4B352705316DD1A58637CC12D71C18A5CA691AB2AA8F171590EC24582B1123E
+94D4DC587D8F99E18A711776BF4013C96446BFECFEE4C809EA94B169088024DE
+0CBD20199A915AA406F0BD5F3D63D1467C49B4691AEBBB35ED6624F2D7BB74BC
+E80FD92B9FD04DD9C2BE9B6FD29EC7EC07FAB447511C61DD299C783BC09AE2A4
+7B3CBCA6A20C6631D06D0B2E2482A50612BB7C29B7E7D0A205EB0E8436702581
+596BC996ABD58CD8D5BAAE4B1478195CAFF98FE0141287296C4EFB8D2E7A8442
+F0A3AA9F9264329982532295A176BA1867EF732BBAC49AF485D9D0F7130F617E
+7F7DEEF935874D55A22240F8EDE4F247D5F73481373A392D40A8076BD91079E1
+1CE5998BA13D48D56B49A92B4A18430E316405D2E2E391B496A1934671FF1785
+AF42BA3B2D14B8E04014437FD194455C50289DFBA61B5C377BCBDADA48E82DEE
+4E70EF5E9DC03064907BCB8BE4D59DE069FB0C0CB140DA54708E630767313F9F
+744594AD8A499CFEF733E640A11FD74E46A749F9C7D18D49251BF85C6EB4668D
+67598C31A8F90922FEAEAD4B83B6E7184567DC798E4BA1C4C9B3461A478D63CA
+054F13B502DACB674EB49D6BB935E5EC82BF99FDA7D47C581AD7F940DF4FC6FA
+6C6D25D647033AC69505F0CAC58DE99087F365531A6283CB89CB644688963C3B
+8B2203A94294E58739EF23C7803630A1F9121D62BE1977DE2F41687C8CAF87FE
+CBD7AD3B98E0D95C8C6E1A7CCB0E09465AA874DC90A0F5DB2C5E7C130297FD39
+EFE63B0350B5139D09E6864D22C3F1150B29196E40EEF9723E71158B7ECFB8E4
+C426FEDCD439420B7F1C251FADA347C9A2C49738B5A17922E1EA93CA7B125B76
+57449EAA9C1D591CAD327D0E98EF2D44D614EE9ED49DD31ACAC0B956620B6BA5
+5BF6D08CA7541059D5ED2EF00AE2EE95488F5645BF6837D9241C0D3959B7580F
+C9ECB2BCF3E65C07D52EC9CFB21C11CD4C883E44C173214C900C44D2E1E43DD1
+CE8DFE3DA93C38B548BC4EC46FF91F30CFB97525E1FD4E77686433B20BABF8D2
+848C1CDF1BCF185CFD7A81D2D4BB826E837E2AF35CFC4F419F698DB0C43E9F9C
+B0FB628AC9A3CBE9B1FF4A067016E70333E78B32AB2D89C483834B31F5808FDB
+77492E099F1504DABCA5722C7860CDCEDB2DDEB512FFCC7D287F4945FD711F28
+87BC3D36173566B81FC2C1290C717A09697DAC6072408E20926D39270121CE58
+3EF97CE12EDD7F87F2C8CFE36C3C0400869C0D813B71C425343EE0CDF717BDD8
+409D5297D0F8F7FDEB0257C0A391F5635E0DB1116058942FF3E7C94D5F2873A7
+A3B0ADAFC3835AF2BE474E6741319BC6695FB37F59AEE388F81F6E66F910000B
+72E6BA7531B4378CEFEEDC79CCF4947BA1703823B5AB4F4AD73D9615C66C489D
+99D68E49C9BF765B7FC547BAB9640D51D5A7A2396507AB5A4DFF3D14F52422CD
+8FCFEAA06A56C6C7FFCD29C9A7A59DDD2A909A9363FE5F1E9629616D25ED38CB
+E754C059E4379318CC491C3B1A90128693AC53F80F8210FAEA7EE638902A7D3C
+82B95B3F5AE340EC1B648DBB9FB679D6E80B7F426D8671FE7136D97F51E2D2F3
+C9CE9183E4061CA40091A2A70DBB9ECBB19CE3F65ADD0FB346B54BAB182E2CD0
+EAF4C0F402C25573FB344EA771B297BEB615FCD0595172E84ED2A62FF8962634
+23C19076C2A9ECEED5135994EB397303A9619C76DC55E032DA83FBA441BD484A
+59F70A5110A8927F6239A14D4E223E189A5462E4A92EAEFFA4B961A2A32B320F
+C2B4E8C1821FA67A655B5042C15E4DE1FB3652B55078DB123573C4E986B19DB0
+1C5131F3DFAB271C30A5476B4A19D8FC922E31879C34BAED94C07A4841B8209C
+403369FB8E842610D1EB4662B6171A4465FD0E819964F62EC5B0ADC92F08CF90
+1DE0B410FFBAD16F6D355E8AD72CCF67961EDB6CDA82398021007C2D0462E893
+75EB0710AE4A6CDD15077C9DEFC5774EF4A657734D703CE42174259B58E5277E
+0DF26BF59AF8D1A3E7DC12E3C12AA4B67CF35B19962F6950C2020B698D971B35
+82FF84E72F72FBB0C54A112BADBAE6C4CAA358BDE6A705AB59332C3850CA3D25
+C7564499BC1319121CE0D93218210C68080AFF33420E3CB3A48BF9EB66BC07C8
+A79D8CD8E78C200FF7CFA3DAED0B9E87E6141C88B436D8FCBA50AC195FCBB9BC
+9512B95FE3A37FFAAB39850FCEBD4D50A243EA416E73F53B4B00F3B6EAE0CA06
+0693AAE0FFD5C119D11E5D13743E28D843B0F2EE315A2ED05A510CE53A2D06A7
+0C076D4B6BC2B6A928553E7F0FD472760167DB486A777259FA74245EE37D0125
+47314DEE4B29E5D22180BDB1BDA7D33406FD340DC3991F50800BDC90F7678EF1
+1064986DDA53A77FBE2EDD38E20C41EF86CD50E8EC167344A3F3B3C3BD83CD80
+87BE64CAB701D25CFC0796C099C07882A4332A5588B9900849925FE82DFEB1B3
+306700778714A8D72AD7F55F8836D0C1E2D6761CC3499C1771035D21CF191A2A
+9F424F1AAA20430004FE7917E3A6199B483D1CBABA5ECAF65287B7C389E86AF0
+CD55328B3E14C9688832B25EEAA05B69CE25CA606368FC10F30F6D04E5099566
+0F0497F4676676DDEB198758CBC2742F5F5FA5B904616A4F6DDA098FCA6837C1
+D16539998B5F787C29720DDF8A817E5AE94832178857EF7FB6DA2FA0E8BAA5C4
+62DB63EA840133874605DF90C8D027CEFBC212B9E2480DC7D4337D24F5377529
+CF1F14F3FA398C621ECC8AAB77BD1278DB82447A4B3A0784F91EB8706AD2EDEA
+8EAFF674B892ED3B33DDD9BF1A5A8E002DDD34D4172E9B51F4716DDDF3E2
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+%%EndFont
+%%BeginFont: TeXMUSIX20-Regular
+%!PS-AdobeFont-1.0: TeXMUSIX20-Regular 001.000
+%%CreationDate: 01-07-25 at 04.07
+%%VMusage: 1024 35768
+% Generated by Fontographer 4.1.4
+% converted using TeXtrace 0.45 and modified by T. Uchiyama
+% ADL: 701 299 0
+%%EndComments
+FontDirectory/TeXMUSIX20-Regular known{/TeXMUSIX20-Regular findfont dup/UniqueID known{dup
+/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+20 dict begin
+/FontInfo 16 dict dup begin
+/version (001.000) readonly def
+/FullName (TeXMUSIX20-Regular) readonly def
+/FamilyName (TeXMUSIX20) readonly def
+/Weight (Regular) readonly def
+/ItalicAngle 0 def
+/isFixedPitch false def
+/UnderlinePosition -100 def
+/UnderlineThickness 50 def
+/Notice (converted using TeXtrace 0.45 and modified by T. Uchiyama) readonly def
+/em 1000 def
+/ascent 701 def
+/descent 299 def
+end readonly def
+/FontName /TeXMUSIX20-Regular def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 0 /grave put
+dup 7 /caron put
+dup 8 /breve put
+dup 50 /two put
+dup 62 /greater put
+dup 63 /question put
+dup 64 /at put
+dup 71 /G put
+dup 132 /Dcaron put
+dup 137 /Lcaron put
+dup 142 /Ohungarumlaut put
+dup 143 /Racute put
+dup 147 /Scedilla put
+dup 148 /Tcaron put
+dup 196 /Adieresis put
+readonly def
+/PaintType 0 def
+/FontType 1 def
+/StrokeWidth 0 def
+/FontMatrix[0.001 0 0 0.001 0 0]readonly def
+%/UniqueID 0 def
+/FontBBox{-619 -1659 3200 1660}readonly def
+currentdict end
+currentfile eexec
+D9D66F633B846AB28EDC112EE8CE6C6736001234F4C7DFDC8C8014E32702D436
+0A505E30AFE960AA59313499738A089E6AEAEFDC84AEBA57A1F9AD647CCB7BE5
+B03F5F4993FB2566BC918B0AB23DB4629AC0D00174ECD9F3286839BBEA5DD0D6
+84E25152E241F0D923ADCB347B5635EE25CE26F509B8F400F2C9CFB67D676ACF
+9D516193DA983A07AC65A99BDDE6D09C93F522AF18F5462F7C2C3A7CD58FB034
+810D4645AE7525C1BDF2E062C4D0BB1A115E406B09C9014323678B1FF15AC494
+A82AC85A09051539D2EBF8D4910447B1C8875854670342B6D13D727DDBA5C2FD
+52AFE2107B72A73D3A8F8B0516B5D141AA315F37523CA19009A6CEAB11C23A80
+20B8C46718DBF2DBEAB3320A596C8992531F6E70A725359BD09EF9FF2C0E58DD
+9EE54192A355EDB81FB6E2391CD91A9BBD4E6637ECE7F9DA1603F49FA9AEF3E7
+27075B080A569EF1014B7F2D4C3687FA1336676537B82BF4590F962C967795F7
+BF6CD740C57389AB77A273920959FE657B87F76B9403C9586FE85C957B0BFF7B
+26F4AA603883E02139AC15D1360C26E332527461ABDBAA603802CAE75E08F559
+E16B2E623827BEBD40D4661A6B3D10D6C395EECC916F52F99D9D1F19DE5977BB
+73C4EFAEB7FD0052E831BE175C945358083BA2C5690E0CF8B386900A4A51F60D
+C8E98236B16D54A1D94E88A062E0E3D8397F5CB503F51A4F9918D3A902AC7DB3
+25B30A154EF106BF4CB8A369599B3496537F22C842825F69154DD87E05CF9ADA
+B6C94188CB702F53D00BBEC8ACE69CBBFB8C11099395D7BF0D47EB3E41454D13
+AAAC4392E8C0ADCA1E87A6F844D3AD81EDD4CCDD0FBBFCEEE9C70BAC5B4D4861
+E7B9DB2F4DAD612986007DB8CDB3B5384C3C7D77A2609D2255D4098E7A314D80
+1A553DD03007696C9DA22D9E9AD132F09CDC0144E7C1BB169635A24341DE3589
+96D503CB7BC73A81FC12A743C711916CBEEEF61F7273B238B3C0DF1AF4B190B7
+C820DD8F5FDAF73872074E1C95F4A4B7E1B5DED436C03D1020B9FE9F780FF2C5
+920C97B1584B7E0051107EE7789BFAB0B13F32AD2DC01DB5120BFD6B5FA8E386
+EE743D10E6A9E858979543882C19ABB36FE278EAD1304E84DF80E8CF87A994DE
+0DAFBB95D391F35C8E312D1D85D21F65EC814C7A4E15D034D9F6EAFEA8697AC7
+18C065A32EF7393D5EA0A0A1910348C683507572C4EF09A3879385A9055D07BE
+DF7DF76E709173D893BF15C3BEDE13E98CAC3B558464896E706D9DA2C2E427F8
+BB46F767E7C2DCC7AFA57B2261E3B4B77FF536077142568FCF854F6CD0AA2490
+6F60E10477ADF31469FCC61F2996FEA16931CC25BB0C4EE70CAB7CD0E1694597
+7CF7FFCA2E0F91E203D0F0E1063DC1E35790F64B33FCD10C4E1A8D7198EB1595
+8C98B634DC773FA0C6319B6C61747FE81F28BFA16DA0FA70684F64B94C7E5F96
+A49F076C0C62981CCF3C97EA36EB5128796E46CB0AF47EBABF3371814C699A52
+42A6269BC520E108F4CCCE71F6C94548B08649B5272791B118E05E6BF3241193
+F6FD1FE927709EE5DFCCA5CE89A74C4A4F6DC13CF002AA597C532DD7C0CC273D
+4935FB1315D9EBBFC89DE29080C0AC38FC238208E2CB9B8C564D794FDAA23AC4
+FA5366E2B5E60844067070494551C880665E8C5975AA902C9C8F599493D79296
+72EAC804E83F04F9397811C3DCA6F6ED7B6C192C157CA7E3861EF7E3BBECAC86
+36869747A8973B9FF766C48EF90CB4718568140CBEB62BF9146BF03DB79F147B
+A8DB97795AA6AC93836B51EC6305E153F94B7B126193917240ECA0FB6E2ED351
+855CA26732C374BFEF6F3E76F924931C0A541A75778D25A8AA8866193B8CC374
+7EA02973E078BD26167522FD825BE43D0571AB84233E89570472CA8F63717D9C
+C9EF12E4FFDB96DC6030A9621D47CAD9FF7839F27536BDFB8C7B86F6F9C83FCC
+9C7EBBCEBB88C29AED0C9F91E3F34D8BF8CB228392755572E4DDAE3F2878DB94
+9281A8093A41909E7289AE46B7E03439AF11892C85DDB0DFB1FFD40AA222D25A
+DDF1928CBB888F0C20240E9E8358C3109D227EA1DC398C1015B135582508844D
+7CE0FE9BF7C50360F65D51CF02ABB27BB712EBE9B62757302393F87677529A0D
+EC03CB1A41BBCA9528513945C0CA86B2748153FF784ECD49E98303AEDE5A6C48
+06CDA5D387964465D355B8705F65BED45E43E07A78BEC52C0B5CA756E10ED962
+807280F2241A5B322511285341C5B4D0F5FEF23C3682F2179E80BBA95F60FC3A
+54EA474CAE96C037AE11F2D0AB38EC2280F4650908F0DDD78DDA83C237AFAA86
+E505F5CF933CD72BF3E423E65E5A3C3506E063B178116DAFC867507BAF6D903D
+C2E2EF39EB10A6E5B84D4C84E063137E0A15ABF83C2C2A27FD44668F67843CBC
+80A482DEBA35B87D1F7E9E3BA44CC7E112ACFFA2833A2CF10EE6074747E3AFD6
+7D81B95EC4585F9BCEDFE9E2C6DA99C4FD7291B095B472421157C7F282D502D6
+86865E7A1F4DC90E64091EE2EE330525C2B4242175451BBDB7F2743D6CFC0C8F
+EE305BAB301056BE04FE6E4413835211BEC90FB61580A5817DA13E7782F126FC
+1D0920A671D93294B2759956CF0AE8FD3C81C7B736816B36910C5A0A3B4B17CA
+7963D89CF311980A11AADE264D5A3D728A24E598B55319258E404CDA76F61F09
+C8A9EADB68EBDDE492E86062449C494FCC80E0DA6319A6BE57F1959106763A52
+9A33C2BDF0AF6C62C66747EF270EDCFF0E0C4CEE04E96A3D153C32CF19ACA947
+DF6CBA6440DE60562CE5E0D2C4AA9E3574BB5D3E04AFD823C8923E151515FB8E
+D1A2F9CDC73B6F3FE5BC8998311194FFD1D432F9EC71EDD674E57C0AB26EF8AC
+9F110243CC251AE3C0B29084654C73E10915970F60BA98F915B664C4738046CE
+4CDF306D4DB9DE2E031239DBCAF12EB6C77DDEBDFB8D8C9CF4E895A56DDBB321
+4E61CD61F8ED63451E4164A9AA939ADE975C8044C4B8D0D88CC8C44E4B9CC218
+37342CA40584DD196ACEFAB11E4B831217BC528D15A7880976551127E0020F6B
+1CC031CFB13EE91C91B3624FC794BA6FB2D914A2F54098770D99675E5EED68BD
+394B29D02999AF28FB8BCBF358C149519824AAD9D3F71923C217F6B87D60D24F
+435BC63C5A0646344D41B16FE9BDF9BCE630A9F7DE51C5DF31E16DEEAB58D7F8
+D0503C61F11B851B35E00DBD21C85CCC6C44F17C798E1CDCA3486502BD7EB3E0
+EE79734B6E041FFF7546386350F566AD2A72F367E6043789FD68271B170AB36D
+88857AD9CF20980B148F6080DB98A12466D2130BA37C1588947145515BD2124B
+C01CD2CD28281C172CC1E5F1A308934B95DE6C65C6E96F276FC34D2889EF4987
+7A27B527B1869FAED89A129F5643DAAF0B56EFEB55236F60B38BF8938BD35B88
+CCCE3541FE827DB6B215E47107A1745424928274583A516F5688C3295A611BEC
+3ACB24638EF27CD1A2F5E6D87C9D2158A4EBFD9359D46E3C0A1931F77A9DE27E
+7C3FD9D0C0217C05F9179560A1AC70F73E4D8F55FFF65E6EA9F6636935E9C24B
+5B44E620E893C58DFD4A9C01458254B6FB5077D94F5269B7B7359E3C6EEE09BC
+8745C74CC4DF38C1FE2A6F57C5F7B2150A8D4C24823A305E11457B94EF7E60A6
+22388A7FBE92AB2CE376
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark{restore}if
+%%EndFont
+TeXDict begin 40258431 52099146 1000 600 600 (tremxmpl4.dvi)
+@start /Fa 136[60 44 46 32 33 33 44 1[42 46 69 23 2[23
+46 42 25 37 46 37 1[42 49[42 47[{}20 83.022 /CMR10 rf
+/Fb 203[67 52[{}1 119.552 /CMBX12 rf /Fc 59[266 47[66
+33 3[133 66 4[133 4[266 60[133 6[0 0 0 11[50 41[0 0 6[0{}15
+166.044 /TeXMUSIX20-Regular rf end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%BeginPaperSize: Letter
+letter
+%%EndPaperSize
+ end
+%%EndSetup
+%%Page: 1 1
+TeXDict begin 1 0 bop -214 -117 2989 4 v -214 -76 V -214
+-34 V -214 7 V -214 49 V -214 5 a Fc(G)-51 -39 y Fb(4)-51
+44 y(4)166 151 y Fa(whole)27 b(note)g(default)p 214 26
+4 227 v 167 26 a Fc(\010)215 -130 y(\204)261 -132 y(\204)215
+-161 y(\204)261 -163 y(\204)215 -192 y(\204)261 -194
+y(\204)p 525 -15 4 201 v 478 -15 a(\010)p 837 26 4 227
+v 790 26 a(\010)838 -130 y(\204)884 -132 y(\204)838 -161
+y(\204)884 -163 y(\204)838 -192 y(\204)884 -194 y(\204)p
+1148 -15 4 201 v 1101 -15 a(\010)p 1412 49 4 168 v 1525
+151 a Fa(whole)h(note)f(fast)p 1574 26 4 196 v 1527 26
+a Fc(\010)1575 -130 y(\204)1621 -132 y(\204)1575 -161
+y(\204)1621 -163 y(\204)p 1885 -15 4 170 v 1838 -15 a(\010)p
+2197 26 4 196 v 2150 26 a(\010)2198 -130 y(\204)2244
+-132 y(\204)2198 -161 y(\204)2244 -163 y(\204)p 2508
+-15 4 170 v 2461 -15 a(\010)p 2772 49 4 168 v -214 363
+2989 4 v -214 405 V -214 446 V -214 488 V -214 529 V
+-214 486 a(G)58 694 y Fa(dotted)h(half)g(w/)f(mo)n(v)n(ed)g(c)n(hordal)
+f(dots)9 528 y Fc(2)108 507 y(\010\000)p 46 571 75 4
+v 59 569 a(\010)108 590 y(\000)p 107 569 4 248 v 60 528
+a(\010)108 548 y(\000)108 393 y(\304)267 401 y(\304)108
+362 y(\304)267 370 y(\304)108 331 y(\304)267 339 y(\304)p
+471 571 75 4 v 471 612 V 531 610 4 268 v 484 610 a(\010)484
+590 y(\000)908 528 y(>)p 1256 529 4 168 v 1382 631 a
+Fa(half)h(note)h(default)p 1430 507 4 227 v 1383 507
+a Fc(\010)1431 351 y(\204)1513 347 y(\204)1431 320 y(\204)1513
+316 y(\204)1431 289 y(\204)1513 285 y(\204)p 1777 465
+4 203 v 1730 465 a(\010)2077 631 y Fa(half)f(note)h(fast)p
+2125 507 4 196 v 2078 507 a Fc(\010)2126 351 y(\204)2208
+347 y(\204)2126 320 y(\204)2208 316 y(\204)p 2472 465
+4 172 v 2425 465 a(\010)p 2772 529 4 168 v -214 807 2989
+4 v -214 849 V -214 890 V -214 932 V -214 973 V -214
+930 a(G)20 1159 y Fa(quarter)20 1076 y(dotted)p 68 951
+4 175 v 21 951 a Fc(\007\000)103 847 y(\211)-127 b(\211)103
+816 y(\211)g(\211)103 785 y(\211)109 784 y(\211)p 275
+910 4 153 v 228 910 a(\007\000)434 972 y(?)603 1159 y
+Fa(default)603 1076 y(quarter)p 652 951 4 150 v 605 951
+a Fc(\007)686 868 y(\216)721 863 y(\216)686 837 y(\216)721
+832 y(\216)686 806 y(\216)721 801 y(\216)p 821 910 4
+134 v 774 910 a(\007)942 972 y(>)p 1181 973 4 168 v 1269
+1159 a Fa(fast)1269 1076 y(quarter)p 1317 951 4 131 v
+1270 951 a Fc(\007)1352 858 y(\216)1386 853 y(\216)1352
+827 y(\216)1386 821 y(\216)p 1486 910 4 116 v 1439 910
+a(\007)1607 1159 y Fa(eigh)n(th)1607 1076 y(dotted)p
+1655 951 4 165 v 1608 951 a Fc(\007\000)1690 854 y(\216)1701
+852 y(\216)1690 822 y(\216)1701 821 y(\216)1656 795 y(\217)1671
+793 y(\217)p 1801 910 4 145 v 1754 910 a(\007\000)1899
+972 y(@)2018 1159 y Fa(default)2018 1076 y(eigh)n(th)p
+2067 951 4 165 v 2020 951 a Fc(\007)2101 851 y(\223)2119
+848 y(\223)2101 820 y(\223)2119 817 y(\223)2068 795 y(\224)2121
+785 y(\224)p 2186 910 4 147 v 2139 910 a(\007)2257 972
+y(>)2496 1159 y Fa(fast)2496 1076 y(eigh)n(th)p 2544
+951 4 144 v 2497 951 a Fc(\007)2579 841 y(\223)2597 838
+y(\223)2545 816 y(\224)2599 805 y(\224)p 2663 910 4 127
+v 2616 910 a(\007)p 2734 973 4 168 v 2750 973 25 168
+v eop end
+%%Trailer
+
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/support/pmx/tex/pmx.tex b/support/pmx/tex/pmx.tex
index 36fd8d2387..3576f581cf 100644
--- a/support/pmx/tex/pmx.tex
+++ b/support/pmx/tex/pmx.tex
@@ -4,7 +4,8 @@
%% %%
%%%%%%%%%%%%%%%%%%%%%%%
\ifx\pmxversion\undefined\else\endinput\fi
-\def\pmxversion{2.80}\def\pmxdate{15 Mar 17}
+\def\pmxversion{2.94}\def\pmxdate{23 Jan 20}
+% 2.94 add def'ns of \hbp, \hbpp
% 2.80 add def'n of \slx, real stemlength
% 2.73 4 Feb 16 Fix \pmxclefsym to include \smalltreblelowoct
% 2.73 Added \pmxlyr command.
@@ -765,8 +766,10 @@ depth \h@lf\pcil width \razclef\kern-\h@lf\razclef\kern-\h@lf\pcil\kern-.1pt
% 160103 back to 3 args
%
\def\mbgap{\qsk\hqsk}%
+\def\mbrhgt{9}%
\def\mbrest#1#2#3{%
-\CenterBar{\ccn{9}{\meterfont#1}}{#2}{#3}%
+%\CenterBar{\ccn{9}{\meterfont#1}}{#2}{#3}%
+\CenterBar{\ccn{\mbrhgt}{\meterfont#1}}{#2}{#3}%
\CenterBar{%
\ifcase #1%
\relax%
@@ -850,7 +853,17 @@ depth \h@lf\pcil width \razclef\kern-\h@lf\razclef\kern-\h@lf\pcil\kern-.1pt
%
\def\lk{\lyrlink}%
\def\at#1{\lyrraisehere{#1\internote}}%
-
+%
+% 190526 Items for short line enhancements
+%
+\let\wbnt\writebarno
+\def\nobarno{\gdef\writebarno{\global\let\writebarno\wbnt}}
+%
+% 200123 Open headed dotted chord notes
+%
+\def\hbp{\h@symbol\@qbp}%
+\def\hbpp{\h@symbol\@qbpp}%
+%
\catcode`\@=\catcodeat
\endinput