Merged changes.
--- a/.hgignore Fri Jan 15 20:15:00 2010 +0530
+++ b/.hgignore Tue Jul 13 01:43:25 2010 +0530
@@ -37,6 +37,7 @@
project.db
project/media/user/*
project/static/media
+project/static/proceedings/output/*
project/kiwipycon/user/*.pyc
apache/*
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project/kiwipycon/proceedings/admin.py Tue Jul 13 01:43:25 2010 +0530
@@ -0,0 +1,19 @@
+# -*- coding: utf-8 -*-
+from __future__ import absolute_import
+
+from django.contrib import admin
+
+from project.kiwipycon.proceedings.models import Paper
+
+
+class PaperAdmin(admin.ModelAdmin):
+ list_display = ('title', 'abstract')
+ list_filter = ('title', 'authors')
+ search_fields = ('title', 'abstract', 'authors')
+ fieldsets = (
+ ('Details', {
+ 'fields': ('title', 'abstract', 'body', 'authors')
+ }),
+ )
+
+admin.site.register(Paper, PaperAdmin)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project/kiwipycon/proceedings/booklet/mk_booklet.py Tue Jul 13 01:43:25 2010 +0530
@@ -0,0 +1,80 @@
+# encoding: utf-8
+
+import os
+import sys
+import codecs
+import re
+
+
+from mk_scipy_paper import tex2pdf, current_dir , copy_files, preamble, \
+ render_abstract, addfile, sourcedir, outdir, outfilename
+
+
+def hack_include_graphics(latex_text, attach_dir):
+ """ Replaces all the \includegraphics call with call that impose the
+ width to be 0.9\linewidth.
+ """
+ latex_text = re.sub(r'\\includegraphics(\[.*\])?\{',
+ r'\includegraphics\1{' + attach_dir,
+ latex_text)
+ return latex_text
+
+
+class MyStringIO(object):
+ """ An unicode-friendly stringIO-like object.
+ """
+
+ def __init__(self):
+ self.lines = []
+
+ def write(self, line):
+ self.lines.append(line)
+
+ def getvalue(self):
+ return u''.join(self.lines)
+
+def mk_booklet_tex(outfilename):
+ """ Generate the entire booklet latex file.
+ """
+ outfile = codecs.open(outfilename, 'w', 'utf-8')
+ preamble(outfile)
+ copy_files()
+ #addfile(outfile, sourcedir + os.sep + 'title.tex')
+ addfile(outfile, sourcedir + os.sep + 'introduction.tex')
+
+ #outfile.write(ur'\setcounter{page}{0}' + '\n')
+
+ #from sanum.controllers import Root as Controller
+# abstracts = model.Abstract.select()
+# for abstract in abstracts:
+# if not abstract.approved:
+# continue
+# print abstract.title
+# # Hack: I don't use a stringIO, because it is not unicode-safe.
+# tmpout = MyStringIO()
+# # Hack: I don't wont to be bound to the controller, to be
+# # abstractle to run without cherrypy.
+# #attach_dir = Controller._paper_attach_dir(abstract.id)
+# attach_dir = os.path.abspath(os.sep.join(
+# (os.path.dirname(sanum.__file__), 'static',
+# 'papers', '%i' % abstract.id))) + os.sep
+# render_abstract(tmpout, abstract)
+# outstring = hack_include_graphics(tmpout.getvalue(),
+# attach_dir)
+# outfile.write(outstring)
+# #outfile.write(ur'\fillbreak' + '\n')
+
+ outfile.write(ur'\end{document}' + '\n')
+
+
+
+
+def mk_booklet(outfilename=outfilename):
+ """ Generate the entire booklet pdf file.
+ """
+ name, ext = os.path.splitext(outfilename)
+ mk_booklet_tex(name + '.tex')
+ return tex2pdf(name, remove_tex=False, timeout=60)
+
+if __name__ == '__main__':
+ mk_booklet(outfilename)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project/kiwipycon/proceedings/booklet/mk_scipy_paper.py Tue Jul 13 01:43:25 2010 +0530
@@ -0,0 +1,470 @@
+# encoding: utf-8
+
+import os
+import re
+import sys
+import shutil
+import codecs
+from glob import glob
+
+from docutils import core as docCore
+
+conf_name = 'SciPy2009'
+
+current_dir = '/media/python/workspace/kiwipycon/project/static/proceedings'
+
+outdir = current_dir + os.sep + 'output'
+
+sourcedir = current_dir + os.sep + 'sources'
+try:
+ os.mkdir(outdir)
+except:
+ pass
+
+outfilename = outdir + os.sep + 'booklet.tex'
+
+##############################################################################
+# Routines for supervised execution
+##############################################################################
+
+from threading import Thread
+import os
+import signal
+from subprocess import Popen
+from time import sleep
+
+def delayed_kill(pid, delay=10):
+ sleep(delay)
+ try:
+ os.kill(pid, signal.SIGTERM)
+ except OSError:
+ pass
+
+def supervise_popen(command, timeout=10):
+ process = Popen(command)
+ Thread(target=delayed_kill, args=(process.pid,timeout),).start()
+
+ process.wait()
+
+
+
+##############################################################################
+# LaTeX generation functions.
+##############################################################################
+
+def protect(string):
+ r''' Protects all the "\" in a string by adding a second one before
+
+ >>> protect(r'\foo \*')
+ '\\\\foo \\\\*'
+ '''
+ return re.sub(r"\\", r"\\\\", string)
+
+
+def safe_unlink(filename):
+ """ Remove a file from the disk only if it exists, if not r=fails silently
+ """
+ if os.path.exists(filename):
+ os.unlink(filename)
+
+rxcountpages = re.compile(r"$\s*/Type\s*/Page[/\s]", re.MULTILINE|re.DOTALL)
+
+def count_pages(filename):
+ data = file(filename,"rb").read()
+ return len(rxcountpages.findall(data))
+
+
+def tex2pdf(filename, remove_tex=True, timeout=10, runs=2):
+ """ Compiles a TeX file with pdfLaTeX (or LaTeX, if or dvi ps requested)
+ and cleans up the mess afterwards
+ """
+ current_dir = os.getcwd()
+ os.chdir(os.path.dirname(filename))
+ print >> sys.stderr, "Compiling document to pdf"
+ basename = os.path.splitext(os.path.basename(filename))[0]
+ if os.path.exists(basename + '.pdf'):
+ os.unlink(basename + '.pdf')
+ for _ in range(runs):
+ supervise_popen(("pdflatex", "--interaction", "scrollmode",
+ os.path.basename(filename)), timeout=timeout)
+ error_file = None
+ errors = file(os.path.abspath(basename + '.log')).readlines()[-1]
+ if not os.path.exists(basename + '.pdf') or \
+ "Fatal error" in errors:
+ error_file = os.path.abspath(basename + '.log')
+ if remove_tex:
+ safe_unlink(filename+".tex")
+ safe_unlink(filename+".log")
+ safe_unlink(filename+".aux")
+ safe_unlink(filename+".out")
+ os.chdir(current_dir)
+ return error_file
+
+
+def rst2latex(rst_string, no_preamble=True, allow_latex=True):
+ """ Calls docutils' engine to convert a rst string to a LaTeX file.
+ """
+ overrides = {'output_encoding': 'utf-8', 'initial_header_level': 3,
+ 'no_doc_title': True, 'use_latex_citations': True,
+ 'use_latex_footnotes':True}
+ if allow_latex:
+ rst_string = u'''.. role:: math(raw)
+ :format: latex
+ \n\n''' + rst_string
+ tex_string = docCore.publish_string(
+ source=rst_string,
+ writer_name='latex2e',
+ settings_overrides=overrides)
+ if no_preamble:
+ extract_document = \
+ re.compile(r'.*\\begin\{document\}(.*)\\end\{document\}',
+ re.DOTALL)
+ matches = extract_document.match(tex_string)
+ tex_string = matches.groups()[0]
+ return tex_string
+
+
+def get_latex_preamble():
+ """ Retrieve the required preamble from docutils.
+ """
+ full_document = rst2latex('\n', no_preamble=False)
+ preamble = re.split(r'\\begin\{document\}', full_document)[0]
+ ## Remove the documentclass.
+ preamble = r"""
+ %s
+ \makeatletter
+ \newcommand{\class@name}{gael}
+ \makeatother
+ \usepackage{ltxgrid}
+ %s
+ """ % (
+ preamble.split('\n')[0],
+ '\n'.join(preamble.split('\n')[1:]),
+ )
+ return preamble
+
+
+##############################################################################
+# Functions to generate part of the booklet
+##############################################################################
+def addfile(outfile, texfilename):
+ """ Includes the content of a tex file in our outfile.
+ """
+ include = codecs.open(texfilename, 'r')
+ data = include.readlines()
+ outfile.write(ur'\thispagestyle{empty}' + u'\n')
+ outfile.writelines(data)
+
+
+def preamble(outfile):
+ outfile.write(r'''
+ %s
+ \usepackage{abstracts}
+ \usepackage{ltxgrid}
+ \usepackage{amssymb,latexsym,amsmath,amsthm}
+ \usepackage{longtable}
+ \geometry{left=.8cm, textwidth=17cm, bindingoffset=0.6cm,
+ textheight=25.3cm, twoside}
+ \usepackage{hyperref}
+ \hypersetup{pdftitle={Proceedings of the 8th Annual Python in Science Conference}}
+ \begin{document}
+
+ '''.encode('utf-8') % get_latex_preamble())
+
+ # XXX SciPy08 should not be hard coded, but to run out of the webapp
+
+def hack_include_graphics(latex_text):
+ """ Replaces all the \includegraphics call with call that impose the
+ width to be 0.9\linewidth.
+ """
+ latex_text = re.sub(r'\\setlength\{\\rightmargin\}\{\\leftmargin\}',
+ r'\\setlength{\\leftmargin}{4ex}\\setlength{\\rightmargin}{0ex}',
+ latex_text)
+ latex_text = re.sub(r'\\begin\{quote\}\n\\begin\{itemize\}',
+ r'\\begin{itemize}',
+ latex_text)
+ latex_text = re.sub(r'\\end\{itemize\}\n\\end\{quote\}',
+ r'\\end{itemize}',
+ latex_text)
+ latex_text = re.sub(r'\\includegraphics(\[.*\])?\{',
+ r'\includegraphics[width=\linewidth]{',
+ latex_text)
+ latex_text = re.sub(r'\\href\{([^}]+)\}\{http://(([^{}]|(\{[^}]*\}))+)\}',
+ r'''%
+% Break penalties to have URL break easily:
+\mathchardef\UrlBreakPenalty=0
+\mathchardef\UrlBigBreakPenalty=0
+%\hskip 0pt plus 2em
+\href{\1}{\url{\1}}''',
+ latex_text)
+ latex_text = re.sub(r'\\href\{([^}]+)\}\{https://(([^{}]|(\{[^}]*\}))+)\}',
+ r'''%
+% Break penalties to have URL break easily:
+\mathchardef\UrlBreakPenalty=0
+\mathchardef\UrlBigBreakPenalty=0
+\linebreak
+\href{\1}{\url{\1}}''',
+ latex_text)
+
+ return latex_text
+
+
+def render_abstract(outfile, abstract, start_page=None):
+ """ Writes the LaTeX string corresponding to one abstract.
+ """
+ if start_page is not None:
+ outfile.write(r"""
+\setcounter{page}{%i}
+""" % start_page)
+ else:
+ if hasattr(abstract, 'start_page'):
+ start_page = abstract.start_page
+ else:
+ start_page = 1
+ if not abstract.authors:
+ author_list = abstract.owners
+ else:
+ author_list = abstract.authors
+ authors = []
+
+ for author in author_list:
+ # If the author has no surname, he is not an author
+ if author.surname:
+ if author.email_address:
+ email = r'(\email{%s})' % author.email_address
+ else:
+ email = ''
+ authors.append(ur'''\otherauthors{
+ %s %s
+ %s --
+ \address{%s, %s}
+ }''' % (author.first_names, author.surname,
+ email,
+ author.institution,
+ author.city))
+ if authors:
+ authors = u'\n'.join(authors)
+ authors += r'\addauthorstoc{%s}' % ', '.join(
+ '%s. %s' % (author.first_names[0], author.surname)
+ for author in author_list
+ )
+ author_cite_list = ['%s. %s' % (a.first_names[0], a.surname)
+ for a in author_list]
+ if len(author_cite_list) > 4:
+ author_cite_list = author_cite_list[:3]
+ author_cite_list.append('et al.')
+ citation = ', '.join(author_cite_list) + \
+ 'in Proc. SciPy 2009, G. Varoquaux, S. van der Walt, J. Millman (Eds), '
+ copyright = '\\copyright 2009, %s' % ( ', '.join(author_cite_list))
+ else:
+ authors = ''
+ citation = 'Citation'
+ copyright = 'Copyright'
+ if hasattr(abstract, 'num_pages'):
+ citation += 'pp. %i--%i' % (start_page, start_page +
+ abstract.num_pages)
+ else:
+ citation += 'p. %i'% start_page
+ if hasattr(abstract, 'number'):
+ abstract.url = 'http://conference.scipy.org/proceedings/%s/paper_%i' \
+ % (conf_name, abstract.number)
+ url = r'\url{%s}' % abstract.url
+ else:
+ url = ''
+ paper_text = abstract.paper_text
+ if paper_text == '':
+ paper_text = abstract.summary
+ # XXX: It doesn't seem to be right to be doing this, but I get a
+ # nasty UnicodeDecodeError on some rare abstracts, elsewhere.
+ paper_text = codecs.utf_8_decode(hack_include_graphics(
+ rst2latex(paper_text)))[0]
+ paper_abstract = abstract.paper_abstract
+ if paper_abstract is None:
+ paper_abstract = ''
+ if not paper_abstract=='':
+ paper_abstract = ur'\begin{abstract}%s\end{abstract}' % \
+ paper_abstract#.encode('utf-8')
+ abstract_dict = {
+ 'text': paper_text.encode('utf-8'),
+ 'abstract': paper_abstract.encode('utf-8'),
+ 'authors': authors.encode('utf-8'),
+ 'title': abstract.title.encode('utf-8'),
+ 'citation': citation.encode('utf-8'),
+ 'copyright': copyright.encode('utf-8'),
+ 'url': url.encode('utf-8'),
+ }
+ outfile.write(codecs.utf_8_decode(ur'''
+\phantomsection
+\hypertarget{chapter}{}
+\vspace*{-2em}
+
+\resetheadings{%(title)s}{%(citation)s}{%(url)s}{%(copyright)s}
+\title{%(title)s}
+
+\begin{minipage}{\linewidth}
+%(authors)s
+\end{minipage}
+
+\noindent\rule{\linewidth}{0.2ex}
+\vspace*{-0.5ex}
+\twocolumngrid
+%(abstract)s
+
+\sloppy
+
+%(text)s
+
+\fussy
+\onecolumngrid
+\smallskip
+\vfill
+\filbreak
+\clearpage
+
+'''.encode('utf-8') % abstract_dict )[0])
+
+def copy_files(dest=outfilename):
+ """ Copy the required file from the source dir to the output dir.
+ """
+ dirname = os.path.dirname(dest)
+ if dirname == '':
+ dirname = '.'
+ for filename in glob(sourcedir+os.sep+'*'):
+ destfile = os.path.abspath(dirname + os.sep +
+ os.path.basename(filename))
+ shutil.copy2(filename, destfile)
+
+
+def mk_abstract_preview(abstract, outfilename, attach_dir, start_page=None):
+ """ Generate a preview for an given paper.
+ """
+ copy_files()
+ outdir = os.path.dirname(os.path.abspath(outfilename))
+ for f in glob(os.path.join(attach_dir, '*')):
+ if os.path.isdir(f) and not os.path.exists(f):
+ os.makedirs(f)
+ else:
+ if not outdir == os.path.dirname(os.path.abspath(f)):
+ shutil.copy2(f, outdir)
+ for f in glob(os.path.join(sourcedir, '*')):
+ if os.path.isdir(f):
+ os.makedirs(f)
+ else:
+ destfile = os.path.abspath(os.path.join(outdir, f))
+ shutil.copy2(f, outdir)
+
+ outbasename = os.path.splitext(outfilename)[0]
+ outfilename = outbasename + '.tex'
+
+ outfile = codecs.open(outfilename, 'w', 'utf-8')
+ preamble(outfile)
+ render_abstract(outfile, abstract, start_page=start_page)
+ outfile.write(ur'\end{document}' + u'\n')
+ outfile.close()
+
+ tex2pdf(outbasename, remove_tex=False)
+ abstract.num_pages = count_pages(outbasename + '.pdf')
+
+ # Generate the tex file again, now that we know the length.
+ outfile = codecs.open(outfilename, 'w', 'utf-8')
+ preamble(outfile)
+ render_abstract(outfile, abstract, start_page=start_page)
+ outfile.write(ur'\end{document}' + u'\n')
+ outfile.close()
+
+ error_file = tex2pdf(os.path.splitext(outfilename)[0], remove_tex=False)
+
+ if not error_file:
+ # Generate a preview image
+ command = ('convert', '-thumbnail', 'x400',
+ '%s[0]' % (outbasename + '.pdf'), outbasename + '.png')
+ supervise_popen(command, timeout=10)
+
+ return error_file
+
+##############################################################################
+# Code for using outside of the webapp.
+##############################################################################
+
+def mk_zipfile():
+ """ Generates a zipfile with the required files to build an
+ abstract.
+ """
+ from zipfile import ZipFile
+ zipfilename = os.path.join(os.path.dirname(__file__),
+ 'mk_scipy_paper.zip')
+ z = ZipFile(zipfilename, 'w')
+ for filename in glob(os.path.join(sourcedir, '*')):
+ if not os.path.isdir(filename):
+ z.write(filename, arcname='source/' + os.path.basename(filename))
+ z.write(__file__, arcname='mk_scipy_paper.py')
+ return zipfilename
+
+class Bunch(dict):
+ def __init__(self, **kwargs):
+ dict.__init__(self, **kwargs)
+ self.__dict__ = self
+
+ def __reprt(self):
+ return repr(self.__dict__)
+
+author_like = Bunch(
+ first_names='XX',
+ surname='XXX',
+ email_address='xxx@XXX',
+ institution='XXX',
+ address='XXX',
+ country='XXX'
+)
+
+
+abstract_like = Bunch(
+ paper_abstract='An abstract',
+ authors=[author_like, ],
+ title='',
+ )
+
+if __name__ == '__main__':
+ from optparse import OptionParser
+ parser = OptionParser()
+ parser.add_option("-o", "--output", dest="outfilename",
+ default="./paper.pdf",
+ help="output to FILE", metavar="FILE")
+ parser.usage = """%prog [options] rst_file [data_file]
+ Compiles a given rest file and information file to pdf for the SciPy
+ proceedings.
+ """
+
+ (options, args) = parser.parse_args()
+ if not len(args) in (1, 2):
+ print "One or two arguments required: the input rest file and " \
+ "the input data file"
+ print ''
+ parser.print_help()
+ sys.exit(1)
+ infile = args[0]
+ if len(args)==1:
+ data_file = 'data.py'
+ if os.path.exists('data.py'):
+ print "Using data file 'data.py'"
+ else:
+ print "Generating the data file and storing it in data.py"
+ print "You will need to edit this file to add title, author " \
+ "information, and abstract."
+ abstract = abstract_like
+ file('data.py', 'w').write(repr(abstract))
+ elif len(args)==2:
+ data_file = args[1]
+
+ abstract = Bunch( **eval(file(data_file).read()))
+ abstract.authors = [Bunch(**a) for a in abstract.authors]
+
+ abstract['summary'] = u''
+ abstract['paper_text'] = file(infile).read().decode('utf-8')
+
+ outfilename = options.outfilename
+
+ mk_abstract_preview(abstract, options.outfilename,
+ os.path.dirname(options.outfilename))
+ # Ugly, but I don't want to wait on the thread.
+ sys.exit()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project/static/css/autoSuggest.css Tue Jul 13 01:43:25 2010 +0530
@@ -0,0 +1,217 @@
+/* AutoSuggest CSS - Version 1.2 */
+
+ul.as-selections {
+ list-style-type: none;
+ border-top: 1px solid #888;
+ border-bottom: 1px solid #b6b6b6;
+ border-left: 1px solid #aaa;
+ border-right: 1px solid #aaa;
+ padding: 4px 0 4px 4px;
+ margin: 0;
+ overflow: auto;
+ background-color: #fff;
+ box-shadow:inset 0 1px 2px #888;
+ -webkit-box-shadow:inset 0 1px 2px #888;
+ -moz-box-shadow:inset 0 1px 2px #888;
+}
+
+ul.as-selections.loading {
+ background-color: #eee;
+}
+
+ul.as-selections li {
+ float: left;
+ margin: 1px 4px 1px 0;
+}
+
+ul.as-selections li.as-selection-item {
+ color: #2b3840;
+ font-size: 13px;
+ font-family: "Lucida Grande", arial, sans-serif;
+ text-shadow: 0 1px 1px #fff;
+ background-color: #ddeefe;
+ background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ddeefe), to(#bfe0f1));
+ border: 1px solid #acc3ec;
+ border-top-color: #c0d9e9;
+ padding: 2px 7px 2px 10px;
+ border-radius: 12px;
+ -webkit-border-radius: 12px;
+ -moz-border-radius: 12px;
+ box-shadow: 0 1px 1px #e4edf2;
+ -webkit-box-shadow: 0 1px 1px #e4edf2;
+ -moz-box-shadow: 0 1px 1px #e4edf2;
+}
+
+ul.as-selections li.as-selection-item:last-child {
+ margin-left: 30px;
+}
+
+ul.as-selections li.as-selection-item a.as-close {
+ float: right;
+ margin: 1px 0 0 7px;
+ padding: 0 2px;
+ cursor: pointer;
+ color: #5491be;
+ font-family: "Helvetica", helvetica, arial, sans-serif;
+ font-size: 14px;
+ font-weight: bold;
+ text-shadow: 0 1px 1px #fff;
+ -webkit-transition: color .1s ease-in;
+}
+
+ul.as-selections li.as-selection-item.blur {
+ color: #666666;
+ background-color: #f4f4f4;
+ background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#f4f4f4), to(#d5d5d5));
+ border-color: #bbb;
+ border-top-color: #ccc;
+ box-shadow: 0 1px 1px #e9e9e9;
+ -webkit-box-shadow: 0 1px 1px #e9e9e9;
+ -moz-box-shadow: 0 1px 1px #e9e9e9;
+}
+
+ul.as-selections li.as-selection-item.blur a.as-close {
+ color: #999;
+}
+
+ul.as-selections li:hover.as-selection-item {
+ color: #2b3840;
+ background-color: #bbd4f1;
+ background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bbd4f1), to(#a3c2e5));
+ border-color: #6da0e0;
+ border-top-color: #8bb7ed;
+}
+
+ul.as-selections li:hover.as-selection-item a.as-close {
+ color: #4d70b0;
+}
+
+ul.as-selections li.as-selection-item.selected {
+ border-color: #1f30e4;
+}
+
+ul.as-selections li.as-selection-item a:hover.as-close {
+ color: #1b3c65;
+}
+
+ul.as-selections li.as-selection-item a:active.as-close {
+ color: #4d70b0;
+}
+
+ul.as-selections li.as-original {
+ margin-left: 0;
+}
+
+ul.as-selections li.as-original input {
+ border: none;
+ outline: none;
+ font-size: 13px;
+ width: 120px;
+ height: 18px;
+ padding-top: 3px;
+}
+
+ul.as-list {
+ position: absolute;
+ list-style-type: none;
+ margin: 2px 0 0 0;
+ padding: 0;
+ font-size: 14px;
+ color: #000;
+ font-family: "Lucida Grande", arial, sans-serif;
+ background-color: #fff;
+ background-color: rgba(255,255,255,0.95);
+ z-index: 2;
+ box-shadow: 0 2px 12px #222;
+ -webkit-box-shadow: 0 2px 12px #222;
+ -moz-box-shadow: 0 2px 12px #222;
+ border-radius: 5px;
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+}
+
+li.as-result-item, li.as-message {
+ margin: 0 0 0 0;
+ padding: 5px 12px;
+ background-color: transparent;
+ border: 1px solid #fff;
+ border-bottom: 1px solid #ddd;
+ cursor: pointer;
+ border-radius: 5px;
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+}
+
+li:first-child.as-result-item {
+ margin: 0;
+}
+
+li.as-message {
+ margin: 0;
+ cursor: default;
+}
+
+li.as-result-item.active {
+ background-color: #3668d9;
+ background-image: -webkit-gradient(linear, 0% 0%, 0% 64%, from(rgb(110, 129, 245)), to(rgb(62, 82, 242)));
+ border-color: #3342e8;
+ color: #fff;
+ text-shadow: 0 1px 2px #122042;
+}
+
+li.as-result-item em {
+ font-style: normal;
+ background: #444;
+ padding: 0 2px;
+ color: #fff;
+}
+
+li.as-result-item.active em {
+ background: #253f7a;
+ color: #fff;
+}
+
+/* Webkit Hacks */
+@media screen and (-webkit-min-device-pixel-ratio:0) {
+ ul.as-selections {
+ border-top-width: 2px;
+ }
+ ul.as-selections li.as-selection-item {
+ padding-top: 3px;
+ padding-bottom: 3px;
+ }
+ ul.as-selections li.as-selection-item a.as-close {
+ margin-top: -1px;
+ }
+ ul.as-selections li.as-original input {
+ height: 19px;
+ }
+}
+
+/* Opera Hacks */
+@media all and (-webkit-min-device-pixel-ratio:10000), not all and (-webkit-min-device-pixel-ratio:0) {
+ ul.as-list {
+ border: 1px solid #888;
+ }
+ ul.as-selections li.as-selection-item a.as-close {
+ margin-left: 4px;
+ margin-top: 0;
+ }
+}
+
+/* IE Hacks */
+ul.as-list {
+ border: 1px solid #888\9;
+}
+ul.as-selections li.as-selection-item a.as-close {
+ margin-left: 4px\9;
+ margin-top: 0\9;
+}
+
+/* Firefox 3.0 Hacks */
+ul.as-list, x:-moz-any-link, x:default {
+ border: 1px solid #888;
+}
+BODY:first-of-type ul.as-list, x:-moz-any-link, x:default { /* Target FF 3.5+ */
+ border: none;
+}
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project/static/jquery/jquery.autoSuggest.js Tue Jul 13 01:43:25 2010 +0530
@@ -0,0 +1,21 @@
+ /*
+ * AutoSuggest
+ * Copyright 2009-2010 Drew Wilson
+ * www.drewwilson.com
+ * code.drewwilson.com/entry/autosuggest-jquery-plugin
+ *
+ * Version 1.4 - Updated: Mar. 23, 2010
+ *
+ * This Plug-In will auto-complete or auto-suggest completed search queries
+ * for you as you type. You can add multiple selections and remove them on
+ * the fly. It supports keybord navigation (UP + DOWN + RETURN), as well
+ * as multiple AutoSuggest fields on the same page.
+ *
+ * Inspied by the Autocomplete plugin by: Jšrn Zaefferer
+ * and the Facelist plugin by: Ian Tearle (iantearle.com)
+ *
+ * This AutoSuggest jQuery plug-in is dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+ */
+eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('(6($){$.2O.2P=6(7,2f){4 2g={1R:m,1o:"2Q 2H 31",2i:"1Y 2X 2Y",D:{},2h:"1Y 2G 2I 2J 35",Z:"1a",N:"1a",1y:"1a",2B:"q",15:m,2E:"",1e:m,1V:1,1C:2V,2t:G,2d:m,1I:m,20:G,R:6(){},1B:6(1q){},2w:6(1q){},1P:6(1q){1q.36()},1M:m,18:6(h){K h},2z:6(7){K 7},2u:6(7){},2m:6(){}};4 3=$.2q(2g,2f);4 14="26";4 12=0;5(2b 7=="h"){14="h";4 2C=7}s{4 2F=7;O(k 1E 7)5(7.1F(k))12++}5((14=="26"&&12>0)||14=="h"){K d.2W(6(x){5(!3.1R){x=x+""+29.2U(29.2Z()*30);4 1U="c-l-"+x}s{x=3.1R;4 1U=x}3.R.v(d);4 l=$(d);l.1X("34","33").F("c-l").1X("L",1U).b(3.1o);4 C=m;l.25(\'<1g A="c-1W" L="c-1W-\'+x+\'"></1g>\').25(\'<f A="c-1O" L="c-1O-\'+x+\'"></f>\');4 n=$("#c-1W-"+x);4 J=$("#c-1O-"+x);4 j=$(\'<1Z A="c-22" L="c-22-\'+x+\'"></1Z>\').E();4 I=$(\'<1g A="c-2L"></1g>\');4 p=$(\'<l 2S="2M" A="c-2c" 1z="2N\'+x+\'" L="c-2c-\'+x+\'" />\');4 u="";5(2b 3.D=="h"){4 1f=3.D.1t(",");O(4 i=0;i<1f.o;i++){4 1L={};1L[3.N]=1f[i];5(1f[i]!=""){17(1L,"27"+i)}}u=3.D}s{u="";4 1d=0;O(k 1E 3.D)5(3.D.1F(k))1d++;5(1d>0){O(4 i=0;i<1d;i++){4 16=3.D[i][3.N];5(16==37){16=""}u=u+16+",";5(16!=""){17(3.D[i],"27"+i)}}}}5(u!=""){l.b("");4 2e=u.3o(u.o-1);5(2e!=","){u=u+","}p.b(","+u);$("f.c-Q-z",n).F("1i").B("M")}l.28(p);n.1b(6(){C=G;l.1p()}).1v(6(){C=m}).28(j);4 P=3t;4 t="";4 3u=0;4 19=m;l.1p(6(){5($(d).b()==3.1o&&p.b()==""){$(d).b("")}s 5(C){$("f.c-Q-z",n).B("1i");5($(d).b()!=""){I.2k("2l",n.2x());j.1H()}}C=G;K G}).1i(6(){5($(d).b()==""&&p.b()==""&&u==""){$(d).b(3.1o)}s 5(C){$("f.c-Q-z",n).F("1i").B("M");j.E()}}).3m(6(e){1k=e.2a;3d=m;3e(e.2a){T 38:e.1m();1A("3n");V;T 3b:e.1m();1A("1T");V;T 8:5(l.b()==""){4 S=p.b().1t(",");S=S[S.o-2];n.2y().39(J.t()).B("M");5(J.t().3a("M")){p.b(p.b().1c(","+S+",",","));3.1P.v(d,J.t())}s{3.1B.v(d,J.t());J.t().F("M")}}5(l.b().o==1){j.E();t=""}5($(":2D",j).o>0){5(P){21(P)}P=23(6(){1D()},3.1C)}V;T 9:T 3f:19=G;4 U=l.b().1c(/(,)/g,"");5(U!=""&&p.b().1x(","+U+",")<0&&U.o>=3.1V){e.1m();4 1n={};1n[3.Z]=U;1n[3.N]=U;4 W=$("f",n).o;17(1n,"3l"+(W+1));l.b("")}T 13:19=m;4 r=$("f.r:24",j);5(r.o>0){r.1b();j.E()}5(3.2d||r.o>0){e.1m()}V;3k:5(3.20){5(3.1I&&$("f.c-Q-z",n).o>=3.1I){I.10(\'<f A="c-2j">\'+3.2h+\'</f>\');j.1H()}s{5(P){21(P)}P=23(6(){1D()},3.1C)}}V}});6 1D(){5(1k==3h||(1k>8&&1k<32)){K j.E()}4 h=l.b().1c(/[\\\\]+|[\\/]+/g,"");5(h==t)K;t=h;5(h.o>=3.1V){n.F("1N");5(14=="h"){4 1j="";5(3.15){1j="&1j="+2A(3.15)}5(3.18){h=3.18.v(d,h)}$.3i(2C+"?"+3.2B+"="+2A(h)+1j+3.2E,6(7){12=0;4 1l=3.2z.v(d,7);O(k 1E 1l)5(1l.1F(k))12++;1J(1l,h)})}s{5(3.18){h=3.18.v(d,h)}1J(2F,h)}}s{n.B("1N");j.E()}}4 1S=0;6 1J(7,Y){5(!3.1e){Y=Y.2o()}4 1r=0;j.10(I.10("")).E();O(4 i=0;i<12;i++){4 w=i;1S++;4 1w=m;5(3.1y=="1a"){4 H=7[w].1a}s{4 H="";4 1u=3.1y.1t(",");O(4 y=0;y<1u.o;y++){4 1z=$.3c(1u[y]);H=H+7[w][1z]+" "}}5(H){5(!3.1e){H=H.2o()}5(H.1x(Y)!=-1&&p.b().1x(","+7[w][3.N]+",")==-1){1w=G}}5(1w){4 11=$(\'<f A="c-2p-z" L="c-2p-z-\'+w+\'"></f>\').1b(6(){4 1h=$(d).7("7");4 1G=1h.w;5($("#c-Q-"+1G,n).o<=0&&!19){4 7=1h.2s;l.b("").1p();t="";17(7,1G);3.2u.v(d,1h);j.E()}19=m}).1v(6(){C=m}).3r(6(){$("f",I).B("r");$(d).F("r")}).7("7",{2s:7[w],w:1S});4 X=$.2q({},7[w]);5(!3.1e){4 1Q=2r 2n("(?![^&;]+;)(?!<[^<>]*)("+Y+")(?![^<>]*>)(?![^&;]+;)","3w")}s{4 1Q=2r 2n("(?![^&;]+;)(?!<[^<>]*)("+Y+")(?![^<>]*>)(?![^&;]+;)","g")}5(3.2t){X[3.Z]=X[3.Z].1c(1Q,"<2v>$1</2v>")}5(!3.1M){11=11.10(X[3.Z])}s{11=3.1M.v(d,X,11)}I.2K(11);2R X;1r++;5(3.15&&3.15==1r){V}}}n.B("1N");5(1r<=0){I.10(\'<f A="c-2j">\'+3.2i+\'</f>\')}I.2k("2l",n.2x());j.1H();3.2m.v(d)}6 17(7,w){p.b(p.b()+7[3.N]+",");4 z=$(\'<f A="c-Q-z" L="c-Q-\'+w+\'"></f>\').1b(6(){3.1B.v(d,$(d));n.2y().B("M");$(d).F("M")}).1v(6(){C=m});4 1s=$(\'<a A="c-1s">&2T;</a>\').1b(6(){p.b(p.b().1c(","+7[3.N]+",",","));3.1P.v(d,z);C=G;l.1p();K m});J.3q(z.10(7[3.Z]).3v(1s));3.2w.v(d,J.t())}6 1A(1K){5($(":2D",j).o>0){4 W=$("f",j);5(1K=="1T"){4 R=W.3s(0)}s{4 R=W.3j(":S")}4 r=$("f.r:24",j);5(r.o>0){5(1K=="1T"){R=r.3p()}s{R=r.t()}}W.B("r");R.F("r")}}})}}})(3g);',62,219,'|||opts|var|if|function|data||||val|as|this||li||string||results_holder||input|false|selections_holder|length|values_input||active|else|prev|prefill_value|call|num|||item|class|removeClass|input_focus|preFill|hide|addClass|true|str|results_ul|org_li|return|id|selected|selectedValuesProp|for|timeout|selection|start|last|case|i_input|break|lis|this_data|query|selectedItemProp|html|formatted|d_count||d_type|retrieveLimit|new_v|add_selected_item|beforeRetrieve|tab_press|value|click|replace|prefill_count|matchCase|vals|ul|raw_data|blur|limit|lastKeyPressCode|new_data|preventDefault|n_data|startText|focus|elem|matchCount|close|split|names|mousedown|forward|search|searchObjProps|name|moveSelection|selectionClick|keyDelay|keyChange|in|hasOwnProperty|number|show|selectionLimit|processData|direction|v_data|formatList|loading|original|selectionRemoved|regx|asHtmlID|num_count|down|x_id|minChars|selections|attr|No|div|showResultList|clearTimeout|results|setTimeout|first|wrap|object|000|after|Math|keyCode|typeof|values|neverSubmit|lastChar|options|defaults|limitText|emptyText|message|css|width|resultsComplete|RegExp|toLowerCase|result|extend|new|attributes|resultsHighlight|resultClick|em|selectionAdded|outerWidth|children|retrieveComplete|encodeURIComponent|queryParam|req_string|visible|extraParams|org_data|More|Name|Selections|Are|append|list|hidden|as_values_|fn|autoSuggest|Enter|delete|type|times|floor|400|each|Results|Found|random|100|Here||off|autocomplete|Allowed|remove|undefined||not|hasClass|40|trim|first_focus|switch|188|jQuery|46|getJSON|filter|default|00|keydown|up|substring|next|before|mouseover|eq|null|totalSelections|prepend|gi'.split('|'),0,{}))
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project/static/jquery/jquery.watermarkinput.js Tue Jul 13 01:43:25 2010 +0530
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) 2007 Josh Bush (digitalbush.com)
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use,
+ * copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following
+ * conditions:
+
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * Version: Beta 1
+ * Release: 2007-06-01
+ */
+(function($) {
+ var map=new Array();
+ $.Watermark = {
+ ShowAll:function(){
+ for (var i=0;i<map.length;i++){
+ if(map[i].obj.val()==""){
+ map[i].obj.val(map[i].text);
+ map[i].obj.css("color",map[i].WatermarkColor);
+ }else{
+ map[i].obj.css("color",map[i].DefaultColor);
+ }
+ }
+ },
+ HideAll:function(){
+ for (var i=0;i<map.length;i++){
+ if(map[i].obj.val()==map[i].text)
+ map[i].obj.val("");
+ }
+ }
+ };
+
+ $.fn.Watermark = function(text,color) {
+ if(!color)
+ color="#cccccc";
+ return this.each(
+ function(){
+ var input=$(this);
+ var defaultColor=input.css("color");
+ map[map.length]={text:text,obj:input,DefaultColor:defaultColor,WatermarkColor:color};
+ function clearMessage(){
+ if(input.val()==text)
+ input.val("");
+ input.css("color",defaultColor);
+ }
+
+ function insertMessage(){
+ if(input.val().length==0 || input.val()==text){
+ input.val(text);
+ input.css("color",color);
+ }else
+ input.css("color",defaultColor);
+ }
+
+ input.focus(clearMessage);
+ input.blur(insertMessage);
+ input.change(insertMessage);
+
+ insertMessage();
+ }
+ );
+ };
+})(jQuery);
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project/static/proceedings/sources/abstracts.sty Tue Jul 13 01:43:25 2010 +0530
@@ -0,0 +1,200 @@
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{abstracts}
+\RequirePackage{graphicx}
+%\RequirePackage{setspace}
+\RequirePackage[a4paper,textwidth=16cm,textheight=25cm]{geometry}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%\RequirePackage[utf8]{inputenc}
+\RequirePackage[T1]{fontenc}
+\RequirePackage{lmodern}
+\RequirePackage{titlesec}
+\RequirePackage{fancyhdr}
+\RequirePackage{framed}
+\RequirePackage[hyphens]{url}
+\RequirePackage{enumitem}
+\RequirePackage{hyperref}
+
+% For ltxgrid to work
+%\newcommand{\class@name}{gael}
+
+%-----------------------------------------------------------------------------
+% Special-purpose color definitions (dark enough to print OK in black and white)
+\usepackage{color}
+
+% A few colors to replace the defaults for certain link types
+\definecolor{orange}{cmyk}{0,0.4,0.8,0.2}
+\definecolor{darkorange}{rgb}{.71,0.21,0.01}
+\definecolor{darkblue}{rgb}{.01,0.21,0.71}
+\definecolor{darkgreen}{rgb}{.1,.52,.09}
+
+%-----------------------------------------------------------------------------
+% The hyperref package gives us a pdf with properly built
+% internal navigation ('pdf bookmarks' for the table of contents,
+% internal cross-reference links, web links for URLs, etc.)
+\usepackage{hyperref}
+\hypersetup{pdftex, % needed for pdflatex
+ breaklinks=true, % so long urls are correctly broken across lines
+ colorlinks=true,
+ urlcolor=blue,
+ linkcolor=darkblue,
+ citecolor=darkgreen,
+ }
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Definitions of the commands used in abstracts :
+
+% For the hyperref package we need to include section call in the source,
+% so let's render them useless :
+
+\setlength\parindent{0pt}
+
+\def\title#1{
+ \noindent
+ \section*{\Large #1}
+ \addcontentsline{toc}{section}{\sffamily #1}
+}
+
+\def\addauthorstoc#1{%
+\addtocontents{toc}{\vspace*{-.5ex}{\small #1}\protect\newline\smallskip}
+}
+
+\def\presentingauthor#1{
+\begin{minipage}{0.8\linewidth}
+~ ~ ~\underline{#1}
+\end{minipage}
+}
+
+\def\email#1{{\small \tt \url{#1}}}
+
+\renewenvironment{abstract}{\sffamily\bfseries}{\par\smallskip}
+
+
+\def\otherauthors#1{
+{\sffamily #1}\par
+}
+
+\def\address#1{{\em #1}}
+
+\def\tablefootnote#1#2{\hbox to 0pt{$^{\rm #1}$\footnotesize #2\hss}}
+
+\def\thebibliography#1{
+\list{[\arabic{enumi}]}{\settowidth\labelwidth{[#1]}
+\leftmargin\labelwidth\advance\leftmargin\labelsep\itemsep-\parsep
+\topsep0pt\usecounter{enumi}\small}
+\small
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Styling
+\titleformat*{\section}{\large\bfseries\sffamily}
+\titleformat*{\subsection}{\bfseries\sffamily}
+\titleformat*{\subsubsection}{\sffamily}
+
+\def\resetheadings#1#2#3#4{
+ \fancyhf{} %delete the current section for header and footer
+ \fancyfoot[RE,LO]{\sffamily\bfseries\thepage}
+ \fancyhead[LO]{\bfseries Proceedings of the 8$^{\text{th}}$ Python in
+Science Conference (SciPy 2009)}
+ \fancyfoot[RO]{\footnotesize #3}
+ \fancyfoot[LE]{\footnotesize #4}
+ \fancyhead[RE]{#1}
+ \renewcommand{\headrulewidth}{1pt}
+ \renewcommand{\footrulewidth}{1pt}
+ \renewcommand{\headwidth}{\textwidth}
+ \pagestyle{fancy}
+
+ \gdef\this@citation{#2}
+
+ \fancypagestyle{mytitle}{%
+ \fancyhf{} % clear all header and footer fields
+ \fancyfoot[RE,LO]{\sffamily\bfseries\thepage}
+ \fancyfoot[LE,RO]{\footnotesize \this@citation}
+ \fancyhead[LO,RE]{\bfseries Proceedings of the 8$^{\text{th}}$ Python
+ in Science Conference (SciPy 2009)}
+ \renewcommand{\headrulewidth}{1pt}
+ \renewcommand{\footrulewidth}{1pt}
+ \renewcommand{\headwidth}{\textwidth}
+ }
+ \thispagestyle{mytitle}
+}
+
+\resetheadings{}{}{}{}
+
+\setlength\columnsep{3ex}
+
+\setlength\parindent{0pt}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% A cooler caption
+\renewcommand{\caption}[2][foo]{%
+\begin{minipage}{0.9\linewidth}
+\small\sffamily\sl%
+\hspace*{-0.05\linewidth}%
+#2
+\end{minipage}}%
+%}
+
+% Float parameters, for more full pages.
+\renewcommand{\topfraction}{0.9} % max fraction of floats at top
+\renewcommand{\bottomfraction}{0.8} % max fraction of floats at bottom
+
+\renewcommand{\textfraction}{0.07} % allow minimal text w. figs
+% Parameters for FLOAT pages (not text pages):
+\renewcommand{\floatpagefraction}{0.6} % require fuller float pages
+% % N.B.: floatpagefraction MUST be less than topfraction !!
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% A hack to have longtable work without problems with mutlicolumn
+
+\renewenvironment{longtable}[2][1]{%
+%\setlength{\locallinewidth}{1.3\linewidth}
+\footnotesize
+% Hack
+%\def\textbf#1{{\sffamily\bfseries #1}}
+\sffamily
+\begin{center}
+\begin{tabular}{#2}
+}{%
+\end{tabular}
+\end{center}
+}
+
+\def\endhead{\small}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Code blocks
+\newlength\leftsidespace
+
+\renewenvironment{quote}{%
+\par
+\smallskip
+\hspace{0.03\linewidth}%
+\begin{minipage}{0.97\linewidth}
+\footnotesize}{%
+\end{minipage}
+\smallskip
+}
+
+% Hack to restore or original font size }in lists:
+\let\old@item\item
+\def\item#1{%
+\normalsize\old@item{#1}%
+}
+
+\setitemize{leftmargin=1em}
+
+\setlength{\parskip}{0.1em plus 0.5em minus 0.1em}
+
+%% Hack to get good linebreaking in tt:
+%\let\oldtexttt\textt
+%\DeclareUrlCommand\mytexttt{%
+%\mathchardef\UrlBreakPenalty=0
+%\mathchardef\UrlBigBreakPenalty=0
+%}
+%\def\texttt#1{\mytexttt{#1}}
+
+% :vim:ft=tex:
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project/static/proceedings/sources/conclusion.tex Tue Jul 13 01:43:25 2010 +0530
@@ -0,0 +1,30 @@
+
+\cleardoublepage
+
+\pagestyle{empty}
+
+\begin{minipage}{.4\linewidth}
+\includegraphics[width=\linewidth]{scipy2009confs}
+\end{minipage}
+\hfill
+\begin{minipage}{.6\linewidth}
+{\bfseries\sffamily
+Proceedings of the 8$^{\text{th}}$ Python in Science Conference}
+
+SciPy Conference -- Pasadena, CA, August 18-23, 2009.
+
+Editors: \quad \mbox{Ga\"el {\sc Varoquaux}}, \quad
+\mbox{St\'efan {\sc van der Walt}}, \quad \mbox{K. Jarrod {\sc Millman}}
+
+\end{minipage}
+
+\hrule
+
+\vbox{}
+\vfill
+\vfill
+\hfill\includegraphics[width=.3\linewidth]{isbn_barcode}
+
+\end{document}
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project/static/proceedings/sources/introduction.tex Tue Jul 13 01:43:25 2010 +0530
@@ -0,0 +1,141 @@
+
+\thispagestyle{empty}
+
+\vbox{}
+\vfill
+\vfill
+\vfill
+\begin{center}
+\rule{.9\linewidth}{.2ex}
+
+\includegraphics[width=\linewidth]{scipy2009confs}
+
+\rule{.9\linewidth}{.2ex}
+
+\vfill
+
+{\sffamily\bfseries
+{\huge
+Proceedings of the 8$^{\text{th}}$ Python in Science Conference}
+
+\bigskip
+\large
+SciPy Conference --
+Pasadena, CA, August 18-23,
+2009.
+}
+
+\vfill
+\vfill
+\vfill
+\hline
+
+Editors: \quad Ga\"el {\sc Varoquaux}, \quad
+St\'efan {\sc van der Walt}, \quad K. Jarrod {\sc Millman}
+\end{center}
+\vfill
+\vfill
+\vfill
+%\hfill\includegraphics[width=.3\linewidth]{isbn_barcode}
+%\vbox{}
+
+\pagebreak
+
+\thispagestyle{empty}
+
+\cleardoublepage
+
+\setcounter{page}{0}
+\vbox{}
+\vfill
+\thispagestyle{empty}
+\tableofcontents
+\vfill
+
+{\small
+ The content of the articles of the {\sl Proceedings of the Python in
+ Science Conference} is copyrighted and owned by their original
+ authors.
+
+ For republication or other use of the material published, please
+ contact the copyright owners to obtain permission.
+
+ \bigskip
+ \hrule
+
+
+Proceedings of the 8th Python in Science Conference
+by Ga\"el Varoquaux, St\'efan van der Walt, K. Jarrod Milllman
+ISBN: 978-0-557-23212-3
+
+}
+
+\vfill
+\vbox{}
+\markright{}{}
+\markbox{}{}
+\clearpage
+\thispagestyle{empty}
+\section*{Organization}
+
+\def\bfsf{\bfseries\sffamily }
+
+%\hspace*{-.5cm}%
+\begin{tabular}{p{3.7cm}p{0.75\textwidth}}
+{\bfsf Conference chair}&\\
+K. Jarrod Millman & UC Berkeley, Helen Wills Neuroscience Institute, {\sc
+USA}\\
+\smallskip
+{\bfsf Tutorial Co-chairs}&\\
+Dave Peterson & Enthought Inc, Austin, {\sc USA} \\
+Fernando Perez & UC Berkeley, Helen Wills Neuroscience Institute, {\sc
+USA}\\
+\smallskip
+{\bfsf Program Co-chairs}&\\
+Ga\"el Varoquaux & INRIA Saclay, {\sc France} \\
+St\'efan van der Walt & Stellenbosh University, {\sc South Africa}\\
+\smallskip
+{\bfsf Program Committee}&\\
+Michael Aivazis & Center for Advanced Computing Research, California
+Institute of Technology {\sc USA}\\
+Brian Granger & Physics Department, California Polytechnic State
+University, San Luis Obispo {\sc USA} \\
+Aric Hagberg & Theoretical Division, Los Alamos National Laboratory
+{\sc USA} \\
+Konrad Hinsen & Centre de Biophysique Mol\'eculaire, CNRS Orl\'eans {\sc
+France} \\
+Randall LeVeque & Mathematics, University of Washington, Seattle {\sc
+USA}\\
+Travis Oliphant & Enthought Inc. {\sc USA} \\
+Prabhu Ramachandran & Department of Aerospace Engineering, IIT Bombay
+{\sc India}\\
+Raphael Ritz & International Neuroinformatics Coordinating Facility
+{\sc Sweden}\\
+William Stein & Mathematics, University of Washington, Seattle {\sc USA}\\
+\smallskip
+{\bfsf Proceeding reviewers}&\\
+Francesc Alted & Pytables {\sc Spain}\\
+Philippe Ciuciu & CEA, Neurospin {\sc France}\\
+Yann Cointepas & CEA, Neurospin {\sc France}\\
+Emmanuelle Gouillart & CNRS Saint Gobain {\sc France}\\
+Jonathan Guyer & NIST {\sc USA}\\
+Ben Herbst & Stellenbosh University, {\sc South Africa}\\
+Paul Kienzle & NIST {\sc USA}\\
+Michael McKerns & Center for Advanced Computing Research, California
+Institute of Technology {\sc
+USA}\\
+Sturla Molden & University of Oslo {\sc Norway}\\
+Jean-Baptiste Poline & CEA, Neurospin {\sc France}\\
+Dag Sverre Seljebotn & University of Oslo {\sc Norway}\\
+Gregor Thalhammer & University of Florence {\sc Italy}\\
+\end{tabular}
+
+\pagestyle{fancy}
+\resethandings
+\cleardoublepage
+\markright{}{}
+\markbox{}{}
+\pagestyle{fancy}
+\resethandings
+
+
Binary file project/static/proceedings/sources/isbn_barcode.pdf has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project/static/proceedings/sources/latex2e.tex Tue Jul 13 01:43:25 2010 +0530
@@ -0,0 +1,74 @@
+% latex include file for docutils latex writer
+% --------------------------------------------
+%
+% CVS: $Id: latex2e.tex 4163 2005-12-09 04:21:34Z goodger $
+%
+% This is included at the end of the latex header in the generated file,
+% to allow overwriting defaults, although this could get hairy.
+% Generated files should process well standalone too, LaTeX might give a
+% message about a missing file.
+
+% donot indent first line of paragraph.
+\setlength{\parindent}{0pt}
+\setlength{\parskip}{5pt plus 2pt minus 1pt}
+
+% sloppy
+% ------
+% Less strict (opposite to default fussy) space size between words. Therefore
+% less hyphenation.
+\sloppy
+
+% fonts
+% -----
+% times for pdf generation, gives smaller pdf files.
+%
+% But in standard postscript fonts: courier and times/helvetica do not fit.
+% Maybe use pslatex.
+\usepackage{times}
+
+% pagestyle
+% ---------
+% headings might put section titles in the page heading, but not if
+% the table of contents is done by docutils.
+% If pagestyle{headings} is used, \geometry{headheight=10pt,headsep=1pt}
+% should be set too.
+%\pagestyle{plain}
+%
+% or use fancyhdr (untested !)
+%\usepackage{fancyhdr}
+%\pagestyle{fancy}
+%\addtolength{\headheight}{\\baselineskip}
+%\renewcommand{\sectionmark}[1]{\markboth{#1}{}}
+%\renewcommand{\subsectionmark}[1]{\markright{#1}}
+%\fancyhf{}
+%\fancyhead[LE,RO]{\\bfseries\\textsf{\Large\\thepage}}
+%\fancyhead[LO]{\\textsf{\\footnotesize\\rightmark}}
+%\fancyhead[RE]{\\textsc{\\textsf{\\footnotesize\leftmark}}}
+%\\fancyfoot[LE,RO]{\\bfseries\\textsf{\scriptsize Docutils}}
+%\fancyfoot[RE,LO]{\\textsf{\scriptsize\\today}}
+
+% geometry
+% --------
+% = papersizes and margins
+%\geometry{a4paper,twoside,tmargin=1.5cm,
+% headheight=1cm,headsep=0.75cm}
+
+% Do section number display
+% -------------------------
+%\makeatletter
+%\def\@seccntformat#1{}
+%\makeatother
+% no numbers in toc
+%\renewcommand{\numberline}[1]{}
+
+
+% change maketitle
+% ----------------
+%\renewcommand{\maketitle}{
+% \begin{titlepage}
+% \begin{center}
+% \textsf{TITLE \@title} \\
+% Date: \today
+% \end{center}
+% \end{titlepage}
+%}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project/static/proceedings/sources/ltxgrid.sty Tue Jul 13 01:43:25 2010 +0530
@@ -0,0 +1,1984 @@
+%%
+%% This is file `ltxgrid.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% ltxgrid.dtx (with options: `ltxgrid,ltxgrid-krn')
+%%
+%% This is a generated file;
+%% altering it directly is inadvisable;
+%% instead, modify the original source file.
+%% See the URL in the file 00readme.txt.
+%%
+%% Copyright notice.
+%%
+%% These files are distributed
+%% WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+%%
+%%% @LaTeX-file{
+%%% filename = "ltxgrid.dtx",
+%%% version = "1.0rc5",
+%%% date = "2001/07/26",
+%%% time = "12:23:00 GMT+8",
+%%% checksum = "4234",
+%%% author = "Arthur Ogawa (mailto:ogawa@teleport.com),
+%%% commissioned by the American Physical Society.
+%%% ",
+%%% copyright = "Copyright (C) 1999, 2000 Arthur Ogawa,
+%%% distributed under the terms of the
+%%% LaTeX Project Public License, see
+%%% ftp://ctan.tug.org/macros/latex/base/lppl.txt
+%%% ",
+%%% address = "Arthur Ogawa,
+%%% USA",
+%%% telephone = "",
+%%% FAX = "",
+%%% email = "ogawa@teleport.com",
+%%% codetable = "ISO/ASCII",
+%%% keywords = "latex, page grid, main vertical list",
+%%% supported = "yes",
+%%% abstract = "package to change page grid, MVL",
+%%% docstring = "The checksum field above generated by ltxdoc",
+%%% }
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]%
+\ProvidesFile{ltxgrid.sty}%
+ [2001/07/26 1.0rc5 page grid package]% \fileversion
+\def\package@name{ltxgrid}%
+\expandafter\PackageInfo\expandafter{\package@name}{%
+ Page grid for \protect\LaTeXe,
+ by A. Ogawa (ogawa@teleport.com)%
+}%
+\RequirePackage{ltxutil}%
+\typeout{%
+ ltxgrid: portions licensed from W. E. Baxter (web@superscript.com)%
+}%
+\newcounter{linecount}
+\def\lineloop#1{%
+ \loop
+ \ifnum\c@linecount<#1\relax
+ \global\advance\c@linecount\@ne
+ \par
+ \hb@xt@\hsize{%
+ \ifnum\c@linecount<100 0\fi\ifnum\c@linecount<10 0\fi\number\c@linecount
+ \vrule depth2.5\p@
+ \leaders\hrule\hfil
+ }%
+ \penalty\interlinepenalty
+ \repeat
+}%
+\let\@@mark\mark
+\let\@@topmark\topmark
+\let\@@firstmark\firstmark
+\let\@@botmark\botmark
+\let\@@splitfirstmark\splitfirstmark
+\let\@@splitbotmark\splitbotmark
+\def\@themark{{}{}{}{}}%
+\def\nul@mark{{}{}{}{}\@@nul}%
+\def\set@mark@netw@#1#2#3#4#5#6#7{\gdef#1{{#6}{#7}{#4}{#5}}\do@mark}%
+\def\set@marktw@#1#2#3#4#5#6{\gdef#1{{#2}{#6}{#4}{#5}}\do@mark}%
+\def\set@markthr@@#1#2#3#4#5#6{\gdef#1{{#2}{#3}{#6}{#5}}\do@mark}%
+\def\get@mark@@ne#1#2#3#4#5\@@nul{#1}%
+\def\get@mark@tw@#1#2#3#4#5\@@nul{#2}%
+\def\get@mark@thr@@#1#2#3#4#5\@@nul{#3}%
+\def\get@mark@f@ur#1#2#3#4#5\@@nul{#4}%
+\def\mark@netw@{\expandafter\set@mark@netw@\expandafter\@themark\@themark}%
+\def\marktw@{\expandafter\set@marktw@\expandafter\@themark\@themark}%
+\def\markthr@@{\expandafter\set@markthr@@\expandafter\@themark\@themark}%
+\def\do@mark{\do@@mark\@themark\nobreak@mark}%
+\def\do@@mark#1{%
+ \begingroup
+ \let@mark
+ \@@mark{#1}%
+ \endgroup
+}%
+\def\let@mark{%
+ \let\protect\@unexpandable@protect
+ \let\label\relax
+ \let\index\relax
+ \let\glossary\relax
+}%
+\def\nobreak@mark{%
+ \@if@sw\if@nobreak\fi{\@ifvmode{\nobreak}{}}{}%
+}%
+\def\mark@envir{\markthr@@}%
+\def\bot@envir{%
+ \expandafter\expandafter
+ \expandafter\get@mark@thr@@
+ \expandafter\@@botmark
+ \nul@mark
+}%
+\def\markboth{\mark@netw@}%
+\def\markright{\marktw@}%
+\def\leftmark{%
+ \expandafter\expandafter
+ \expandafter\get@mark@@ne
+ \expandafter\saved@@botmark
+ \nul@mark
+}%
+\def\rightmark{%
+ \expandafter\expandafter
+ \expandafter\get@mark@tw@
+ \expandafter\saved@@firstmark
+ \nul@mark
+}%
+\let\primitive@output\output
+\long\def\@tempa#1\@@nil{#1}%
+\toks@
+\expandafter\expandafter
+\expandafter{%
+\expandafter \@tempa
+ \the\output
+ \@@nil
+ }%
+\newtoks\output
+\output\expandafter{\the\toks@}%
+\primitive@output{\dispatch@output}%
+\def\dispatch@output{%
+ \let\par\@@par
+ \expandafter\let\expandafter\@tempa\csname output@\the\outputpenalty\endcsname
+ \outputdebug@sw{%
+ \saythe\badness
+ \saythe\outputpenalty
+ \saythe\holdinginserts
+ \say\thepagegrid
+ \saythe\pagegrid@col
+ \saythe\pagegrid@cur
+ %\say\bot@envir
+ \saythe\insertpenalties
+ %\say\@@topmark
+ %\say\saved@@topmark
+ %\say\@@firstmark
+ %\say\saved@@firstmark
+ \say\@@botmark
+ %\say\saved@@botmark
+ \saythe\pagegoal
+ \saythe\pagetotal
+ \saythe{\badness\@cclv}%
+ \expandafter\@ifx\expandafter{\csname output@-\the\execute@message@pen\endcsname\@tempa}{%
+ \say\@message@saved
+ }{%
+ \expandafter\say\csname output@\the\outputpenalty\endcsname
+ }%
+ \say\@toplist
+ \say\@botlist
+ \say\@dbltoplist
+ \say\@deferlist
+ {\tracingall\scrollmode
+ \showbox\@cclv
+ \showbox\@cclv@saved
+ \showbox\pagesofar
+ \showbox\footbox
+ \showbox\footins@saved
+ \showbox\footins
+ \showlists
+ }%
+ }{}%
+ \@ifnotrelax\@tempa{\@tempa}{\the\output}%
+}%
+\@ifxundefined{\outputdebug@sw}{%
+ \@booleanfalse\outputdebug@sw
+}{}%
+\output={\toggle@insert\output@holding\output@moving}%
+\def\output@holding{%
+\csname output@init@\bot@envir\endcsname
+\@if@exceed@pagegoal{\unvcopy\@cclv}{%
+ \setbox\z@\vbox{\unvcopy\@cclv}%
+\outputdebug@sw{{\tracingall\scrollmode\showbox\z@}}{}%
+\dimen@\ht\@cclv\advance\dimen@-\ht\z@
+\dead@cycle@repair\dimen@
+}{%
+\dead@cycle
+}%
+}%
+\def\@if@exceed@pagegoal#1{%
+ \begingroup
+ \setbox\z@\vbox{#1}%
+ \dimen@\ht\z@\advance\dimen@\dp\z@
+ \outputdebug@sw{\saythe\dimen@}{}%
+ \@ifdim{\dimen@>\pagegoal}{%
+ \setbox\z@\vbox{\@@mark{}\unvbox\z@}%
+ \splittopskip\topskip
+ \splitmaxdepth\maxdepth
+ \vbadness\@M
+ \vfuzz\maxdimen
+ \setbox\tw@\vsplit\z@ to\pagegoal
+ \outputdebug@sw{{\tracingall\scrollmode\showbox\tw@\showbox\z@}}{}%
+ \setbox\tw@\vbox{\unvbox\tw@}%
+ \@ifdim{\ht\tw@=\z@}{%
+ \ltxgrid@info{Found overly large chunk while preparing to move insertions. Attempting repairs}%
+ \aftergroup\true@sw
+ }{%
+ \aftergroup\false@sw
+ }%
+ }{%
+ \aftergroup\false@sw
+ }%
+\endgroup
+}%
+%% \item
+%% Put down the same interrupts as for the non-trivial case above.
+\def\output@moving{%
+ \set@top@firstmark
+ \@ifnum{\outputpenalty=\do@newpage@pen}{%
+ \setbox\@cclv\vbox{%
+ \unvbox\@cclv
+ \setbox\z@\lastbox
+ \@ifdim{\ht\z@=\ht\@protection@box}{\box\lastbox}{\unskip}%
+ }%
+ }{}%
+ \@cclv@nontrivial@sw{%
+ \csname output@prep@\bot@envir \endcsname
+ \@makecol\csname output@column@\thepagegrid\endcsname
+ \protect@penalty\do@startcolumn@pen
+ \clearpage@sw{%
+ \protect@penalty\do@endpage@pen
+ }{}%
+ \csname output@post@\bot@envir \endcsname
+ }{%
+ {\setbox\z@\box\@cclv}%
+ }%
+ \set@colroom
+ \global\@mparbottom\z@
+ \global\@textfloatsheight\z@ %FIXME: this legacy LaTeX variable is set, but never queried!
+}%
+\def\@cclv@nontrivial@sw{%
+\@ifx@empty\@toplist{%
+\@ifx@empty\@botlist{%
+\@ifvoid\footins{%
+ \@ifvoid\@cclv{%
+ \false@sw
+ }{%
+\setbox\z@\vbox{\unvcopy\@cclv}%
+\@ifdim{\ht\z@=\topskip}{%
+\setbox\z@\vbox{%
+\unvbox\z@
+\setbox\z@\lastbox\dimen@\lastskip\unskip
+\@ifdim{\ht\z@=\ht\@protection@box}{%
+\advance\dimen@\ht\z@
+\@ifdim{\dimen@=\topskip}{%
+\aftergroup\true@sw
+}{%
+\aftergroup\false@sw
+}%
+}{%
+\aftergroup\false@sw
+}%
+}%
+{%
+\false@sw % Normal for \clearpage
+}{%
+\true@sw
+}%
+}{%
+\@ifdim{\ht\z@=\z@}{%
+\ltxgrid@info{Found trivial column. Discarding it}%
+\outputdebug@sw{{\tracingall\scrollmode\showbox\@cclv}}{}%
+\false@sw
+}{%
+\true@sw
+}%
+}%
+ }%
+}{%
+\true@sw
+}%
+}{%
+\true@sw
+}%
+}{%
+\true@sw
+}%
+}%
+\def\protect@penalty#1{\protection@box\penalty-#1\relax}%
+\newbox\@protection@box
+\setbox\@protection@box\vbox to1986sp{\vfil}%
+\def\protection@box{\nointerlineskip\copy\@protection@box}%
+\def\dead@cycle@repair#1{%
+\expandafter\do@@mark
+\expandafter{%
+\@@botmark
+}%
+\unvbox\@cclv
+\nointerlineskip
+\vbox to#1{\vss}%
+\@ifnum{\outputpenalty<\@M}{\penalty\outputpenalty}{}%
+}%
+\def\dead@cycle@repair@protected#1{%
+\expandafter\do@@mark
+\expandafter{%
+\@@botmark
+}%
+\begingroup
+ \unvbox\@cclv
+ \setbox\z@\lastbox % Remove protection box
+ \nointerlineskip
+ \advance#1-\ht\@protection@box
+ \vbox to#1{\vss}%
+ \protection@box % Reinsert protection box
+ \@ifnum{\outputpenalty<\@M}{\penalty\outputpenalty}{}%
+\endgroup
+}%
+\def\dead@cycle{%
+ \expandafter\do@@mark
+ \expandafter{%
+ \@@botmark
+ }%
+ \unvbox\@cclv
+ \@ifnum{\outputpenalty<\@M}{\penalty\outputpenalty}{}%
+}%
+\def\output@init@document{%
+ \@ifvoid\footbox{}{%
+ \global\advance\vsize-\ht\footbox
+ \global\advance\vsize-\dp\footbox
+ }%
+}%
+\def\output@prep@document{%
+ \@ifvoid\footbox{}{%
+ \setbox\footins\vbox{\unvbox\footbox\unvbox\footins}%
+ }%
+}%
+\def\output@post@document{}%
+\let\@opcol\@undefined
+\def\@makecol{%
+ \setbox\@outputbox\vbox{%
+ \boxmaxdepth\@maxdepth
+ \@tempdima\dp\@cclv
+ \unvbox\@cclv
+ \vskip-\@tempdima
+ }%
+ \xdef\@freelist{\@freelist\@midlist}\global\let\@midlist\@empty
+ \@combinefloats
+ \@combineinserts\@outputbox\footins
+ \set@adj@colht\dimen@
+ \count@\vbadness
+ \vbadness\@M
+ \setbox\@outputbox\vbox to\dimen@{%
+ \@texttop
+ \dimen@\dp\@outputbox
+ \unvbox\@outputbox
+ \vskip-\dimen@
+ \@textbottom
+ }%
+ \vbadness\count@
+ \global\maxdepth\@maxdepth
+}%
+\let\@makespecialcolbox\@undefined
+\def\@combineinserts#1#2{%
+ \setbox#1\vbox{%
+ \unvbox#1%
+ \vbox{%
+ \@ifvoid#2{}{%
+ \vskip\skip\footins
+ \color@begingroup
+ \normalcolor
+ \footnoterule
+ \nointerlineskip
+ \box#2%
+ \color@endgroup
+ }{}%
+ }%
+ }%
+}%
+\appdef\@floatplacement{%
+ \global\@fpmin\@fpmin
+}%
+\mathchardef\pagebreak@pen=\@M
+\expandafter\let\csname output@-\the\pagebreak@pen\endcsname\relax
+\mathchardef\do@startcolumn@pen=10005
+\@namedef{output@-\the\do@startcolumn@pen}{\do@startcolumn}%
+\def\do@startcolumn{%
+ \setbox\@cclv\vbox{\unvbox\@cclv\setbox\z@\lastbox\unskip}%
+ \clearpage@sw{\@clearfloatplacement}{\@floatplacement}%
+ \set@colroom
+ \@booleanfalse\pfloat@avail@sw
+ \begingroup
+ \@colht\@colroom
+ \@booleanfalse\float@avail@sw
+ \@tryfcolumn\test@colfloat
+ \float@avail@sw{\aftergroup\@booleantrue\aftergroup\pfloat@avail@sw}{}%
+ \endgroup
+ \fcolmade@sw{%
+ \setbox\@cclv\vbox{\unvbox\@outputbox\unvbox\@cclv}%
+ \outputpenalty-\pagebreak@pen % ask for a return visit, this time with insertions and all.
+ \dead@cycle
+ }{%
+ \begingroup
+ \let\@elt\@scolelt
+ \let\reserved@b\@deferlist\global\let\@deferlist\@empty\reserved@b
+ \endgroup
+ \clearpage@sw{%
+ \outputpenalty\@M
+ }{%
+ \outputpenalty\do@newpage@pen
+ }%
+ \dead@cycle
+ }%
+ \check@deferlist@stuck\do@startcolumn
+ \set@vsize
+}%
+\def\@scolelt#1{\def\@currbox{#1}\@addtonextcol}%
+\def\test@colfloat#1{%
+ \csname @floatselect@sw@\thepagegrid\endcsname#1{}{\@testtrue}%
+ \@if@sw\if@test\fi{}{\aftergroup\@booleantrue\aftergroup\float@avail@sw}%
+}%
+\def\@addtonextcol{%
+ \begingroup
+ \@insertfalse
+ \@setfloattypecounts
+ \csname @floatselect@sw@\thepagegrid\endcsname\@currbox{%
+ \@ifnum{\@fpstype=8 }{}{%
+ \@ifnum{\@fpstype=24 }{}{%
+ \@flsettextmin
+ \@reqcolroom \ht\@currbox
+ \advance \@reqcolroom \@textmin
+ \advance \@reqcolroom \vsize % take into account split insertions
+ \advance \@reqcolroom -\pagegoal
+ \@ifdim{\@colroom>\@reqcolroom}{%
+ \@flsetnum \@colnum
+ \@ifnum{\@colnum>\z@}{%
+ \@bitor\@currtype\@deferlist
+ \@if@sw\if@test\fi{}{%
+ \@addtotoporbot
+ }%
+ }{}%
+ }{}%
+ }%
+ }%
+ }{}%
+ \@if@sw\if@insert\fi{}{%
+ \@cons\@deferlist\@currbox
+ }%
+ \endgroup
+}%
+\mathchardef\do@startpage@pen=10006
+\@namedef{output@-\the\do@startpage@pen}{\do@startpage}%
+\def\do@startpage{%
+ \setbox\@cclv\vbox{\unvbox\@cclv\setbox\z@\lastbox\unskip}%
+ \clearpage@sw{\@clearfloatplacement}{\@dblfloatplacement}%
+ \set@colht
+ \@booleanfalse\pfloat@avail@sw
+ \begingroup
+ \@booleanfalse\float@avail@sw
+ \@tryfcolumn\test@dblfloat
+ \float@avail@sw{\aftergroup\@booleantrue\aftergroup\pfloat@avail@sw}{}%
+ \endgroup
+ \fcolmade@sw{%
+ \global\setbox\pagesofar\vbox{\unvbox\pagesofar\unvbox\@outputbox}%
+ \@combinepage
+ \@combinedblfloats
+ \@outputpage
+ \global\pagegrid@cur\@ne
+ \protect@penalty\do@startpage@pen
+ }{%
+ \begingroup
+ \@booleanfalse\float@avail@sw
+ \let\@elt\@sdblcolelt
+ \let\reserved@b\@deferlist\global\let\@deferlist\@empty\reserved@b
+ \endgroup
+ \@ifdim{\@colht=\textheight}{% No luck...
+ \pfloat@avail@sw{% ...but a float *was* available!
+ \forcefloats@sw{%
+ \ltxgrid@warn{Forced dequeueing of floats stalled}%
+ }{%
+ \ltxgrid@warn{Dequeueing of floats stalled}%
+ }%
+ }{}%
+ }{}%
+ \outputpenalty\@M
+ \dead@cycle
+ }%
+ \check@deferlist@stuck\do@startpage
+ \set@colht
+}%
+\def\@sdblcolelt#1{\def\@currbox{#1}\@addtodblcol}%
+\def\test@dblfloat#1{%
+ \@if@notdblfloat{#1}{\@testtrue}{}%
+ \@if@sw\if@test\fi{}{\aftergroup\@booleantrue\aftergroup\float@avail@sw}%
+}%
+\def\@if@notdblfloat#1{\@ifdim{\wd#1<\textwidth}}%
+\@booleanfalse\forcefloats@sw
+\def\@addtodblcol{%
+ \begingroup
+ \@if@notdblfloat{\@currbox}{%
+ \false@sw
+ }{%
+ \@setfloattypecounts
+ \@getfpsbit \tw@
+ \@bitor \@currtype \@deferlist
+ \@if@sw\if@test\fi{%
+ \false@sw
+ }{%
+ \@ifodd\@tempcnta{%
+ \aftergroup\@booleantrue\aftergroup\float@avail@sw
+ \@flsetnum \@dbltopnum
+ \@ifnum{\@dbltopnum>\z@}{%
+ \@ifdim{\@dbltoproom>\ht\@currbox}{%
+ \true@sw
+ }{%
+ \@ifnum{\@fpstype<\sixt@@n}{%
+ \begingroup
+ \advance \@dbltoproom \@textmin
+ \@ifdim{\@dbltoproom>\ht\@currbox}{%
+ \endgroup\true@sw
+ }{%
+ \endgroup\false@sw
+ }%
+ }{%
+ \false@sw
+ }%
+ }%
+ }{%
+ \false@sw
+ }%
+ }{%
+ \false@sw
+ }%
+ }%
+ }%
+ {%
+ \@tempdima -\ht\@currbox
+ \advance\@tempdima
+ -\@ifx{\@dbltoplist\@empty}{\dbltextfloatsep}{\dblfloatsep}%
+ \global \advance \@dbltoproom \@tempdima
+ \global \advance \@colht \@tempdima
+ \global \advance \@dbltopnum \m@ne
+ \@cons \@dbltoplist \@currbox
+ }{%
+ \@cons \@deferlist \@currbox
+ }%
+ \endgroup
+}%
+\def\@tryfcolumn#1{%
+ \global\@booleanfalse\fcolmade@sw
+ \@ifx@empty\@deferlist{}{%
+ \global\let\@trylist\@deferlist
+ \global\let\@failedlist\@empty
+ \begingroup
+ \dimen@\vsize\advance\dimen@-\pagegoal\@ifdim{\dimen@>\z@}{%
+ \advance\@fpmin-\dimen@
+ }{}%
+ \def\@elt{\@xtryfc#1}\@trylist
+ \endgroup
+ \fcolmade@sw{%
+ \global\setbox\@outputbox\vbox{\vskip \@fptop}%
+ \let \@elt \@wtryfc \@flsucceed
+ \global\setbox\@outputbox\vbox{\unvbox\@outputbox
+ \unskip \vskip \@fpbot
+ }%
+ \let \@elt \relax
+ \xdef\@deferlist{\@failedlist\@flfail}%
+ \xdef\@freelist{\@freelist\@flsucceed}%
+ }{}%
+ }%
+}%
+\def\@wtryfc #1{%
+ \global\setbox\@outputbox\vbox{\unvbox\@outputbox
+ \box #1\vskip\@fpsep
+ }%
+}%
+\def\@xtryfc#1#2{%
+ \@next\reserved@a\@trylist{}{}% trim \@trylist. Ugly!
+ \@currtype \count #2%
+ \divide\@currtype\@xxxii\multiply\@currtype\@xxxii
+ \@bitor \@currtype \@failedlist
+ \@testfp #2%
+ #1#2%
+ \@ifdim{\ht #2>\@colht }{\@testtrue}{}%
+ \@if@sw\if@test\fi{%
+ \@cons\@failedlist #2%
+ }{%
+ \begingroup
+ \gdef\@flsucceed{\@elt #2}%
+ \global\let\@flfail\@empty
+ \@tempdima\ht #2%
+ \def \@elt {\@ztryfc#1}\@trylist
+ \@ifdim{\@tempdima >\@fpmin}{%
+ \global\@booleantrue\fcolmade@sw
+ }{%
+ \@cons\@failedlist #2%
+ }%
+ \endgroup
+ \fcolmade@sw{%
+ \let \@elt \@gobble
+ }{}%
+ }%
+}%
+\def\@ztryfc #1#2{%
+ \@tempcnta \count#2%
+ \divide\@tempcnta\@xxxii\multiply\@tempcnta\@xxxii
+ \@bitor \@tempcnta {\@failedlist \@flfail}%
+ \@testfp #2%
+ #1#2%
+ \@tempdimb\@tempdima
+ \advance\@tempdimb \ht#2\advance\@tempdimb\@fpsep
+ \@ifdim{\@tempdimb >\@colht}{%
+ \@testtrue
+ }{}%
+ \@if@sw\if@test\fi{%
+ \@cons\@flfail #2%
+ }{%
+ \@cons\@flsucceed #2%
+ \@tempdima\@tempdimb
+ }%
+}%
+\def\newpage@prep{%
+ \if@noskipsec
+ \ifx \@nodocument\relax
+ \leavevmode
+ \global \@noskipsecfalse
+ \fi
+ \fi
+ \if@inlabel
+ \leavevmode
+ \global \@inlabelfalse
+ \fi
+ \if@nobreak \@nobreakfalse \everypar{}\fi
+ \par
+}%
+\def \newpage {%
+ \newpage@prep
+ \do@output@MVL{%
+ \vfil
+ \penalty-\pagebreak@pen
+ }%
+}%
+\def\clearpage{%
+ \newpage@prep
+ \do@output@MVL{%
+ \vfil
+ \penalty-\pagebreak@pen
+ \global\@booleantrue\clearpage@sw
+ \protect@penalty\do@startcolumn@pen
+ \protect@penalty\do@endpage@pen
+ }%
+ \do@output@MVL{%
+ \global\@booleanfalse\clearpage@sw
+ }%
+}%
+\def\cleardoublepage{%
+ \clearpage
+ \@if@sw\if@twoside\fi{%
+ \@ifodd\c@page{}{%
+ \null\clearpage
+ }%
+ }{}%
+}%
+\@booleanfalse\clearpage@sw
+\mathchardef\do@endpage@pen=10007
+\@namedef{output@-\the\do@endpage@pen}{%
+ \csname end@column@\thepagegrid\endcsname
+}%
+\mathchardef\do@newpage@pen=10001
+\expandafter\let\csname output@-\the\do@newpage@pen\endcsname\relax
+\def\@clearfloatplacement{%
+ \global\@topnum \maxdimen % \c@topnumber
+ \global\@toproom \maxdimen % \topfraction\@colht
+ \global\@botnum \maxdimen % \c@bottomnumber
+ \global\@botroom \maxdimen % \bottomfraction\@colht
+ \global\@colnum \maxdimen % \c@totalnumber
+ \global\@dbltopnum \maxdimen % \c@dbltopnumber
+ \global\@dbltoproom \maxdimen % \dbltopfraction\@colht
+ \global\@textmin \z@ % \@colht\advance \@textmin -\@dbltoproom
+ \global\@fpmin \z@ % \dblfloatpagefraction\textheight
+ \let\@testfp\@gobble
+ \appdef\@setfloattypecounts{\@fpstype16\advance\@fpstype\m@ne}%
+}%
+\let\@doclearpage\@undefined
+\let\@makefcolumn\@undefined
+\def\clr@top@firstmark{%
+ \global\let\saved@@topmark\@undefined
+ \global\let\saved@@firstmark\@empty
+ \global\let\saved@@botmark\@empty
+}%
+\clr@top@firstmark
+\def\set@top@firstmark{%
+ \@ifxundefined\saved@@topmark{\expandafter\gdef\expandafter\saved@@topmark\expandafter{\@@topmark}}{}%
+ \@if@empty\saved@@firstmark{\expandafter\gdef\expandafter\saved@@firstmark\expandafter{\@@firstmark}}{}%
+ \@if@empty\@@botmark{}{\expandafter\gdef\expandafter\saved@@botmark\expandafter{\@@botmark}}%
+}%
+\appdef\@outputpage{%
+ \clr@top@firstmark
+}%
+\def\@float#1{%
+ \@ifnextchar[{%}]{%Brace-matching klootch
+ \@yfloat\width@float{#1}%
+ }{%
+ \@ifxundefined@cs{fps@#1}{%
+ \edef\reserved@a{\noexpand\@yfloat\noexpand\width@float{#1}[\csname fps@\endcsname]}\reserved@a
+ }{%
+ \edef\reserved@a{\noexpand\@yfloat\noexpand\width@float{#1}[\csname fps@#1\endcsname]}\reserved@a
+ }%
+ }%
+}%
+\def\@dblfloat#1{%
+ \@ifnum{\pagegrid@col=\@ne}{%
+ \@float{#1}%
+ }{%
+ \@ifnextchar[{%}]{%Brace-matching klootch
+ \@yfloat\widthd@float{#1}%
+ }{%
+ \@ifxundefined@cs{fpsd@#1}{%
+ \edef\reserved@a{\noexpand\@yfloat\noexpand\widthd@float{#1}[\csname fpsd@\endcsname]}\reserved@a
+ }{%
+ \edef\reserved@a{\noexpand\@yfloat\noexpand\widthd@float{#1}[\csname fpsd@#1\endcsname]}\reserved@a
+ }%
+ }%
+ }%
+}%
+\def\@yfloat#1#2[#3]{%
+ \@xfloat{#2}[#3]%
+ \hsize#1\linewidth\hsize
+ \minipagefootnote@init
+}%
+\def\fps@{tbp}%
+\def\fpsd@{tp}%
+\def\width@float{\columnwidth}%
+\def\widthd@float{\textwidth}%
+\def\end@float{%
+ \end@@float{%
+ \check@currbox@count
+ }%
+}%
+\def\end@dblfloat{%
+ \@ifnum{\pagegrid@col=\@ne}{%
+ \end@float
+ }{%
+ \end@@float{%
+ \@boxfpsbit\@currbox{1}\@ifodd\@tempcnta{\global\advance\count\@currbox\m@ne}{}%
+ \@boxfpsbit\@currbox{4}\@ifodd\@tempcnta{\global\advance\count\@currbox-4\relax}{}%
+ \global\wd\@currbox\textwidth % Klootch
+ \check@currbox@count
+ }%
+ }%
+}%
+\def\end@@float#1{%
+ \minipagefootnote@here
+ \@endfloatbox
+ #1%
+ \@ifnum{\@floatpenalty <\z@}{%
+ \@largefloatcheck
+ \@cons\@currlist\@currbox
+ \@ifnum{\@floatpenalty <-\@Mii}{%
+ \do@output@cclv{\@add@float}%
+ }{%
+ \vadjust{\do@output@cclv{\@add@float}}%
+ \@Esphack
+ }%
+ }{}%
+}%
+\def\check@currbox@count{%
+ \@ifnum{\count\@currbox>\z@}{%
+\count@\count\@currbox\divide\count@\sixt@@n\multiply\count@\sixt@@n
+\@tempcnta\count\@currbox\advance\@tempcnta-\count@
+\@ifnum{\@tempcnta=\z@}{%
+ \ltxgrid@warn{Float cannot be placed}%
+}{}%
+ }{%
+ % Is a \marginpar
+ }%
+}%
+\providecommand\minipagefootnote@init{}%
+\providecommand\minipagefootnote@here{}%
+\let\@specialoutput\@undefined
+\def\@add@float{%
+ \@pageht\ht\@cclv\@pagedp\dp\@cclv
+ \unvbox\@cclv
+ \@next\@currbox\@currlist{%
+ \csname @floatselect@sw@\thepagegrid\endcsname\@currbox{%
+ \@ifnum{\count\@currbox>\z@}{%
+ \advance \@pageht \@pagedp
+ \advance \@pageht \vsize \advance \@pageht -\pagegoal % do not assume \holdinginserts is cleared!
+ \@addtocurcol % Commit an h float
+ }{%
+ \@addmarginpar
+ }%
+ }{%
+ \@resethfps
+ \@cons\@deferlist\@currbox
+ }%
+ }{\@latexbug}%
+ \@ifnum{\outputpenalty<\z@}{%
+ \@if@sw\if@nobreak\fi{%
+ \nobreak
+ }{%
+ \addpenalty \interlinepenalty
+ }%
+ }{}%
+ \set@vsize
+}%
+\let\@reinserts\@undefined
+\def \@addtocurcol {%
+ \@insertfalse
+ \@setfloattypecounts
+ \ifnum \@fpstype=8
+ \else
+ \ifnum \@fpstype=24
+ \else
+ \@flsettextmin
+ \advance \@textmin \@textfloatsheight
+ \@reqcolroom \@pageht
+ \ifdim \@textmin>\@reqcolroom
+ \@reqcolroom \@textmin
+ \fi
+ \advance \@reqcolroom \ht\@currbox
+ \ifdim \@colroom>\@reqcolroom
+ \@flsetnum \@colnum
+ \ifnum \@colnum>\z@
+ \@bitor\@currtype\@deferlist
+ \if@test
+ \else
+ \@bitor\@currtype\@botlist
+ \if@test
+ \@addtobot
+ \else
+ \ifodd \count\@currbox
+ \advance \@reqcolroom \intextsep
+ \ifdim \@colroom>\@reqcolroom
+ \global \advance \@colnum \m@ne
+ \global \advance \@textfloatsheight \ht\@currbox
+ \global \advance \@textfloatsheight 2\intextsep
+ \@cons \@midlist \@currbox
+ \if@nobreak
+ \nobreak
+ \@nobreakfalse
+ \everypar{}%
+ \else
+ \addpenalty \interlinepenalty
+ \fi
+ \vskip \intextsep
+ \unvbox\@currbox %AO
+ \penalty\interlinepenalty
+ \vskip\intextsep
+ \ifnum\outputpenalty <-\@Mii \vskip -\parskip\fi
+ \outputpenalty \z@
+ \@inserttrue
+ \fi
+ \fi
+ \if@insert
+ \else
+ \@addtotoporbot
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \if@insert
+ \else
+ \@resethfps
+ \@cons\@deferlist\@currbox
+ \fi
+}%
+\@twocolumnfalse
+\let\@twocolumntrue\@twocolumnfalse
+\def\@addmarginpar{%
+ \@next\@marbox\@currlist{%
+ \@cons\@freelist\@marbox\@cons\@freelist\@currbox
+ }\@latexbug
+ \setbox\@marbox\hb@xt@\columnwidth{%
+ \csname @addmarginpar@\thepagegrid\endcsname{%
+ \hskip-\marginparsep\hskip-\marginparwidth
+ \box\@currbox
+ }{%
+ \hskip\columnwidth\hskip\marginparsep
+ \box\@marbox
+ }%
+ \hss
+ }%
+ \setbox\z@\box\@currbox
+ \@tempdima\@mparbottom
+ \advance\@tempdima -\@pageht
+ \advance\@tempdima\ht\@marbox
+ \@ifdim{\@tempdima >\z@}{%
+ \@latex@warning@no@line {Marginpar on page \thepage\space moved}%
+ }{%
+ \@tempdima\z@
+ }%
+ \global\@mparbottom\@pageht
+ \global\advance\@mparbottom\@tempdima
+ \global\advance\@mparbottom\dp\@marbox
+ \global\advance\@mparbottom\marginparpush
+ \advance\@tempdima -\ht\@marbox
+ \global\setbox \@marbox
+ \vbox {\vskip \@tempdima
+ \box \@marbox}%
+ \global \ht\@marbox \z@
+ \global \dp\@marbox \z@
+ \kern -\@pagedp
+ \nointerlineskip
+ \box\@marbox
+ \nointerlineskip
+ \hbox{\vrule \@height\z@ \@width\z@ \@depth\@pagedp}%
+}%
+\newenvironment{turnpage}{%
+ \def\width@float{\textheight}%
+ \def\widthd@float{\textheight}%
+ \appdef\@endfloatbox{%
+ \@ifxundefined\@currbox{%
+ \ltxgrid@warn{Cannot rotate! Not a float}%
+ }{%
+ \setbox\@currbox\vbox to\textwidth{\vfil\unvbox\@currbox\vfil}%
+ \global\setbox\@currbox\vbox{\rotatebox{90}{\box\@currbox}}%
+ }%
+ }%
+}{%
+}%
+\def\rotatebox@dummy#1#2{%
+ \ltxgrid@warn{You must load the graphics or graphicx package in order to use the turnpage environment}%
+ #2%
+}%
+\AtBeginDocument{%
+ \@ifxundefined\rotatebox{\let\rotatebox\rotatebox@dummy}{}%
+}%
+\@namedef{output@-1073741824}{%"40000000
+ \deadcycles\z@
+ \setbox\z@\box\@cclv
+}%
+\mathchardef\save@column@pen=10016
+\@namedef{output@-\the\save@column@pen}{\save@column}%
+\let \@cclv@saved \@holdpg
+\let \@holdpg \@undefined
+\def\save@column{%
+ \@ifvoid\@cclv@saved{%
+\set@top@firstmark
+\global\@topmark@saved\expandafter{\@@topmark}%
+ }{}%
+\global\setbox\@cclv@saved\vbox{%
+ \@ifvoid\@cclv@saved{}{%
+ \unvbox\@cclv@saved
+ \marry@baselines
+}%
+\unvbox\@cclv
+\lose@breaks
+\setbox\z@\lastbox
+}%
+}%
+\newtoks\@topmark@saved
+\def\prep@cclv{%
+ \setbox\z@\box\@cclv
+ \setbox\@cclv\box\@cclv@saved
+ \vbadness\@M
+}%
+\mathchardef\save@column@insert@pen=10017
+\@namedef{output@-\the\save@column@insert@pen}{\toggle@insert\savecolumn@holding\savecolumn@moving}%
+\def\savecolumn@holding{%
+\@if@exceed@pagegoal{\unvcopy\@cclv\setbox\z@\lastbox}{%
+ \setbox\z@\vbox{\unvcopy\@cclv\setbox\z@\lastbox}%
+ \outputdebug@sw{{\tracingall\scrollmode\showbox\z@}}{}%
+\dimen@\ht\@cclv\advance\dimen@-\ht\z@
+\dead@cycle@repair@protected\dimen@
+}{%
+\dead@cycle
+}%
+}%
+\def\savecolumn@moving{%
+ \@cclv@nontrivial@sw{%
+ \save@column
+ }{%
+ {\setbox\z@\box\@cclv}%
+ }%
+\@ifvoid\footins{}{%
+\outputdebug@sw{{\tracingall\scrollmode\showbox\footins}}{}%
+\global\setbox\footins@saved\vbox{\unvbox\footins@saved\marry@baselines\unvbox\footins}%
+\protect@penalty\save@column@insert@pen
+}%
+}%
+\newbox\footins@saved
+\mathchardef\save@message@pen=10018
+\@namedef{output@-\the\save@message@pen}{\save@message}%
+\def\save@message{%
+ \setbox\z@\box\@cclv %FIXME: what if \box\@cclv is not empty?
+ \toks@\expandafter{\@@firstmark}%
+ \expandafter\gdef\expandafter\@message@saved\expandafter{\the\toks@}%
+ \expandafter\do@@mark\expandafter{\the\@topmark@saved}%
+}%
+\gdef\@message@saved{}%
+\mathchardef\execute@message@pen=10019
+\@namedef{output@-\the\execute@message@pen}{\@message@saved}%
+\def\execute@message{%
+ \@execute@message\save@column@pen %Implicit #2
+}%
+\def\execute@message@insert#1{%
+ \@execute@message\save@column@insert@pen{\setbox\footins\box\footins@saved#1}%
+}%
+\long\def\@execute@message#1#2{%
+ \begingroup
+ \dimen@\prevdepth\@ifdim{\dimen@<\z@}{\dimen@\z@}{}%
+ \setbox\z@\vbox{%
+ \protect@penalty#1%
+ \protection@box
+ \toks@{\prep@cclv#2}%
+ \@@mark{\the\toks@}%
+ \penalty-\save@message@pen
+ \setbox\z@\null\dp\z@\dimen@\ht\z@-\dimen@
+ \nointerlineskip\box\z@
+ \penalty-\execute@message@pen
+ }\unvbox\z@
+ \endgroup
+}%
+\def\do@output@cclv{\execute@message}%
+\def\do@output@MVL#1{%
+ \@ifvmode{%
+ \begingroup\execute@message{\unvbox\@cclv#1}\endgroup
+ }{%
+ \@ifhmode{%
+ \vadjust{\execute@message{\unvbox\@cclv#1}}%
+ }{%
+ \@latexerr{\string\do@output@MVL\space cannot be executed in this mode!}\@eha
+ }%
+ }%
+}%
+\def\lose@breaks{%
+ \loopwhile{%
+ \count@\lastpenalty
+ \@ifnum{\count@=\@M}{% 10000 is a TeX magic number!
+ \unpenalty\true@sw
+ }{%
+ \false@sw
+ }%
+ }%
+}%
+\def\removestuff{\do@output@MVL{\unskip\unpenalty}}%
+\def\removephantombox{%
+ \vadjust{%
+ \execute@message{%
+ \unvbox\@cclv
+ \setbox\z@\lastbox
+ \unskip
+ \unskip
+ \unpenalty
+ \penalty\predisplaypenalty
+ \vskip\abovedisplayskip
+ }%
+ }%
+}%
+\def\addstuff#1#2{\edef\@tempa{\noexpand\do@output@MVL{\noexpand\@addstuff{#1}{#2}}}\@tempa}%
+\def\@addstuff#1#2{%
+ \skip@\lastskip\unskip
+ \count@\lastpenalty\unpenalty
+ \@if@empty{#1}{}{\penalty#1\relax}%
+ \@ifnum{\count@=\z@}{}{\penalty\count@}%
+ \vskip\skip@
+ \@if@empty{#2}{}{\vskip#2\relax}%
+}%
+\def\replacestuff#1#2{\edef\@tempa{\noexpand\do@output@MVL{\noexpand\@replacestuff{#1}{#2}}}\@tempa}%
+\def\@replacestuff#1#2{%
+ \skip@\lastskip\unskip
+ \count@\lastpenalty\unpenalty
+ \@if@empty{#1}{}{%
+ \@ifnum{\count@>\@M}{}{%
+ \@ifnum{\count@=\z@}{\count@=#1\relax}{%
+ \@ifnum{\count@<#1\relax}{}{%
+ \count@=#1\relax
+ }%
+ }%
+ }%
+ }%
+ \@ifnum{\count@=\z@}{}{\penalty\count@}%
+ \@if@empty{#2}{}{%
+ \@tempskipa#2\relax
+ \@ifdim{\z@>\@tempskipa}{%
+ \advance\skip@-\@tempskipa
+ }{%
+ \@ifdim{\skip@>\@tempskipa}{}{%
+ \skip@\@tempskipa
+ }%
+ }%
+ }%
+ \vskip\skip@
+}%
+\def\move@insertions{\global\holdinginserts\z@}%
+\def\hold@insertions{\global\holdinginserts\@ne}%
+\hold@insertions
+\def\move@insert@sw{\@ifnum{\holdinginserts=\z@}}%
+\def\toggle@insert#1#2{%
+ \@ifnum{\holdinginserts=\z@}{\hold@insertions#2}{\move@insertions#1}%
+}%
+\def\do@columngrid#1#2{%
+ \par
+ \expandafter\let\expandafter\@tempa\csname open@column@#1\endcsname
+ \@ifx{\relax\@tempa}{%
+ \ltxgrid@warn{Unknown page grid #1. No action taken}%
+ }{%
+ \do@output@MVL{\start@column{#1}{#2}}%
+ }%
+}%
+\def\start@column#1#2{%
+ \def\@tempa{#1}\@ifx{\@tempa\thepagegrid}{%
+ \ltxgrid@info{Already in page grid \thepagegrid. No action taken}%
+ }{%
+ \expandafter\execute@message@insert
+ \expandafter{%
+ \csname shut@column@\thepagegrid\expandafter\endcsname
+ \csname open@column@#1\endcsname{#2}%
+ \set@vsize
+ }%
+ }%
+}%
+\def\thepagegrid{one}%
+\newbox\pagesofar
+\newbox\footbox
+\newcommand\onecolumngrid{\do@columngrid{one}{\@ne}}%
+\let\onecolumn\@undefined
+\def\open@column@one#1{%
+ \unvbox\pagesofar
+ \gdef\thepagegrid{one}%
+ \global\pagegrid@col#1%
+ \global\pagegrid@cur\@ne
+ \set@colht
+ \set@column@hsize\pagegrid@col
+}%
+\def\shut@column@one{%
+ \@makecol
+ \global\setbox\pagesofar\vbox{\unvbox\@outputbox\recover@footins}%
+ \set@colht
+}%
+\def\float@column@one{%
+ \@makecol
+ \@outputpage
+}%
+\def\end@column@one{%
+ \unvbox\@cclv\setbox\z@\lastbox
+ \protect@penalty\do@newpage@pen
+}%
+\def\output@column@one{%
+ \@outputpage
+}%
+\def\@addmarginpar@one{%
+ \@if@sw\if@mparswitch\fi{%
+ \@ifodd\c@page{\false@sw}{\true@sw}%
+ }{\false@sw}{%
+ \@if@sw\if@reversemargin\fi{\false@sw}{\true@sw}%
+ }{%
+ \@if@sw\if@reversemargin\fi{\true@sw}{\false@sw}%
+ }%
+}%
+\def\@floatselect@sw@one#1{\true@sw}%
+\def\onecolumngrid@push{%
+ \do@output@MVL{%
+ \@ifnum{\pagegrid@col=\@ne}{%
+ \global\let\restorecolumngrid\@empty
+ }{%
+ \xdef\restorecolumngrid{%
+ \noexpand\start@column{\thepagegrid}{\the\pagegrid@col}%
+ }%
+ \start@column{one}{\@ne}%
+ }%
+ }%
+}%
+\def\onecolumngrid@pop{%
+ \do@output@MVL{\restorecolumngrid}%
+}%
+\newcommand\twocolumngrid{\do@columngrid{mlt}{\tw@}}%
+\let\twocolumn\@undefined
+\let\@topnewpage\@undefined
+\def\open@column@mlt#1{%
+ \gdef\thepagegrid{mlt}%
+ \global\pagegrid@col#1%
+ \global\pagegrid@cur\@ne
+ \set@column@hsize\pagegrid@col
+ \set@colht
+}%
+\def\shut@column@mlt{%
+ \@cclv@nontrivial@sw{%
+\@makecol
+\@ifnum{\pagegrid@cur<\pagegrid@col}{%
+\expandafter\global\expandafter\setbox\csname col@\the\pagegrid@cur\endcsname\box\@outputbox
+\global\advance\pagegrid@cur\@ne
+}{}%
+ }{%
+ {\setbox\z@\box\@cclv}%
+ }%
+\@ifnum{\pagegrid@cur>\@ne}{%
+\csname balance@\the\pagegrid@col\endcsname
+\grid@column{}%
+\@combinepage
+\@combinedblfloats
+\global\setbox\pagesofar\box\@outputbox
+ }{}%
+ \set@colht
+}%
+\def\float@column@mlt{%
+ \@combinepage
+ \@combinedblfloats
+ \@outputpage
+ \global\pagegrid@cur\@ne
+ \protect@penalty\do@startpage@pen
+}%
+\def\end@column@mlt{%
+ \@ifx@empty\@toplist{%
+ \@ifx@empty\@botlist{%
+ \@ifx@empty\@dbltoplist{%
+ \@ifx@empty\@deferlist{%
+ \@ifnum{\pagegrid@cur=\@ne}{%
+ \false@sw
+ }{%
+ \true@sw
+ }%
+ }{%
+ \true@sw
+ }%
+ }{%
+ \true@sw
+ }%
+ }{%
+ \true@sw
+ }%
+ }{%
+ \true@sw
+ }%
+ % true = kick out a column and try again
+ {%
+ \@cclv@nontrivial@sw{%
+ \unvbox\@cclv\setbox\z@\lastbox
+ }{%
+ \unvbox\@cclv\setbox\z@\lastbox\unskip\null
+ }%
+ \protect@penalty\do@newpage@pen
+ \protect@penalty\do@endpage@pen
+ }{%
+ \unvbox\@cclv\setbox\z@\lastbox
+ }%
+}%
+\def\output@column@mlt{%
+ \@ifnum{\pagegrid@cur<\pagegrid@col}{%
+ \expandafter\global\expandafter\setbox\csname col@\the\pagegrid@cur\endcsname\box\@outputbox
+ \global\advance\pagegrid@cur\@ne
+ }{%
+ \set@adj@colht\dimen@
+ \grid@column{}%{\dimen@}%
+ \@combinepage
+ \@combinedblfloats
+ \@outputpage
+ \global\pagegrid@cur\@ne
+ \protect@penalty\do@startpage@pen
+ }%
+}%
+\let\@outputdblcol\@undefined
+\def\@floatselect@sw@mlt#1{\@if@notdblfloat{#1}}%
+\def\@addmarginpar@mlt{% emits a boolean
+ \@ifnum{\pagegrid@cur=\@ne}%
+}%
+\let\pagegrid@cur\col@number
+\let\col@number\@undefined
+\newcount\pagegrid@col
+\pagegrid@cur\@ne
+\expandafter\let\csname col@\the\pagegrid@cur\endcsname\@leftcolumn
+\let\@leftcolumn\@undefined
+\pagegrid@col\tw@
+\def\pagegrid@init{%
+ \advance\pagegrid@cur\@ne
+ \@ifnum{\pagegrid@cur<\pagegrid@col}{%
+ \csname newbox\expandafter\endcsname\csname col@\the\pagegrid@cur\endcsname
+ \pagegrid@init
+ }{%
+ }%
+}%
+\appdef\class@documenthook{%
+ \pagegrid@init
+}%
+\def\grid@column#1{%
+ \global\setbox\@outputbox\vbox{%
+ \hb@xt@\textwidth{%
+ \vrule\@height\z@\@width\z@\@if@empty{#1}{}{\@depth#1}%
+ \pagegrid@cur\@ne
+ \append@column
+ \box@column\@outputbox
+ }%
+ \vskip\z@skip % FIXME: page depth!
+ }%
+}%
+\def\append@column{%
+ \@ifnum{\pagegrid@cur<\pagegrid@col}{%
+ \expandafter\box@column\csname col@\the\pagegrid@cur\endcsname
+ \hfil
+ \vrule \@width\columnseprule
+ \hfil
+ \advance\pagegrid@cur\@ne
+ \append@column
+ }{%
+ }%
+}%
+\def\box@column#1{%
+ \raise\topskip
+ \hb@xt@\columnwidth{%
+ \dimen@\ht#1\@ifdim{\dimen@>\@colht}{\dimen@\@colht}{}%
+ \count@\vbadness\vbadness\@M
+ \dimen@ii\vfuzz\vfuzz\maxdimen
+ \outputdebug@sw{\saythe\@colht\saythe\dimen@}{}%
+ \vtop to\dimen@
+ {\hrule\@height\z@
+ \unvbox#1%
+ \raggedcolumn@skip
+ }%
+ \vfuzz\dimen@ii
+ \vbadness\count@
+ \hss
+ }%
+}%
+\def\marry@baselines{%
+ \vskip\marry@skip\relax
+}%
+\gdef\marry@skip{\z@skip}%
+\def\set@marry@skip{%
+\begingroup
+ \skip@\baselineskip\advance\skip@-\topskip
+ \@ifdim{\skip@>\z@}{%
+ \xdef\marry@skip{\the\skip@}%
+ }{}%
+ \endgroup
+}%
+\AtBeginDocument{%
+ \@ifxundefined\raggedcolumn@sw{\@booleanfalse\raggedcolumn@sw}{}%
+}%
+\def\raggedcolumn@skip{%
+ \vskip\z@\raggedcolumn@sw{\@plus.0001fil\@minus.0001fil}{}\relax
+}%
+\def\@combinepage{%
+ \@ifvoid\pagesofar{}{%
+ \setbox\@outputbox\vbox{%
+ \unvbox\pagesofar
+ \marry@baselines
+ \unvbox\@outputbox
+ }%
+ }%
+ \@ifvoid\footbox{}{%
+ \setbox\@outputbox\vbox{%
+ \unvbox\@outputbox
+ \marry@baselines
+ \unvbox\footbox
+ }%
+ }%
+}%
+\def\@combinedblfloats{%
+ \@ifx@empty\@dbltoplist{}{%
+ \setbox\@tempboxa\vbox{}%
+ \let\@elt\@comdblflelt\@dbltoplist
+ \let\@elt\relax\xdef\@freelist{\@freelist\@dbltoplist}%
+ \global\let\@dbltoplist\@empty
+ \setbox\@outputbox\vbox{%
+ %\boxmaxdepth\maxdepth %% probably not needed, CAR
+ \unvbox\@tempboxa\unskip
+ \@ifnum{\@dbltopnum>\m@ne}{\dblfigrule}{}%FIXME: how is \@dbltopnum maintained?
+ \vskip\dbltextfloatsep
+ \unvbox\@outputbox
+ }%
+ }%
+}%
+\def\set@column@hsize#1{%
+ \pagegrid@col#1%
+ \global\columnwidth\textwidth
+ \global\advance\columnwidth\columnsep
+ \global\divide\columnwidth\pagegrid@col
+ \global\advance\columnwidth-\columnsep
+ \global\hsize\columnwidth
+ \global\linewidth\columnwidth
+ \skip@\baselineskip\advance\skip@-\topskip
+ \@ifnum{\pagegrid@col>\@ne}{\set@marry@skip}{}%
+}%
+\def\set@colht{%
+ \set@adj@textheight\@colht
+ \global\let\enlarge@colroom\@empty
+ \set@colroom
+}%
+\def\set@adj@textheight#1{%
+ #1\textheight
+ \def\@elt{\adj@page#1}%
+ \@booleantrue\firsttime@sw\@dbltoplist
+ \let\@elt\relax
+ \global#1#1\relax
+ \outputdebug@sw{\saythe#1}{}%
+}%
+\def\set@colroom{%
+ \set@adj@colht\@colroom
+ \@if@empty\enlarge@colroom{}{%
+ \global\advance\@colroom\enlarge@colroom\relax
+ }%
+ \outputdebug@sw{\saythe\@colroom}{}%
+ \@ifdim{\@colroom>\topskip}{}{%
+ \ltxgrid@info{Not enough room: \string\@colroom=\the\@colroom; increasing to \the\topskip}%
+ \@colroom\topskip
+ }%
+ \global\@colroom\@colroom
+ \set@vsize
+}%
+\def\set@vsize{%
+ \global\vsize\@colroom
+ \outputdebug@sw{\saythe\vsize}{}%
+}%
+\def\set@adj@colht#1{%
+ #1\@colht
+ \@ifvoid\pagesofar{}{%
+ \advance#1-\ht\pagesofar\advance#1-\dp\pagesofar
+ }%
+ \@ifvoid\footbox{}{%
+ \advance#1-\ht\footbox\advance#1-\dp\footbox
+ }%
+ \def\@elt{\adj@column#1}%
+ \@booleantrue\firsttime@sw\@toplist
+ \@booleantrue\firsttime@sw\@botlist
+ \let\@elt\relax
+ \outputdebug@sw{\saythe#1}{}%
+}%
+\def\adj@column#1#2{%
+ \advance#1-\ht#2%
+ \advance#1-\firsttime@sw{\textfloatsep\@booleanfalse\firsttime@sw}{\floatsep}%
+}%
+\def\adj@page#1#2{%
+ \advance#1-\ht#2%
+ \advance#1-\firsttime@sw{\dbltextfloatsep\@booleanfalse\firsttime@sw}{\dblfloatsep}%
+}%
+\appdef\@outputpage{%
+ \set@colht % FIXME: needed?
+ \@floatplacement % FIXME: needed?
+ \@dblfloatplacement % FIXME: needed?
+}%
+\@namedef{balance@2}{%
+ \expandafter\balance@two\csname col@1\endcsname\@outputbox
+ % Avoid a bug by preventing a restore when leaving this group
+ \global\setbox\csname col@1\endcsname\box\csname col@1\endcsname
+ \@ifvoid\footbox{}{%
+ \global\setbox\footbox\vbox{%
+ \setbox\z@\box\@tempboxa
+ \let\recover@footins\relax
+ \balance@two\footbox\@tempboxa
+ \hb@xt@\textwidth{\box\footbox\hfil\box\@tempboxa}%
+ }%
+ }%
+}%
+\def\balance@two#1#2{%
+\outputdebug@sw{{\tracingall\scrollmode\showbox#1\showbox#2}}{}%
+ \setbox\@ne\vbox{%
+ \@ifvoid#1{}{%
+ \unvcopy#1\recover@footins
+ \@ifvoid#2{}{\marry@baselines}%
+ }%
+ \@ifvoid#2{}{%
+ \unvcopy#2\recover@footins
+ }%
+ }%
+ \dimen@\ht\@ne\divide\dimen@\tw@
+ \dimen@i\dimen@
+ \vbadness\@M
+ \vfuzz\maxdimen
+ \loopwhile{%
+ \dimen@i=.5\dimen@i
+ \outputdebug@sw{\saythe\dimen@\saythe\dimen@i\saythe\dimen@ii}{}%
+ \setbox\z@\copy\@ne\setbox\tw@\vsplit\z@ to\dimen@
+ \setbox\z@ \vbox{%
+ \unvcopy\z@
+ \setbox\z@\vbox{\unvbox\z@ \setbox\z@\lastbox\aftergroup\vskip\aftergroup-\expandafter}\the\dp\z@\relax
+ }%
+ \setbox\tw@\vbox{%
+ \unvcopy\tw@
+ \setbox\z@\vbox{\unvbox\tw@\setbox\z@\lastbox\aftergroup\vskip\aftergroup-\expandafter}\the\dp\z@\relax
+ }%
+ \dimen@ii\ht\tw@\advance\dimen@ii-\ht\z@
+ \@ifdim{\dimen@i>.5\p@}{%
+ \advance\dimen@\@ifdim{\dimen@ii<\z@}{}{-}\dimen@i
+ \true@sw
+ }{%
+ \@ifdim{\dimen@ii<\z@}{%
+ \advance\dimen@\tw@\dimen@i
+ \true@sw
+ }{%
+ \false@sw
+ }%
+ }%
+ }%
+ \outputdebug@sw{\saythe\dimen@\saythe\dimen@i\saythe\dimen@ii}{}%
+\@ifdim{\ht\z@=\z@}{%
+\@ifdim{\ht\tw@=\z@}{%
+\true@sw
+}{%
+\false@sw
+}%
+}{%
+\true@sw
+}%
+{%
+}{%
+\ltxgrid@info{Unsatifactorily balanced columns: giving up}%
+\setbox\tw@\box#1%
+\setbox\z@ \box#2%
+}%
+ \setbox\tw@\vbox{\unvbox\tw@\vskip\z@skip}%
+ \setbox\z@ \vbox{\unvbox\z@ \vskip\z@skip}%
+ \set@colroom
+\dimen@\ht\z@\@ifdim{\dimen@<\ht\tw@}{\dimen@\ht\tw@}{}%
+\@ifdim{\dimen@>\@colroom}{\dimen@\@colroom}{}%
+ \outputdebug@sw{\saythe{\ht\z@}\saythe{\ht\tw@}\saythe\@colroom\saythe\dimen@}{}%
+\setbox#1\vbox to\dimen@{\unvbox\tw@\unskip\raggedcolumn@skip}%
+\setbox#2\vbox to\dimen@{\unvbox\z@ \unskip\raggedcolumn@skip}%
+\outputdebug@sw{{\tracingall\scrollmode\showbox#1\showbox#2}}{}%
+}%
+\def\recover@footins{%
+ \skip\z@ \lastskip\unskip
+ \skip\@ne\lastskip\unskip
+ \setbox\z@\lastbox
+ \@ifvbox\z@{%
+\setbox\z@\vbox{%
+\unvbox\z@
+\setbox\z@\lastbox
+\@ifvoid\z@{}{%
+\global\setbox\footbox\vbox{%
+ \unvbox\footbox
+ \@ifvbox\z@{%
+ \unvbox\z@
+ }{%
+ \box\z@
+ }%
+}%
+}%
+}%
+ }{}%
+ \outputdebug@sw{{\tracingall\scrollmode\showbox\footbox}}{}%
+}%
+\prepdef\@begindocumenthook{%
+ \open@column@one\@ne
+ \set@colht
+ \@floatplacement
+ \@dblfloatplacement
+}%
+\def\longtable@longtable{%
+ \par
+ \ifx\multicols\@undefined\else\ifnum\col@number>\@ne\@twocolumntrue\fi\fi
+ \if@twocolumn\LT@err{longtable not in 1-column mode}\@ehc\fi
+ \begingroup
+ \@ifnextchar[\LT@array{\LT@array[x]}%
+}%
+\def\longtable@new{%
+ \par
+ \@ifnextchar[\LT@array{\LT@array[x]}%
+}%
+\def\endlongtable@longtable{%
+ \crcr
+ \noalign{%
+ \let\LT@entry\LT@entry@chop
+ \xdef\LT@save@row{\LT@save@row}}%
+ \LT@echunk
+ \LT@start
+ \unvbox\z@
+ \LT@get@widths
+ \if@filesw
+ {\let\LT@entry\LT@entry@write\immediate\write\@auxout{%
+ \gdef\expandafter\noexpand
+ \csname LT@\romannumeral\c@LT@tables\endcsname
+ {\LT@save@row}}}%
+ \fi
+ \ifx\LT@save@row\LT@@save@row
+ \else
+ \LT@warn{Column \@width s have changed\MessageBreak
+ in table \thetable}%
+ \LT@final@warn
+ \fi
+ \endgraf\penalty -\LT@end@pen
+ \endgroup
+ \global\@mparbottom\z@
+ \pagegoal\vsize
+ \endgraf\penalty\z@\addvspace\LTpost
+ \ifvoid\footins\else\insert\footins{}\fi
+}%
+\def\endlongtable@new{%
+ \crcr
+ \noalign{%
+ \let\LT@entry\LT@entry@chop
+ \xdef\LT@save@row{\LT@save@row}%
+ }%
+ \LT@echunk
+ \LT@start
+ \unvbox\z@
+ \LT@get@widths
+ \@if@sw\if@filesw\fi{%
+ {%
+ \let\LT@entry\LT@entry@write
+ \immediate\write\@auxout{%
+ \gdef\expandafter\noexpand\csname LT@\romannumeral\c@LT@tables\endcsname
+ {\LT@save@row}%
+ }%
+ }%
+ }{}%
+ \@ifx\LT@save@row\LT@@save@row{}{%
+ \LT@warn{%
+ Column \@width s have changed\MessageBreak in table \thetable
+ }\LT@final@warn
+ }%
+ \endgraf
+ \nobreak
+ \box\@ifvoid\LT@lastfoot{\LT@foot}{\LT@lastfoot}%
+ \global\@mparbottom\z@
+ \endgraf
+ \LT@post
+}%
+\def\LT@start@longtable{%
+ \let\LT@start\endgraf
+ \endgraf
+ \penalty\z@
+ \vskip\LTpre
+ \dimen@\pagetotal
+ \advance\dimen@ \ht\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi
+ \advance\dimen@ \dp\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi
+ \advance\dimen@ \ht\LT@foot
+ \dimen@ii\vfuzz\vfuzz\maxdimen
+ \setbox\tw@\copy\z@
+ \setbox\tw@\vsplit\tw@ to \ht\@arstrutbox
+ \setbox\tw@\vbox{\unvbox\tw@}%
+ \vfuzz\dimen@ii
+ \advance\dimen@ \ht
+ \ifdim\ht\@arstrutbox>\ht\tw@\@arstrutbox\else\tw@\fi
+ \advance\dimen@\dp
+ \ifdim\dp\@arstrutbox>\dp\tw@\@arstrutbox\else\tw@\fi
+ \advance\dimen@ -\pagegoal
+ \ifdim \dimen@>\z@\vfil\break\fi
+ \global\@colroom\@colht
+ \ifvoid\LT@foot\else
+ \advance\vsize-\ht\LT@foot
+ \global\advance\@colroom-\ht\LT@foot
+ \dimen@\pagegoal\advance\dimen@-\ht\LT@foot\pagegoal\dimen@
+ \maxdepth\z@
+ \fi
+ \ifvoid\LT@firsthead\copy\LT@head\else\box\LT@firsthead\fi
+ \output{\LT@output}%
+}%
+\def\LT@start@new{%
+ \let\LT@start\endgraf
+ \endgraf
+ \markthr@@{}%
+ \LT@pre
+ \@ifvoid\LT@firsthead{\LT@top}{\box\LT@firsthead\nobreak}%
+ \mark@envir{longtable}%
+}%
+\def\LT@end@hd@ft@longtable#1{%
+ \LT@echunk
+ \ifx\LT@start\endgraf
+ \LT@err{Longtable head or foot not at start of table}{Increase LTchunksize}%
+ \fi
+ \setbox#1\box\z@
+ \LT@get@widths\LT@bchunk
+}%
+\def\LT@end@hd@ft@new#1{%
+ \LT@echunk
+ \@ifx{\LT@start\endgraf}{%
+ \LT@err{Longtable head or foot not at start of table}{Increase LTchunksize}%
+ }%
+ \global\setbox#1\box\z@
+ \LT@get@widths
+ \LT@bchunk
+}%
+\def\LT@array@longtable[#1]#2{%
+ \refstepcounter{table}\stepcounter{LT@tables}%
+ \if l#1%
+ \LTleft\z@ \LTright\fill
+ \else\if r#1%
+ \LTleft\fill \LTright\z@
+ \else\if c#1%
+ \LTleft\fill \LTright\fill
+ \fi\fi\fi
+ \let\LT@mcol\multicolumn
+ \let\LT@@tabarray\@tabarray
+ \let\LT@@hl\hline
+ \def\@tabarray{%
+ \let\hline\LT@@hl
+ \LT@@tabarray}%
+ \let\\\LT@tabularcr\let\tabularnewline\\%
+ \def\newpage{\noalign{\break}}%
+ \def\pagebreak{\noalign{\ifnum`}=0\fi\@testopt{\LT@no@pgbk-}4}%
+ \def\nopagebreak{\noalign{\ifnum`}=0\fi\@testopt\LT@no@pgbk4}%
+ \let\hline\LT@hline \let\kill\LT@kill\let\caption\LT@caption
+ \@tempdima\ht\strutbox
+ \let\@endpbox\LT@endpbox
+ \ifx\extrarowheight\@undefined
+ \let\@acol\@tabacol
+ \let\@classz\@tabclassz \let\@classiv\@tabclassiv
+ \def\@startpbox{\vtop\LT@startpbox}%
+ \let\@@startpbox\@startpbox
+ \let\@@endpbox\@endpbox
+ \let\LT@LL@FM@cr\@tabularcr
+ \else
+ \advance\@tempdima\extrarowheight
+ \col@sep\tabcolsep
+ \let\@startpbox\LT@startpbox\let\LT@LL@FM@cr\@arraycr
+ \fi
+ \setbox\@arstrutbox\hbox{\vrule
+ \@height \arraystretch \@tempdima
+ \@depth \arraystretch \dp \strutbox
+ \@width \z@}%
+ \let\@sharp##\let\protect\relax
+ \begingroup
+ \@mkpream{#2}%
+ \xdef\LT@bchunk{%
+ \global\advance\c@LT@chunks\@ne
+ \global\LT@rows\z@\setbox\z@\vbox\bgroup
+ \LT@setprevdepth
+ \tabskip\LTleft\halign to\hsize\bgroup
+ \tabskip\z@ \@arstrut \@preamble \tabskip\LTright \cr}%
+ \endgroup
+ \expandafter\LT@nofcols\LT@bchunk&\LT@nofcols
+ \LT@make@row
+ \m@th\let\par\@empty
+ \everycr{}\lineskip\z@\baselineskip\z@
+ \LT@bchunk
+}%
+\def\LT@LR@l{\LTleft\z@ \LTright\fill}%
+\def\LT@LR@r{\LTleft\fill \LTright\z@ }%
+\def\LT@LR@c{\LTleft\fill \LTright\fill}%
+\def\LT@array@new[#1]#2{%
+ \refstepcounter{table}\stepcounter{LT@tables}%
+ \table@hook
+ \LTleft\fill \LTright\fill
+ \csname LT@LR@#1\endcsname
+ \let\LT@mcol\multicolumn
+ \let\LT@@hl\hline
+ \prepdef\@tabarray{\let\hline\LT@@hl}%
+ \let\\\LT@tabularcr
+ \let\tabularnewline\\%
+ \def\newpage{\noalign{\break}}%
+ \def\pagebreak{\noalign{\ifnum`}=0\fi\@testopt{\LT@no@pgbk-}4}%
+ \def\nopagebreak{\noalign{\ifnum`}=0\fi\@testopt\LT@no@pgbk4}%
+ \let\hline\LT@hline
+ \let\kill\LT@kill
+ \let\caption\LT@caption
+ \@tempdima\ht\strutbox
+ \let\@endpbox\LT@endpbox
+ \@ifxundefined\extrarowheight{%
+ \let\@acol\@tabacol
+ \let\@classz\@tabclassz
+ \let\@classiv\@tabclassiv
+ \def\@startpbox{\vtop\LT@startpbox}%
+ \let\@@startpbox\@startpbox
+ \let\@@endpbox\@endpbox
+ \let\LT@LL@FM@cr\@tabularcr
+ }{%
+ \advance\@tempdima\extrarowheight
+ \col@sep\tabcolsep
+ \let\@startpbox\LT@startpbox
+ \let\LT@LL@FM@cr\@arraycr
+ }%
+ \let\@acoll\@tabacoll
+ \let\@acolr\@tabacolr
+ \let\@acol\@tabacol
+ \setbox\@arstrutbox\hbox{%
+ \vrule
+ \@height \arraystretch \@tempdima
+ \@depth \arraystretch \dp \strutbox
+ \@width \z@
+ }%
+ \let\@sharp##%
+ \let\protect\relax
+ \begingroup
+ \@mkpream{#2}%
+ \@mkpream@relax
+ \edef\@preamble{\@preamble}%
+ \prepdef\@preamble{%
+ \global\advance\c@LT@chunks\@ne
+ \global\LT@rows\z@
+ \setbox\z@\vbox\bgroup
+ \LT@setprevdepth
+ \tabskip\LTleft
+ \halign to\hsize\bgroup
+ \tabskip\z@
+ \@arstrut
+ }%
+ \appdef\@preamble{%
+ \tabskip\LTright
+ \cr
+ }%
+ \global\let\LT@bchunk\@preamble
+ \endgroup
+ \expandafter\LT@nofcols\LT@bchunk&\LT@nofcols
+ \LT@make@row
+ \m@th
+ \let\par\@empty
+ \everycr{}%
+ \lineskip\z@
+ \baselineskip\z@
+ \LT@bchunk
+}%
+\appdef\table@hook{}%
+%% Note that it is not enough to define the environment itself; we also have to create the corresponding
+%% \cmd\output\ routine procedures, which provide for continued footers and headers
+%% (the very feature of \env{longtable} requiring support in the output routine).
+%% This same consideration would arise in defining any syntactic extension to \env{longtable}, because
+%% the environment name itself is exposed in the output routine.
+\def\switch@longtable{%
+ \@ifpackageloaded{longtable}{%
+ \@ifx{\longtable\longtable@longtable}{%
+ \@ifx{\endlongtable\endlongtable@longtable}{%
+ \@ifx{\LT@start\LT@start@longtable}{%
+ \@ifx{\LT@end@hd@ft\LT@end@hd@ft@longtable}{%
+ \@ifx{\LT@array\LT@array@longtable}{%
+ \true@sw
+ }{\false@sw}%
+ }{\false@sw}%
+ }{\false@sw}%
+ }{\false@sw}%
+ }{\false@sw}%
+ {%
+ \class@info{Patching longtable package}%
+ }{%
+ \class@info{Patching unrecognized longtable package. (Proceeding with fingers crossed)}%
+ }%
+ \let\longtable\longtable@new
+ \let\endlongtable\endlongtable@new
+ \let\LT@start\LT@start@new
+ \let\LT@end@hd@ft\LT@end@hd@ft@new
+ \let\LT@array\LT@array@new
+ \newenvironment{longtable*}{%
+ \onecolumngrid@push
+ \longtable
+ }{%
+ \endlongtable
+ \onecolumngrid@pop
+ }%
+ }{}%
+}%
+\def\LT@pre{\penalty\z@\vskip\LTpre}%
+\def\LT@bot{\nobreak\copy\LT@foot\vfil}%
+\def\LT@top{\copy\LT@head\nobreak}%
+\def\LT@post{\penalty\z@\addvspace\LTpost\mark@envir{\curr@envir}}%
+\def\LT@adj{%
+ \setbox\z@\vbox{\null}\dimen@-\ht\z@
+ \setbox\z@\vbox{\unvbox\z@\LT@bot}\advance\dimen@\ht\z@
+ \global\advance\vsize-\dimen@
+}%
+\def\output@init@longtable{\LT@adj}%
+\def\output@prep@longtable{\setbox\@cclv\vbox{\unvbox\@cclv\LT@bot}}%
+\def\output@post@longtable{\LT@top}%
+\let\output@init@theindex\@empty
+\let\output@prep@theindex\@empty
+\def\output@post@theindex{%
+ \@ifodd\c@page{}{%
+ \@ifnum{\pagegrid@cur=\@ne}{% we have the leftmost column of a verso page
+ % insert the current top-level continued head
+ }%
+ }%
+}%
+\def\check@aux{\do@output@MVL{\do@check@aux}}%
+\def\check@deferlist@stuck#1{%
+ \@ifx{\@deferlist@postshipout\@empty}{}{%
+ \@ifx{\@deferlist@postshipout\@deferlist}{%
+ \@fltstk
+ \clearpage@sw{%
+ \ltxgrid@warn{Deferred float stuck during \string\clearpage\space processing}%
+ }{%
+ \force@deferlist@stuck#1%
+ }%
+ }{%
+ %Successfully committed float(s)
+ }%
+ \global\let\@deferlist@postshipout\@empty
+ }%
+}%
+\def\@fltstk{%
+ \@latex@warning{A float is stuck (cannot be placed without \string\clearpage)}%
+}%
+\appdef\@outputpage{%
+ \global\let\@deferlist@postshipout\@deferlist
+}%
+\def\@next#1#2{%
+ \@ifx{#2\@empty}{\false@sw}{%
+ \expandafter\@xnext#2\@@#1#2%
+ \true@sw
+ }%
+}%
+\def\@xnext\@elt#1#2\@@#3#4{%
+ \def#3{#1}%
+ \gdef#4{#2}%
+ \def\@tempa{#4}\def\@tempb{\@freelist}%
+ \@ifx{\@tempa\@tempb}{%
+ \@ifx{#4\@empty}{%
+ \force@deferlist@empty%{Float register pool exhausted}%
+ }{}%
+ }{}%
+}%
+\def\force@deferlist@stuck#1{%
+\force@deferlist@sw{%
+ \@booleantrue\clearpage@sw
+ \@booleantrue\forcefloats@sw
+ #1%
+}{%
+}%
+}%
+\def\force@deferlist@empty{%
+ \force@deferlist@sw{%
+ \penalty-\pagebreak@pen
+ \protect@penalty\do@forcecolumn@pen
+ }{%
+ }%
+}%
+\@booleanfalse\force@deferlist@sw
+\mathchardef\do@forcecolumn@pen=10009
+\@namedef{output@-\the\do@forcecolumn@pen}{\do@forcecolumn}%
+\def\do@forcecolumn{%
+ \@booleantrue\clearpage@sw
+ \@booleantrue\forcefloats@sw
+ \do@startcolumn
+}%
+\def\enlargethispage{%
+\@ifstar{%
+\@enlargethispage{}%
+}{%
+\@enlargethispage{}%
+}%
+}%
+\def\@enlargethispage#1#2{%
+ \begingroup
+ \dimen@#2\relax
+ \edef\@tempa{#1}%
+ \edef\@tempa{\noexpand\@@enlargethispage{\@tempa}{\the\dimen@}}%
+ \expandafter\do@output@MVL\expandafter{\@tempa}%
+ \endgroup
+}%
+\def\@@enlargethispage#1#2{%
+ \def\@tempa{one}%
+ \@ifx{\thepagegrid\@tempa}{%
+ \true@sw
+ }{%
+ \def\@tempa{mlt}%
+ \@ifx{\thepagegrid\@tempa}{%
+ \@ifnum{\pagegrid@cur=\@ne}{% OK to adjust this page
+ \gdef\enlarge@colroom{#2}%
+ \true@sw
+ }{% Can only adjust this column; give up
+ \ltxgrid@warn{Too late to enlarge this page; move the command to the first column.}%
+ \false@sw
+ }%
+ }{% Unknown page grid
+ \ltxgrid@warn{Unable to enlarge a page of this kind.}%
+ \false@sw
+ }%
+ }%
+ {%
+ \class@info{Enlarging page \thepage\space by #2}%
+ \global\advance\@colroom#2\relax
+ \set@vsize
+ }{%
+ % Could not adjust this page
+ }%
+}%
+\let\enlarge@colroom\@empty
+\let\@kludgeins\@undefined
+\@booleantrue\textheight@sw
+\prepdef\@outputpage{%
+ \textheight@sw{%
+ \count@\vbadness\vbadness\@M
+ \dimen@\vfuzz\vfuzz\maxdimen
+ \setbox\@outputbox\vbox to\textheight{\unvbox\@outputbox}%
+ \vfuzz\dimen@
+ \vbadness\count@
+ }{}%
+}%
+\def\ltxgrid@info{%
+ \ltxgrid@info@sw{\class@info}{\@gobble}%
+}%
+\@booleanfalse\ltxgrid@info@sw
+\def\ltxgrid@warn{%
+ \ltxgrid@warn@sw{\class@warn}{\@gobble}%
+}%
+\@booleantrue\ltxgrid@warn@sw
+\endinput
+%%
+%% End of file `ltxgrid.sty'.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project/static/proceedings/sources/ltxutil.sty Tue Jul 13 01:43:25 2010 +0530
@@ -0,0 +1,1750 @@
+%%
+%% This is file `ltxutil.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% ltxutil.dtx (with options: `ltxutil,ltxutil-krn')
+%%
+%% This is a generated file;
+%% altering it directly is inadvisable;
+%% instead, modify the original source file.
+%% See the URL in the file 00readme.txt.
+%%
+%% Copyright notice.
+%%
+%% These files are distributed
+%% WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+%%
+%%% @LaTeX-file{
+%%% filename = "ltxutil.dtx",
+%%% version = "1.0rc5b",
+%%% date = "2001/07/31",
+%%% time = "12:23:00 GMT+8",
+%%% checksum = "3641",
+%%% author = "Arthur Ogawa (mailto:ogawa@teleport.com),
+%%% commissioned by the American Physical Society.
+%%% ",
+%%% copyright = "Copyright (C) 1999 Arthur Ogawa,
+%%% distributed under the terms of the
+%%% LaTeX Project Public License, see
+%%% ftp://ctan.tug.org/macros/latex/base/lppl.txt
+%%% ",
+%%% address = "Arthur Ogawa,
+%%% USA",
+%%% telephone = "",
+%%% FAX = "",
+%%% email = "ogawa@teleport.com",
+%%% codetable = "ISO/ASCII",
+%%% keywords = "latex, utility, kernel",
+%%% supported = "yes",
+%%% abstract = "package to add utilties to LaTeX",
+%%% docstring = "The checksum field above generated by ltxdoc",
+%%% }
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]%
+\ProvidesFile{ltxutil.sty}%
+ [2001/07/31 1.0rc5b utilities package]% \fileversion
+\def\package@name{ltxutil}%
+\expandafter\PackageInfo\expandafter{\package@name}{%
+ Utility macros for \protect\LaTeXe,
+ by A. Ogawa (ogawa@teleport.com)%
+}%
+\typeout{%
+ ltxutil: portions licensed from W. E. Baxter (web@superscript.com)%
+}%
+\def\class@err#1{\ClassError{\class@name}{#1}\@eha}%
+\def\class@warn#1{\ClassWarningNoLine{\class@name}{#1}}%
+\def\class@info#1{\ClassInfo{\class@name}{#1}}%
+\def\obsolete@command#1{%
+ \class@warn@end{Command \string#1\space is obsolete.^^JPlease remove from your document}%
+ \global\let#1\@empty
+ #1%
+}%
+\def\replace@command#1#2{%
+ \class@warn@end{Command \string#1\space is obsolete;^^JUse \string#2\space instead}%
+ \global\let#1#2%
+ #1%
+}%
+\def\replace@environment#1#2{%
+ \class@warn@end{Environment #1 is obsolete;^^JUse #2 instead}%
+ \glet@environment{#1}{#2}%
+ \@nameuse{#1}%
+}%
+\def\incompatible@package#1{%
+ \@ifpackageloaded{#1}{%
+ \def\@tempa{I cannot continue. You must remove the \string\usepackage\ statement that caused that package to be loaded.}%
+ \ClassError{\class@name}{The #1 package cannot be used with \class@name}%
+ \@tempa\stop
+ }{%
+ \class@info{#1 was not loaded (OK!)}%
+ }%
+}%
+\def\class@warn@end#1{%
+ \gappdef\class@enddocumenthook{\class@warn{#1}}%
+}%
+\AtEndOfClass{%
+ \@ifxundefined\class@name{\def\class@name{Generic Class}}{}%
+}%
+\def\t@{to}%
+\dimendef\dimen@iii\thr@@
+\def\halignt@{\halign\t@}%
+\chardef\f@ur=4\relax
+\chardef\cat@letter=11\relax
+\chardef\other=12\relax
+\def\let@environment#1#2{%
+ \expandafter\let
+ \csname#1\expandafter\endcsname\csname#2\endcsname
+ \expandafter\let
+ \csname end#1\expandafter\endcsname\csname end#2\endcsname
+}%
+\def\glet@environment#1#2{%
+ \global\expandafter\let
+ \csname#1\expandafter\endcsname\csname#2\endcsname
+ \global\expandafter\let
+ \csname end#1\expandafter\endcsname\csname end#2\endcsname
+}%
+\newcommand\tracingplain{%
+ \tracingonline\z@\tracingcommands\z@\tracingstats\z@
+ \tracingpages\z@\tracingoutput\z@\tracinglostchars\@ne
+ \tracingmacros\z@\tracingparagraphs\z@\tracingrestores\z@
+ \showboxbreadth5\showboxdepth3\relax %\errorstopmode
+ }%
+\newcommand\traceoutput{%
+ \appdef\@resetactivechars{\showoutput}%
+}%
+\newcommand\say[1]{\typeout{<\noexpand#1=\meaning#1>}}%
+\newcommand\saythe[1]{\typeout{<\noexpand#1=\the#1>}}%
+\def\fullinterlineskip{\prevdepth\z@}%
+\countdef\count@i\@ne
+\countdef\count@ii\tw@
+\long\def\prepdef#1#2{%
+ \@ifxundefined#1{\toks@{}}{\toks@\expandafter{#1}}%
+ \toks@ii{#2}%
+ \edef#1{\the\toks@ii\the\toks@}%
+}%
+\long\def\appdef#1#2{%
+ \@ifxundefined#1{\toks@{}}{\toks@\expandafter{#1}}%
+ \toks@ii{#2}%
+ \edef#1{\the\toks@\the\toks@ii}%
+}%
+\long\def\gappdef#1#2{%
+ \@ifxundefined#1{\toks@{}}{\toks@\expandafter{#1}}%
+ \toks@ii{#2}%
+ \global\edef#1{\the\toks@\the\toks@ii}%
+}%
+\long\def\appdef@val#1#2{%
+ \appdef#1{{#2}}%
+}%
+\long\def\appdef@e#1#2{%
+ \expandafter\appdef
+ \expandafter#1%
+ \expandafter{#2}%
+}%
+\long\def\appdef@eval#1#2{%
+ \expandafter\appdef@val
+ \expandafter#1%
+ \expandafter{#2}%
+}%
+\toksdef\toks@ii=\tw@
+\long\def\@ifxundefined#1{\@ifx{\undefined#1}}%
+\long\def\@ifnotrelax#1#2#3{\@ifx{\relax#1}{#3}{#2}}%
+\long\def\@argswap#1#2{#2#1}%
+\long\def\@argswap@val#1#2{#2{#1}}%
+\def\@ifxundefined@cs#1{\expandafter\@ifx\expandafter{\csname#1\endcsname\relax}}%
+\def\@boolean#1#2{%
+ \long\def#1{%
+ #2% \if<something>
+ \expandafter\true@sw
+ \else
+ \expandafter\false@sw
+ \fi
+ }%
+}%
+\def\@boole@def#1#{\@boolean{#1}}% Implicit #2
+\def\@booleantrue#1{\let#1\true@sw}%
+\def\@booleanfalse#1{\let#1\false@sw}%
+\@boole@def\@ifx#1{\ifx#1}%
+\@boole@def\@ifx@empty#1{\ifx\@empty#1}%
+\@boole@def\@if@empty#1{\if!#1!}%
+\def\@if@sw#1#2{#1\expandafter\true@sw\else\expandafter\false@sw#2}%
+\@boole@def\@ifdim#1{\ifdim#1}%
+\@boole@def\@ifeof#1{\ifeof#1}%
+\@boole@def\@ifhbox#1{\ifhbox#1}%
+\@boole@def\@ifhmode{\ifhmode}%
+\@boole@def\@ifinner{\ifinner}%
+\@boole@def\@ifmmode{\ifmmode}%
+\@boole@def\@ifnum#1{\ifnum#1}%
+\@boole@def\@ifodd#1{\ifodd#1}%
+\@boole@def\@ifvbox#1{\ifvbox#1}%
+\@boole@def\@ifvmode{\ifvmode}%
+\@boole@def\@ifvoid#1{\ifvoid#1}%
+\long\def\true@sw#1#2{#1}%
+\long\def\false@sw#1#2{#2}%
+\long\def\loopuntil#1{#1{}{\loopuntil{#1}}}%
+\long\def\loopwhile#1{#1{\loopwhile{#1}}{}}%
+\def\@provide#1{%
+ \@ifx{\undefined#1}{\true@sw}{\@ifx{\relax#1}{\true@sw}{\false@sw}}%
+ {\def#1}{\def\j@nk}%
+}%
+\prepdef\document{%
+ \endgroup
+ \init@documenthook
+ \set@typesize@hook
+ \normalsize
+ \set@pica@hook
+ \true@sw{}%
+}%
+\def\init@documenthook{}%
+\AtBeginDocument{%
+ \class@documenthook
+}%
+\AtEndDocument{%
+ \class@enddocumenthook
+}%
+\def\class@documenthook{}%
+\def\class@enddocumenthook{}%
+\def\set@typesize@hook{}%
+\def\set@pica@hook{}%
+\def\enddocument{%
+ \@enddocumenthook
+ \@checkend{document}%
+ \clear@document
+ \check@aux
+ \deadcycles\z@
+ \@@end
+}%
+\def\clear@document{\clearpage}%
+\def\check@aux{\do@check@aux}%
+\def\do@check@aux{%
+ \@if@sw\if@filesw\fi{%
+ \immediate\closeout\@mainaux
+ \let\@setckpt\@gobbletwo
+ \let\@newl@bel\@testdef
+ \@tempswafalse
+ \makeatletter
+ \input\jobname.aux\relax
+ }{}%
+ \@dofilelist
+ \@ifdim{\font@submax >\fontsubfuzz\relax}{%
+ \@font@warning{%
+ Size substitutions with differences\MessageBreak
+ up to \font@submax\space have occured.\@gobbletwo
+ }%
+ }{}%
+ \@defaultsubs
+ \@refundefined
+ \@if@sw\if@filesw\fi{%
+ \@ifx{\@multiplelabels\relax}{%
+ \@if@sw\if@tempswa\fi{%
+ \@latex@warning@no@line{%
+ Label(s) may have changed.
+ Rerun to get cross-references right
+ }%
+ }{}%
+ }{%
+ \@multiplelabels
+ }%
+ }{}%
+}%
+\def\flushing{%
+ \let\\\@normalcr
+ \leftskip\z@skip
+ \rightskip\z@skip
+ \@rightskip\z@skip
+ \parfillskip\@flushglue
+}%
+\def\eqnarray@LaTeX{%
+ \stepcounter{equation}%
+ \def\@currentlabel{\p@equation\theequation}%
+ \global\@eqnswtrue
+ \m@th
+ \global\@eqcnt\z@
+ \tabskip\@centering
+ \let\\\@eqncr
+ $$\everycr{}\halign\t@\displaywidth\bgroup
+ \hskip\@centering$\displaystyle\tabskip\z@skip{##}$\@eqnsel
+ &\global\@eqcnt\@ne\hskip \tw@\arraycolsep \hfil${##}$\hfil
+ &\global\@eqcnt\tw@ \hskip \tw@\arraycolsep
+ $\displaystyle{##}$\hfil\tabskip\@centering
+ &\global\@eqcnt\thr@@ \hb@xt@\z@\bgroup\hss##\egroup
+ \tabskip\z@skip
+ \cr
+}
+\long\def\eqnarray@fleqn@fixed{%
+ \stepcounter{equation}\def\@currentlabel{\p@equation\theequation}%
+ \global\@eqnswtrue\m@th\global\@eqcnt\z@
+ \tabskip\mathindent
+ \let\\=\@eqncr
+ \setlength\abovedisplayskip{\topsep}%
+ \ifvmode\addtolength\abovedisplayskip{\partopsep}\fi
+ \addtolength\abovedisplayskip{\parskip}%
+ \setlength\belowdisplayskip{\abovedisplayskip}%
+ \setlength\belowdisplayshortskip{\abovedisplayskip}%
+ \setlength\abovedisplayshortskip{\abovedisplayskip}%
+ $$%
+ \everycr{}%
+ \halignt@\linewidth\bgroup
+ \hskip\@centering$\displaystyle\tabskip\z@skip{##}$\@eqnsel
+ &\global\@eqcnt\@ne
+ \hskip\tw@\eqncolsep
+ \hfil${{}##{}}$\hfil
+ &\global\@eqcnt\tw@
+ \hskip\tw@\eqncolsep
+ $\displaystyle{##}$\hfil\tabskip\@centering
+ &\global\@eqcnt\thr@@\hb@xt@\z@\bgroup\hss##\egroup
+ \tabskip\z@skip
+ \cr
+}%
+\@ifx{\eqnarray\eqnarray@LaTeX}{%
+ \class@info{Repairing broken LaTeX eqnarray}%
+ \let\eqnarray\eqnarray@fleqn@fixed
+ \newlength\eqncolsep
+ \setlength\eqncolsep\z@
+ \let\eqnarray@LaTeX\relax
+ \let\eqnarray@fleqn@fixed\relax
+}{}%
+\def\mathindent{\@centering}%
+\def\set@eqnarray@skips{}%
+\def\footnote{%
+ \@ifnextchar[\@xfootnote{\@yfootnote\@footnotetext}%
+}%
+\def\footnotemark{%
+ \@ifnextchar[\@xfootnotemark{\@yfootnote}%
+}%
+\def\@xfootnote[#1]{%
+ \@xfootnotemark[#1]%
+ \@footnotetext
+}%
+\def\@xfootnotemark@ltx[#1]{%
+ \begingroup
+ \csname c@\@mpfn\endcsname #1\relax
+ \unrestored@protected@xdef\@thefnmark{\thempfn}%
+ \endgroup
+ \H@@footnotemark
+}%
+\def\@yfootnote{%
+ \stepcounter\@mpfn
+ \protected@xdef\@thefnmark{\thempfn}%
+ \H@@footnotemark
+}%
+\appdef\class@documenthook{%
+ \@ifxundefined\H@@footnotemark{%
+ \let\H@@footnotemark\@footnotemark
+ }{}%
+ \let\@xfootnotemark\@xfootnotemark@ltx
+}%
+\long\def\@footnotetext{%
+ \insert\footins\bgroup
+ \make@footnotetext
+}%
+\long\def\@mpfootnotetext{%
+ \minipagefootnote@pick
+ \make@footnotetext
+}%
+\def\make@footnotetext#1{%
+ \reset@font\footnotesize
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\footnotesep
+ \splitmaxdepth\dp\strutbox
+ \set@footnotewidth
+ \@parboxrestore
+ \protected@edef\@currentlabel{%
+ \csname p@footnote\endcsname\@thefnmark
+ }%
+ \color@begingroup
+ \@makefntext{%
+ \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox
+ }%
+ \color@endgroup
+ \minipagefootnote@drop
+}%
+\def\set@footnotewidth{%
+ \hsize\columnwidth
+ \linewidth\hsize
+}%
+\def\set@footnotewidth@ii{%
+ \hsize\textwidth
+ \advance\hsize\columnsep
+ \divide\hsize\tw@
+ \advance\hsize-\columnsep
+ \linewidth\hsize
+}%
+\def\addtocontents#1#2{%
+ \protected@write\@auxout{%
+ \let \label \@gobble \let \index \@gobble \let \glossary \@gobble
+ \def\({\string\(}%
+ \def\){\string\)}%
+ \def\\{\string\\}%
+ }{\string \@writefile {#1}{#2}}%
+}%
+\def\addcontentsline#1#2#3{%
+ \addtocontents{#1}{%
+ \protect\contentsline{#2}{#3}{\thepage}{}%
+ }%
+}%
+\def\contentsline#1#2#3#4{%
+ \csname l@#1\endcsname{#2}{#3}%
+}%
+\def\label#1{%
+ \@bsphack
+ \protected@write\@auxout{}{%
+ \string\newlabel{#1}{{\@currentlabel}{\thepage}{}{}{}}%
+ }%
+ \@esphack
+}%
+\appdef\class@documenthook{%
+ \prepdef\caption{\minipagefootnote@here}%
+}%
+\def\minipagefootnote@init{%
+ \setbox\@mpfootins\box\voidb@x
+}%
+\def\minipagefootnote@pick{%
+ \global\setbox\@mpfootins\vbox\bgroup
+ \unvbox\@mpfootins
+}%
+\def\minipagefootnote@drop{%
+ \egroup
+}%
+\def\minipagefootnote@here{%
+ \par
+ \@ifvoid\@mpfootins{}{%
+ \vskip\skip\@mpfootins
+ \fullinterlineskip
+ \@ifinner{%
+ \vtop{\unvcopy\@mpfootins}%
+ {\setbox\z@\lastbox}%
+ }{}%
+ \unvbox\@mpfootins
+ }%
+}%
+\def\minipagefootnote@foot{%
+ \@ifvoid\@mpfootins{}{%
+ \insert\footins\bgroup\unvbox\@mpfootins\egroup
+ }%
+}%
+\def\endminipage{%
+ \par
+ \unskip
+ \minipagefootnote@here
+ \@minipagefalse %% added 24 May 89
+ \color@endgroup
+ \egroup
+ \expandafter\@iiiparbox\@mpargs{\unvbox\@tempboxa}%
+}%
+\let\@xfloat@LaTeX\@xfloat
+\def\@xfloat#1[#2]{%
+ \@xfloat@prep
+ \@nameuse{fp@proc@#2}%
+ \@ifxundefined\floats@sw{\global\@booleantrue\floats@sw}{}%
+ \floats@sw{\@xfloat@LaTeX{#1}[#2]}{\@xfloat@anchored{#1}[]}%
+}%
+\def\@xfloat@prep{%
+ \let\footnote\footnote@latex
+ \def\@mpfn{mpfootnote}%
+ \def\thempfn{\thempfootnote}%
+ \c@mpfootnote\z@
+ \let\@footnotetext\@mpfootnotetext
+ \let\H@@footnotetext\@mpfootnotetext
+ \let\@makefntext\@mpmakefntext
+}%
+\appdef\class@documenthook{%
+ \let\footnote@latex\footnote
+}%
+\def\@xfloat@anchored#1[#2]{%
+ \def\@captype{#1}%
+ \begin@float@pagebreak
+ \let\end@float\end@float@anchored
+ \let\end@dblfloat\end@float@anchored
+ \hsize\columnwidth
+ \@parboxrestore
+ \@floatboxreset
+ \minipagefootnote@init
+}%
+\def\end@float@anchored{%
+ \minipagefootnote@here
+ \par\vskip\z@skip %% \par\vskip\z@ added 15 Dec 87
+ \par
+ \end@float@pagebreak
+}%
+\def\begin@float@pagebreak{\par\addvspace\intextsep}%
+\def\end@float@pagebreak{\par\addvspace\intextsep}%
+\def\@mpmakefntext#1{%
+ \parindent=1em
+ \noindent
+ \hb@xt@1em{\hss\@makefnmark}%
+ #1%
+}%
+\def\do@if@floats#1#2{%
+ \@ifxundefined\floats@sw{\global\@booleantrue\floats@sw}{}%
+ \floats@sw{}{%
+ \expandafter\newwrite
+ \csname#1write\endcsname
+ \expandafter\def
+ \csname#1@stream\endcsname{\jobname#2}%
+ \expandafter\immediate
+ \expandafter\openout
+ \csname#1write\endcsname
+ \csname#1@stream\endcsname\relax
+ \@ifxundefined\@float@LaTeX{%
+ \let\@float@LaTeX\@float
+ \let\@dblfloat@LaTeX\@dblfloat
+ \let\@float\write@float
+ \let\@dblfloat\write@floats
+ }{}%
+ \let@environment{#1@float}{#1}%
+ \let@environment{#1@floats}{#1*}%
+ \@ifxundefined@cs{#1@write}{}{%
+ \let@environment{#1}{#1@write}%
+ }%
+ }%
+}%
+\def\triggerpar{\leavevmode\@@par}%
+\def\oneapage{\def\begin@float@pagebreak{\newpage}\def\end@float@pagebreak{\newpage}}%
+\def\print@float#1#2{%
+ \@ifxundefined@cs{#1write}{}{%
+ \begingroup
+ \@booleanfalse\floats@sw
+ #2%
+ \raggedbottom
+ \def\array@default{v}% floats must
+ \let\@float\@float@LaTeX
+ \let\@dblfloat\@dblfloat@LaTeX
+ \let\trigger@float@par\triggerpar
+ \let@environment{#1}{#1@float}%
+ \let@environment{#1*}{#1@floats}%
+ \expandafter\prepdef\csname#1\endcsname{\trigger@float@par}%
+ \expandafter\prepdef\csname#1*\endcsname{\trigger@float@par}%
+ \@namedef{fps@#1}{h!}%
+ \expandafter\immediate
+ \expandafter\closeout
+ \csname#1write\endcsname
+ \everypar{%
+ \global\let\trigger@float@par\relax
+ \global\everypar{}\setbox\z@\lastbox
+ \@ifxundefined@cs{#1sname}{}{%
+ \begin@float@pagebreak
+ \expandafter\section
+ \expandafter*%
+ \expandafter{%
+ \csname#1sname\endcsname
+ }%
+ }%
+ }%
+ \input{\csname#1@stream\endcsname}%
+ \endgroup
+ \global\expandafter\let\csname#1write\endcsname\relax
+ }%
+}%
+\def\write@float#1{\write@@float{#1}{#1}}%
+\def\endwrite@float{\@Esphack}%
+\def\write@floats#1{\write@@float{#1*}{#1}}%
+\def\endwrite@floats{\@Esphack}%
+\def\write@@float#1#2{%
+ \ifhmode
+ \@bsphack
+ \fi
+ \chardef\@tempc\csname#2write\endcsname
+ \toks@{\begin{#1}}%
+ \def\@tempb{#1}%
+ \expandafter\let\csname end#1\endcsname\endwrite@float
+ \catcode`\^^M\active
+ \@makeother\{\@makeother\}\@makeother\%
+ \write@floatline
+}%
+\begingroup
+ \catcode`\[\the\catcode`\{\catcode`\]\the\catcode`\}\@makeother\{\@makeother\}%
+ \gdef\float@end@tag#1\end{#2}#3\@nul[%
+ \def\@tempa[#2]%
+ \@ifx[\@tempa\@tempb][\end[#2]][\write@floatline]%
+ ]%
+ \obeylines%
+ \gdef\write@floatline#1^^M[%
+ \begingroup%
+ \newlinechar`\^^M%
+ \toks@\expandafter[\the\toks@#1]\immediate\write\@tempc[\the\toks@]%
+ \endgroup%
+ \toks@[]%
+ \float@end@tag#1\end{}\@nul%
+ ]%
+\endgroup
+\def\@alph#1{\ifcase#1\or a\or b\or c\or d\else\@ialph{#1}\fi}
+\def\@ialph#1{\ifcase#1\or \or \or \or \or e\or f\or g\or h\or i\or j\or
+ k\or l\or m\or n\or o\or p\or q\or r\or s\or t\or u\or v\or w\or x\or
+ y\or z\or aa\or bb\or cc\or dd\or ee\or ff\or gg\or hh\or ii\or jj\or
+ kk\or ll\or mm\or nn\or oo\or pp\or qq\or rr\or ss\or tt\or uu\or
+ vv\or ww\or xx\or yy\or zz\else\@ctrerr\fi}
+\def\@startsection#1#2#3#4#5#6{%
+ \@startsection@hook
+ \if@noskipsec \leavevmode \fi
+ \par
+ \@tempskipa #4\relax
+ \@afterindenttrue
+ \ifdim \@tempskipa <\z@
+ \@tempskipa -\@tempskipa \@afterindentfalse
+ \fi
+ \if@nobreak
+ \everypar{}%
+ \else
+ \addpenalty\@secpenalty\addvspace\@tempskipa
+ \fi
+ \@ifstar
+ {\@dblarg{\@ssect@ltx{#1}{#2}{#3}{#4}{#5}{#6}}}%
+ {\@dblarg{\@sect@ltx {#1}{#2}{#3}{#4}{#5}{#6}}}%
+}%
+\def\@startsection@hook{}%
+\class@info
+ {Repairing broken LateX \string\@sect}%
+\def\@sect@ltx#1#2#3#4#5#6[#7]#8{%
+ \@ifnum{#2>\c@secnumdepth}{%
+ \def\H@svsec{\phantomsection}%
+ \let\@svsec\@empty
+ }{%
+ \H@refstepcounter{#1}%
+ \def\H@svsec{%
+ \phantomsection
+ }%
+ \protected@edef\@svsec{{#1}}%
+ \@ifundefined{@#1cntformat}{%
+ \prepdef\@svsec\@seccntformat
+ }{%
+ \expandafter\prepdef
+ \expandafter\@svsec
+ \csname @#1cntformat\endcsname
+ }%
+ }%
+ \@tempskipa #5\relax
+ \@ifdim{\@tempskipa>\z@}{%
+ \begingroup
+ \interlinepenalty \@M
+ #6{%
+ \@ifundefined{@hangfrom@#1}{\@hang@from}{\csname @hangfrom@#1\endcsname}%
+ {\hskip#3\relax\H@svsec}{\@svsec}{#8}%
+ }%
+ \@@par
+ \endgroup
+ \@ifundefined{#1mark}{\@gobble}{\csname #1mark\endcsname}{#7}%
+ \addcontentsline{toc}{#1}{%
+ \@ifnum{#2>\c@secnumdepth}{%
+ \protect\numberline{}%
+ }{%
+ \protect\numberline{\csname the#1\endcsname}%
+ }%
+ #8}%
+ }{%
+ \def\@svsechd{%
+ #6{%
+ \@ifundefined{@runin@to@#1}{\@runin@to}{\csname @runin@to@#1\endcsname}%
+ {\hskip#3\relax\H@svsec}{\@svsec}{#8}%
+ }%
+ \@ifundefined{#1mark}{\@gobble}{\csname #1mark\endcsname}{#7}%
+ \addcontentsline{toc}{#1}{%
+ \@ifnum{#2>\c@secnumdepth}{%
+ \protect\numberline{}%
+ }{%
+ \protect\numberline{\csname the#1\endcsname}%
+ }%
+ #8}%
+ }%
+ }%
+ \@xsect{#5}%
+}%
+\def\@hang@from#1#2#3{\@hangfrom{#1#2}#3}%
+\def\@runin@to #1#2#3{#1#2#3}%
+\def\@ssect@ltx#1#2#3#4#5#6[#7]#8{%
+ \def\H@svsec{\phantomsection}%
+ \@tempskipa #5\relax
+ \@ifdim{\@tempskipa>\z@}{%
+ \begingroup
+ \interlinepenalty \@M
+ #6{%
+ \@ifundefined{@hangfroms@#1}{\@hang@froms}{\csname @hangfroms@#1\endcsname}%
+ {\hskip#3\relax\H@svsec}{#8}%
+ }%
+ \@@par
+ \endgroup
+ \@ifundefined{#1smark}{\@gobble}{\csname #1smark\endcsname}{#7}%
+ \addcontentsline{toc}{#1}{\protect\numberline{}#8}%
+ }{%
+ \def\@svsechd{%
+ #6{%
+ \@ifundefined{@runin@tos@#1}{\@runin@tos}{\csname @runin@tos@#1\endcsname}%
+ {\hskip#3\relax\H@svsec}{#8}%
+ }%
+ \@ifundefined{#1smark}{\@gobble}{\csname #1smark\endcsname}{#7}%
+ \addcontentsline{toc}{#1}{\protect\numberline{}#8}%
+ }%
+ }%
+ \@xsect{#5}%
+}%
+\def\@hang@froms#1#2{#1#2}%
+\def\@runin@tos #1#2{#1#2}%
+\appdef\init@documenthook{%
+ \providecommand\phantomsection{}%
+ \providecommand\hyper@anchor[1]{}%
+ \providecommand\hyper@last{}%
+ \providecommand\Hy@raisedlink[1]{#1}%
+ \providecommand\hyper@anchorstart[1]{}%
+ \providecommand\hyper@anchorend{}%
+ \providecommand\hyper@linkstart[2]{}%
+ \providecommand\hyper@linkend{}%
+}%
+\let\H@refstepcounter\refstepcounter
+\def\sec@upcase#1{\relax{#1}}%
+\appdef\class@documenthook{%
+ \@ifpackageloaded{array}{\switch@array}{\switch@tabular}%
+ \prepdef\endtabular{\endtabular@hook}%
+ \@provide\endtabular@hook{}%
+ \prepdef\endarray{\endarray@hook}%
+ \@provide\endarray@hook{}%
+ \providecommand\array@hook{}%
+ \prepdef\@tabular{\tabular@hook}%
+ \@provide\tabular@hook{}%
+}%
+\def\switch@tabular{%
+ \let\@array@sw\@array@sw@array
+ \@ifx{\@array\@array@LaTeX}{%
+ \@ifx{\multicolumn\multicolumn@LaTeX}{%
+ \@ifx{\@tabular\@tabular@LaTeX}{%
+ \@ifx{\@tabarray\@tabarray@LaTeX}{%
+ \@ifx{\array\array@LaTeX}{%
+ \@ifx{\endarray\endarray@LaTeX}{%
+ \@ifx{\endtabular\endtabular@LaTeX}{%
+ \@ifx{\@mkpream\@mkpream@LaTeX}{%
+ \@ifx{\@addamp\@addamp@LaTeX}{%
+ \@ifx{\@arrayacol\@arrayacol@LaTeX}{%
+ \@ifx{\@tabacol\@tabacol@LaTeX}{%
+ \@ifx{\@arrayclassz\@arrayclassz@LaTeX}{%
+ \@ifx{\@tabclassiv\@tabclassiv@LaTeX}{%
+ \@ifx{\@arrayclassiv\@arrayclassiv@LaTeX}{%
+ \@ifx{\@tabclassz\@tabclassz@LaTeX}{%
+ \@ifx{\@classv\@classv@LaTeX}{%
+ \@ifx{\hline\hline@LaTeX}{%
+ \@ifx{\@tabularcr\@tabularcr@LaTeX}{%
+ \@ifx{\@xtabularcr\@xtabularcr@LaTeX}{%
+ \@ifx{\@xargarraycr\@xargarraycr@LaTeX}{%
+ \@ifx{\@yargarraycr\@yargarraycr@LaTeX}{%
+ \true@sw
+ }{%
+ \false@sw
+ }%
+ }{%
+ \false@sw
+ }%
+ }{%
+ \false@sw
+ }%
+ }{%
+ \false@sw
+ }%
+ }{%
+ \false@sw
+ }%
+ }{%
+ \false@sw
+ }%
+ }{%
+ \false@sw
+ }%
+ }{%
+ \false@sw
+ }%
+ }{%
+ \false@sw
+ }%
+ }{%
+ \false@sw
+ }%
+ }{%
+ \false@sw
+ }%
+ }{%
+ \false@sw
+ }%
+ }{%
+ \false@sw
+ }%
+ }{%
+ \false@sw
+ }%
+ }{%
+ \false@sw
+ }%
+ }{%
+ \false@sw
+ }%
+ }{%
+ \false@sw
+ }%
+ }{%
+ \false@sw
+ }%
+ }{%
+ \false@sw
+ }%
+ }{%
+ \false@sw
+ }%
+ }{%
+ \false@sw
+ }%
+ {%
+ \class@info{Patching LaTeX tabular.}%
+ }{%
+ \class@info{Unrecognized LaTeX tabular. Please update this document class! (Proceeding with fingers crossed.)}%
+ }%
+ \let\@array\@array@ltx
+ \let\multicolumn\multicolumn@ltx
+ \let\@tabular\@tabular@ltx
+ \let\@tabarray\@tabarray@ltx
+ \let\array\array@ltx
+ \let\endarray\endarray@ltx
+ \let\endtabular\endtabular@ltx
+ \let\@mkpream\@mkpream@ltx
+ \let\@addamp\@addamp@ltx
+ \let\@arrayacol\@arrayacol@ltx
+ \let\@tabacol\@tabacol@ltx
+ \let\@arrayclassz\@arrayclassz@ltx
+ \let\@tabclassiv\@tabclassiv@ltx
+ \let\@arrayclassiv\@arrayclassiv@ltx
+ \let\@tabclassz\@tabclassz@ltx
+ \let\@classv\@classv@ltx
+ \let\hline\hline@ltx
+ \let\@tabularcr\@tabularcr@ltx
+ \let\@xtabularcr\@xtabularcr@ltx
+ \let\@xargarraycr\@xargarraycr@ltx
+ \let\@yargarraycr\@yargarraycr@ltx
+}%
+\def\switch@array{%
+ \let\@array@sw\@array@sw@LaTeX
+ \@ifx{\@array\@array@array}{%
+ \@ifx{\@tabular\@tabular@array}{%
+ \@ifx{\@tabarray\@tabarray@array}{%
+ \@ifx{\array\array@array}{%
+ \@ifx{\endarray\endarray@array}{%
+ \@ifx{\endtabular\endtabular@array}{%
+ \@ifx{\@mkpream\@mkpream@array}{%
+ \@ifx{\@classx\@classx@array}{%
+ \@ifx{\insert@column\insert@column@array}{%
+ \@ifx{\@arraycr\@arraycr@array}{%
+ \@ifx{\@xarraycr\@xarraycr@array}{%
+ \@ifx{\@xargarraycr\@xargarraycr@array}{%
+ \@ifx{\@yargarraycr\@yargarraycr@array}{%
+ \true@sw
+ }{%
+ \false@sw
+ }%
+ }{%
+ \false@sw
+ }%
+ }{%
+ \false@sw
+ }%
+ }{%
+ \false@sw
+ }%
+ }{%
+ \false@sw
+ }%
+ }{%
+ \false@sw
+ }%
+ }{%
+ \false@sw
+ }%
+ }{%
+ \false@sw
+ }%
+ }{%
+ \false@sw
+ }%
+ }{%
+ \false@sw
+ }%
+ }{%
+ \false@sw
+ }%
+ }{%
+ \false@sw
+ }%
+ }{%
+ \false@sw
+ }{%
+ \class@info{Patching array package.}%
+ }{%
+ \class@info{Unrecognized array package. Please update this document class! (Proceeding with fingers crossed.)}%
+ }%
+ \let\@array \@array@array@new
+ \let\@@array \@array % Cosi fan tutti
+ \let\@tabular \@tabular@array@new
+ \let\@tabarray \@tabarray@array@new
+ \let\array \array@array@new
+ \let\endarray \endarray@array@new
+ \let\endtabular\endtabular@array@new
+ \let\@mkpream \@mkpream@array@new
+ \let\@classx \@classx@array@new
+ \let\@arrayacol\@arrayacol@ltx
+ \let\@tabacol \@tabacol@ltx
+ \let\insert@column\insert@column@array@new
+ \expandafter\let\csname endtabular*\endcsname\endtabular % Cosi fan tutti
+ \let\@arraycr \@arraycr@new
+ \let\@xarraycr \@xarraycr@new
+ \let\@xargarraycr\@xargarraycr@new
+ \let\@yargarraycr\@yargarraycr@new
+}%
+\def\@array@sw@LaTeX{\@ifx{\\\@tabularcr}}%
+\def\@array@sw@array{\@ifx{\d@llarbegin\begingroup}}%
+\def\@tabular@LaTeX{%
+ \leavevmode
+ \hbox\bgroup$%
+ \let\@acol\@tabacol
+ \let\@classz\@tabclassz
+ \let\@classiv\@tabclassiv
+ \let\\\@tabularcr
+ \@tabarray
+}%
+\def\@tabular@ltx{%
+ \let\@acoll\@tabacoll
+ \let\@acolr\@tabacolr
+ \let\@acol\@tabacol
+ \let\@classz\@tabclassz
+ \let\@classiv\@tabclassiv
+ \let\\\@tabularcr
+ \@tabarray
+}%
+\def\@tabular@array{%
+ \leavevmode
+ \hbox\bgroup$%
+ \col@sep\tabcolsep
+ \let\d@llarbegin\begingroup
+ \let\d@llarend\endgroup
+ \@tabarray
+}%
+\def\@tabular@array@new{%
+ \let\@acoll\@tabacoll
+ \let\@acolr\@tabacolr
+ \let\@acol\@tabacol
+ \let\col@sep\@undefined
+ \let\d@llarbegin\begingroup
+ \let\d@llarend\endgroup
+ \@tabarray
+}%
+\def\@tabarray@LaTeX{%
+ \m@th\@ifnextchar[\@array{\@array[c]}%
+}%
+\def\@tabarray@ltx{%
+ \m@th\@ifnextchar[\@array{\expandafter\@array\expandafter[\array@default]}%
+}%
+\def\@tabarray@array{%
+ \@ifnextchar[{\@@array}{\@@array[c]}%
+}%
+\def\@tabarray@array@new{%
+ \@ifnextchar[{\@@array}{\expandafter\@@array\expandafter[\array@default]}%
+}%
+\newcount\intertabularlinepenalty
+\intertabularlinepenalty=100
+\newcount\@tbpen
+\appdef\samepage{\intertabularlinepenalty\@M}%
+\def\@tabularcr@LaTeX{{\ifnum 0=`}\fi \@ifstar \@xtabularcr \@xtabularcr}%
+\def\@tabularcr@ltx{{\ifnum 0=`}\fi \@ifstar {\global \@tbpen \@M \@xtabularcr }{\global \@tbpen \intertabularlinepenalty \@xtabularcr }}%
+\def\@xtabularcr@LaTeX{\@ifnextchar [\@argtabularcr {\ifnum 0=`{\fi }\cr }}%
+\def\@xtabularcr@ltx{\@ifnextchar [\@argtabularcr {\ifnum 0=`{\fi }\cr \noalign {\penalty \@tbpen }}}%
+\def\@xargarraycr@LaTeX#1{\@tempdima #1\advance \@tempdima \dp \@arstrutbox \vrule \@height \z@ \@depth \@tempdima \@width \z@ \cr}%
+\def\@xargarraycr@ltx#1{\@tempdima #1\advance \@tempdima \dp \@arstrutbox \vrule \@height \z@ \@depth \@tempdima \@width \z@ \cr \noalign {\penalty \@tbpen }}%
+\def\@yargarraycr@LaTeX#1{\cr \noalign {\vskip #1}}%
+\def\@yargarraycr@ltx#1{\cr \noalign {\penalty \@tbpen \vskip #1}}%
+\def\@arraycr@array{%
+ \relax
+ \iffalse{\fi\ifnum 0=`}\fi
+ \@ifstar \@xarraycr \@xarraycr
+}%
+\def\@arraycr@new{%
+ \relax
+ \iffalse{\fi\ifnum 0=`}\fi
+ \@ifstar {\global \@tbpen \@M \@xarraycr }{\global \@tbpen \intertabularlinepenalty \@xarraycr }%
+}%
+\def\@xarraycr@array{%
+ \@ifnextchar [%]
+ \@argarraycr {\ifnum 0=`{}\fi\cr}%
+}%
+\def\@xarraycr@new{%
+ \@ifnextchar [%]
+ \@argarraycr {\ifnum 0=`{}\fi\cr \noalign {\penalty \@tbpen }}%
+}%
+\def\@xargarraycr@array#1{%
+ \unskip
+ \@tempdima #1\advance\@tempdima \dp\@arstrutbox
+ \vrule \@depth\@tempdima \@width\z@
+ \cr
+}%
+\def\@xargarraycr@new#1{%
+ \unskip
+ \@tempdima #1\advance\@tempdima \dp\@arstrutbox
+ \vrule \@depth\@tempdima \@width\z@
+ \cr
+ \noalign {\penalty \@tbpen }%
+}%
+\def\@yargarraycr@array#1{%
+ \cr
+ \noalign{\vskip #1}%
+}%
+\def\@yargarraycr@new#1{%
+ \cr
+ \noalign{\penalty \@tbpen \vskip #1}%
+}%
+\def\array@LaTeX{%
+ \let\@acol\@arrayacol
+ \let\@classz\@arrayclassz
+ \let\@classiv\@arrayclassiv
+ \let\\\@arraycr
+ \let\@halignto\@empty
+ \@tabarray
+}%
+\def\array@ltx{%
+ \@ifmmode{}{\@badmath$}%
+ \let\@acoll\@arrayacol
+ \let\@acolr\@arrayacol
+ \let\@acol\@arrayacol
+ \let\@classz\@arrayclassz
+ \let\@classiv\@arrayclassiv
+ \let\\\@arraycr
+ \let\@halignto\@empty
+ \@tabarray
+}%
+\def\array@array{%
+ \col@sep\arraycolsep
+ \def\d@llarbegin{$}\let\d@llarend\d@llarbegin\gdef\@halignto{}%
+ \@tabarray
+}
+\def\array@array@new{%
+ \@ifmmode{}{\@badmath$}%
+ \let\@acoll\@arrayacol
+ \let\@acolr\@arrayacol
+ \let\@acol\@arrayacol
+\let\col@sep\@undefined
+ \def\d@llarbegin{$}%
+ \let\d@llarend\d@llarbegin
+ \gdef\@halignto{}%
+ \@tabarray
+}%
+\def\@array@LaTeX[#1]#2{%
+ \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi\fi
+ \bgroup
+ \setbox\@arstrutbox\hbox{%
+ \vrule \@height\arraystretch\ht\strutbox
+ \@depth\arraystretch \dp\strutbox
+ \@width\z@}%
+ \@mkpream{#2}%
+ \edef\@preamble{%
+ \ialign \noexpand\@halignto
+ \bgroup \@arstrut \@preamble \tabskip\z@skip \cr}%
+ \let\@startpbox\@@startpbox \let\@endpbox\@@endpbox
+ \let\tabularnewline\\%
+ \let\par\@empty
+ \let\@sharp##%
+ \set@typeset@protect
+ \lineskip\z@skip\baselineskip\z@skip
+ \ifhmode \@preamerr\z@ \@@par\fi
+ \@preamble
+}%
+\def\@array@ltx[#1]#2{%
+ \@nameuse{@array@align@#1}%
+ \set@arstrutbox
+ \@mkpream{#2}%
+ \prepdef\@preamble{%
+ \tabskip\tabmid@skip
+ \@arstrut
+ }%
+ \appdef\@preamble{%
+ \tabskip\tabright@skip
+ \cr
+ \array@row@pre
+ }%
+ \let\tabularnewline\\%
+ \let\par\@empty
+ \let\@sharp##%
+ \set@typeset@protect
+ \lineskip\z@skip\baselineskip\z@skip
+ \tabskip\tableft@skip\relax
+ \ifhmode \@preamerr\z@ \@@par\fi
+ \everycr{}%
+ \expandafter\halign\expandafter\@halignto\expandafter\bgroup\@preamble
+}%
+\def\set@arstrutbox{%
+ \setbox\@arstrutbox\hbox{%
+ \vrule \@height\arraystretch\ht\strutbox
+ \@depth\arraystretch \dp\strutbox
+ \@width\z@
+ }%
+}%
+\def\@array@array[#1]#2{%
+ \@tempdima \ht \strutbox
+ \advance \@tempdima by\extrarowheight
+ \setbox \@arstrutbox \hbox{\vrule
+ \@height \arraystretch \@tempdima
+ \@depth \arraystretch \dp \strutbox
+ \@width \z@}%
+ \begingroup
+ \@mkpream{#2}%
+ \xdef\@preamble{\noexpand \ialign \@halignto
+ \bgroup \@arstrut \@preamble
+ \tabskip \z@ \cr}%
+ \endgroup
+ \@arrayleft
+ \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi \fi
+ \bgroup
+ \let \@sharp ##\let \protect \relax
+ \lineskip \z@
+ \baselineskip \z@
+ \m@th
+ \let\\\@arraycr \let\tabularnewline\\\let\par\@empty \@preamble
+}%
+\def\@array@array@new[#1]#2{%
+ \@tempdima\ht\strutbox
+ \advance\@tempdima by\extrarowheight
+ \setbox\@arstrutbox\hbox{%
+ \vrule \@height\arraystretch\@tempdima
+ \@depth \arraystretch\dp\strutbox
+ \@width \z@
+ }%
+ \begingroup
+ \@mkpream{#2}%
+ \xdef\@preamble{\@preamble}%
+ \endgroup
+ \prepdef\@preamble{%
+ \tabskip\tabmid@skip
+ \@arstrut
+ }%
+ \appdef\@preamble{%
+ \tabskip\tabright@skip
+ \cr
+ \array@row@pre
+ }%
+ \@arrayleft
+ \@nameuse{@array@align@#1}%
+ \m@th
+ \let\\\@arraycr
+ \let\tabularnewline\\%
+ \let\par\@empty
+ \let\@sharp##%
+ \set@typeset@protect
+ \lineskip\z@\baselineskip\z@
+ \tabskip\tableft@skip
+ \everycr{}%
+ \expandafter\halign\expandafter\@halignto\expandafter\bgroup\@preamble
+}%
+\def\endarray@LaTeX{%
+ \crcr\egroup\egroup
+}%
+\def\endarray@ltx{%
+ \crcr\array@row@pst\egroup\egroup
+}%
+\def\endarray@array{%
+ \crcr \egroup \egroup \@arrayright \gdef\@preamble{}%
+}%
+\def\endarray@array@new{%
+ \crcr\array@row@pst\egroup\egroup % Same as \endarray@ltx
+ \@arrayright
+ \global\let\@preamble\@empty
+}%
+\def\endtabular@LaTeX{%
+ \crcr\egroup\egroup $\egroup
+}%
+\def\endtabular@ltx{%
+ \endarray
+}%
+\def\endtabular@array{%
+ \endarray $\egroup
+}%
+\def\endtabular@array@new{%
+ \endarray
+}%
+\@namedef{endtabular*}{\endtabular}%
+\long\def\multicolumn@LaTeX#1#2#3{%
+ \multispan{#1}\begingroup
+ \@mkpream{#2}%
+ \def\@sharp{#3}\set@typeset@protect
+ \let\@startpbox\@@startpbox\let\@endpbox\@@endpbox
+ \@arstrut \@preamble\hbox{}\endgroup\ignorespaces
+}%
+\long\def\multicolumn@ltx#1#2#3{%
+ \multispan{#1}%
+ \begingroup
+ \@mkpream{#2}%
+ \def\@sharp{#3}%
+ \set@typeset@protect
+ %\let\@startpbox\@@startpbox\let\@endpbox\@@endpbox
+ \@arstrut
+ \@preamble
+ \hbox{}%
+ \endgroup
+ \ignorespaces
+}%
+\def\@array@align@t{\leavevmode\vtop\bgroup}%
+\def\@array@align@b{\leavevmode\vbox\bgroup}%
+\def\@array@align@c{\leavevmode\@ifmmode{\vcenter\bgroup}{$\vcenter\bgroup\aftergroup$\aftergroup\relax}}%
+\def\@array@align@v{%
+ \@ifmmode{%
+ \@badmath
+ \vcenter\bgroup
+ }{%
+ \@ifinner{%
+ $\vcenter\bgroup\aftergroup$
+ }{%
+ \@@par\bgroup
+ }%
+ }%
+}%
+\def\array@default{c}%
+\def\array@row@rst{%
+ \let\@array@align@v\@array@align@c
+}%
+\def\array@row@pre{}%
+\def\array@row@pst{}%
+\newcommand\toprule{\tab@rule{\column@font}{\column@fil}{\frstrut}}%
+\newcommand\colrule{\unskip\lrstrut\\\tab@rule{\body@font}{}{\frstrut}}%
+\newcommand\botrule{\unskip\lrstrut\\\noalign{\hline@rule}{}}%
+\def\hline@LaTeX{%
+ \noalign{\ifnum0=`}\fi\hrule \@height \arrayrulewidth \futurelet
+ \reserved@a\@xhline
+}%
+\def\hline@ltx{%
+ \noalign{%
+ \ifnum0=`}\fi
+ \hline@rule
+ \futurelet\reserved@a\@xhline
+ % \noalign ended in \@xhline
+}%
+\def\@xhline@unneeded{%
+ \say\reserved@a
+ \ifx\reserved@a\hline
+ \vskip\doublerulesep
+ \vskip-\arrayrulewidth
+ \fi
+ \ifnum0=`{\fi}%
+}%
+\def\tab@rule#1#2#3{%
+ \crcr
+ \noalign{%
+ \hline@rule
+ \gdef\@arstrut@hook{%
+ \global\let\@arstrut@hook\@empty
+ #3%
+ }%
+ \gdef\cell@font{#1}%
+ \gdef\cell@fil{#2}%
+ }%
+}%
+\def\column@font{}%
+\def\column@fil{}%
+\def\body@font{}%
+\def\cell@font{}%
+\def\frstrut{}%
+\def\lrstrut{}%
+\def\@arstrut@hline{%
+ \relax
+ \@ifmmode{\copy}{\unhcopy}\@arstrutbox@hline
+ \@arstrut@hook
+}%
+\let\@arstrut@org\@arstrut
+\def\@arstrut@hook{%
+ \global\let\@arstrut\@arstrut@org
+}%
+\newbox\@arstrutbox@hline
+\appdef\set@arstrutbox{%
+ \setbox\@arstrutbox@hline\hbox{%
+ \setbox\z@\hbox{$0^{0}_{}$}%
+ \dimen@\ht\z@\advance\dimen@\@arstrut@hline@clnc
+ \@ifdim{\dimen@<\arraystretch\ht\strutbox}{\dimen@=\arraystretch\ht\strutbox}{}%
+ \vrule \@height\dimen@
+ \@depth\arraystretch \dp\strutbox
+ \@width\z@
+ }%
+}%
+\def\hline@rule{%
+ \hrule \@height \arrayrulewidth
+ \global\let\@arstrut\@arstrut@hline
+}%
+\def\@arstrut@hline@clnc{2\p@}% % Klootch: magic number
+\def\tableft@skip{\z@skip}%
+\def\tabmid@skip{\z@skip}%\@flushglue
+\def\tabright@skip{\z@skip}%
+\def\tableftsep{\tabcolsep}%
+\def\tabmidsep{\tabcolsep}%
+\def\tabrightsep{\tabcolsep}%
+\def\cell@fil{}%
+\def\pbox@hook{}%
+\appdef\@arstrut{\@arstrut@hook}%
+\let\@arstrut@hook\@empty
+\def\@addtopreamble{\appdef\@preamble}%
+\def\@mkpream@LaTeX#1{%
+ \@firstamptrue\@lastchclass6
+ \let\@preamble\@empty
+ \let\protect\@unexpandable@protect
+ \let\@sharp\relax
+ \let\@startpbox\relax\let\@endpbox\relax
+ \@expast{#1}%
+ \expandafter\@tfor \expandafter
+ \@nextchar \expandafter:\expandafter=\reserved@a\do
+ {\@testpach\@nextchar
+ \ifcase \@chclass \@classz \or \@classi \or \@classii \or \@classiii
+ \or \@classiv \or\@classv \fi\@lastchclass\@chclass}%
+ \ifcase \@lastchclass \@acol
+ \or \or \@preamerr \@ne\or \@preamerr \tw@\or \or \@acol \fi
+}%
+\def\@mkpream@ltx#1{%
+ \@firstamptrue
+ \@lastchclass6
+ \let\@preamble\@empty
+ \let\protect\@unexpandable@protect
+ \let\@sharp\relax
+ \@expast{#1}%
+ \expandafter\@tfor\expandafter\@nextchar\expandafter:\expandafter=\reserved@a
+ \do{%
+ \expandafter\@testpach\expandafter{\@nextchar}%
+ \ifcase\@chclass
+ \@classz
+ \or
+ \@classi
+ \or
+ \@classii
+ \or
+ \@classiii
+ \or
+ \@classiv
+ \or
+ \@classv
+ \fi
+ \@lastchclass\@chclass
+ }%
+ \ifcase\@lastchclass
+ \@acolr % right-hand column
+ \or
+ \or
+ \@preamerr\@ne
+ \or
+ \@preamerr\tw@
+ \or
+ \or
+ \@acolr % right-hand column
+ \fi
+}%
+\def\insert@column@array{%
+ \the@toks \the \@tempcnta
+ \ignorespaces \@sharp \unskip
+ \the@toks \the \count@ \relax
+}%
+\def\insert@column@array@new{%
+ \the@toks\the\@tempcnta
+ \array@row@rst\cell@font
+ \ignorespaces\@sharp\unskip
+ \the@toks\the\count@
+ \relax
+}%
+\def\@mkpream@relax{%
+ \let\tableftsep\relax
+ \let\tabmidsep\relax
+ \let\tabrightsep\relax
+ \let\array@row@rst\relax
+ \let\cell@font\relax
+ \let\@startpbox\relax
+}%
+\def\@mkpream@array#1{%
+ \gdef\@preamble{}\@lastchclass 4 \@firstamptrue
+ \let\@sharp\relax \let\@startpbox\relax \let\@endpbox\relax
+ \@temptokena{#1}\@tempswatrue
+ \@whilesw\if@tempswa\fi{\@tempswafalse\the\NC@list}%
+ \count@\m@ne
+ \let\the@toks\relax
+ \prepnext@tok
+ \expandafter \@tfor \expandafter \@nextchar
+ \expandafter :\expandafter =\the\@temptokena \do
+ {\@testpach
+ \ifcase \@chclass \@classz \or \@classi \or \@classii
+ \or \save@decl \or \or \@classv \or \@classvi
+ \or \@classvii \or \@classviii
+ \or \@classx
+ \or \@classx \fi
+ \@lastchclass\@chclass}%
+ \ifcase\@lastchclass
+ \@acol \or
+ \or
+ \@acol \or
+ \@preamerr \thr@@ \or
+ \@preamerr \tw@ \@addtopreamble\@sharp \or
+ \or
+ \else \@preamerr \@ne \fi
+ \def\the@toks{\the\toks}%
+}%
+\def\@mkpream@array@new#1{%
+ \gdef\@preamble{}%
+ \@lastchclass\f@ur
+ \@firstamptrue
+ \let\@sharp\relax
+ \@mkpream@relax
+ \@temptokena{#1}\@tempswatrue
+ \@whilesw\if@tempswa\fi{\@tempswafalse\the\NC@list}%
+ \count@\m@ne
+ \let\the@toks\relax
+ \prepnext@tok
+ \expandafter\@tfor\expandafter\@nextchar\expandafter:\expandafter=\the\@temptokena
+ \do{%
+ \@testpach
+ \ifcase\@chclass
+ \@classz
+ \or
+ \@classi
+ \or
+ \@classii
+ \or
+ \save@decl
+ \or
+ \or
+ \@classv
+ \or
+ \@classvi
+ \or
+ \@classvii
+ \or
+ \@classviii
+ \or
+ \@classx
+ \or
+ \@classx
+ \fi
+ \@lastchclass\@chclass
+ }%
+ \ifcase\@lastchclass
+ \@acolr % right-hand column
+ \or
+ \or
+ \@acolr % right-hand column
+ \or
+ \@preamerr\thr@@
+ \or
+ \@preamerr\tw@\@addtopreamble\@sharp
+ \or
+ \or
+ \else
+ \@preamerr\@ne
+ \fi
+ \def\the@toks{\the\toks}%
+}%
+\def\@addamp@LaTeX{%
+ \if@firstamp\@firstampfalse\else\edef\@preamble{\@preamble &}\fi
+}%
+\def\@addamp@ltx{%
+ \if@firstamp\@firstampfalse\else\@addtopreamble{&}\fi
+}%
+\def\@arrayacol@LaTeX{%
+ \edef\@preamble{\@preamble \hskip \arraycolsep}%
+}%
+\def\@arrayacol@ltx{%
+ \@addtopreamble{\hskip\arraycolsep}%
+}%
+\def\@tabacoll{%
+ \@addtopreamble{\hskip\tableftsep\relax}%
+}%
+\def\@tabacol@LaTeX{%
+ \edef\@preamble{\@preamble \hskip \tabcolsep}%
+}%
+\def\@tabacol@ltx{%
+ \@addtopreamble{\hskip\tabmidsep\relax}%
+}%
+\def\@tabacolr{%
+ \@addtopreamble{\hskip\tabrightsep\relax}%
+}%
+\def\@arrayclassz@LaTeX{%
+ \ifcase \@lastchclass \@acolampacol \or \@ampacol \or
+ \or \or \@addamp \or
+ \@acolampacol \or \@firstampfalse \@acol \fi
+ \edef\@preamble{\@preamble
+ \ifcase \@chnum
+ \hfil$\relax\@sharp$\hfil \or $\relax\@sharp$\hfil
+ \or \hfil$\relax\@sharp$\fi}%
+}%
+\def\@arrayclassz@ltx{%
+ \ifcase\@lastchclass
+ \@acolampacol
+ \or
+ \@ampacol
+ \or
+ \or
+ \or
+ \@addamp
+ \or
+ \@acolampacol
+ \or
+ \@firstampfalse\@acoll
+ \fi
+ \ifcase\@chnum
+ \@addtopreamble{%
+ \hfil\array@row@rst$\relax\@sharp$\hfil
+ }%
+ \or
+ \@addtopreamble{%
+ \array@row@rst$\relax\@sharp$\hfil
+ }%
+ \or
+ \@addtopreamble{%
+ \hfil\array@row@rst$\relax\@sharp$%
+ }%
+ \fi
+}%
+\def\@tabclassz@LaTeX{%
+ \ifcase\@lastchclass
+ \@acolampacol
+ \or
+ \@ampacol
+ \or
+ \or
+ \or
+ \@addamp
+ \or
+ \@acolampacol
+ \or
+ \@firstampfalse\@acol
+ \fi
+ \edef\@preamble{%
+ \@preamble{%
+ \ifcase\@chnum
+ \hfil\ignorespaces\@sharp\unskip\hfil
+ \or
+ \hskip1sp\ignorespaces\@sharp\unskip\hfil
+ \or
+ \hfil\hskip1sp\ignorespaces\@sharp\unskip
+ \fi}}%
+}%
+\def\@tabclassz@ltx{%
+ \ifcase\@lastchclass
+ \@acolampacol
+ \or
+ \@ampacol
+ \or
+ \or
+ \or
+ \@addamp
+ \or
+ \@acolampacol
+ \or
+ \@firstampfalse\@acoll
+ \fi
+ \ifcase\@chnum
+ \@addtopreamble{%
+ {\hfil\array@row@rst\cell@font\ignorespaces\@sharp\unskip\hfil}%
+ }%
+ \or
+ \@addtopreamble{%
+ {\cell@fil\hskip1sp\array@row@rst\cell@font\ignorespaces\@sharp\unskip\hfil}%
+ }%
+ \or
+ \@addtopreamble{%
+ {\hfil\hskip1sp\array@row@rst\cell@font\ignorespaces\@sharp\unskip\cell@fil}%
+ }%
+ \fi
+}%
+\def\@tabclassiv@LaTeX{%
+ \@addtopreamble\@nextchar
+}%
+\def\@tabclassiv@ltx{%
+ \expandafter\@addtopreamble\expandafter{\@nextchar}%
+}%
+\def\@arrayclassiv@LaTeX{%
+ \@addtopreamble{$\@nextchar$}%
+}%
+\def\@arrayclassiv@ltx{%
+ \expandafter\@addtopreamble\expandafter{\expandafter$\@nextchar$}%
+}%
+\def\@classv@LaTeX{%
+ \@addtopreamble{\@startpbox{\@nextchar}\ignorespaces
+ \@sharp\@endpbox}%
+}%
+\def\@classv@ltx{%
+ \expandafter\@addtopreamble
+ \expandafter{%
+ \expandafter \@startpbox
+ \expandafter {\@nextchar}%
+ \pbox@hook\array@row@rst\cell@font\ignorespaces\@sharp\@endpbox
+ }%
+}%
+\def\@classx@array{%
+ \ifcase \@lastchclass
+ \@acolampacol \or
+ \@addamp \@acol \or
+ \@acolampacol \or
+ \or
+ \@acol \@firstampfalse \or
+ \@addamp
+ \fi
+}%
+\def\@classx@array@new{%
+ \ifcase \@lastchclass
+ \@acolampacol
+ \or
+ \@addamp \@acol
+ \or
+ \@acolampacol
+ \or
+ \or
+ \@firstampfalse\@acoll
+ \or
+ \@addamp
+ \fi
+}%
+\def\@xbitor@LaTeX #1{\@tempcntb \count#1
+ \ifnum \@tempcnta =\z@
+ \else
+ \divide\@tempcntb\@tempcnta
+ \ifodd\@tempcntb \@testtrue\fi
+ \fi}%
+\def\@xbitor@ltx#1{%
+ \@tempcntb\count#1%
+ \@ifnum{\@tempcnta=\z@}{}{%
+ \divide\@tempcntb\@tempcnta
+ \@ifodd\@tempcntb{\@testtrue}{}%
+ }%
+}%
+\@ifx{\@xbitor\@xbitor@LaTeX}{%
+ \class@info{Repairing broken LaTeX \string\@xbitor}%
+}{%
+ \class@info{Unrecognized LaTeX \string\@xbitor. Please update this document class! (Proceeding with fingers crossed.)}%
+}%
+\let\@xbitor\@xbitor@ltx
+\newcommand*\@gobble@opt@one[2][]{}%
+\def\@starttoc#1{%
+ \begingroup
+ \toc@pre
+ \makeatletter
+ \@input{\jobname.#1}%
+ \if@filesw
+ \expandafter\newwrite\csname tf@#1\endcsname
+ \immediate\openout \csname tf@#1\endcsname \jobname.#1\relax
+ \fi
+ \@nobreakfalse
+ \toc@post
+ \endgroup
+}%
+\def\toc@pre{}%
+\def\toc@post{}%
+\def\toc@@font{}%{\footnotesize\rmfamily}%
+\def\@dotsep{\z@}%{5.5pt}%
+\let\tocdim@section \leftmargini
+\let\tocdim@subsection \leftmarginii
+\let\tocdim@subsubsection \leftmarginiii
+\let\tocdim@paragraph \leftmarginiv
+\let\tocdim@appendix \leftmarginv
+\let\tocdim@pagenum \leftmarginvi
+\def\toc@pre@auto{%
+ \toc@@font
+ \@tempdima\z@
+ \toc@setindent\@tempdima{section}%
+ \toc@setindent\@tempdima{subsection}%
+ \toc@setindent\@tempdima{subsubsection}%
+ \toc@setindent\@tempdima{paragraph}%
+ \toc@letdimen{appendix}%
+ \toc@letdimen{pagenum}%
+}%
+\def\toc@post@auto{%
+ \if@filesw
+ \begingroup
+ \toc@writedimen{section}%
+ \toc@writedimen{subsection}%
+ \toc@writedimen{subsubsection}%
+ \toc@writedimen{paragraph}%
+ \toc@writedimen{appendix}%
+ \toc@writedimen{pagenum}%
+ \endgroup
+ \fi
+}%
+\def\toc@setindent#1#2{%
+ \csname tocdim@#2\endcsname\tocdim@min\relax
+ \@ifundefined{tocmax@#2}{\@namedef{tocmax@#2}{\z@}}{}%
+ \advance#1\@nameuse{tocmax@#2}\relax
+ \expandafter\edef\csname tocleft@#2\endcsname{\the#1}%
+}%
+\def\toc@letdimen#1{%
+ \csname tocdim@#1\endcsname\tocdim@min\relax
+ \@ifundefined{tocmax@#1}{\@namedef{tocmax@#1}{\z@}}{}%
+ \expandafter\let\csname tocleft@#1\expandafter\endcsname\csname tocmax@#1\endcsname
+}%
+\def\toc@writedimen#1{%
+ \immediate\write\@auxout{%
+ \gdef\expandafter\string\csname tocmax@#1\endcsname{%
+ \expandafter\the\csname tocdim@#1\endcsname
+ }%
+ }%
+}%
+\def\l@@sections#1#2#3#4{%
+ % #1 - superior section
+ % #2 - this section
+ % #3 - content, including possible \numberline
+ % #4 - page number
+ \begingroup
+ \everypar{}%
+ \set@tocdim@pagenum{#4}%
+ \global\@tempdima\csname tocdim@#2\endcsname
+ \leftskip\csname tocleft@#2\endcsname\relax
+ \dimen@\csname tocleft@#1\endcsname\relax
+ \parindent-\leftskip\advance\parindent\dimen@
+ \rightskip\tocleft@pagenum plus 1fil\relax
+ \skip@\parfillskip\parfillskip\z@
+ \let\numberline\numberline@@sections
+ \@nameuse{l@f@#2}%
+ \ignorespaces#3\unskip\nobreak\hskip\skip@
+ \hb@xt@\rightskip{\hfil\unhbox\@tempboxa}\hskip-\rightskip\hskip\z@skip
+ \par
+ \expandafter\aftergroup\csname tocdim@#2\endcsname\expandafter
+ \endgroup\the\@tempdima\relax
+}%
+\def\set@tocdim@pagenum#1{%
+ \setbox\@tempboxa\hbox{\ignorespaces#1}%
+ \@ifdim{\tocdim@pagenum<\wd\z@}{\global\tocdim@pagenum\wd\z@}{}%
+}%
+\def\numberline@@sections#1{%
+ \leavevmode\hb@xt@-\parindent{%
+ \hfil
+ \@if@empty{#1}{}{%
+ \setbox\z@\hbox{#1.\kern\@dotsep}%
+ \@ifdim{\@tempdima<\wd\z@}{\global\@tempdima\wd\z@}{}%
+ \unhbox\z@
+ }%
+ }%
+ \ignorespaces
+}%
+\def\tocdim@min{\z@}%
+\def\list#1#2{%
+ \ifnum \@listdepth >5\relax
+ \@toodeep
+ \else
+ \global\advance\@listdepth\@ne
+ \fi
+ \rightmargin\z@
+ \listparindent\z@
+ \itemindent\z@
+ \csname @list\romannumeral\the\@listdepth\endcsname
+ \def\@itemlabel{#1}%
+ \let\makelabel\@mklab
+ \@nmbrlistfalse
+ #2\relax
+ \@trivlist
+ \parskip\parsep
+ \set@listindent
+ \ignorespaces
+}%
+\def\set@listindent@parshape{%
+ \parindent\listparindent
+ \advance\@totalleftmargin\leftmargin
+ \advance\linewidth-\rightmargin
+ \advance\linewidth-\leftmargin
+ \parshape\@ne\@totalleftmargin\linewidth
+}%
+\def\set@listindent@{%
+ \parindent\listparindent
+ \advance\@totalleftmargin\leftmargin
+ \advance\rightskip\rightmargin
+ \advance\leftskip\@totalleftmargin
+}%
+\let\set@listindent\set@listindent@parshape
+\endinput
+%%
+%% End of file `ltxutil.sty'.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project/static/proceedings/sources/mk_booklet.tex Tue Jul 13 01:43:25 2010 +0530
@@ -0,0 +1,12 @@
+% File to make the booklet with the right margins
+
+\documentclass[letter]{article}
+\usepackage{pdfpages}
+\usepackage[letterpaper, top=.4in, bottom=.4in]{geometry}
+
+\begin{document}
+\pagestyle{empty}
+\includepdf[pages=-, noautoscale, scale=.9]{booklet_0.pdf}
+
+\end{document}
+
Binary file project/static/proceedings/sources/scipy2009confs.pdf has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project/templates/proceedings/show_paper_preview.html Tue Jul 13 01:43:25 2010 +0530
@@ -0,0 +1,9 @@
+{% extends "base.html" %}
+{% block title %}Preview of the paper{% endblock %}
+
+{% block content %}
+ <h1>Preview of the paper</h1>
+ <a href="{{ out_path }}/paper{{ paper_id }}.pdf">
+ <img src="{{ out_path }}/paper{{ paper_id }}.png"></img>
+ </a>
+{% endblock content %}