It has recently been conjectured that the closed topological string wave function computes a grand canonical partition function of BPS black hole states in 4 dimensions: $Z_{\BH}=\abs{\psi_{\Top}}^2$. We conjecture that the open topological string wave function also computes a grand canonical partition function, which sums over black holes bound to BPS excitations on D-branes wrapping cycles of the internal Calabi-Yau: $Z^\open_{\BPS}=\abs{\psi^{\open}_{\Top}}^2$. This conjecture is verified in the case of Type IIA on a local Calabi-Yau threefold involving a Riemann surface, where the degeneracies of BPS states can be computed in $q$-deformed 2-dimensional Yang-Mills theory.
2dym-open.tex
\documentclass[12pt,letterpaper]{article}

\usepackage{amsmath}
\usepackage[psamsfonts]{amssymb}
\usepackage{amsthm}
\usepackage{indentfirst}
\usepackage{xspace}
\usepackage{enumerate}
\usepackage{color}
\usepackage{graphicx}
\usepackage{pstricks}
%\usepackage{showkeys}
\usepackage{fullpage}

\numberwithin{equation}{section}


\newcommand{\nid}{\noindent}
\newcommand{\for}{\quad \text{for }}
\newcommand{\deltabar}{\overline{\delta}}

\newcommand{\HH}{{\mathcal H}}
\newcommand{\LL}{{\mathcal L}}
\newcommand{\OO}{{\mathcal O}}
\newcommand{\cR}{{\mathcal R}}
\newcommand{\cP}{{\mathcal P}}
\newcommand{\cS}{{\mathcal S}}
\newcommand{\cQ}{{\mathcal Q}}
\newcommand{\cA}{{\mathcal A}}
\newcommand{\cB}{{\mathcal B}}
\newcommand{\cD}{{\mathcal D}}
\newcommand{\R}{\ensuremath{\mathbb R}}
\newcommand{\C}{\ensuremath{\mathbb C}}
\newcommand{\PP}{\ensuremath{\mathbb P}}
\newcommand{\Z}{\ensuremath{\mathbb Z}}
\newcommand{\Q}{\ensuremath{\mathbb Q}}
\newcommand{\half}{\ensuremath{\frac{1}{2}}}
\newcommand{\qtr}{\ensuremath{\frac{1}{4}}}
\newcommand{\N}{{\mathcal N}}
\newcommand{\dirac}{\!\!\not\!\partial}
\newcommand{\Dirac}{\!\!\not\!\!D}
\newcommand{\Tr}{\mathrm{Tr}}
\newcommand{\Top}{{\mathrm{top}}}
\newcommand{\YM}{{\mathrm{YM}}}
\newcommand{\BPS}{{\mathrm{BPS}}}
\newcommand{\BH}{{\mathrm{BH}}}
\newcommand{\open}{{\mathrm{open}}}
\newcommand{\im}{{\mathrm{Im}}\ }
\newcommand{\re}{{\mathrm{Re}}\ }
\newcommand{\CS}{{\mathrm{CS}}}
\newcommand{\inst}{{\mathrm{inst}}}

\newcommand{\abs}[1]{\lvert#1\rvert}
\newcommand{\norm}[1]{\lVert#1\rVert}
\newcommand{\IP}[1]{\langle#1\rangle}
\newcommand{\ket}[1]{\lvert#1\rangle}
\newcommand{\bra}[1]{\langle#1\rvert}
\newcommand{\dwrt}[1]{\frac{\partial}{\partial#1}}
\newcommand{\eps}{\epsilon}
\newcommand{\ci}{\oint}

\newcommand{\schur}{s}
\newcommand{\ghost}{\mathrm g}
\newcommand{\antighost}{\mathrm a}

\newcommand{\kahler}{K\"ahler\xspace}
\newcommand{\bo}{{\mathbf 1}}

\newcommand{\la}{\label}
\newcommand{\ti}[1]{\textit{#1}}

\newcommand{\mfn}[1]{%
   \footnote{#1}
   \marginpar{\hfill {\sf\thefootnote}}%
}

\newcommand{\hR}{{\hat R}}
\newcommand{\hQ}{{\hat Q}}

\newcommand{\figtex}[3]{
\begin{figure}[t]
\centering
\psset{unit=#3}
\input{#1.tex}
\caption{#2}
\label{#1}
\end{figure}
}

\newcommand{\fig}[3]{
\begin{figure}[t]
\begin{center}
\includegraphics[#3]{#1}
\end{center}
\caption{#2}
\label{#1}
\end{figure}
}

\begin{document}

\bibliographystyle{utphys}

\renewcommand{\baselinestretch}{1.25}
\small\normalsize


\begin{titlepage}

\begin{center}
\hfill HUTP-05/A0016\\
\hfill UCB-PTH-05/09\\
\hfill hep-th/0504057

\vskip 1.5 cm
{\huge BPS Microstates and the Open}
\vskip 0.4 cm
{\huge Topological String Wave Function}
\vskip 1.3 cm
{\large Mina Aganagic$^1$, Andrew Neitzke$^2$ and Cumrun Vafa$^2$}\\
\vskip 0.4 cm
{$^1$ University of California, Berkeley, CA 94720, USA}
\vskip 0.4 cm
{$^2$ Jefferson Physical Laboratory, Harvard University, Cambridge, MA 02138, USA}
\end{center}


\vskip 0.5 cm
\begin{abstract}
It has recently been conjectured that the closed topological string wave function
computes a grand canonical partition function 
of BPS black hole states in 4 dimensions:  $Z_{\BH}=\abs{\psi_{\Top}}^2$.  We conjecture
that the open topological string wave function also computes a
grand canonical partition function, which sums over black holes bound to BPS 
excitations on D-branes
wrapping cycles of the internal Calabi-Yau:  $Z^\open_{\BPS}=\abs{\psi^{\open}_{\Top}}^2$. 
This conjecture is verified in the case of
Type IIA on a local Calabi-Yau threefold involving a Riemann surface, where
the degeneracies of BPS states can be computed in $q$-deformed 2-dimensional Yang-Mills theory.
\end{abstract}

\end{titlepage}


\setcounter{page}{1}
\pagestyle{plain}




%{\hfill \Large [Draft prepared \today]}

\tableofcontents

\section{Introduction}

The connection between topological strings and 4-dimensional BPS black holes
has been studied in recent years \cite{LopesCardoso:1998wt,LopesCardoso:1999cv,LopesCardoso:1999ur}, 
leading to a conjecture
\cite{Ooguri:2004zv} that identifies the mixed grand canonical partition function
of BPS black hole states with the squared norm of the topological string wave function: 
$Z_\BH=\abs{\psi_{\Top}}^2$.  This conjecture has been checked for certain
Calabi-Yau threefolds \cite{Vafa:2004qa,Aganagic:2004js,bh-atish}; see also the
recent related work \cite{Sen:2005pu,Dabholkar:2005by,Sen:2005ch}.
It is natural to ask how the conjecture generalizes to the case of
open topological strings.  Our primary aim in this paper is to advance
a conjecture about what the open topological string counts, and
to check it in the case of certain non-compact Calabi-Yau spaces.

We will mainly concentrate on the Type IIA superstring (and correspondingly the 
topological A model) on a non-compact Calabi-Yau threefold.  
In the closed string context, one defines the mixed black hole ensemble 
by fixing the number of D4 and D6-branes (magnetic charges) while summing over
all possible numbers of D2 and D0-branes bound to them (electric charges), weighed by chemical potentials;
this was the setup investigated in \cite{Vafa:2004qa,Aganagic:2004js}.  In our case
the Type IIA background will additionally include a finite number of
``background'' D4-branes, which wrap Lagrangian 3-cycles
of the Calabi-Yau and fill a 1+1 dimensional
subspace of Minkowski spacetime.  
In the presence of these background D4-branes one gets a gauge theory in 1+1 dimensions, 
containing new BPS states.  The role of the electric charges is played by
open D2-branes, wrapped on holomorphic discs ending on the Lagrangian 3-cycles,
while the magnetic charges are domain walls in the 1+1 dimensional theory.
We conjecture that the full topological string amplitude, including
contributions from open strings, is counting degeneracies of these BPS
states, bound to D6, D4, D2 and D0-branes:
\begin{equation}
Z_{\BPS}^\open=\abs{\psi_{\Top}^{\open}}^2.
\end{equation} 
Here $Z_\BPS^\open$ is the partition function of a mixed grand 
canonical ensemble; in this ensemble the D6 and D4-brane charges, as
well as the domain wall charge, are fixed
(and related to the real part of the topological string moduli), while
chemical potentials are turned on for the D2 and D0-branes 
(giving the imaginary parts of the moduli), including the open
D2-branes.

Our proposal is necessarily more tentative than the one given in \cite{Ooguri:2004zv}, because
one of the major planks supporting the conjecture there is missing here:  
the large-charge macroscopic/gravitational description of the BPS states we are counting has
not been studied, nor has the analogue of the attractor mechanism for these states, so we 
do not even have a classical derivation of the entropy.  Further investigations in this
direction would be extremely useful to check our conjecture.

Although we do not understand the macroscopic description of these BPS states, we can still compare
$\abs{\psi_\Top^\open}^2$ to a partition function computed from their microscopic description, 
in cases where such a description is available.
In this paper we use such a description
to check our proposal on a particular non-compact
Calabi-Yau space supporting a compact Riemann surface.  This
case was previously discussed in \cite{Vafa:2004qa,Aganagic:2004js} where the closed string conjecture was
verified.  We find that our conjecture also holds in this case.

The organization of this paper is as follows.  In Section \ref{sec-closed} we review the conjecture
in the closed string case and review its confirmation in the context of local
Riemann surfaces inside a Calabi-Yau.  In Section \ref{sec-closed-revisited} 
we explain the unexpected appearance of open topological
string amplitudes in \cite{Aganagic:2004js}, reinterpreting them in terms of purely
closed topological strings along the lines of the original conjecture
\cite{Ooguri:2004zv}.  
In Section \ref{sec-qm-open} we discuss the wave function nature of the open topological string.
In Section \ref{sec-open} 
we introduce additional branes in our physical string background and state 
our main conjecture.  In Section \ref{sec-2dym-open} we check the conjecture 
in the context of a local Calabi-Yau geometry near a Riemann surface with Lagrangian D-branes included.
Most of the computations are relegated to the appendices:  In Appendix \ref{app-group-theory} we fix some
group theory conventions and review some basic group theory facts.  In Appendix
\ref{app-qym} we review the $q$-deformed Yang-Mills theory in 2 dimensions and the computation
of its amplitudes by gluing, including insertion of some eigenvalue freezing
operators important for this paper.  In Appendix \ref{app-disc-wave-function} we express the
wave function of $q$-deformed 2d Yang-Mills on the disc in terms of theta functions.  
Finally, Appendix \ref{app-factorization} discusses
many issues related to the large $N$ limit of our computations, and 
the factorization of the BPS partition function at large $N$ in terms of
topological and anti-topological contributions.  In particular, we give a physical
explanation of the factorization of the $q$-deformed Yang-Mills amplitudes
in the large $N$ limit.





\section{The closed string case} \label{sec-closed}

In \cite{Ooguri:2004zv} a duality was conjectured which relates counting of
microstates of supersymmetric black holes which arise in compactification of type
II string theory on a Calabi-Yau threefold $X$ and closed topological string
theory on $X$.  In this section we review this conjecture and one case in which
it has been explicitly checked.

Consider Type IIA on $X \times \R^{3,1}$.  
One can obtain charged BPS black holes 
in $\R^{3,1}$ by wrapping D6, D4, D2 and D0-branes over holomorphic cycles in $X$.
The charges of the black hole are determined by the choice of holomorphic cycles; the
intersection pairing in $X$ gives rise to the electric-magnetic pairing in $\R^{3,1}$,
and we refer to D6 and D4-brane charges as ``magnetic'' while D2 and D0-brane
charges are ``electric.''  Then one can define a mixed ensemble of BPS black hole states by
fixing the D6 and D4-brane charges $Q_6$, $Q_4$, and summing over D2 and D0-brane
charges with fixed chemical potentials $\varphi_2$, $\varphi_0$.  One can write a partition function 
for this ensemble,
\begin{equation} \label{bh-partition-function}
Z_\BH(Q_6, Q_4, \varphi_2, \varphi_0) = \sum_{Q_2, Q_0} \Omega_{Q_6, Q_4, Q_2, Q_0} e^{-Q_2 \varphi_2 - Q_0 \varphi_0}.
\end{equation} 
Here $\Omega_{Q_6, Q_4, Q_2, Q_0}$ is the contribution from BPS bound states
with fixed D-brane charge.  

The conjecture of \cite{Ooguri:2004zv} is that
\begin{equation} \label{osv-conjecture}
Z_\BH(Q_6, Q_4, \varphi_2, \varphi_0) = \abs{\psi_\Top(g_\Top, t)}^2,
\end{equation}
where $\psi_\Top(g_\Top, t)$ denotes the A model topological string partition function, evaluated
at the topological string coupling\footnote{$Q_4$ is naturally a class in $H_4(X,\Z)$, which we are relating
to $t \in H^2(X,\C)$, and $Q_6$ is naturally a class in $H_6(X,\Z)$, which we
are relating to $H^0(X,\C) = \C$.}
\begin{equation} \label{osv-coupling}
g_\Top = \frac{4 \pi i}{i \frac{\varphi_0}{\pi} + Q_6},
\end{equation}
and \kahler parameter
\begin{equation} \label{osv-kahler}
t = \half g_\Top \left(i \frac{\varphi_2}{\pi} + Q_4 \right).
\end{equation}
The real parts of the parameters \eqref{osv-coupling} and \eqref{osv-kahler} are dictated by
the ``attractor mechanism'' of $\N=2, d=4$ supergravity \cite{Ferrara:1995ih,Strominger:1996kf},
which relates the moduli of $X$ near a black hole horizon to the black hole charges.

One can (at least formally) invert the relation \eqref{osv-conjecture} to recover the microcanonical
degeneracies $\Omega$ from $\abs{\psi_\Top}^2$, via the integral formula
\begin{equation} \label{wigner-transform}
\Omega_{Q_6, Q_4, Q_2, Q_0} = \int d\varphi_2\, d\varphi_0\, e^{Q_0 \varphi_0 + Q_2 \varphi_2} \abs{\psi_\Top}^2.
\end{equation} 
This formula has a natural interpretation from the point of view of the wave function interpretation
of $\psi_\Top$ developed in \cite{Witten:1993ed,Dijkgraaf:2002ac}
as an interpretation of the holomorphic anomaly
\cite{Bershadsky:1993ta,Bershadsky:1994cx}. 
Namely, \eqref{wigner-transform}
expresses $\Omega$ as the ``Wigner function'' (phase-space density) associated to 
$\psi_\Top$.  The background-independent generalization of this transform and its relation
to the counting of black hole states has been further elucidated in \cite{Verlinde:2004ck}.

The formula \eqref{wigner-transform} also illustrates a crucial point about the conjecture:  in order to
use it to compute $\Omega$, one would need to know the full $\abs{\psi_\Top}^2$, not only 
its asymptotic expansion for $g_\Top \ll 1$.  Put another way, knowing the BPS degeneracies $\Omega$ is in
some sense equivalent to having a nonperturbative completion of $\abs{\psi_\Top}^2$.


\subsection*{A solvable example}

In this section we review the work of \cite{Vafa:2004qa,Aganagic:2004js}
which argued that the conjecture \eqref{osv-conjecture} holds
in the case where $X$ is a particular non-compact Calabi-Yau threefold, namely the total space of a
holomorphic vector bundle over a compact Riemann surface $\Sigma$
of genus $g$,
\begin{equation}
X = \LL_{-p} \oplus \LL_{p+2g-2} \to \Sigma,
\end{equation}
for some $p>0$.\footnote{By $\LL_k$ we mean a holomorphic line bundle of degree
$k$ over $\Sigma$.}

The idea is that for this $X$ one can use 2-dimensional Yang-Mills theory to compute
$Z_\BH$, as follows.  Suppose we wrap $N$ D4-branes on the holomorphic 4-cycle
\begin{equation}
\cD = \LL_{-p} \to \Sigma.
\end{equation}
Then the theory on the D4-branes (in the Calabi-Yau directions) is the
$\N=4$ supersymmetric Yang-Mills theory, or more precisely a
topologically twisted version of that theory, as explained in \cite{Bershadsky:1996qy}.  
The path integral in this theory includes configurations in
which D0-branes, and D2-branes wrapping $\Sigma$, 
are bound to the D4-branes.  
Hence the partition function of the 4-dimensional twisted supersymmetric 
gauge theory computes
a sum over the mixed ensemble of BPS states which we considered above.  The 
D4 and D6-brane charges are 
\begin{align}
Q_4 &= N [\cD], \\
Q_6 &= 0.
\end{align}
The chemical potentials for the brane charges are roughly given by the masses of the
branes (for the D2-branes we turn on a Ramond-Ramond field $\theta$):
\begin{align}
\varphi_0 &= 4 \pi^2 / g_s, \\
\varphi_2 &= 2 \pi p \theta / g_s.
\end{align}
Since the gauge theory sums over all brane charges we can now 
write\footnote{There are some subtleties because of the non-compactness of $X$, 
as noted in \cite{Aganagic:2004js}:  $Z_\YM$ turns out to give
a sum over finitely many sectors, each with a $g_s$-dependent prefactor.}
\begin{equation}
Z_\YM = Z_\BH.
\end{equation}
It was argued in \cite{Vafa:2004qa} that, for the purpose of computing $Z_\YM$,
we can restrict to field configurations in the $\N=4$ theory which are invariant 
under the $U(1)$ action on the fibers of $\LL_{-p}$.  One then
obtains $Z_\YM$ as the partition function of a $q$-deformed Yang-Mills theory on $\Sigma$ (see Appendix
\ref{app-qym}), where $\Sigma$ has area $p$ and the parameters are fixed by
\begin{equation} \label{2dym-params}
\theta_{\YM} = \theta, \quad g^2_{\YM} = g_s, \quad q = e^{-g_s}.
\end{equation}
The $q$-deformed Yang-Mills theory is a relative of the ordinary Yang-Mills theory
in two dimensions, and shares with that theory the property of being exactly solvable; the
topological string on $X$ is also exactly solvable to all orders in perturbation theory (using
recent results of \cite{Bryan:2004iq} in the case $g > 1$). 
Hence we can use $X$ as a testing ground for \eqref{osv-conjecture}.
More precisely, since we do not have a good
understanding of the nonperturbative topological string, what we can do is
look at the asymptotic expansion of $\abs{\psi_\Top}^2$ in the limit $g_s \ll 1$, with $t$ fixed.
On the physical side this corresponds to taking $\varphi_0$, $\varphi_2$, and $N$ to infinity with
fixed ratios (this is a 't Hooft limit in the Yang-Mills theory.)

In this limit one finds that $Z_\YM$ factorizes into a sum of ``conformal blocks,''
each given by the topological string on $X$, with some D-branes inserted as we will
explain below:
\begin{multline} \label{2dym-factorization}
Z_\YM(\varphi_0, \varphi_2, N) = \\
\sum_{R'_1, \dots, R'_{\abs{2g-2}}}  \sum_{l \in \Z} 
\psi_\Top^{R'_1, \dots, R'_{\abs{2g-2}}} (g_\Top, t + l p g_\Top) \overline{\psi_\Top^{R'_1, \dots, R'_{\abs{2g-2}}}(g_\Top, t - l p g_\Top)} + \OO(e^{-N}).
\end{multline}
Here $t$ and $g_\Top$ are as dictated by \eqref{osv-coupling} and \eqref{osv-kahler},
namely,
\begin{align}
g_\Top &= 4 \pi^2 / \varphi_0 = g_s, \label{osv-coupling-solvable} \\
t & = \half g_\Top \left(\#(\Sigma \cap \cD) N + i \varphi_2 / \pi \right) = \half N (p+2g-2) g_s + i p \theta. \label{osv-kahler-solvable}
\end{align}
The index $l$ was interpreted in \cite{Vafa:2004qa} as measuring the Ramond-Ramond
flux through $\Sigma$.
The labels $R'_i$ are subtler; they appear only when $g \neq 1$, in which case they were
interpreted in \cite{Aganagic:2004js} as running over boundary conditions on $\abs{2g-2}$ infinite
stacks of D-branes (which we christen ``ghost'' D-branes) 
in the topological string.  Each stack lies on a Lagrangian submanifold of $X$, intersecting $\cD$
in an $S^1$ in the fiber of $\LL_{p+2g-2}$ over a point.
The boundary conditions on each stack are specified by a choice
of a Young diagram $R'$.\footnote{All primed quantities which appear in this paper
are associated to these ghost D-branes.}

The form of \eqref{2dym-factorization} looks different from that of \eqref{osv-conjecture}.  Nevertheless, as we will explain in the next section, the sum over Young diagrams $R'_i$
is indeed consistent with \eqref{osv-conjecture}, when we take 
into account extra closed string moduli at infinity.


\section{Revisiting the closed string theory} \label{sec-closed-revisited}

In this section we revisit the relation between 2-d Yang-Mills theory and 
the closed topological string, with the aim of giving a better 
interpretation to the sum over chiral blocks and the appearance of
``ghost'' D-branes.

As we reviewed in Section \ref{sec-closed}, the partition function of the twisted $U(N)$ Yang-Mills theory on
$\cD = {\cal L}_{-p} \rightarrow \Sigma$ factorizes at large $N$ as a sum of blocks, each of which can be 
interpreted as the square of a topological string amplitude involving $2g-2$ infinite stacks of ghost branes.  Introducing 
a $U(\infty)$-valued holonomy $U'_i = e^{u'_i}$ on each stack of ghost branes, we can rewrite \eqref{2dym-factorization}
as
\begin{equation}\label{2dym-factorization-integralform}
Z_\YM = \sum_{l \in \Z} \int d_H u'_1 \cdots d_H u'_{2g-2} \; \psi^\ghost_\Top(g_\Top, u', t + l p g_\Top) \overline{\psi^\ghost_\Top(g_\Top, u', t - l p g_\Top)},
\end{equation}
where
\begin{equation}\label{ztop-ghost-holonomies}
\psi^\ghost_\Top(g_\Top, u', t) = 
\sum_{R'_1,\ldots R'_{2g-2}} \psi_\Top^{R'_1,\ldots, R'_{2g-2}}(g_\Top, t)
e^{-\half N g_s \sum_{i=1}^{2g-2} \abs{R'_i}} \prod_{i=1}^{2g-2} \schur_{R'_i}(e^{u'_i}).
\end{equation}
For $g = 0$ the formula is similar, except that the role of ghost branes and ghost antibranes
are reversed in the antitopological amplitude:
\begin{equation}\label{2dym-factorization-integralform-g0}
Z_\YM = \sum_{l \in \Z} \int d_H u'_1 d_H u'_2 \; \psi^\ghost_\Top(g_\Top, u', t + l p g_\Top) \overline{\psi^\antighost_\Top(g_\Top, u', t - l p g_\Top)},
\end{equation}
where
\begin{align}\label{ztop-ghost-holonomies-g0}
\psi^\ghost_\Top(g_\Top, u', t) &= \sum_{R'_1, R'_2} \psi_\Top^{R'_1, R'_2}(g_\Top, t) e^{-\half N g_s (\abs{R'_1} + \abs{R'_2})} \schur_{R'_1} (e^{u'_1}) \schur_{R'_2}(e^{u'_2}), \\
\psi^\antighost_\Top(g_\Top, u', t) &= \sum_{R'_1, R'_2} (-)^{\abs{R'_1}+\abs{R'_2}} \psi_\Top^{R'_1, R'_2}(g_\Top, t) e^{-\half N g_s (\abs{R'_1} + \abs{R'_2})} \schur_{R'^t_1} (e^{u'_1}) \schur_{R'^t_2}(e^{u'_2}).
\end{align}
The change from branes to antibranes is reflected in the signs $(-)^{\abs{R'}}$ and the switch $R' \to R'^t$ between
$\psi^\ghost$ and $\psi^\antighost$, as in \cite{Aganagic:2003db}.

Now note that \eqref{2dym-factorization-integralform} and \eqref{2dym-factorization-integralform-g0} look like the integral 
\eqref{wigner-transform}, that computes the microcanonical degeneracies by integrating over
the imaginary part of each \kahler modulus while the real part is fixed by the corresponding magnetic
charge.  Indeed, the factor $e^{-\half N g_s \sum_{i=1}^{2g-2} \abs{R'_i}}$ could be 
absorbed in $U'$, at the expense of making it non-unitary:
this just amounts to giving $u'$ a real part.
This is reminiscent of the ``attractor'' formula \eqref{osv-kahler}, which says the real part of the \kahler modulus
is related to the charge.  So indeed, \eqref{2dym-factorization-integralform} could be consistent with 
the conjecture \eqref{osv-conjecture}, if we somehow regard $u'$ as an extra closed string modulus;
then there would be electric and magnetic charges corresponding to it, and \eqref{2dym-factorization-integralform}
says that $Z_\YM$ is the partition function of an ensemble in which we have fixed these charges.  
As we will now explain, this interpretation of $u'$ is indeed plausible.



\subsection*{Open vs. closed}

We explained above that the nonperturbative completion of the closed
topological string appears to involve Lagrangian D-branes on the
Calabi-Yau manifold. The appearance of open string amplitudes in
this context is surprising, since in the physical string this 
would have half as much supersymmetry as we have available.  
As we will now argue, the correct interpretation involves not open but closed strings.

Namely, as was shown in \cite{top-integ}, in the
topological string, inserting non-compact D-branes is equivalent
to turning on certain non-normalizable deformations of the
Calabi-Yau.  This is an open-closed duality of the
topological string, generalizing the well-known duality for
D-branes on compact cycles.  This means that, at the level of the
topological string, we can interpret the modulus $U'$ in
\eqref{2dym-factorization-integralform} as either corresponding to an open string
configuration or to a boundary condition at infinity
of the closed topological string.  In the physical string theory,
however, we do not have this freedom; since there are no
Ramond-Ramond fluxes turned on, the only interpretation available
is the closed string one. 

The torus symmetries of the Calabi-Yau manifold can be used to constrain the
types of deformation that we consider.  Namely, the Lagrangian D-branes to which
\eqref{ztop-ghost-holonomies} corresponds respect the torus symmetries,
and the gravitational backreaction they create does so as well.
Such torus invariant deformations, normalizable and not, were studied in \cite{top-integ},
so we can borrow the results of that paper.
The topological string theory in \cite{top-integ} was described as
the theory of a chiral boson on a Riemann surface,
and the Lagrangian D-branes were coherent states of this chiral boson. 
(Note here that we are using the mirror B-model language.
The global action of mirror symmetry on $X$ is not relevant for us;
this is merely a convenient language in which to describe the behavior near an asymptotic
infinity.)  The non-normalizable deformations of the
Calabi-Yau near an asymptotic infinity\footnote{In the cases studied in \cite{top-integ} there is a clear notion
of what ``an asymptotic infinity'' means:  it means a toric 2-cycle which extends to infinity.  In the cases we are considering
here the situation is not as rigorously understood, but we will make some comments below.} 
can be parameterized by the coherent states of the chiral boson:
\begin{equation}
\ket{\tau} = \exp\left(\sum_{n>0} \tau_n {\alpha_{-n}}\right) \ket{0},
\end{equation} 
where $\alpha_n$ are the chiral boson creation and
annihilation operators. 

The parameters $\tau$ are related to the D-brane holonomies by
\begin{equation}\label{iden}
\tau_n = g_s \Tr U'^n,
\end{equation}
where $\Tr$ denotes the trace in the fundamental representation, The
factor of $g_s$ is needed to convert an open string amplitude in terms
of $U$ to a closed string amplitude in terms of $t$; it appears
because a trace of $U$ in the fundamental representation couples to a
hole in the string worldsheet, and the hole is in turn weighted by
$g_s$ in the string perturbation expansion.
In this sense the open string modulus $U$ can be traded for the infinite collection of closed string moduli $\tau_n$.  

Actually, it is more convenient to reparameterize slightly by taking a logarithm, writing
$\tau_n = e^{-t_n}$.  The point is that the A model partition function turns out to be an expansion in
$e^{-t_n}$, so the moduli $t_n$ appear on the same footing as the \kahler volumes $t$ of compact cycles.
Indeed, we can think of them as representing \kahler volumes of classes in $H_2(X, \Z)$ (with
some appropriate notion of what $H_2(X,\Z)$ means for this non-compact $X$.)
What can we say about these classes?
In the cases considered in \cite{top-integ}, for each asymptotic infinity there is a holomorphic disc $C$ which ``ends'' on it,
and $t_n$ represents a class which contains $n[C]$ as well as some extra contributions at infinity.
In the open string language, the disc $C$ can be thought of as ending on the Lagrangian
branes which represent the deformations at this asymptotic infinity.



\subsection*{The attractor mechanism and ghost D-branes}

Now we come to the interpretation of the shift $U' \to U' e^{-\half N g_s}$, or equivalently
\begin{equation} \label{t-shift}
\re t_n = \half n N g_s.
\end{equation}
Such shifts have frequently appeared in the topological string in the presence of D-branes.
Here we can understand the shift as a reflection of the attractor mechanism on the
closed string moduli.  
Namely, in the case we are considering here, $C$ is a disc in the fiber of $\LL_{p+2g-2}$, which 
intersects $\cD$ at one point, as shown in Figure \ref{fig-fiber-disc-outline-fonts-small}.
\fig{fig-fiber-disc-outline-fonts-small}{The disc $C$ in the fiber of $\LL_{p+2g-2}$ over a point $P$ on the Riemann surface $\Sigma$;
$C$ meets $\cD$ only at $P$, and the boundary of $C$ lies on the Lagrangian submanifold representing
this asymptotic infinity.}{height=2.4in}
Then $\half n N g_s$ is exactly the expected attractor value for the \kahler 
modulus $t_n$, as follows from \eqref{osv-kahler}, the fact that the D4-brane 
charge is $Q_4 = N[\cD]$, and $\#(C \cap \cD) = 1$.  (Whatever the extra contributions
at infinity to the class represented by $t_n$ are, they have zero intersection number
with $\cD$, so they do not affect the attractor modulus.)



\subsection*{Why $2g-2$ asymptotic infinities}

The discussion of the last few sections raises
a natural question:  why are there precisely $\abs{2g-2}$
asymptotic infinities on $X$ where we can have deformations?

In general we should have expected that in a non-compact Calabi-Yau
we should include some closed string moduli coming from infinity.
However, in problems with symmetries, it is natural to conjecture that
the only relevant extra moduli from infinity are invariant under
the corresponding symmetries.  We will assume this here, and look
for symmetries in our problem which simplify the task of specifying
the closed string moduli coming from infinity.

A priori, one might have expected boundary moduli 
associated to the $\C^2$ fiber over each point of the Riemann surface.  Here
we have in addition D4-branes wrapping a line bundle
over the Riemann surface.  We claim that this implies that 
effectively we should view that direction as ``compact,'' 
or more precisely, we should view it as a degenerate limit of
a compact 4-cycle.  
After this reduction, we would expect to find boundary
moduli corresponding to a $\C$ fiber over each
point on the Riemann surface.

However, there are symmetries of the problem coming from meromorphic
vector fields on the Riemann surface.  Hence the variation of the data
at infinity can be localized at poles or zeroes of such a vector field
(deleting these points would give a well defined free action).
A generic holomorphic vector field on a Riemann surface of genus $g>1$ is nonvanishing
and well defined away from $2g-2$ poles,
which we identify with places where the asymptotic boundary condition
at infinity can be localized.  The local picture is as shown in Figure \ref{fig-asymptotic-infinity-outline-fonts-small}.
\fig{fig-asymptotic-infinity-outline-fonts-small}{A rough toric representation of the behavior of $X$ in a neighborhood of a singularity of the vector field $v$ described in the text.  Two of the three
$U(1)$ actions making up the toric fiber are the rotations of the line bundles ${\mathcal L}_{-p} \oplus {\mathcal L}_{p+2g-2}$ and the third is the action of $v$.  The toric base of the divisor $\cD$ on which the D4-branes are wrapped is indicated, as is the base of the Lagrangian submanifold representing the asymptotic infinity.  The disc $C$ ends on this Lagrangian submanifold, meeting $\cD$ at the single
point $P$.}{height=2.5in}

So the closed string moduli at these $2g-2$ asymptotic infinities may be identified with
the ``ghost D-brane'' contributions, as discussed above.
In the case of genus 1 there are no fixed points, which is consistent
with the fact that no ghost D-branes were needed in this case.  For genus 0 we have
a holomorphic vector field with 2 zeroes, which again suggests that we can localize
the contribution from infinity at 2 points.

This is a heuristic argument, but we feel that it captures the correct physics.



\section{The quantum mechanics of open strings} \label{sec-qm-open}

In Section \ref{sec-closed} we reviewed the conjecture of \cite{Ooguri:2004zv}
and its relation to the wave function nature of the closed topological string.
In this section we recall the parallel statement for the open topological string.  
The fact that the open topological string 
partition function including non-compact branes is a wave function 
was first noticed in \cite{top-integ}, and was crucial in that paper for the 
solution of the B model.  In this section we will give two ways of understanding this
wave function property:  a direct route via canonical quantization of Chern-Simons
theory, and a more indirect one via the holomorphic anomaly (background dependence)
for open strings.


\subsection*{Canonical quantization in Chern-Simons}

Recall that the topological A model string theory on 
$M$ D-branes wrapped on a Lagrangian cycle $L$ 
is the $U(M)$ Chern-Simons theory deformed
by worldsheet instanton corrections:
\begin{equation}
S = S_\CS +S_\inst,
\end{equation} 
where 
\begin{equation}
S_\CS = \frac{4\pi i}{k} \int_L \Tr \left(A \wedge dA + \frac{2}{3} A\wedge A\wedge A\right),
\end{equation} 
and $S_\inst$ is the contribution from worldsheet instantons with boundaries on $L$.
If $L$ is non-compact, then we should consider it as having a boundary $\partial L$ at infinity; the path integral on $L$ then gives a wave function in the Hilbert space of
Chern-Simons on the boundary.  The case of interest for the rest of this paper 
is $L \simeq \R^2 \times S^1$, which has
$\partial L = T^2$; from now on we specialize to that case, although the discussion
could be made more general. 

To find which state the topological open string theory picks, we need
to recall some facts about canonical quantization of the $U(M)$ Chern-Simons 
theory on $T^2\times \R$, viewing $\R$ as the ``time'' direction. 
We will be brief here; see e.g. \cite{Elitzur:1989nr} for more details. 
Integrating over the time component of the gauge field
localizes the path integral to flat connections on $T^2$:
\begin{equation} \label{cs-action-reduced}
\int \cD A' \;\delta(F') \;\exp \left(\frac{2\pi i}{k}\int_{T^2\times R} \Tr A' \,\partial_t \,A' dt\right).
\end{equation} 
Above $A'$ is a connection on $T^2$, which we can write (up to conjugation) as
\begin{equation}
A' = u\,d\theta_u + v\,d\theta_v,
\end{equation} 
where $u$ and $v$ are the components of $A'$ along two linearly independent
cycles of $T^2$, with intersection number $1$. 
From the action \eqref{cs-action-reduced} we see that $u$ and $v$ are
conjugate variables:  upon quantization we thus expect
\begin{equation}
[u,v] = i g_\Top,
\end{equation} 
where $g_\Top = \frac{2 \pi}{k+M}$.  The familiar shift of $k$ by $M$ 
can be seen by carefully integrating over massive modes \cite{Elitzur:1989nr}.

Since $u$ and $v$ are conjugate variables, in computing the Chern-Simons path integral
on a manifold with $T^2$ boundary, we should fix either $u$ or $v$ on the boundary, but not both, and the wave function will depend on the variable we have chosen to fix.  More 
generally, we could consider a mixed boundary condition where we fix
$v+{\overline \tau} u$ where ${\overline \tau}$ is some parameter (the motivation
for this notation will become clear later).

Note that in the present context $L \simeq \R^2 \times S^1$ is a solid torus,
so there is a unique $1$-cycle $\eta \in H_1(T^2,\Z)$ which collapses in the interior of $L$.
There is thus a canonical choice of polarization for the wave function; namely, one can
express it in terms of the holonomy around $\eta$,
which we call $v$.  In the next subsection we will relate this choice to the background
dependence (``holomorphic anomaly'') of the open topological string.
We could have tried to choose the ``cycle that survives'' in the interior of $L$ (corresponding
to the holonomy $u$), but this is ambiguous up to the shift $u \mapsto u + nv$.   This
ambiguity will be related to the framing ambiguity of the open topological string.

It can be shown \cite{Elitzur:1989nr, Aganagic:2002wv} that
the Chern-Simons path integral on the solid torus, without any
insertions and with $u$ fixed on the boundary, is given simply by
\begin{equation}
\psi_\Top^\open(u) = \langle L | u \rangle = 1.
\end{equation} 
In the present context, the Chern-Simons action is deformed by 
worldsheet instantons wrapping holomorphic curves with boundaries on $L$
\cite{Witten:1992fb}.  Their contribution to $S$ is
given by the free energy of the gas of topological open strings: 
\begin{equation}
S_\inst(u) = i F^{\open}_{\Top}(u).
\end{equation}
We now want to compute the path integral 
on $L$ with the operator insertion
\begin{equation}
\exp S_\inst(u). 
\end{equation} 
Since we are we are working in the basis
of eigenstates of $u$, the insertion just acts by multiplication:
\begin{equation}
\psi_\Top^\open(u) = 
\langle L |e^{S_\inst(u)}|u\rangle =e^{iF^{\open}_{\Top}(u)} \IP{L|u} = e^{iF^{\open}_{\Top}(u)}.
\end{equation} 
So we have identified the topological string partition function $e^{iF^{\open}_{\Top}(u)}$
with a wave function.

Although $v$ is the canonical choice,
we will sometimes find it natural to write the wave function in terms of one of the holonomies
$u+nv$ instead.  The relation between different choices of variable in which to write the wave function is
given by a Fourier transform:  for example, to transform from $u$ to $v$, one has
\begin{equation} \label{fourier}
\psi_\Top^\open(v) = \int d_H u \, e^{\frac{i}{g_{\Top}} \Tr uv} \, \psi_\Top^\open(u),
\end{equation}
where ${d_H}u$ is the measure induced from the Haar measure on $U(M)$.

The freedom to choose a variable is crucial because there are some cases in which the Lagrangian cycle 
$L$ can make a ``flop 
transition.''  From the perspective of the boundary $\partial L = T^2$ nothing special happens at the 
transition, but in the interior of $L$ the topology changes and in particular the cycle that collapses 
in the interior is different after the transition.  An example of this phenomenon can be seen when 
$X$ is a toric Calabi-Yau manifold.  Moreover, in that case one can use the
mirror B model to see that worldsheet instanton corrections eliminate the sharp
transition:  the different phases are smoothly connected.  
Thus, in the B model language there is a continuous change of variables
which takes us from one choice of holonomy to another.  This is
related to the background dependence of open topological string amplitudes,
to which we now turn.


\subsection*{Background dependence for the open topological string}

In this section we take a brief detour to explain the background dependence
of the open string topological string.\footnote{This was the original motivation for the present paper!}
It was conjectured in \cite{top-integ} that the open topological
string partition function depends on a choice of ``background'' moduli, or
equivalently, depends on the antiholomorphic coordinates of the moduli as well
as the holomorphic ones.
This conjecture was advanced in order to explain the fact that the open
topological string behaves like a wave function, by analogy to what is
known for the closed string case \cite{Witten:1993ed}.  
In the case considered
in \cite{top-integ}, the geometry of the Calabi-Yau is given (in the mirror B model)
by a hypersurface in $\C^4$,
\begin{equation}
F(u,v)-xy=0,
\end{equation} 
and the mirror of the Lagrangian brane is a brane on a holomorphic curve, 
specified by the condition $x=0$ together with fixed choices of $u$, $v$ 
satisfying $F(u,v)=0$.  As noted in \cite{Aganagic:2002wv,top-integ} the geometry with this
D-brane included can be viewed as a special (degenerate) limit of a closed string geometry,
with the D-brane serving as a source for the holomorphic 3-form; this source
changes the usual equation $d \Omega = 0$ to
\begin{equation}
d\Omega = g_\Top \delta (D),
\end{equation} 
where $\delta (D)$ denotes a delta function at the locus of the D-brane. 
We have already used this correspondence in Section \ref{sec-closed-revisited},
where we discussed how the ``ghost branes'' can be viewed as closed
string moduli.  Similarly, we can use it to interpret the holomorphic
anomaly of closed strings as inducing a holomorphic anomaly (or equivalently
a background dependence) for the open string partition function.   Here we
view the modulus of the open string, given by the choice of 
$(u,v)$ on the surface $F(u,v)=0$, as a closed string modulus.  In fact, borrowing the
closed string technology for background dependence developed in \cite{Witten:1993ed,Dijkgraaf:2002ac}
we immediately deduce that for a given background $(u_0,v_0)$ the natural
variable for the open string wave function is
\begin{equation} \label{hol-anomaly-good-var}
v+{\overline \tau} u,
\end{equation} 
where
\begin{equation}
{ \tau}={ {-\frac{\partial v}{\partial u}}} \Big\vert_{(u_0, v_0)}.
\end{equation}
Here we are considering $v$ as a function of $u$ through the implicit relation $F(u,v)=0$, so
$\tau$ is the slope of the tangent plane to the
Riemann surface at $(u_0,v_0)$.  Note that $\tau =\partial^2 F / \partial u^2$.  

The form \eqref{hol-anomaly-good-var} 
of the natural variable can be connected to our earlier discussion of the wave function
nature of the Chern-Simons theory embedded in the open string; there too
we claimed that there is a natural variable for the wave function, namely
the holonomy around the cycle of $T^2$ which shrinks in the interior of the
solid torus.  In that classical picture (which neglects the effect of worldsheet instantons)
the holonomy around the vanishing cycle is simply $v$; and choosing the background point 
near an asymptotic infinity of the quantum moduli space, where the classical picture
becomes exact, one indeed gets $\tau \to 0$, so $v + \overline{\tau} u \to v$.
More invariantly, the value of $\tau$ near an asymptotic infinity of the B model Riemann surface 
approaches the slope of the corresponding line in the A model toric diagram, and this slope indeed determines
the collapsing cycle of the toric fiber.  

Note that in order to go off the real locus $\tau = \overline{\tau}$ 
we need to recall that the Chern-Simons holonomies
are complexified in the context of topological strings (to include the
moduli which move the brane); in the geometric motivation
we gave before we had essentially turned those off.  It would be interesting
to understand this relation off the real locus.



\section{The open string conjecture} \label{sec-open}

As we reviewed in Section \ref{sec-closed}, the closed topological string wave function
on a Calabi-Yau space $X$ is believed
to compute the large-charge asymptotics of an index which counts
BPS states in four dimensions, and this index has an
interpretation as the Wigner function of $\psi_\Top$.  On the other hand, we just
saw in Section \ref{sec-qm-open} that the open topological string partition function $\psi_\Top^\open$
with non-compact D-branes is also naturally considered as a wave function.  So we could construct
a Wigner function from this wave function, and then a 
natural question is whether this Wigner function also has an interpretation as counting
BPS states.  We will argue that it does.

We embed the open topological string
in the superstring in a familiar way \cite{Ooguri:1999bv}.  
Namely, consider D4-branes wrapping a special Lagrangian
cycle $L \subset X$.  Then there are open D2-branes
ending on these D4-branes.  These
give rise to BPS particles in the 2-dimensional supersymmetric
gauge theory on the non-compact directions of the D4-branes; we will interpret 
the charge $\cQ_e$ as counting these BPS particles.  The gauge theory in question
also supports BPS domain walls; we will interpret $\cQ_m$ as measuring the domain wall 
charge.

Altogether then, we will conjecture below that the
open topological string, on a Calabi-Yau space $X$ with Lagrangian branes
included, computes the large-charge asymptotics of an index which counts open 
D2-branes, and their domain wall counterparts, bound to any number of closed
D0, D2, D4 and D6-branes.  Furthermore, we will describe one context in which
some aspects of this proposal can be checked.



\subsection*{Calabi-Yau spaces with branes and BPS particles}

Consider a Calabi-Yau manifold $X$ containing a special Lagrangian
3-cycle $L$. We consider the Type IIA superstring on $X \times
\R^{3,1}$, with $M$ D4-branes on $L \times \R^{1,1}$, which we will
call the ``background branes.''  For simplicity, we assume $L$ has the
topology
\begin{equation}
L \simeq \R^2 \times S^1.
\end{equation}

The dimensionally reduced theory on the $\R^{1,1}$ part of the background 
branes is a $(2,2)$ supersymmetric gauge theory.
Its field content can be understood as follows 
\cite{Ooguri:1999bv}.  Since $b_1(L)=1$ it follows \cite{MR1664890}
that $L$ has one real modulus $r$; this modulus pairs up with the Wilson line of the 
worldvolume gauge field $\oint A$ to give a complex field 
\begin{equation}
u=r + i \oint A.
\end{equation}  
One also gets a gauge field in $\R^{1,1}$ by
integrating the world-volume two-form $B$ (which is the magnetic dual
to the gauge field $A$ on the D4-brane, defined by $d\!*\!A = dB$) over the
$S^1$ of $L$.  Since there are $M$ D4-branes, the theory has (at least) a magnetic $U(1)^M$
gauge symmetry.  The field $u$ should be viewed as the lowest
component of a twisted chiral multiplet, whose top component is the
field strength of the magnetic gauge field in two dimensions.

There is an obvious way of getting BPS particles in this theory.
Suppose for a moment that $M=1$ (a single Lagrangian brane.)
Let $\gamma \in H_1(L,\Z)$ denote the homology class of the $S^1$ in $L$.
Since the Calabi-Yau has no non-contractible 1-cycles, this $\gamma$ is a
boundary in $X$; so there exists some $D$ with
\begin{equation}
[ \partial D ] = \gamma.
\end{equation} 
Open D2-branes wrapped on $D$ give rise to particles charged under the $U(1)$ gauge field
of the 2-dimensional theory; if $D$ is a holomorphic disc, then these particles are BPS.


\subsection*{The conjecture}

Now, to motivate our conjecture, recall from Section \ref{sec-closed} 
that in the closed string case (without the background branes) we have the relation
\begin{equation} \label{bh-partition-function-redux}
Z_\BH(Q_6, Q_4, \varphi_2, \varphi_0) = \sum_{Q_0, Q_2} \Omega_{Q_6, Q_4, Q_2, Q_0} e^{-Q_2 \varphi_2 - Q_0 \varphi_0}=\abs{\psi_\Top(g_\Top, t)}^2,
\end{equation}
where $\varphi_2 = \im 2 \pi t /g_\Top$ and $\varphi_0 = \im 4\pi^2 / g_\Top$ as given in 
\eqref{osv-coupling}, \eqref{osv-kahler}.
We wish to generalize this conjecture to the open topological string.
What is the appropriate ensemble to consider?
Since the closed D2-branes are ``light electric states'' in the closed
string ensemble, which we sum over with chemical potentials, 
it is natural to try treating the open D2-branes in the same way.  
Thus, in formulating our conjecture we consider these BPS states 
as ``electric charges,'' and sum over them with a chemical potential $\varphi_e^{\open}$.
We also expect to have a ``magnetic charge,'' which we
fix to the some value $\cQ^\open_m$; we will discuss these
charges further below.\footnote{The terminology ``electric'' and ``magnetic'' here is chosen
by analogy to the closed string case.  The charges we are discussing here are both associated 
to point particles, which are not electric-magnetic duals in the theory on $\R^{1,1}$.}
The partition function of the ensemble thus obtained is a simple generalization of \eqref{bh-partition-function-redux},
\begin{equation} \label{bh-partition-function-open}
Z^\open_\BPS(Q_6, Q_4, \cQ^\open_m, \varphi_2, \varphi_0, \varphi_e^\open) = \sum_{Q_0, Q_2, \cQ^\open_e} \Omega_{Q_6, Q_4, Q_2, Q_0, \cQ^\open_e, \cQ^\open_m} e^{-Q_2 \varphi_2 - Q_0 \varphi_0 - \cQ^\open_e \varphi^\open_e}.
\end{equation}
We conjecture that the relation of $Z^\open_\BPS$ to the topological string is a direct
generalization of \eqref{bh-partition-function-redux},
\begin{equation} \label{osv-conjecture-open}
Z^\open_\BPS(Q_6, Q_4, \cQ^\open_m, \varphi_2, \varphi_0, \varphi^\open_e) = 
\abs{\psi_\Top^\open(g_\Top, t, u)}^2,
\end{equation} 
where $\psi_\Top^\open$ is the topological A model partition function on $X$, including
open strings ending on $M$ D-branes on $L$ as well as closed strings.

In this conjecture the closed string moduli $g_\Top, t$ are determined by the attractor mechanism as before.  What about the open string modulus $u$?  
The formula $\varphi_2 = \im 2 \pi t / g_\Top$ for
the closed D2-brane chemical potential suggests that the open D2-brane chemical potential
should be related to $u$ by
\begin{equation}
\varphi_e^{\open} = \im 2 \pi u / g_\Top.
\end{equation}
We will verify this identification of $\im u$ in an explicit example below.
The real part of $u$ should be fixed by the charge $\cQ^\open_m$, as we now discuss.



\subsection*{Adding magnetic charges}

What is the spacetime meaning of the ``magnetic'' charge $\cQ^\open_m$, and 
its relation to the real part of the modulus $u$?  We 
can make a plausible guess by exploiting the symmetry between $u$ and its conjugate $v$.
Namely, as noted in Section \ref{sec-qm-open}, it is possible for $L$ to undergo a flop
transition to a new phase parameterized by a different parameter $v$ (representing the holonomy
of the gauge field around a new $S^1$ which was contractible in the old phase).  The two phases are
smoothly connected in the quantum topological string theory and also in the physical
one, but they correspond to different classical descriptions of the physics.  The most economical 
assumption would then be that the excitations which we are calling ``electric'' in one description 
are the same as the ones which we are calling ``magnetic'' in the other.  In this section
we explore the consequences of this assumption (without being too careful about the factors
of $i$ which appear.)  We discuss only the open string sector, suppressing the closed strings,
and drop the label ``open'' from our notation for simplicity.

First, we can write down the precise form of $u$, using 
the fact that $\psi_\Top(v)$ is related to $\psi_\Top(u)$ by the 
Fourier transform \eqref{fourier}, or equivalently
\begin{equation} \label{commutation-1}
[u, v] = i g_\Top.
\end{equation}
The dictionary between our statistical ensemble and the quantum-mechanical
picture requires the relations
\begin{equation} \label{commutation-2}
[\cQ_e,\varphi_e] = 1 = [\cQ_m,\varphi_m],
\end{equation} 
since we cannot fix the charges and the chemical potentials at the same time.  On the other hand,
we can fix the charges simultaneously, so
\begin{equation} \label{commutation-3}
[\cQ_e,\cQ_m] = 0 = [\varphi_e,\varphi_m].
\end{equation}
The consistency of \eqref{commutation-1}, \eqref{commutation-2}, \eqref{commutation-3} 
with $\im u = g_\Top \varphi_e / 2 \pi$ then requires
\begin{equation}\label{attractor}
\re u = \pi \cQ_m, \quad \quad
\re v = \pi \cQ_e.
\end{equation}
The equation \eqref{attractor} completes our conjecture \eqref{osv-conjecture-open}, except
that we have not been precise about how to fix the zero of $\re u$ or $\re v$.  We do not have a general
proposal for how this should be done, although we will see how it works in an example below.

Note that the expectation value of $v$ in the state corresponding to the 
open string wave function $\psi_\Top(u)= \exp(i F_{\Top}(u))$
is given by
\begin{equation}
v = g_s \partial_u F_{\Top}(u)
\end{equation} 
(the semi-classical version of this equation was discovered in \cite{Aganagic:2001nx}).
This is precisely analogous to the special geometry relations of the closed string.
In this sense \eqref{attractor} seems to describe an open string
analogue of the attractor mechanism that fixes the moduli to values
determined by charges of BPS states.  It would be interesting to study
this attractor mechanism directly in the physical theory.

Our identification of the parameters leads to two formulas for the Wigner function, i.e.
the degeneracies of BPS states,
\begin{align}
\Omega_{\cQ_e,\cQ_m} &= \int d\varphi_e \; e^{- \cQ_e \varphi_e}\;
\psi(u = \frac{i g_\Top}{2\pi} \varphi_e + \pi \cQ_m)\overline{\psi(u = \frac{i g_\Top}{2\pi} \varphi_e+\pi \cQ_m)},\\
&= \int d\varphi_m \; e^{- \cQ_m \varphi_m}\;
\psi(v = \frac{i g_\Top}{2\pi} \varphi_m + \pi \cQ_e)\overline{\psi(v = \frac{i g_\Top}{2\pi} \varphi_m+\pi \cQ_m)}.
\end{align}
(The arguments we gave above about commutation relations are equivalent to the statement that these 
two formulas are indeed related by Fourier transforming $\psi(u) \leftrightarrow \psi(v)$.)
Put another way, $\psi(u)$ and $\psi(v)$ sum over conjugate ensembles,
\begin{align}
\abs{\psi(u = \frac{i g_\Top}{2\pi} \varphi_e + \pi \cQ_m)}^2 &= \sum_{\cQ_e} \Omega_{\cQ_e,\cQ_m} e^{- \cQ_e \varphi_e}, \label{ensemble-u} \\
\abs{\psi(v = \frac{i g_\Top}{2\pi} \varphi_m + \pi \cQ_e)}^2 &= \sum_{\cQ_m} \Omega_{\cQ_e,\cQ_m} e^{- \cQ_m \varphi_m}.
\end{align} 
In the above we implicitly chose some framing for the open string wave function $\psi(u)$, and one
could ask what is the meaning of changing the framing.  As discussed in \cite{top-integ},
the effect of shifting the framing by $k$ units is $\psi^{(k)}(u) = e^{- i k g_\Top \partial^2_u} \psi(u)$.
From this and \eqref{ensemble-u} 
it follows that $\psi^{(k)}$ sums over an ensemble in which we have a chemical potential for
dyons of charge $(1,k)$:
\begin{equation}
\abs{\psi^{(k)}(u = \frac{i g_\Top}{2\pi} \varphi_e + \pi \cQ_m)}^2 = \sum_{\cQ_e} \Omega_{\cQ_e,\cQ_m + k\cQ_e} e^{- \cQ_e \varphi_e}.
\end{equation}

So far we have discussed the magnetic charge $\cQ_m$ abstractly in terms of its relation 
to the real part of the topological string modulus, but our assumption also 
leads to a natural description of the meaning of the magnetic charges in the physical theory.
To understand this, note first that turning on electric charge
$\cQ_e$, arising from open D2-branes ending on $\gamma \subset L$, can be 
equivalently described as turning on magnetic flux on the background D4-brane. 
This is because the D2-brane ending on $L$ looks like a monopole string from the point 
of view of the gauge theory on the D4-brane.  So, letting $D$ denote any 2-cycle in 
$L$ dual to $\gamma$ (see Figure \ref{fig-dual-cycle-outline-fonts-small}), we have
\fig{fig-dual-cycle-outline-fonts-small}{The 1-cycle $\gamma$ and its dual cycle $D$ inside $L$.}{height=1.5in}
\begin{equation} \label{flux}
\int_{\R \times D} dF = 2\pi \cQ_e,
\end{equation} 
where $\R$ denotes the spatial $x$-direction in $\R^{1,1}$.
In particular, we could choose $D$ to be the disc obtained by filling in 
the 1-cycle $S^1$ corresponding to $v$, which opens up after the flop transition.  
Then \eqref{flux} is equivalent to
\begin{equation}
\int_{\R \times \partial D} F_{x \theta_v}\,dx\,d \theta_v  = 2\pi \cQ_e. 
\end{equation} 
Alternatively, as $F_{x \theta_v} = \partial_x A_{\theta_v}$ and
\begin{equation}
\oint_{\partial D} A_{\theta_v}\,d\theta_v = {\im} v,
\end{equation} 
we see that as we cross the D2-branes in the $x$ direction $v$ jumps by $2\pi i \cQ_e$.
Since exchanging electric and magnetic charges corresponds to
exchanging $u$ and $v$, it follows that turning on $\cQ_m$
units of magnetic charge corresponds to having a domain wall where
$u$ jumps by $2\pi i \cQ_m$ in going from $x=-\infty$ to $x=+\infty$. 
Hence these domain walls are the magnetic charges we were seeking.


\subsection*{Multiple Lagrangian branes}

In the above discussion we have been assuming that we have a single background D4-brane.
Let us now return to more general case $M\geq 1$.  In this case ${\cQ}^\open_{e,m}$ label representations of $U(M)$.\footnote{The gauge theory has at least a $U(1)^M$
symmetry, and since the degeneracies are symmetric under the symmetric group $S_M$, 
we can organize them into characters of representations $\cQ^\open_e$ of $U(M)$ 
(possibly with negative multiplicities.)}
By a straightforward generalization of the arguments given above, 
we see that the attractor values of the eigenvalues of
$u$ and $v$ are (generalizing \eqref{attractor})
\begin{equation}
\re u_i = \pi ({{\hat\cQ}^\open}_{m})_{i}, \quad \quad
\re v_j = \pi ({{\hat\cQ}^\open}_{e})_{j}.
\end{equation}
Here ${{\hat\cQ}^\open}_{m,e}$ denote the highest weight vectors
of the corresponding representations, shifted by the Weyl vector $\rho$ (see Appendix \ref{app-group-theory}).  The rest of the discussion generalizes similarly.


\section{A solvable example} \label{sec-2dym-open}

After these general considerations we now return to the example we described in Section \ref{sec-closed},
where $X$ is a rank 2 holomorphic vector bundle over $\Sigma$, and add background D4-branes on $L \times \R^{1,1}$ 
to the Type IIA theory.  In this section we want to argue that one can use 2-dimensional 
Yang-Mills theory to compute $Z^\open_\BPS$, generalizing the discussion
of Section \ref{sec-closed}.  Our arguments will be heuristic, but they lead to a definite
prescription which is natural and fits in well with our conjectures.

How is the discussion of Section \ref{sec-closed} 
modified by the introduction of the background branes?
The $L$ we will consider meet $\cD$ along a circle, which we call
$\gamma$.  Hence
in the gauge theory on $\cD$ 
there will be extra massless string states localized along $\gamma$, 
in the bifundamental of $U(M) \times U(N)$.  By condensing
these string states (going out along a Higgs branch), i.e. turning on a vacuum expectation value of the form
\begin{equation}
\begin{pmatrix}
1 & & \\
& \ddots & \\
& & 1 \\
0 & \cdots & 0 \\
\vdots & & \vdots \\
0 & \cdots & 0
\end{pmatrix}
\end{equation}
one can break the gauge symmetry along $\gamma$ to $U(M) \times U(N-M)$, where the surviving $U(M)$ is the 
diagonal in $[U(M) \times U(M)] \times U(N-M)$.\footnote{We are considering only the case $M<N$; ultimately
we will be interested in taking $N$ large while $M$ stays finite.}  
We conjecture that from the point of view 
of the gauge theory on $\cD$, the only effect of the interaction with the background branes
comes from the fact that the $U(M)$ part of the gauge field along $\gamma$ is identified with the $U(M)$ gauge field
on the background branes, via this Higgsing to the diagonal.  We can account for this by inserting a $\delta$-function
in the theory on $\cD$, which freezes $M$ of the eigenvalues of the holonomy
$e^{i \oint_\gamma \cA}$, identifying them with the holonomy on the background branes, which we call $e^{i \phi}$.  The Weyl invariant way to write this delta function is
\begin{equation} \label{delta-function-4d}
\delta_M \left(e^{i \oint_\gamma \cA}, e^{i \phi} \right) = D(\oint_\gamma \cA)^{-1} \sum_{\sigma \in S_N} (-)^\sigma \prod_{j=1}^M \delta \left((e^{i \oint_\gamma \cA})_{\sigma(j)}, e^{i\phi_j} \right),
\end{equation}
where $D$ denotes the Vandermonde determinant \eqref{vandermonde}.

Let us write $Z_\YM^\open(\varphi_0, \varphi_2, \phi)$ for the partition function with this operator inserted (here ``open'' refers to the fact that it is related to the open topological string.)  
This partition function sums
over the open D2-branes which end on the Lagrangian branes, as well as over the
D0 and D2-brane charges which one had without the Lagrangian branes; 
so altogether we should have
\begin{equation}
Z_\YM^\open = Z_\BPS^\open.
\end{equation}
In this ensemble the chemical potential $\varphi_e^\open$ for the open D2-branes should roughly
be their mass.  This mass is given by the area of the disc on which they are wrapped, which is related by supersymmetry to the Wilson line on the background branes; with this as motivation we write
\begin{equation}
\varphi_e^\open = 2 \pi \phi / g_s.
\end{equation}

To compute $Z_\YM^\open$ it is convenient to reduce from the twisted $\N=4$ theory on $\cD$ to 
a $q$-deformed Yang-Mills theory on $\Sigma$, as was done in \cite{Vafa:2004qa,Aganagic:2004js}.
How does the operator insertion $\delta_M \left(e^{i \oint_\gamma \cA}, e^{i \phi} \right)$ translate to the reduced theory?  
There are two cases to consider:
\begin{enumerate}
\item{$\gamma$ lies in the fiber of $\LL_{-p}$ over a point $P \in \Sigma$.}
\item{$\gamma$ lies on the Riemann surface $\Sigma$.}
\end{enumerate}
In either case these Lagrangian branes can be locally modelled by the
ones studied in \cite{Aganagic:2000gs, Aganagic:2001nx}. 
In case 1, where $\gamma$ is in the fiber over $P$, the situation is basically straightforward:  as explained
in \cite{Vafa:2004qa}, the flux $\oint_\gamma \cA$ shows up in the $q$-deformed Yang-Mills
theory on $\Sigma$ as a field $\Phi$.  The operator we have to insert in the $q$-deformed theory
is therefore
\begin{equation} \label{delta-function-fiber}
\delta_M(e^{i \Phi(P)}, e^{i \phi}).
\end{equation}
The path integral gets localized on configurations where $\Phi$ is locally constant, so when there
are no other operator insertions we can drop the $P$ and write $\delta_M(e^{i \Phi}, e^{i \phi})$.

In case 2 the situation is a bit trickier, because of a subtlety which also appeared in \cite{Vafa:2004qa}:
namely, in performing the reduction one has to choose $p$ points $P_i$ on $\Sigma$, and at each such point
one gets an operator corresponding to one unit of area in the Yang-Mills theory.  The operator
$\delta_M \left(e^{i \oint_\gamma \cA}, e^{i \phi} \right)$ reduces to
\begin{equation} \label{delta-function-base}
\delta_M\left(e^{i \oint_{\gamma} A}, e^{i \phi}\right)
\end{equation}
in two dimensions, but we have to specify how many
of the $p$ points go on each side of $\gamma$.  Therefore there is a $\Z$-valued ambiguity
in defining which operator we insert in the physical theory, parameterized by a choice of $p_1$ and $p_2$ with $p_1 + p_2 = p$.  See Figure \ref{fig-ambiguity-small}.  This ambiguity should be understood
as related to infrared regularization arising from the non-compactness of the situation; in
the connection to the open topological string below, we will see that it is identified with the framing ambiguity.
\fig{fig-ambiguity-small}{The operator $\delta_M\left(e^{i \oint_{\gamma} A}, e^{i \phi}\right)$ cuts
$\Sigma$ into two pieces.}{height=2.4in}



\subsection*{Specializing to genus zero}

Next we will investigate in detail the case when $\Sigma$ has genus zero.
So we specialize to Type IIA on $X \times \R^{3,1}$, where
\begin{equation} \label{local-cy-sphere}
X = \OO(-p) \oplus \OO(p-2) \to \C\PP^1,
\end{equation}
with background D4-branes added on $L \times \R^{1,1}$.  As we just explained, we
can compute a mixed ensemble partition function $Z^\open_\BPS$ for this system by inserting an appropriate
operator into the $q$-deformed Yang-Mills theory on an $S^2$ of area $p$.  
The parameters of the Yang-Mills theory are as in the closed case,
\begin{equation} \label{2dym-params-open}
\theta_{\YM} = \theta, \quad g^2_{\YM} = g_s, \quad q = e^{-g_s}.
\end{equation} 

We will show that for all $p_1$, $p_2$ we indeed have 
$Z_\YM^\open = \abs{\psi_\Top^\open}^2 + \OO(e^{-N})$.  We will also show that the identification of $Z_\YM^\open$ with $Z_\BPS^\open$ is consistent; 
namely, $Z_\BPS^\open$ should have an expansion where $\phi$ appears 
only in the form $e^{- 2 \pi \phi / g_s}$, and we will
verify that $Z_\YM^\open$ indeed has such an expansion at least in the special case $p_1 = p_2 = 1$.
These two results together give evidence for our conjecture \eqref{osv-conjecture-open}.




\subsection*{Large $N$ factorization on $\OO(-p) \oplus \OO(p-2) \to \C\PP^1$}

We want to establish that 
\begin{equation}
Z_\YM^\open = \abs{\psi_\Top^\open}^2 + \OO(e^{-N}).
\end{equation}  
We compute $Z_\YM^\open$ using the gluing procedure described in Appendix \ref{app-qym}:  namely, we construct the sphere by gluing two discs together with the operator $\delta_M(e^{i \oint A}, e^{i \phi})$ in the middle.  We use the fact that the Hilbert space of the 2-dimensional Yang-Mills theory is factorized at large $N$, $\HH \simeq \HH_+ \otimes \HH_-$, and furthermore
each component of the gluing procedure can be written in 
a factorized form.  This factorization is described in detail in Appendix \ref{app-factorization}; the computation of $Z_\YM^\open$ we give below basically consists of fetching various results from that appendix and putting them together.  We then compare this with the known form of the topological string amplitude and find the desired factorization; the final result is given in \eqref{2dym-factorization-open}.


\subsubsection*{Branes in the base}

Let us first discuss case 2, where to compute $Z_\YM^\open$ we have to insert a Wilson line
freezing operator $\delta_M(e^{i \oint A}, e^{i\phi})$.  This operator cuts the sphere into two pieces, with discrete areas $p_1$, $p_2$ such that $p_1 + p_2 = p$.  The gluing computation of $Z_\YM^\open$ involves a zero area disc, an annulus of area $p_1$, the operator $\delta_M(e^{i \oint A}, e^{i\phi})$, an annulus of area $p_2$, and another zero area disc:
\begin{equation} \label{gluing-base}
Z^\open_{\YM}(N, g_s, \theta, \phi) = \IP{\Psi_0 | A_{p_1} \delta_M(e^{i \oint A}, e^{i\phi}) A_{p_2} | \Psi_0}. 
\end{equation}
Each of these pieces has been written in the factorized basis for $\HH$ in Appendix \ref{app-factorization}:  the disc
is given in \eqref{disc-factorized}, the annulus in  \eqref{annulus-factorized}, and the Wilson line freezing operator
in \eqref{wilson-line-freeze-factorized}.
Plugging in these factorizations 
and doing a little rearranging, we obtain the factorized form of $Z_\YM^\open$, 
schematically $Z^\open_\YM = Z_+ Z_-$, or more precisely (writing $q = e^{- g_s}$)
\begin{multline} \label{ym-sphere-wilson-line-freeze-factorized}
Z^\open_{\YM}(N, g_s, \theta, \phi) = Z_{\YM}^0(N, g_s, \theta, \phi) M(q)^2 \eta(q)^{2N} \times \\
\sum_{l \in \Z, R'_1, R'_2} (-)^{\abs{R'_1}+\abs{R'_2}} q^{\half(p_1+p_2)l^2} e^{iNlp\theta} 
Z^{R'_1, R'_2,l}_+ Z^{R'_1, R'_2,l}_- + \OO(e^{-N}),
\end{multline}
where
\begin{multline} \label{chiral-block-sphere-wilson-line-freeze}
Z^{R'_1, R'_2,l}_+(N, g_s, \theta, \phi) = q^{\half N (\abs{R'_1}+\abs{R'_2})} \times \\ 
\sum_{R_{1+}, R_{2+}, A_+} q^{\half p_1 \kappa_{R_{1+}} + \half p_2 \kappa_{R_{2+}} + (\half N(p_1-1)+lp_1) \abs{R_{1+}}+(\half N(p_2-1)+lp_2) \abs{R_{2+}}}  \times \\
C_{0 R'_1 R_{1+}} C_{R'^t_2 R_{2+} 0} \schur_{R_{1+} / A_+} (e^{-i\phi}) \schur_{R_{2+} / A_+} (e^{i\phi}) e^{i \theta (p_1 \abs{R_{1+}} + p_2 \abs{R_{2+}} ) },
\end{multline}
and similarly
\begin{multline} \label{antichiral-block-sphere-wilson-line-freeze}
Z^{R'_1, R'_2,l}_-(N, g_s, \theta, \phi) = q^{\half N (\abs{R'_1}+\abs{R'_2})} \times \\
\sum_{R_{1-}, R_{2-}, A_-} q^{\half p_1 \kappa_{R_{1-}} + \half p_2 \kappa_{R_{2-}} + (\half N(p_1-1)-lp_1) \abs{R_{1-}}+(\half N(p_2-1)-lp_2) \abs{R_{2-}}}  \times \\
C_{0 R'^t_1 R_{1-}} C_{R'_2 R_{2-} 0} \schur_{R_{1-} / A_-} (e^{i\phi}) \schur_{R_{2-} / A_-} (e^{-i\phi}) e^{-i \theta (p_1 \abs{R_{1-}} + p_2 \abs{R_{2-}} ) }.
\end{multline}
The normalization factor $Z_{\YM}^0(N, g_s, \theta, \phi)$ will be fixed below.

Now we want to interpret the chiral blocks $Z^{R'_1, R'_2, l}_\pm(\phi)$ in terms of the topological string on $X$.
This $X$ can be represented torically by the picture in Figure \ref{fig-toric-internal}, on which we also indicate
the Lagrangian cycle $L$ supporting $M$ branes, one supporting a stack of infinitely many ghost branes, and
one with a stack of infinitely many ghost antibranes.
(See e.g. \cite{Aganagic:2000gs} for a review of the meaning of toric pictures such as this one.)
\figtex{fig-toric-internal}{The vertex representation of $X = \OO(-p) \oplus \OO(p-2) \to \C\PP^1$, 
with a stack of $M$ branes with
complexified holonomy $U = e^u$, a stack of infinitely many ghost branes with complexified holonomy $U'_1 = e^{u'_1}$,
and a stack of infinitely many ghost antibranes with complexified holonomy $U'_2 = e^{u'_2}$.}{0.30}
The results of \cite{Aganagic:2003db} give the topological string amplitude on this geometry as\footnote{Using the result as it appears in \cite{Aganagic:2003db} one would actually get something slightly different from \eqref{top-sphere-internal-line}, namely, $R_2 / A$ would be replaced by $R_2^t / A^t$, and there would be an extra overall factor $(-)^{\abs{R_2} + \abs{A}}$.  This difference is due to a typo in \cite{Aganagic:2003db}.} (with $q = e^{-g_\Top}$)
\begin{multline} \label{top-sphere-internal-line}
\psi_{\Top}^{\ghost}(g_\Top,t,u,u') = \psi_\Top^0(g_\Top,t,u) \sum_{R_1, R_2, A, R'_1, R'_2} (-)^{\abs{R'_2}} \schur_{R'_1}(e^{u'_1}) \schur_{R'_2}(e^{u'_2}) \times \\
q^{\half p_1 \kappa_{R_1} + \half p_2 \kappa_{R_2}}  C_{0 R'_1 R_1} C_{R'^t_2 R_2 0} \schur_{R_1 / A}(e^{-u}) \schur_{R_2 / A}(e^{u}) (-)^{p_1\abs{R_1} + p_2 \abs{R_2}} e^{-t\abs{R_2}}, 
\end{multline}
with the choice of $p_1$ and $p_2$ (subject to the constraint $p_1 + p_2 = p$) 
related to the choice of framing on the Lagrangian branes.\footnote{Strictly speaking, \cite{Aganagic:2003db} considers the case $M = \infty$; but one can get finitely many branes by setting all but $M$ components of the $e^u$ and $e^{-u}$ appearing in \eqref{top-sphere-internal-line} to zero.}  Similarly, if one swaps the ghost branes for ghost antibranes, one gets
\begin{multline} \label{top-sphere-internal-line-antibranes}
\psi_{\Top}^{\antighost}(g_\Top,t,u,u') = \psi_\Top^0(g_\Top,t,u) \sum_{R_1, R_2, A, R'_1, R'_2} (-)^{\abs{R'_1}} \schur_{R'_1}(e^{u'_1}) \schur_{R'_2}(e^{u'_2}) \times \\
q^{\half p_1 \kappa_{R_1} + \half p_2 \kappa_{R_2}}  C_{0 R'^t_1 R_1} C_{R'_2 R_2 0} \schur_{R_1 / A}(e^{-u}) \schur_{R_2 / A}(e^{u}) (-)^{p_1\abs{R_1} + p_2 \abs{R_2}} e^{-t\abs{R_2}}.
\end{multline}

Now to relate the chiral blocks $Z_\pm$ which make up $Z_\YM$ to the topological string amplitudes, we define
\begin{align}
t &= \half N g_s(p - 1) - i p \hat\theta, \label{params-t1} \\
u &= \half N g_s(p_1 - 1) - i (p_1 \hat\theta - \phi),\\
u'_1 &= \half N g_s + i \phi'_1, \\
u'_2 &= \half N g_s + i \phi'_2, \\
g_\Top &= g_s.
\end{align} 
Here we introduced $\hat\theta = \theta + \pi$; this shift is meant to cancel the factor $(-)^{p \abs{R}}$ in \eqref{top-sphere-internal-line}.\footnote{The apparent asymmetry between $p_1$ and $p_2$ comes from the fact that we chose $u$ to represent the complexified area of the disc which ends on the Lagrangian branes from the left; the disc which ends on them from the right has area $t-u = \half Ng_s(p_2 - 1) - i 
(p_2 \hat{\theta} + \phi)$.}

The desired factorization is then basically straightforward to check.  One begins with 
\eqref{ym-sphere-wilson-line-freeze-factorized} which expresses $Z_\YM$ in terms of the
chiral blocks, then relates the chiral blocks to $\psi_\Top^\ghost$ and $\psi_\Top^\antighost$
with the above choice of parameters, and converts
the sums over $R'_1$, $R'_2$ into integrals over $\phi'_1$, $\phi'_2$ as discussed in
Section \ref{sec-closed-revisited}.  This essentially gives
\begin{multline} \label{2dym-factorization-open}
Z_{\YM}(N, g_s, \theta, \phi) = \sum_{l \in \Z} \int d_H \phi'_1 d_H \phi'_2 \times \\ 
\left(\psi_\Top^{\ghost} \left(g_s, t + l p g_s, u + l p_1 g_s, u' \right) \right) \overline{\left(\psi_\Top^{\antighost} \left(g_s, t - l p g_s, u - l p_1 g_s, u' \right) \right)}.
\end{multline}
In order to match the $l$-dependent terms in \eqref{ym-sphere-wilson-line-freeze-factorized}, 
though, one has to examine carefully the normalizations for the topological string and Yang-Mills 
amplitudes, as was done in \cite{Vafa:2004qa,Aganagic:2004js}.  For the topological string we write
\begin{equation} \label{top-normalization-sphere}
\psi_\Top^0(g_\Top, t) = M(q) \eta(q)^{2 t / (p-2)g_\Top} \exp \left( - \frac{1}{6 p(p-2) g_\Top^2} t^3 + \frac{p-2}{24p} t \right).
\end{equation}
The meaning of this normalization factor was discussed in \cite{Aganagic:2004js}.
For the Yang-Mills theory, we write
\begin{equation} \label{ym-normalization-sphere}
Z_{\YM}^0(N, g_s, \theta, \phi) = \exp \left(\frac{g_s (p-2)^2}{24 p} (N - N^3) + N \frac{\hat\theta^2 p}{2 g_s} \right).
\end{equation}
Then the two chiral normalization factors multiply together to give the Yang-Mills normalization, up to some crucial $l$-dependent corrections:
\begin{multline}
\psi^0_\Top(g_s, t + l p g_s, u + l p_1 g_s) \overline{\psi^0_\Top(g_s, t - lp g_s, u - l p_1 g_s)} = \\
Z^0_{\YM}(N,g_s,\theta,\phi) M(q)^2 \eta(q)^{2N} q^{\half p l^2} e^{i N l p \theta}.
\end{multline}
These terms match the $l$-dependent terms in \eqref{ym-sphere-wilson-line-freeze-factorized}; they
are exactly what is needed to make the factorization \eqref{2dym-factorization-open} work.
So we have completed the factorization in case 2, corresponding to D-branes which intersect the base $\C\PP^1$ in $X$.


\subsubsection*{Branes in the fiber}

We can also consider case 1, corresponding to D-branes which meet the fiber
of $\OO(-p) \to \C\PP^1$.  In this case, in the Yang-Mills theory we insert the dual 
Wilson line freezing operator $\delta_M(e^{i \Phi}, e^{i \phi})$ at a point of $\C\PP^1$.  Our discussion here will be 
more brief since the proof of the factorization runs along the same lines as case 2 above.

Again, we compute the Yang-Mills amplitude by gluing:  we have to glue a disc containing the operator $\delta_M(e^{i \Phi}, e^{i \phi})$, 
an annulus of area $p$, and another disc, obtaining
\begin{equation}
Z_\YM^\open(N, g_s, \theta, \phi) = \IP{\Psi_\phi | A_p | \Psi_0}.
\end{equation}
Using the factorization results \eqref{annulus-factorized}, \eqref{disc-factorized} and \eqref{dual-wilson-line-freeze-factorized} this becomes
\begin{multline} \label{ym-sphere-dual-freeze-factorized}
Z_\YM^\open(N, g_s, \theta, \phi) = Z^0_\YM(N, g_s, \theta, \phi) M(q)^2 \eta(q)^{2N} \times \\
\sum_{l, m \in \Z, R'_1, R'_2} (-)^{\abs{R_1}+\abs{R_2}} q^{\half p l^2} e^{iNlp\theta} \det(e^{im\phi}) Z^{R'_1, R'_2,l,m}_+ Z^{R'_1, R'_2,l,m}_- + \OO(e^{-N}),
\end{multline} 
with
\begin{multline} \label{chiral-block-sphere-dual-freeze}
Z^{R'_1, R'_2,l,m}_+(N, g_s, \theta, \phi) = q^{\half N(\abs{R'_1}+\abs{R'_2})} \sum_{R_+, T_+} q^{\half p \kappa_{R_+} + \half \kappa_{T_+} + (\half N(p-2)+lp-m) \abs{R_+} + (- \half N-l) \abs{T_+}} \times \\
C_{T_+ R'_1 R_+} C_{R'^t_2 R_+ 0} \schur_{T^t_+} (e^{-i\phi}) e^{i \theta p \abs{R_+}},
\end{multline}
and similarly
\begin{multline} \label{antichiral-block-sphere-dual-freeze}
Z^{R'_1, R'_2,l,m}_-(N, g_s, \theta, \phi) = q^{\half N(\abs{R'_1}+\abs{R'_2})} \sum_{R_-, T_-} q^{\half p \kappa_{R_-} + \half \kappa_{T_-} + (\half N(p-2)-lp+m) \abs{R_-} + (- \half N + l)\abs{T_-}} \times \\
C_{T_- R'^t_1 R_-} C_{R'_2 R_- 0} \schur_{T^t_-} (e^{i\phi}) e^{-i \theta p \abs{R_-}}.
\end{multline}
\figtex{fig-toric-external}{The vertex representation of $X$, with a stack of $M$ Lagrangian branes with
complexified holonomy $V = e^v$, a stack of infinitely many ghost branes with complexified holonomy $U'_1 = e^{u'_1}$,
and a stack of infinitely many ghost antibranes with complexified holonomy $U'_2 = e^{u'_2}$.}{0.35}

As in case 2, we can now interpret these chiral blocks in terms of the topological string on $X$ with $M$ Lagrangian branes, now inserted on the external leg as indicated in Figure \ref{fig-toric-external}.  Again from \cite{Aganagic:2003db}, the
topological partition function in this geometry (with a particular choice of framing on the $M$ external branes) is
\begin{multline} \label{top-sphere-external-line}
\psi_\Top^{\ghost}(g_\Top,t,v,u') = \psi_\Top^0(g_\Top,t,v) 
\sum_{R,T} C_{T R'_1 R} C_{R'_2 R 0} \schur_{R'_1}(e^{u'_1}) \schur_{R'_2}(e^{u'_2}) \times \\
 (-)^{p \abs{R}} q^{\half p \kappa_{R} + \half \kappa_T} e^{-t \abs{R}} \schur_{T^t}(e^{-v}),
\end{multline}
and similarly one can compute $\psi_\Top^\antighost$ with the ghost branes exchanged for antibranes.
Now define
\begin{align}
t &= \half N g_s(p-2) - i \theta p, \\
u'_1 &= \half N g_s + i \phi'_1, \\
u'_2 &= \half N g_s + i \phi'_2, \\
v &=  - \half N g_s + i \phi, \\
g_\Top &= g_s.
\end{align}
With this substitution and a suitable normalization one can relate \eqref{top-sphere-external-line} to the chiral blocks
appearing in the factorization \eqref{ym-sphere-dual-freeze-factorized}, similarly to what was done above in case 2,
obtaining
\begin{multline} \label{2dym-factorization-open-fiber}
Z_{\YM}(N, g_s, \theta, \phi) = \sum_{l,m \in \Z} \int d_H \phi'_1 d_H \phi'_2 \times \\ 
\left(\psi_\Top^{\ghost} \left(g_s, t + l p g_s, v - l g_s, u'_1 - m g_s, u'_2 \right) \right) \overline{\left(\psi_\Top^{\antighost} \left(g_s, t - l p g_s, v + l g_s, u'_1 + m g_s, u'_2  \right) \right)}.
\end{multline}

So finally we have found that $Z_\YM^\open = \abs{\psi_\Top^\open}^2 + \OO(e^{-N})$, both for branes in the fiber
and in the base.



\subsection*{Summing open D2-branes on $\OO(-1) \oplus \OO(-1) \to \C\PP^1$}

Next we want to verify that $Z_\YM^\open$ can indeed be interpreted as counting open D2-branes
with the chemical potential $\varphi_e^\open = 2 \pi \phi / g_s$.
We consider case $2$, where we have a Wilson line
freezing operator $\delta_M\left(e^{i \oint_{\gamma} A}, e^{i \phi}\right)$ 
cutting the sphere into two pieces, with discrete areas $p_1$, $p_2$ such that $p_1 + p_2 = p$,
and further specialize to the case $p_1 = p_2 = 1$.

As we did in the previous section, we compute the partition function $Z_\YM^\open$ of this Yang-Mills theory
using the gluing procedure described in Appendix \ref{app-qym}:  namely, we construct the sphere by
gluing two discs together with the operator $\delta_M(e^{i \oint A}, e^{i \phi})$ in the middle.
However, unlike above where we used the splitting $\HH = \HH_+ \otimes \HH_-$ to see the large $N$ factorization
of $Z_\YM^\open$, in this section we will write the explicit formula for $Z_\YM^\open$ at finite $N$.

The wave function of the $q$-deformed 2-dimensional Yang-Mills theory on the disc is a function of the eigenvalues
$\xi$ of the Wilson line around the boundary, evaluated in Appendix \ref{app-disc-wave-function}:
\begin{equation}
\Psi(\xi) = e^{- N g_s / 24} \Theta_N \left(\frac{1}{2\pi}(\xi + \theta), \frac{i g_s}{2\pi} \right),
\end{equation}
where $\Theta_N$ denotes the theta function of $\Z^N$,
\begin{equation} \label{theta-function-redux}
\Theta_N (z,\tau) = \sum_{\gamma \in \Z^N} e^{\pi i \tau \norm{\gamma}^2} e^{2 \pi i \IP{\gamma,z}}, \qquad \for z \in \R^N,\,\im \tau > 0.
\end{equation}
In our case we want to glue two such disc wave functions $\Psi_1(\xi)$, $\Psi_2(\xi)$ 
to one another with $\delta_M(e^{i \oint A}, e^{i \phi})$ sandwiched in the middle.  
The result of this gluing is given in \eqref{wilson-line-freeze}, but we need a little notation first:
we divide the lattice $\Z^N$ into $\Z^{N-M} \oplus \Z^M$, and correspondingly divide $\xi$ into $\zeta$ and $\phi$, with $N-M$ and $M$ components respectively.  Then the result
of the gluing is
\begin{equation} \label{integral-pairing}
Z_\YM^\open(N, g_s, \theta, \phi) = \int_{[0,2\pi]^{N-M}} \frac{d\zeta}{2\pi} \abs{D(\zeta)}^2 \Psi_1(-\zeta,-\phi) \Psi_2(\zeta,\phi).
\end{equation} 
Because of the simple form of the wave function, the $\zeta$ dependence and $\phi$ dependence decouple, namely
\begin{equation}
\Psi(\zeta,\phi) = e^{- N g_s / 24} \Theta_{N-M} \left(\frac{1}{2\pi}(\zeta + \theta), \frac{i g_s}{2\pi} \right) \Theta_M \left(\frac{1}{2\pi}(\phi + \theta), \frac{i g_s}{2\pi} \right).
\end{equation}
So write
\begin{equation}
f_{N-M}(\theta, g_s) = \int \frac{d\zeta}{2\pi} \abs{D(\zeta)}^2 \Theta_{N-M} \left(\frac{1}{2\pi}(\zeta + \theta), \frac{i g_s}{2\pi} \right) \Theta_{N-M} \left(\frac{1}{2\pi}(-\zeta + \theta), \frac{i g_s}{2\pi} \right).
\end{equation} 
Then \eqref{integral-pairing} becomes
\begin{equation}
Z_\YM^\open(N, g_s, \theta, \phi) = e^{- N g_s / 12} f_{N-M}(\theta, g_s) \Theta_M \left(\frac{1}{2\pi}(\phi + \theta), \frac{i g_s}{2\pi} \right) \Theta_M \left(\frac{1}{2\pi}(- \phi + \theta), \frac{i g_s}{2\pi} \right).
\end{equation} 
Now we can use the Poisson resummation property of the theta function,
\begin{equation}
\Theta_M(z,\tau) = \left(\frac{i}{\tau}\right)^{M/2} e^{-\pi i \norm{z}^2 / \tau} \Theta_M(z / \tau, - 1 / \tau),
\end{equation} 
to obtain
\begin{multline}
Z_\YM^\open(N, g_s, \theta, \phi) = e^{- N g_s / 12} f_{N-M}(\theta, g_s) \left( \frac{2\pi}{g_s} \right)^M e^{-\frac{1}{2g_s} (\norm{\phi + \theta}^2 + \norm{\phi - \theta}^2)} \times \\
\Theta_M \left(-\frac{i}{g_s}(\phi + \theta), \frac{2 \pi i}{g_s} \right) \Theta_M \left(-\frac{i}{g_s}(- \phi + \theta), \frac{2 \pi i}{g_s} \right).
\end{multline} 
Expanding out these theta functions then gives 
$Z_\YM^\open(N,g_s,\theta,\phi)$ as an expansion in $e^{- 2 \pi \phi / g_s}$, up to a prefactor
$e^{-\frac{1}{g_s} \norm{\phi}^2}$.
So up to this prefactor, we have verified that $Z_\YM^\open$ can indeed be interpreted as counting open D2-branes
with the chemical potential $\varphi_2^\open = 2 \pi \phi / g_s$.

For completeness, let us briefly consider the leftover factor $f_{N-M}(\theta,g_s)$.  Writing out using \eqref{vandermonde}
\begin{equation}
\abs{D(\zeta)}^2 = \sum_{\sigma, \sigma' \in S_{N-M}} (-)^{\sigma\sigma'} e^{i \IP{\zeta, \sigma(\rho)-\sigma'(\rho)}}
\end{equation} 
(where $\rho = \rho_{N-M}$) and evaluating the integral using the definitions of the theta functions gives
\begin{equation}
f_{N-M}(\theta,g_s) =
\sum_{\sigma,\sigma' \in S_{N-M}} (-)^{\sigma \sigma'} e^{- \half g_s \norm{\sigma(\rho) - \sigma'(\rho)}^2} \Theta_{N-M} \left( \frac{1}{2\pi} (-2 \theta + i g_s (\sigma(\rho) - \sigma'(\rho))), \frac{i g_s}{\pi} \right).
\end{equation} 
So this can also be resummed to give an expansion in $e^{-4 \pi^2 / g_s}$ and $e^{-2 \pi \theta / g_s}$, as one expects from the
closed string sector of the conjecture.



\section*{Acknowledgements}
We would like to thank Jacques Distler, Noam Elkies, Sergei Gukov, Marcos Mari\~{n}o, Shiraz Minwalla, Lubo\v{s} Motl, Hirosi Ooguri and Natalia Saulina for useful discussions.  The research of M.A. was supported in part by a DOE OJI Award and an Alfred P. Sloan Foundation fellowship.  The research of A.N. and C.V. was supported in part by NSF grants PHY-0244821 and DMS-0244464.




\appendix

\section{Group theory} \label{app-group-theory}

In this appendix we summarize our group theory conventions and a few useful formulas.

We use script letters $\cR, \cP, \cQ, \dots$ to denote representations of unitary groups
such as $U(N)$, and capital letters $R, P, Q, \dots$
to denote Young diagrams.  Often Young diagrams will appear as the chiral and anti-chiral parts $R_\pm$
of a representation $\cR = R_+ \overline{R_-}[l]$, as described in Appendix \ref{app-factorization}.

The weight lattice of $U(N)$ is $\Z^N$, with its standard inner product $\IP{,}$.  
A highest weight representation $\cR$ is characterized by a
weight $(r_1, \dots, r_N) \in \Z^N$, in a particular Weyl chamber; we make the standard choice of Weyl
chamber, given by the constraint $r_1 \ge \cdots \ge r_N$.  With this choice, the entries $r_i$ correspond
to the lengths of the rows of the extended Young diagram for the representation $\cR$.
The Weyl group $W$ of $U(N)$ is the symmetric group, $W \simeq S_N$,
which permutes the entries of $\Z^N$ in the obvious way.  

We will use the symbol $\cR$ both
for the representation and for its highest weight.
It is also convenient to
introduce the symbol $\hat{\cR}$ for $\cR + \rho$, where $\rho$ is half the sum of the positive roots of $U(N)$,
concretely
\begin{equation} \label{rho}
\rho = \half(N-1, N-3, \dots, 3-N, 1-N).
\end{equation}
We also write $\bo$ for the ``unit'' vector,
\begin{equation} \label{bo}
\bo = (1, 1, \dots, 1, 1).
\end{equation}
With this notation we can write the Weyl character formula,\footnote{When $N$ is odd, 
$D(\xi)^{-1}$ and $\sum_{\sigma \in S_N} (-)^\sigma e^{i\IP{\hat{\cR}, \sigma(\xi)}}$ are not
quite well defined as functions of the eigenvalues $e^{i\xi}$ --- they change sign under $\xi_i \to \xi_i + 2\pi$.  Nevertheless their product is still well defined.}
\begin{equation} \label{weyl-character-formula}
\Tr_\cR(e^{i \xi}) = D(\xi)^{-1} \sum_{\sigma \in S_N} (-)^\sigma e^{i\IP{\hat{\cR}, \sigma(\xi)}},
\end{equation}
where the denominator $D(\xi)$ is
\begin{equation} \label{vandermonde}
D(\xi) = \sum_{\sigma \in S_N} (-)^\sigma e^{i\IP{\xi, \sigma(\rho)}} = \prod_{i<j} (e^{i (\xi_i - \xi_j) / 2} - e^{- i (\xi_i - \xi_j) / 2}).
\end{equation}

In computing the $q$-deformed Yang-Mills amplitudes we will need to use the Hopf link invariant 
$S_{\cP \cQ}$ of the level $k$ Chern-Simons theory with gauge group $U(N)$.  Define $g_s = \frac{2\pi}{N+k}$.
There is a formula expressing $S_{\cP \cQ}$ as a sum over the Weyl group $W \simeq S_N$:
\begin{equation} \label{s-matrix-formula}
S_{\cP \cQ} = e^{- g_s (\norm{\rho}^2 + N/24)} \sum_{\sigma \in S_N} (-)^\sigma e^{g_s \IP{\hat{\cP}, \sigma(\hat{\cQ})}}.
\end{equation}
(The standard formulas for $S_{\cP \cQ}$ include a different normalization, 
but in the context where we will use $S_{\cP \cQ}$ we will absorb this in 
other normalization factors.)

For any $N_1, N_2$ with $N_1 + N_2 = N$, let $\cQ$ label a representation of $U(N_1)$ and $\cA$ a representation of $U(N_2)$, while $\cR$ is a representation of $U(N)$; 
then we define the branching coefficients $\cB^{\cR}_{\cQ \cA}$ by 
the rule that $\cR$ decomposes under $U(N_1) \times U(N_2)$ as
\begin{equation} \label{branching}
\cR \to \bigoplus_{\cQ,\cA} \cB^{\cR}_{\cQ \cA} [\cQ, \cA].
\end{equation}

We fix the normalization of the Casimir operators of $U(N)$ 
as follows:  in a representation $\cR$ with highest weight $(r_1, \dots, r_N)$,
\begin{align}
C_1(\cR) &= \IP{\hat\cR, \bo} = \sum_i r_i, \label{c1} \\
C_2(\cR) &= \norm{\hat\cR}^2 - \norm{\rho}^2 = \sum_i r_i (r_i + N + 1 - 2i). \label{c2}
\end{align}

We write $N^R_{R_1 R_2}$ for the usual Littlewood-Richardson numbers, and also use a slight
generalization which we write $N^R_{R_1 \cdots R_k}$.  These numbers can be defined
in various equivalent ways --- for example, if we think of the Young diagrams $R_i$ and $R$ as
representations of $GL(\infty)$, they are the tensor product coefficients, i.e.
\begin{equation}
R_1 \otimes \cdots \otimes R_k = \bigoplus_{R} N^R_{R_1 \cdots R_k} R.
\end{equation}
In particular, $N^R_{R_1 \cdots R_k} = 0$  unless $\sum_{i=1}^k \abs{R_i} = \abs{R}$,
where $\abs{R}$ denotes the total number of boxes in the diagram $R$.

We write $\schur_R(x)$ for the ``Schur function'' associated with the Young diagram $R$:  this
is a symmetric polynomial in infinitely many variables, $x = (x_1, x_2, \dots)$.  It can be
defined in various equivalent ways; one convenient way to think of it is as the character
of the $\mathrm{Mat}(\infty,\C)$ representation associated to $R$, evaluated on the diagonal matrix with
entries $(x_1, x_2, \dots)$.  There is a bilinear inner product $\IP{,}$ on the ring of symmetric polynomials 
for which the Schur functions form an orthonormal basis, $\IP{\schur_R, \schur_S} = \delta_{RS}$; 
in terms of this inner product $N^R_{R_1 \cdots R_k} = \IP{\prod_{i=1}^k \schur_{R_i}, \schur_R}$. 
Viewing the $x_i$ as eigenvalues, the inner product can be written as a formal integral of class 
functions over $U(\infty)$ (interpreted as an inverse limit of finite-dimensional groups 
with their normalized Haar measures),
\begin{equation}
\IP{f,g} = \int d_H \xi\,f(e^{-i\xi}) g(e^{i\xi}).
\end{equation}
We also use the ``skew Schur functions'' $\schur_{R/A}(x)$, defined by
\begin{equation} \label{skew-schur-function}
\schur_{R/A}(x) = \sum_Q N^R_{Q A} \schur_Q(x).
\end{equation}
See \cite{MR1354144} for much more on Schur functions and skew Schur functions.

We also introduce an analog of the skew Schur function, a ``skew trace''
involving the branching $U(N) \to U(N_1) \times U(N_2)$ where $N_1 + N_2 = N$:  this is a rule by
which a representation of $U(N)$ and a representation of $U(N_2)$ induce
a class function on $U(N_1)$, which we define by
\begin{equation} \label{skew-trace}
\Tr_{\cR / \cA}(U) = \sum_\cQ \cB^\cR_{\cQ \cA} \Tr_\cQ (U).
\end{equation} 
Here $\cR, \cQ, \cA$ denote representations of $U(N)$, $U(N_1)$, $U(N_2)$ respectively;
$\cB$ denotes the branching coefficients defined in \eqref{branching}; and $U \in U(N_1)$.

We will frequently encounter sums $\sum_{R'}$ over the set of all Young diagrams.  A particularly
useful identity for reducing such sums is
\begin{equation} \label{ghost-cancellation}
\sum_{R',S'} (-)^{\abs{R'}} N_{R' S' A_{1} \cdots A_{a}}^{A} N_{R'^t S' B_1 \cdots B_b}^{B} = N_{A_1 \cdots A_a} ^A N_{B_1 \cdots B_b}^B.
\end{equation}
One can prove \eqref{ghost-cancellation} using the ``Cauchy identities'' for Schur functions, given e.g. in \cite{MR1354144},
\begin{align}
\sum_{S'} \schur_{S'}(x) \schur_{S'}(y) &= \prod_{i=1}^\infty \prod_{j=1}^\infty (1 - x_i y_j)^{-1},\\
\sum_{R'} (-)^{\abs{R'}} \schur_{R'}(x) \schur_{R'^t}(y) &= \prod_{i=1}^\infty \prod_{j=1}^\infty (1 - x_i y_j).
\end{align}


\section{The $q$-deformed 2-d Yang-Mills theory} \label{app-qym}

In this section we review some facts about 2-dimensional Yang-Mills theory and its $q$-deformed cousin.
We begin with the 2-dimensional Euclidean Yang-Mills action\footnote{Note that our convention for $\theta_{\YM}$ is not the usual one; $\theta_\YM^{\mathrm{usual}} = \frac{i \pi}{g^2_\YM} \theta_\YM$.} for gauge group $G = U(N)$,
\begin{equation} \label{ym-action}
S_{\YM} = \frac{1}{2 g^2_{\YM}} \left( \int_\Sigma d^2x\ \Tr F \wedge *F + \theta_{\YM} \int_\Sigma \Tr F \right).
\end{equation}
It is often convenient to rewrite \eqref{ym-action} by introducing an additional adjoint-valued scalar field $\Phi$, which enters the
action quadratically:  namely, \eqref{ym-action} is equivalent to
\begin{equation}
S_{\YM} = \frac{1}{2 g^2_\YM} \left( 2 \int_\Sigma \Tr \Phi F - \int_\Sigma \mu\ \Tr \Phi^2 + \theta_{\YM} \int_\Sigma \mu\ \Tr \Phi \right),
\end{equation}
where $\mu$ is the area element on $\Sigma$.
Once we have introduced this $\Phi$ we can define the $q$-deformed theory:  we use the same
action $S_{\YM}$, but we consider the fundamental variables to be the gauge connection and $e^{i \Phi}$,
rather than the gauge connection and $\Phi$.  More precisely, since there is an ambiguity in recovering
$\Phi$ from $e^{i \Phi}$, $S_{\YM}$ is not well defined as a function of $\Phi$; to get a well
defined expression inside the path integral one has to sum $e^{-S_{\YM}}$ over all ``images'' $\Phi$.  
Equivalently, we integrate over all $\Phi$, not just a fundamental domain, 
but we use the measure appropriate for an integral over $e^{i \Phi}$.
This construction gives the $q$-deformed theory with $q = e^{- g^2_\YM}$, which is the one
that naturally occurs in this paper; to get a different value of $q$
one would change the periodicity of $\Phi$.

The partition function can be computed in various ways; here we will focus on the computation by cutting and pasting.  In the case of the undeformed Yang-Mills theory, this procedure was reviewed in \cite{Cordes:1995fc}; our treatment will be briefer, and is 
intended mostly to recall the new features that appear in the $q$-deformed case, as
described in \cite{Aganagic:2004js}.

To get the cutting-and-pasting procedure started one first needs to 
know the Hilbert space $\HH$ of the theory on $S^1$; as for the usual 2-d Yang-Mills theory, it is simply the space of class functions
$\Psi(g)$, with $g \in G$ interpreted as the holonomy of the connection around $S^1$.  The path integral over a surface with
boundary $S^1$ thus gives a state $\Psi(g)$.  Two such surfaces can be glued using the rule\footnote{We will always use the notation
$\IP{|}$ to stand for the (linear) gluing rule rather than the (sesquilinear) inner product on the Hilbert space.  The two are the same
when acting on real linear combinations of the characters $\Tr_\cR(g)$ but differ for complex linear combinations.}
\begin{equation}
\IP{\Psi_1 \vert \Psi_2} = \int_G d_H g\,\Psi_1(g^{-1}) \Psi_2(g),
\end{equation}
with $d_H g$ the Haar measure.  When $G = U(N)$ we can write these wave functions 
more concretely as functions of the eigenvalues $e^{i \xi_i}$,
totally symmetric under the permutation group $S_N$, and the gluing rule becomes
\begin{equation} \label{gluing-rule}
\IP{\Psi_1 \vert \Psi_2} = \int_{[0,2\pi]^N} \frac{d\xi}{2\pi} \abs{D(\xi)}^2 \, \Psi_1(-\xi) \Psi_2(\xi),
\end{equation}
where as in \eqref{vandermonde}
\begin{equation} \label{vandermonde-redux}
D(\xi) = \prod_{i<j} (e^{i (\xi_i - \xi_j) / 2} - e^{- i (\xi_i - \xi_j) / 2}).
\end{equation}
A convenient basis of $\HH$ (which in particular diagonalizes the Hamiltonian) is given by the characters $\Tr_\cR(g)$ as $\cR$ runs over all representations of $G$.  In that basis the gluing rule becomes
\begin{equation}
\IP{\cR_1 \vert \cR_2} = \delta_{\cR_1 \cR_2}.
\end{equation} 

Next we need the partition function on a few elementary surfaces, from which any $\Sigma$ of interest to us can be pasted together:

\medskip

\noindent {\bf The annulus.}  The annulus of area $a$ has two boundaries, so it gives an operator $A_a: \HH \to \HH$.  The gluing
rule for an annulus can be obtained directly from the action by working out the Hamiltonian; it is
\cite{Aganagic:2004js}
\begin{equation} \label{annulus}
\IP{\cR_1 \vert A_a \vert \cR_2} = \delta_{\cR_1 \cR_2} e^{- a \left(\half g^2_{\YM} C_2(\cR) - i \theta_\YM C_1(\cR) \right)}.
\end{equation}

\medskip 

\noindent {\bf The Wilson line freezing operator.} 
As discussed in Section \ref{sec-open}, we will be particularly interested in computing amplitudes 
involving a particular operator, written $\delta_M(e^{i \oint A}, e^{i \phi})$,
which has the effect of freezing $M$ of the eigenvalues along a Wilson loop to
the values $e^{i\phi_1}, \dots, e^{i\phi_M}$.
A natural guess for the gluing rule with $\delta_M(e^{i \oint A}, e^{i \phi})$ inserted can be obtained by splitting up
the $N$ eigenvalues $\xi_i$ into $(\underbrace{\zeta}_{N-M}, \underbrace{\phi}_M)$:  namely, one 
freezes the $\phi$ eigenvalues in the gluing rule \eqref{gluing-rule} and integrates only over the
$\zeta$ eigenvalues, obtaining
\begin{equation} \label{wilson-line-freeze}
\IP{\Psi_1 \vert \delta_M(e^{i \oint A}, e^{i \phi}) \vert \Psi_2} = \int_{[0,2\pi]^{N-M}} \frac{d\zeta}{2\pi} \abs{D(\zeta)}^2 \,\, 
\Psi_1(-\zeta, -\phi) \Psi_2(\zeta, \phi).
\end{equation}
This integral has an interpretation in the representation basis.  Namely, suppose $\Psi_j(\xi) = 
\Tr_{\cR_j}(e^{i \xi})$.  Then decomposing $\cR_j$ under $U(N-M) \times U(M)$ gives
\begin{equation}
\Psi_j(\xi) = \sum_{\cA_j,\cQ_j} \cB^{\cR_j}_{\cA_j \cQ_j} \Tr_{\cA_j}(e^{i \zeta}) \Tr_{\cQ_j}(e^{i\phi}).
\end{equation} 
The integral over $\zeta$ then picks out the terms with $\cA_1 = \cA_2$, giving
\begin{equation}
\IP{\cR_1 \vert \delta_M(e^{i \oint A}, e^{i \phi}) \vert \cR_2} = \sum_{\cQ_1, \cQ_2, \cA} \cB^{\cR_1}_{\cA \cQ_1} \cB^{\cR_2}_{\cA \cQ_2} \Tr_{\cQ_1}(e^{-i \phi}) \Tr_{\cQ_2}(e^{i \phi}).
\end{equation} 
If we define the skew trace $\Tr_{\cR / \cS}$ as in \eqref{skew-trace},
we can rewrite this as
\begin{equation} \label{wilson-line-freeze-rep-basis}
\IP{\cR_1 \vert \delta_M(e^{i \oint A}, e^{i \phi}) \vert \cR_2} = \sum_{\cA} \Tr_{\cR_1 / \cA} (e^{-i\phi}) \Tr_{\cR_2 / \cA} (e^{i\phi}).
\end{equation}

\medskip

\noindent {\bf The disc.}
The disc of zero area gives a simple state $\Psi_0 \in \HH$ on its boundary,
\begin{equation} \label{disc}
\Psi_0 = \sum_{\cR} S_{\cR 0} \ket{\cR},
\end{equation}
as was computed in \cite{Aganagic:2004js}.  (This should be compared to the 
analogous expression in the non-$q$-deformed Yang-Mills theory --- there one would 
have replaced $S_{\cR 0}$ by $\dim \cR$ up to overall normalization.  
Indeed, $S_{\cR 0} / S_{00}$ is the quantum dimension
$\dim_q \cR$.)

\medskip

\noindent {\bf The dual Wilson line freezing operator.}
Also as discussed in Section \ref{sec-open}, we need the operator $\delta_M(e^{i \Phi}, e^{i \phi})$ which freezes
$M$ of the eigenvalues of the dual Wilson line $\Phi$ at a point of $\Sigma$.  The disc of zero area with this operator 
inserted gives a state $\Psi_\phi \in \HH$ on its boundary, for which the natural formula is
\begin{equation} \label{dual-wilson-line-freeze}
\Psi_\phi = \sum_{\cR,\cS} S_{\cR \cS} \Tr_{\cS / 0} (e^{i \phi}) \ket{\cR}.
\end{equation}
This is a straightforward generalization of the result of \cite{Aganagic:2004js} in the case
$M=N$, along the lines of what we did above for the Wilson line freezing operator.  (In 
the special case $M=N$, the result of \cite{Aganagic:2004js} just 
replaces $\Tr_{\cS / 0}$ by $\Tr_\cS$ in the above.)

\medskip

\noindent {\bf The trinion (pair of pants).}  The trinion has three boundaries, so it gives an element
in $\HH \otimes \HH \otimes \HH$, namely
\begin{equation} \label{trinion}
T = \sum_\cR \frac{\lvert \cR \rangle \otimes \lvert \cR \rangle \otimes \lvert \cR \rangle}{S_{0\cR}}.
\end{equation}
It was computed in \cite{Aganagic:2004js}; we include it here just for 
completeness since it would be relevant for Riemann surfaces of genus $g>1$.

\medskip

In addition to these local ingredients we will include an overall normalization factor $Z_\YM^0$ in the partition function of this $q$-deformed theory; we do not give a general rule for this normalization
here, but in the example we consider in the text, it can be found in \eqref{ym-normalization-sphere}.

A $q$-deformation of 2-dimensional Yang-Mills theory has also been considered in \cite{Buffenoir:1994fh}
where it was formulated using a lattice regularization.  That formulation is likely to be equivalent to the one discussed here and in \cite{Aganagic:2004js}; at least the partition function appears to be the same on an arbitrary surface.


\section{The disc wave function} \label{app-disc-wave-function}

Consider the $q$-deformed 2-d Yang-Mills theory on a disc of area $p$, with parameters fixed by
\begin{equation} \label{2dym-params-redux2}
\theta_{\YM} = \theta, \quad g^2_{\YM} = g_s, \quad q = e^{-g_s}.
\end{equation}
The path integral on this disc gives a state $\Psi(\xi)$ on the boundary, for which one
can give a formula using the rules of Appendix \ref{app-qym}; namely, it is a sum over
irreducible representations $\cR$ of $U(N)$,
\begin{equation} \label{disc-wavefunction}
\Psi(\xi) = \sum_\cR S_{\cR 0} e^{- \half p g_s C_2(\cR)} e^{i \theta p C_1(\cR)} \Tr_\cR e^{i\xi}. 
\end{equation}
Our purpose in this section is to express this $\Psi(\xi)$ in terms of theta functions.  
As reviewed in Appendix \ref{app-group-theory}, the irreducible representations of $\cR$ can be labeled by
their highest weights $\cR = (r_1, \dots, r_N) \in \Z^N$, subject to the constraint $r_1 \ge r_2 \ge \cdots \ge r_N$.
We also write $\hat\cR = \cR + \rho$.  Now we use the Weyl character formula \eqref{weyl-character-formula},
the modular S matrix formula \eqref{s-matrix-formula}, and the Casimirs \eqref{c1}, \eqref{c2};
altogether \eqref{disc-wavefunction} becomes
\begin{multline}
\Psi(\xi) = \sum_\cR \left( e^{-g_s(\norm{\rho}^2 + N/24)} \sum_{\sigma \in S_N} (-)^\sigma e^{g_s \IP{\sigma(\hat{\cR}), \rho}} \right) e^{- \half p g_s (\norm{\hat{\cR}}^2 - \norm{\rho}^2) + i \theta p \IP{\hat{\cR},\bo}} \times \\
\left( D(\xi)^{-1} \sum_{\sigma' \in S_N} (-)^{\sigma'} e^{i \IP{\sigma'(\hat{\cR}), \xi}} \right).
\end{multline}
Writing $\tilde{\sigma} = \sigma \sigma'^{-1}$, and using the Weyl invariance of $\IP{,}$ and $\bo$, 
we can rewrite this as
\begin{equation}
\Psi(\xi) = e^{-g_s(\norm{\rho}^2 + N/24)} D(\xi)^{-1} e^{\half p g_s \norm{\rho}^2} \sum_\cR \sum_{\sigma,\tilde\sigma \in S_N} (-)^{\tilde\sigma} e^{-\half p g_s \norm{\hat{\cR}}^2 + i \IP{\sigma(\hat{\cR}), \tilde{\sigma}(\xi) + \theta p \bo - i g_s \rho}}.
\end{equation}
Now we want to express this as a theta function.  If $\cR$ runs over all weight vectors in a given Weyl chamber, then it is easy to see that $\hat\cR$ runs over all weight vectors in the \ti{interior} of that chamber.\footnote{If $N$ is even, the weight lattice has to be shifted by $\half \bo$.  This subtlety modifies some of our intermediate expressions but cancels out in the final result
\eqref{disc-wavefunction-simplified}.}  Since the Weyl group acts transitively to permute the Weyl chambers, the sum over $\sigma$ and $\cR$ can be combined into a single sum over $\gamma = \sigma(\hat{\cR})$, where $\gamma$ runs over the weight lattice $\Z^N$, or more precisely over those vectors in $\Z^N$ which are not in the boundary of any Weyl chamber.  In terms of $\gamma$ the sum becomes
\begin{equation}
\Psi(\xi) = e^{-g_s(\norm{\rho}^2 + N/24)} D(\xi)^{-1} e^{\half p g_s \norm{\rho}^2} \sum_\gamma e^{-\half p g_s \norm{\gamma}^2 + i\IP{\gamma, \theta p \bo - i g_s \rho} } \sum_{\tilde\sigma \in S_N} (-)^{\tilde\sigma} e^{i \IP{\gamma, \tilde{\sigma} (\xi)}}.
\end{equation}
But now note that the sum over $\tilde{\sigma}$ vanishes if $\gamma$ is
fixed by some Weyl reflection $\tilde{\sigma}$, i.e. if it lies on the boundary of a Weyl chamber.
Therefore we can extend the sum over $\gamma$ to run over the whole weight lattice $\Z^N$.  The sum can be written (now dropping the $\tilde{}$ on $\sigma$ for notational simplicity)
\begin{equation} \label{disc-wavefunction-theta}
\Psi(\xi) = e^{-g_s(\norm{\rho}^2 + N/24)} D(\xi)^{-1} e^{\half p g_s \norm{\rho}^2} \sum_{\sigma \in S_N} (-)^\sigma \Theta_N \left(\frac{1}{2\pi}(\sigma(\xi) + \theta p \bo - i g_s \rho), \frac{i p g_s}{2\pi} \right).
\end{equation}
Here we have introduced the theta function of $\Z^N$,
\begin{equation} \label{theta-function}
\Theta_N (z,\tau) = \sum_{\gamma \in \Z^N} e^{\pi i \tau \norm{\gamma}^2} e^{2 \pi i \IP{\gamma,z}}, \qquad \for z \in \R^N,\,\im \tau > 0,
\end{equation}
which obeys the functional equation
\begin{equation} \label{theta-functional-equation}
\Theta_N (z+\tau \lambda, \tau) = e^{- \pi i \tau \norm{\lambda}^2} e^{-2 \pi i \IP{\lambda,z}} \Theta_N(z,\tau) \qquad \for \lambda \in \Z^N.
\end{equation}
One can simplify \eqref{disc-wavefunction-theta} in the case $p=1$; namely,
in this case, one can apply \eqref{theta-functional-equation} with $\lambda = -\rho$.
After some straightforward algebra using \eqref{vandermonde} the sum over $\sigma$ cancels the denominator $D(\xi)$, leaving
\begin{equation} \label{disc-wavefunction-simplified}
\Psi(\xi) = e^{-g_s N/24} \Theta_N \left(\frac{1}{2\pi}(\xi + \theta \bo), \frac{i g_s}{2\pi} \right).
\end{equation}




\section{Factorization} \label{app-factorization}

In this appendix we give some mathematical results which are used in the text to establish
the factorization of the 2-dimensional Yang-Mills amplitude with operator insertions into chiral and anti-chiral parts.


\subsection*{Coupled representations}

An essential technical tool in studying the factorization of 2-d Yang-Mills into chiral and anti-chiral sectors, introduced
in \cite{Gross:1993hu}, is the notion of a \ti{coupled representation} of $U(N)$.  Here we review the notion of coupled
representation.

Recall that the irreducible representations of $SU(N)$ correspond to Young diagrams with no more than $N$ rows.
Such a diagram can be specified by giving the lengths of the rows, $(\lambda_1, \dots, \lambda_N)$, with $\lambda_1 \ge
\lambda_2 \ge \cdots \ge \lambda_N$, and all $\lambda_i \ge 0$.  Denote the fundamental representation by $V$.  Then
the representation of $SU(N)$ corresponding to $\lambda$ is obtained as a particular subspace of $V^{\otimes \abs{\lambda}}$, roughly by symmetrizing over the rows and antisymmetrizing over the columns.
In the case of $SU(N)$ one can obtain all representations in this way, but for $U(N)$
one also needs to include copies of the antifundamental representation $\overline{V}$.  This corresponds to considering ``extended Young diagrams''
which can include ``antiboxes'' as well as boxes, i.e. removing the constraint that all $\lambda_i \ge 0$, as shown in Figure \ref{fig-young-antiboxes}.
\figtex{fig-young-antiboxes}{An extended Young diagram representing a representation of $U(N)$ (for $N=9$) constructed by symmetrization and antisymmetrization over both fundamental representations (white boxes) and antifundamental representations (grey boxes).}{0.60}

Now we can describe the coupled representations of $U(N)$.  The extended Young diagram for a coupled representation $R$ is built from 
two Young diagrams $R_+$, $R_-$, just by putting boxes in the shape $R_+$ at the upper left, antiboxes in the shape of an upside-down version of $R_-$ at the lower right, and zero-length rows in between so that the total height of the diagram is $N$.  An example is shown in Figure \ref{fig-coupled-representation}.  (Note that this procedure only makes sense for sufficiently large $N$, namely, $N$ has to be greater than the combined number of rows in $R_+$ and $R_-$.  We consider coupled representations for which one of $R_\pm$ has more than $\half N$ rows to be undefined.)
We write the coupled representation $\cR = R_+ \overline{R_-}$.
\figtex{fig-coupled-representation}{A coupled representation of $U(N)$ (for $N=9$).}{0.55}
We will also need a slight generalization of this construction:  denote by $R_+ \overline{R_-} [l]$ the representation obtained by
tensoring $R_+ \overline{R_-}$ with $l$ powers of the determinant representation of $U(N)$.  This is equivalent to shifting
the lengths of all rows by $l$.

The representations $R_+ \overline{R_-}[l]$, where $R_+$ and $R_-$ are Young diagrams with $\le \half N$ rows, 
are a basis for the representation ring of $U(N)$ (at least for $N$ even.)  Another such basis would be obtained by
taking instead $R_+ \otimes \overline{R_-}$.  The two are not the same, although $R_+ \overline{R_-}$ is the principal component
of $R_+ \otimes \overline{R_-}$; the relation between the two is given by
\begin{equation} \label{tensortocoupled}
R_+ \otimes \overline{R_-} = \bigoplus_{S_\pm} \left[ \sum_{S'} N^{R_+}_{S_+ S'} N^{R_-}_{S_- S'} \right] S_+ \overline{S_-}
\end{equation}
(so long as $R_\pm$ each have $\le \half N$ rows; otherwise the right side would include $S_+ \overline{S_-}$
where one of $S_\pm$ has more than $\half N$ rows, which we have not defined.)
Here $S'$ and $S_\pm$ run over all (ordinary) Young diagrams.  Note that the only $S_+$ that 
contribute are ones which are contained in $R_+$, and 
similarly for $S_-$, so the sum in \eqref{tensortocoupled} is finite.  It gives the decomposition of $R_+ \otimes \overline{R_-}$ into irreducibles.

We will also need the inverse of \eqref{tensortocoupled}.  
To get it, we use the fact that the sum over $S'$ can be undone by summing
over another auxiliary Young diagram $R'$, using formula \eqref{ghost-cancellation}, here in the form
\begin{equation} \label{master-inverse-formula}
\sum_{R',S'} (-)^{\abs{R'}} N_{B_+ R' S'}^{A_+} N_{B_- R'^t S'}^{A_-} = \delta_{B_+}^{A_+} \delta_{B_-}^{A_-}.
\end{equation}
Applying this to \eqref{tensortocoupled} one obtains
\begin{equation} \label{coupledtotensor}
S_+ \overline{S_-} = \bigoplus_{R_\pm} \left( \sum_{R'} (-)^{\abs{R'}} N^{S_+}_{R_+ R'} N^{S_-}_{R_- R'^t} \right) R_+ \otimes \overline{R_-}.
\end{equation}
Again here, $R'$ and $R_\pm$ run over all ordinary Young diagrams, but only those $R_\pm$ which are contained
in $S_\pm$ contribute, so the sum is finite.

One can also rewrite \eqref{tensortocoupled} in terms of characters as
\begin{equation} \label{tensortocoupled2}
\sum_{R_\pm} \Tr_{R_+ \otimes \overline{R_-}}(U) \schur_{R_+}(V_+) \schur_{R_-}(V_-) = \sum_{S_\pm} \left( \sum_{S'} \schur_{S_+ \otimes S'}(V_+) \schur_{S_- \otimes S'}(V_-) \right) \Tr_{S_+ \overline{S_-}} (U),
\end{equation}
and \eqref{coupledtotensor} as
\begin{equation} \label{coupledtotensor2}
\sum_{S_\pm} \Tr_{S_+ \overline{S_-}}(U) \schur_{S_+}(V_+) \schur_{S_-}(V_-) = \sum_{R_\pm} \left( \sum_{R'} (-)^{\abs{R'}} \schur_{R_+ \otimes R'}(V_+)  \schur_{R_- \otimes R'^t}(V_-) \right) \Tr_{R_+ \otimes \overline{R_-}}(U).
\end{equation}

It is useful to know how to decompose the Casimir operators for $\cR = R_+ \overline{R_-} [l]$, 
\begin{align}
C_1(R_+ \overline{R_-} [l]) &= \abs{R_+} - \abs{R_-} + Nl,  \label{c1-split} \\ 
C_2(R_+ \overline{R_-} [l]) &= \kappa_{R_+} + \kappa_{R_-} + N (\abs{R_+} + \abs{R_-}) + 2l ( \abs{R_+} - \abs{R_-} ) + N l^2. \label{c2-split}
\end{align}
Here we introduced
\begin{equation}
\kappa_R = \sum r_i^2 - \sum c_i^2,
\end{equation}
where $r_i$ are the lengths of the rows of the Young diagram $R$ and $c_i$ are the lengths of the columns.
(So $\kappa_R = -\kappa_{R^t}$, where $R^t$ denotes the transpose of the diagram.)


\subsection*{Branching rules}

To understand the behavior of Yang-Mills theory when some eigenvalues are frozen, we need to understand
the branching rules for coupled representations:  how does a coupled representation of $U(N)$ decompose
under $U(N) \to U(N_1) \times U(N_2)$, for $N_1 + N_2 = N$?  In this section we will give formulas for these
branching rules.

We begin with the case of a representation $\cR$ of $U(N)$ which is given by an ordinary Young diagram,
$\cR = R$ (i.e. it can
be constructed using only fundamental indices, without the need for antifundamentals.)  In this case
the branching rule is well known (it is given e.g. in \cite{MR1354144} in the language of Schur functions),
\begin{equation} \label{branching-rule-fundamentals}
R \to \bigoplus_{R_1, R_2} N^R_{R_1 R_2} [R_1, R_2].
\end{equation}
Here $R_1$ and $R_2$ run over all Young diagrams (but of course the coefficient $N^R_{R_1 R_2}$ is only nonzero if $\abs{R_1} + \abs{R_2} = \abs{R}$.)  The same rule holds for representations $\overline{R}$ constructed only from antifundamentals.  Combining these
two rules we can find the branching rule for tensor products,
\begin{equation} \label{branching-rule-tensor-products}
R_+ \otimes \overline{R_-} \to \bigoplus_{R_{1\pm}, R_{2\pm}} N^{R_+}_{R_{1+} R_{2+}} N^{R_-}_{R_{1-} R_{2-}} [R_{1+} \otimes \overline{R_{1-}}, R_{2+} \otimes \overline{R_{2-}}].
\end{equation}
Now we can convert \eqref{branching-rule-tensor-products} into a branching rule for coupled representations.
We start with a coupled representation $R_+ \overline{R_-}$, apply \eqref{coupledtotensor} to write it in terms of tensor products, then apply \eqref{branching-rule-tensor-products} to decompose it under $U(N_1) \times U(N_2)$, then apply \eqref{tensortocoupled} to write the $U(N_2)$ part in terms of coupled representations again.  This leads straightforwardly to
\begin{equation}
R_+ \overline{R_-} \to \bigoplus_{A_\pm, Q_\pm} \left( \sum_{S',A'} (-)^{\abs{S'}} N^{R_+}_{A_+ Q_+ S' A'} N^{R_-}_{A_- Q_- S'^t A'} \right)  [Q_+ \otimes \overline{Q_-}, A_+ \overline{A_-}].
\end{equation}
But using \eqref{ghost-cancellation} the sums over $S'$ and $A'$ cancel one another, and
we are left with
\begin{equation} \label{branching-rule-coupled}
R_+ \overline{R_-} \to \bigoplus_{A_\pm, Q_\pm} \left( N^{R_+}_{A_+ Q_+} N^{R_-}_{A_- Q_-} \right)  [Q_+ \otimes \overline{Q_-}, A_+ \overline{A_-}].
\end{equation}
Note that for this formula to make sense we need that the $A_+ \overline{A_-}$ that appear are all well defined, which
requires that $R_\pm$ are shorter than $\half N_2$ rows.

Tensoring with powers of the determinant representation is also straightforward --- writing this representation $[1]$, 
it has the simple branching rule $[1] \to \left[[1],[1]\right]$.  This leads to
\begin{equation} \label{branching-rule-coupled-u1}
R_+ \overline{R_-}[l] \to \bigoplus_{A_\pm, Q_\pm} \left( N^{R_+}_{A_+ Q_+} N^{R_-}_{A_- Q_-} \right)  \left[ Q_+ \otimes \overline{Q_-} \otimes [l], A_+ \overline{A_-}[l] \right].
\end{equation}
The form of \eqref{branching-rule-coupled-u1} that we
ultimately use will be, when $\cR = R_+ \overline{R_-}[l]$ and $\cA = A_+ \overline{A_-}[l]$,
\begin{equation} \label{branching-rule-coupled-characters}
\Tr_{\cR / \cA} (e^{i\phi}) = \schur_{R_+ / A_+} (e^{i\phi}) \schur_{R_- / A_-} (e^{-i\phi}) \det(e^{i l \phi}).
\end{equation}
Here $e^{i \phi} \in U(N_1)$, and we emphasize again that \eqref{branching-rule-coupled-characters} holds only when $R_\pm$ are shorter than $\half N_2$ rows.

\subsection*{Factorization of $S_{\cP\cQ}$}

In order to understand the large-$N$ factorization of the $q$-deformed Yang-Mills with insertions,
we need to study the properties of the modular matrix $S_{\cP \cQ}$ of the
$U(N)$ Chern-Simons theory in the case where $\cP$ and $\cQ$ are coupled representations,
\begin{align}
\cP &= P_+ \overline{P_-}[l], \\ 
\cQ &= Q_+ \overline{Q_-}[m].
\end{align}
The most naive expectation would be that $S_{\cP\cQ}$ would be factorized into a piece
depending on $P_+, Q_+$ and a piece depending on $P_-, Q_-$.  
As we will show below, the correct formula is a sum of such terms,
\begin{multline} \label{spq-factorized}
S_{\cP\cQ} = M(q) \eta(q)^N 
q^{-\half (\kappa_{Q_+} + \kappa_{Q_-})  + (-\half N - m) \abs{P_+} + (-\half N + m) \abs{P_-} + (-\half N - l) \abs{Q_+} + (-\half N + l) \abs{Q_-} - 2lmN} \times \\
\sum_{R'} (-)^{\abs{R'}} q^{N\abs{R'}} C_{P_+ Q^t_+ R'} C_{P_- Q^t_- R'^t},
\end{multline}
where $C$ is the topological vertex of \cite{Aganagic:2003db} (in canonical framing.)
This formula was already obtained in \cite{Aganagic:2004js}, in the special case $P_\pm = 0$,
by direct computation using results from \cite{Iqbal:2004ne}.  

Here we will give a physical argument which explains
the reason for the factorization in the more general case of arbitrary $P_\pm$ and $Q_\pm$.\footnote{Our argument is not completely
rigorous, but we hasten to add that the final result has been checked on a computer for a variety of representations $P_\pm$
and $Q_\pm$.}  We restrict to the
case $l = m = 0$, i.e. $\cP = P_+ \overline{P_-}$ and $\cQ = Q_+ \overline{Q_-}$; the dependence on $l$ and $m$
is easily restored using \eqref{s-matrix-formula} and \eqref{c1-split}.
The idea is to realize the left side of \eqref{spq-factorized} as the partition function of the A model
topological string on the resolved conifold 
$T^*S^3$, with $N$ branes wrapped on $S^3$ and four infinite stacks of non-compact branes.  
Via the geometric transition of \cite{Gopakumar:1998ki} this is equal to the partition function
of the A model on the deformed conifold $\OO(-1) \oplus \OO(-1) \to \C\PP^1$, including the four
infinite stacks of non-compact branes \cite{Ooguri:1999bv}.  The latter partition function can be computed
using the topological vertex techniques of \cite{Aganagic:2003db}, which (as we will see) gives the right side
of \eqref{spq-factorized}.\footnote{Although the geometry $\OO(-1) \oplus \OO(-1) \to \C\PP^1$ is also
considered in the main text, the role the topological string is playing here is quite different from the
way it appears there.  We are using it here only as an auxiliary tool to prove the factorization of $S_{\cP \cQ}$.}

So we begin with the geometry $T^*S^3$.  As in \cite{Aganagic:2002qg}, we represent it as a $T^2 \times \R$
fibration over $\R^3$.  There are two lines $l$, $l'$ in $\R^3$ over which an $S^1$ of the $T^2 \times \R$ fiber degenerates, which are shown in Figure \ref{fig-resolved}.  Also shown in that figure is the Lagrangian submanifold $S^3$, which is a $T^2$
fibration over a line interval connecting $l$ and $l'$.  Finally, we also indicate four Lagrangian submanifolds of $T^*S^3$, constructed as described in \cite{Aganagic:2000gs}.  Each such submanifold has topology $S^1 \times \R^2$.

\figtex{fig-resolved}{A toric representation of the resolved conifold geometry $T^*S^3$, with the Lagrangian submanifold $S^3$ indicated, as well as four noncompact Lagrangian submanifolds with topology $S^1 \times \R^2$.  Each noncompact submanifold supports an infinite stack of branes with the $GL(\infty)$-valued complexified holonomy indicated.}{0.25} 

We will consider the topological A model on this geometry.  On each Lagrangian submanifold we place an infinite stack of A model D-branes.  There is then a $GL(\infty)$-valued complexified Wilson line on each stack, which couples to the open strings and thus enters the partition function.  We write these four Wilson lines $U_\pm$ and $U'_\pm$, as indicated in the figure.  We also include $N$ D-branes on the Lagrangian submanifold $S^3$.

The A model partition function in this geometry can be computed following \cite{Ooguri:1999bv,Aganagic:2002qg}.  The closed string partition function is essentially trivial --- it just gives an overall function of $q$, which is potentially ambiguous due to the non-compactness of the Calabi-Yau.  We set it to $1$ here.  The open string partition function receives contributions from annulus diagrams running along the lines $l$ and $l'$.  On each line there are three kinds of annuli which contribute:  one kind with the two boundaries on the two infinite stacks of branes, and two kinds with one boundary on an infinite stack and one boundary on the $N$ branes on $S^3$.

Integrating out the open string sector connecting the two infinite stacks, one gets a contribution to the partition function
\begin{equation} \label{pf-one}
\sum_R (-)^{\abs{R}} \schur_R(U_+) \schur_{R^t}(U_-),
\end{equation}
while the sectors connecting the infinite stacks to the $N$ branes on $S^3$ contribute operators
\begin{equation} \label{pf-two}
\left( \sum_{P_+} \schur_{P_+}(U_+) \Tr_{P_+}(V) \right) \left( \sum_{P_-} \schur_{P_-}(U_-) \Tr_{P_-}(V^\dagger) \right),
\end{equation}
with $V$ representing the holonomy around the $S^1$ where the annuli over $l$ meet $S^3$.

Combining \eqref{pf-one} and \eqref{pf-two}, one obtains for the open string contribution from the branes on $l$
\begin{equation} \label{open-string-contrib}
\sum_{R,P_\pm} (-)^{\abs{R}} \schur_{R \otimes P_+}(U_+) \schur_{R^t \otimes P_-}(U_-) \Tr_{\cP}(V).
\end{equation}
 Using the formula \eqref{coupledtotensor2}, \eqref{open-string-contrib} becomes
\begin{equation}
\sum_{P_\pm} \schur_{P_+}(U_+) \schur_{P_-}(U_-) \Tr_{\cP}(V).
\end{equation}
Similarly, from the branes on $l'$ we obtain
\begin{equation}
\sum_{Q_\pm} \schur_{Q_+}(U'_+) \schur_{Q_-}(U'_-) \Tr_{\cQ}(V'),
\end{equation}
where $V'$ is the holonomy on the $S^1$ where the annuli over $l'$ meet $S^3$.  Altogether, then, the contribution from open strings which involve the four infinite stacks of branes is
\begin{equation}
\sum_{P_\pm, Q_\pm} \left[ \schur_{P_+}(U_+) \schur_{P_-}(U_-) \schur_{Q_+}(U'_+) \schur_{Q_-}(U'_-) \right] \Tr_{\cP} (V) \Tr_{\cQ} (V').
\end{equation}
We view this $\schur_P(V) \schur_Q(V')$ as a product of Wilson line operators deforming the open string theory on the $N$ branes on $S^3$, namely the $U(N)$ Chern-Simons theory; these operators are arranged so as to 
give a Hopf link in $S^3$.  The Chern-Simons amplitude with this link inserted is simply $S_{\cP\cQ}$ \cite{Witten:1989hf}, so the topological string partition function is finally
\begin{equation} \label{top-string-cs}
\psi_\Top = \sum_{P_\pm, Q_\pm} \left[ \schur_{P_+}(U_+) \schur_{P_-}(U_-) \schur_{Q_+}(U'_+) \schur_{Q_-}(U'_-) \right] S_{\cP \cQ}.
\end{equation}

To get the desired factorization of $S_{\cP\cQ}$ we now compute this partition function in another
way:  namely, we consider the geometric transition \cite{Gopakumar:1998ki} to the deformed conifold $\OO(-1) \oplus \OO(-1) \to \C\PP^1$, with the volume of $\C\PP^1$ given by $t = N g_s$, and with four infinite stacks of branes,
as shown in Figure \ref{fig-after-transition}.  Using the topological vertex of \cite{Aganagic:2003db}, the A model
partition function in this geometry can be computed as\footnote{One could determine the framing factors in \eqref{top-string-vertex} from first
principles; we determined them by requiring that the large $N$ limit of our factorization formula be correct.}
\begin{multline} \label{top-string-vertex}
\psi_\Top = M(q) \eta(q)^N \sum_{P_\pm, Q_\pm} \left[ \schur_{P_+}(U_+) \schur_{P_-}(U_-) \schur_{Q_+}(U'_+) \schur_{Q_-}(U'_-) \right] \times \\
q^{-\half \left(\kappa(Q_+) + \kappa(Q_-) + N(\abs{P_+} + \abs{Q_+} + \abs{P_-} + \abs{Q_-})\right)} \sum_{R'} (-)^{\abs{R'}} q^{N\abs{R'}} C_{P_+ Q^t_+ R'} C_{P_- Q^t_- R'^t}.
\end{multline}
More precisely, the factors $M(q) \eta(q)^N$ in \eqref{top-string-vertex} 
do not appear in \cite{Aganagic:2003db}, so they deserve some extra comment.  
The factor $M(q)$ is associated with the closed string sector; namely, in the large volume limit, it was shown in \cite{Gopakumar:1998ii,Faber:2000ma} that the closed A model partition function reduces to $M(q)^{\chi / 2}$ on a Calabi-Yau threefold with Euler characteristic $\chi$.  In the non-compact case
we are considering here $\chi$ is ambiguous, but the change in $\chi$ that occurs due to the geometric transition
would naturally be $\Delta \chi = 2$ (a 3-cycle gets replaced by a 2-cycle).  Thus, since we took $\chi = 0$ before the transition (we chose the closed string contribution in $\psi_\Top$ to be $1$), we should take $\chi = 2$ after the transition, which accounts for the factor $M(q)$.  The factor $\eta(q)^N$ is not as easily understood, but is presumably associated with the fact that $N$ D3-branes have disappeared in the transition; the same factor appeared in \cite{Saulina:2004da} associated to a single noncompact D3-brane.
Comparing \eqref{top-string-cs} and \eqref{top-string-vertex} one obtains the desired 
formula \eqref{spq-factorized}.
\figtex{fig-after-transition}{The geometry of Figure \ref{fig-resolved} after the geometric transition.}{0.15}

One can also compute a factorization formula for $1 / S_{0\cP}$, as was done in \cite{Aganagic:2004js}:
\begin{equation} \label{inverse-sp0-factorized}
\frac{1}{S_{0\cP}} = M(q)^{-1} \eta(q)^{-N} q^{\half N(\abs{P_+}+\abs{P_-})} \frac{\sum_{R} C_{P_+ 0R} q^{N\abs{R}} C_{P_- 0 R}}{C_{00P_+}^2{C_{00P_-}^2}}
\end{equation}
It would be interesting to know whether there is a physical argument for this factorization formula along the lines
of the argument given above for \eqref{spq-factorized}.


\subsection*{Factorization of $q$-deformed Yang-Mills amplitudes}

Now we are ready to consider the large $N$ factorization of the $q$-deformed Yang-Mills amplitudes with operator insertions.  We will approach the problem by factorizing each of the elementary ingredients from Appendix \ref{app-qym} separately.

In the large $N$ ('t Hooft) limit, a convenient basis for the Hilbert space $\HH$ is given by
the characters of the ``coupled representations'' which we introduced in Appendix
\ref{app-group-theory}; we write $\cR = \ket{R_+ \overline{R_-}[l]}$ for the states corresponding to the
coupled representations.  As was argued in \cite{Gross:1993hu}, these representations are
the only ones which contribute to the large $N$ amplitudes, to all orders in $1/N$; the reason is that they
are the only ones with $C_2(\cR) \sim N$.  All other representations are exponentially suppressed in the 't Hooft limit
by the factors $e^{- \half a g^2_\YM C_2(\cR) }$ which appear on a surface of area $a$ as in Appendix \ref{app-qym}
--- in the large $N$ limit they give contributions which are $\OO(e^{-N})$.

In this factorized basis, the ingredients of the amplitudes can be written as follows:

\medskip

\noindent {\bf The annulus.}  Using \eqref{annulus} together with \eqref{c1-split} and \eqref{c2-split}, we obtain easily
\begin{multline} \label{annulus-factorized}
\IP{R_{1+} \overline{R_{1-}}[l_1] \lvert A_a \lvert R_{2+} \overline{R_{2-}}[l_2]} = \delta_{R_{1+} R_{2+}} \delta_{R_{1-} R_{2-}} \delta_{l_1 l_2} e^{- a \half g^2_{\YM} N l^2} e^{i N a \theta_\YM l} \times \\
e^{- a \left(\half g^2_{\YM} (\kappa_{R_+} + N \abs{R_+} + 2l \abs{R_+}) - i \theta_\YM \abs{R_+} \right)}
e^{- a \left(\half g^2_{\YM} (\kappa_{R_-} + N \abs{R_-} - 2l \abs{R_-}) + i \theta_\YM \abs{R_-} \right)}. 
\end{multline}

\medskip
 
\noindent{\bf The Wilson line freezing operator.}  From \eqref{wilson-line-freeze-rep-basis} and \eqref{branching-rule-coupled-characters} 
we find
\begin{multline} \label{wilson-line-freeze-factorized}
\IP{R_{1+}\overline{{R}_{1-}}[l_1] \vert \delta_M(e^{i \oint A}, e^{i\phi}) \vert R_{2+} \overline{{R}_{2-}}[l_2]} = \\
\delta_{l_1,l_2} \left( \sum_{A_+} \schur_{R_{1+} / A_+}(e^{-i\phi}) \schur_{R_{2+} / A_+}(e^{i\phi}) \right) \left( \sum_{A_-} \schur_{R_{1-} / A_-}(e^{i\phi}) \schur_{R_{2-} / A_-}(e^{-i\phi}) \right).
\end{multline}

\medskip

\noindent{\bf The disc.}  From \eqref{disc} and \eqref{spq-factorized} this is
\begin{equation} \label{disc-factorized}
\Psi_0 = M(q) \eta(q)^N \sum_{l \in \Z, R_\pm} q^{-\half N (\abs{R_+}+\abs{R_-})} \left[ \sum_{R'} (-)^{\abs{R'}} q^{N \abs{R'}} C_{R_+ 0 R'} C_{R_- 0 R'^t}\right] \ket{R_+ \overline{{R}_-} [l]}.
\end{equation}

\medskip

\noindent{\bf The dual Wilson line freezing operator.}  
From \eqref{dual-wilson-line-freeze}, \eqref{spq-factorized} and \eqref{branching-rule-coupled-characters} we get
\begin{multline} \label{dual-wilson-line-freeze-factorized}
\Psi_\phi = M(q) \eta(q)^N \times \\
\sum_{l,m \in \Z, R_\pm, S_\pm} 
q^{-\half (\kappa_{S_+} + \kappa_{S_-})  + (-\half N - m) \abs{R_+} + (-\half N + m) \abs{R_-} + (-\half N - l) \abs{S_+} + (-\half N + l) \abs{S_-} - 2lmN} \times \\
\left[ \sum_{R'} (-)^{\abs{R'}} q^{N \abs{R'}} C_{R_+ S^t_+ R'} C_{R_- S^t_- R'^t}\right] \schur_{S_+}(e^{- i \phi}) \schur_{S_-} (e^{i \phi}) \det(e^{i m \phi}) \ket{R_+ \overline{{R}_-} [l]}.
\end{multline}

\medskip

\noindent {\bf The trinion (pair of pants).}  From \eqref{trinion} and \eqref{inverse-sp0-factorized} this is
\begin{equation} \label{trinion-factorized}
T = \sum_{l \in \Z, R_\pm} \left[ \sum_{R'} q^{\half N(\abs{R_+}+\abs{R_-})} \frac{C_{R_+ 0R'} q^{N\abs{R'}} C_{R_- 0 R'}}{C_{00R_+}^2{C_{00R_-}^2}} \right] \ket{R_+ \overline{R_-} [l]} \otimes \ket{R_+ \overline{R_-} [l]} \otimes \ket{R_+ \overline{R_-} [l]}.
\end{equation}




\renewcommand{\baselinestretch}{1}
\small\normalsize

\bibliography{physics}

\end{document}

fig-after-transition.tex
% PSTricks TeX macro
% Title: /home/andy/texdocs/2dym/fig-after-transition.dia
% Creator: Dia v0.94
% CreationDate: Tue Jan 25 21:27:48 2005
% For: andy
% \usepackage{pstricks}
% The following commands are not supported in PSTricks at present
% We define them conditionally, so when they are implemented,
% this pstricks file will use them.
\ifx\setlinejoinmode\undefined
  \newcommand{\setlinejoinmode}[1]{}
\fi
\ifx\setlinecaps\undefined
  \newcommand{\setlinecaps}[1]{}
\fi
% This way define your own fonts mapping (for example with ifthen)
\ifx\setfont\undefined
  \newcommand{\setfont}[2]{}
\fi
\pspicture(4.950000,-43.050000)(43.050000,-6.950000)
\scalebox{1.000000 -1.000000}{
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\newrgbcolor{diafillcolor}{1.000000 1.000000 1.000000}
\psset{fillcolor=diafillcolor}
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinecaps{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\psline(5.000000,20.000000)(18.000000,20.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinecaps{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\psline(18.000000,7.000000)(18.000000,20.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinecaps{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\psline(30.000000,32.000000)(30.000000,43.000000)
\psset{linewidth=0.100000}
\psset{linestyle=dotted,dotsep=0.200000}
\psset{linestyle=dotted,dotsep=0.200000}
\setlinecaps{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\psline(8.000000,20.000000)(8.000000,16.000000)
\psset{linewidth=0.100000}
\psset{linestyle=dotted,dotsep=0.200000}
\psset{linestyle=dotted,dotsep=0.200000}
\setlinecaps{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\psline(41.000000,32.000000)(41.000000,28.000000)
\psset{linewidth=0.100000}
\psset{linestyle=dotted,dotsep=0.200000}
\psset{linestyle=dotted,dotsep=0.200000}
\setlinecaps{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\psline(18.000000,10.000000)(14.000000,10.000000)
\psset{linewidth=0.100000}
\psset{linestyle=dotted,dotsep=0.200000}
\psset{linestyle=dotted,dotsep=0.200000}
\setlinecaps{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\psline(30.000000,40.000000)(26.000000,40.000000)
\setfont{Helvetica}{0.800000}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\rput[l](40.000000,27.000000){\scalebox{1 -1}{$U_-$}}
\setfont{Helvetica}{0.800000}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\rput[l](7.000000,15.000000){\scalebox{1 -1}{$U_+$}}
\setfont{Helvetica}{0.800000}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\rput[l](11.000000,10.000000){\scalebox{1 -1}{$U'_+$}}
\setfont{Helvetica}{0.800000}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\rput[l](23.000000,40.000000){\scalebox{1 -1}{$U'_-$}}
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinecaps{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\psline(30.000000,32.000000)(43.000000,32.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinecaps{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\psline(18.000000,20.000000)(30.000000,32.000000)
}\endpspicture
fig-coupled-representation.tex
% PSTricks TeX macro
% Title: /home/andy/texdocs/2dym/fig-coupled-representation.dia
% Creator: Dia v0.94
% CreationDate: Tue Jan 25 22:05:23 2005
% For: andy
% \usepackage{pstricks}
% The following commands are not supported in PSTricks at present
% We define them conditionally, so when they are implemented,
% this pstricks file will use them.
\ifx\setlinejoinmode\undefined
  \newcommand{\setlinejoinmode}[1]{}
\fi
\ifx\setlinecaps\undefined
  \newcommand{\setlinecaps}[1]{}
\fi
% This way define your own fonts mapping (for example with ifthen)
\ifx\setfont\undefined
  \newcommand{\setfont}[2]{}
\fi
\pspicture(16.975000,-18.025000)(44.117500,-4.975000)
\scalebox{1.000000 -1.000000}{
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\newrgbcolor{diafillcolor}{1.000000 1.000000 1.000000}
\psset{fillcolor=diafillcolor}
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinecaps{0}
\newrgbcolor{dialinecolor}{0.749020 0.749020 0.749020}
\psset{linecolor=dialinecolor}
\psline(28.000000,7.000000)(28.000000,16.000000)
\newrgbcolor{dialinecolor}{0.749020 0.749020 0.749020}
\psset{linecolor=dialinecolor}
\pspolygon*(27.000000,12.000000)(27.000000,13.000000)(28.000000,13.000000)(28.000000,12.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(27.000000,12.000000)(27.000000,13.000000)(28.000000,13.000000)(28.000000,12.000000)
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(28.000000,9.000000)(28.000000,10.000000)(29.000000,10.000000)(29.000000,9.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(28.000000,9.000000)(28.000000,10.000000)(29.000000,10.000000)(29.000000,9.000000)
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(31.000000,7.000000)(31.000000,8.000000)(32.000000,8.000000)(32.000000,7.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(31.000000,7.000000)(31.000000,8.000000)(32.000000,8.000000)(32.000000,7.000000)
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(30.000000,7.000000)(30.000000,8.000000)(31.000000,8.000000)(31.000000,7.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(30.000000,7.000000)(30.000000,8.000000)(31.000000,8.000000)(31.000000,7.000000)
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(29.000000,7.000000)(29.000000,8.000000)(30.000000,8.000000)(30.000000,7.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(29.000000,7.000000)(29.000000,8.000000)(30.000000,8.000000)(30.000000,7.000000)
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(28.000000,7.000000)(28.000000,8.000000)(29.000000,8.000000)(29.000000,7.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(28.000000,7.000000)(28.000000,8.000000)(29.000000,8.000000)(29.000000,7.000000)
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(29.000000,8.000000)(29.000000,9.000000)(30.000000,9.000000)(30.000000,8.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(29.000000,8.000000)(29.000000,9.000000)(30.000000,9.000000)(30.000000,8.000000)
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(28.000000,8.000000)(28.000000,9.000000)(29.000000,9.000000)(29.000000,8.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(28.000000,8.000000)(28.000000,9.000000)(29.000000,9.000000)(29.000000,8.000000)
\newrgbcolor{dialinecolor}{0.749020 0.749020 0.749020}
\psset{linecolor=dialinecolor}
\pspolygon*(26.000000,15.000000)(26.000000,16.000000)(27.000000,16.000000)(27.000000,15.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(26.000000,15.000000)(26.000000,16.000000)(27.000000,16.000000)(27.000000,15.000000)
\newrgbcolor{dialinecolor}{0.749020 0.749020 0.749020}
\psset{linecolor=dialinecolor}
\pspolygon*(27.000000,15.000000)(27.000000,16.000000)(28.000000,16.000000)(28.000000,15.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(27.000000,15.000000)(27.000000,16.000000)(28.000000,16.000000)(28.000000,15.000000)
\newrgbcolor{dialinecolor}{0.749020 0.749020 0.749020}
\psset{linecolor=dialinecolor}
\pspolygon*(26.000000,14.000000)(26.000000,15.000000)(27.000000,15.000000)(27.000000,14.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(26.000000,14.000000)(26.000000,15.000000)(27.000000,15.000000)(27.000000,14.000000)
\newrgbcolor{dialinecolor}{0.749020 0.749020 0.749020}
\psset{linecolor=dialinecolor}
\pspolygon*(27.000000,14.000000)(27.000000,15.000000)(28.000000,15.000000)(28.000000,14.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(27.000000,14.000000)(27.000000,15.000000)(28.000000,15.000000)(28.000000,14.000000)
\newrgbcolor{dialinecolor}{0.749020 0.749020 0.749020}
\psset{linecolor=dialinecolor}
\pspolygon*(27.000000,13.000000)(27.000000,14.000000)(28.000000,14.000000)(28.000000,13.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(27.000000,13.000000)(27.000000,14.000000)(28.000000,14.000000)(28.000000,13.000000)
\newrgbcolor{dialinecolor}{0.749020 0.749020 0.749020}
\psset{linecolor=dialinecolor}
\pspolygon*(25.000000,15.000000)(25.000000,16.000000)(26.000000,16.000000)(26.000000,15.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(25.000000,15.000000)(25.000000,16.000000)(26.000000,16.000000)(26.000000,15.000000)
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(19.000000,13.000000)(19.000000,14.000000)(20.000000,14.000000)(20.000000,13.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(19.000000,13.000000)(19.000000,14.000000)(20.000000,14.000000)(20.000000,13.000000)
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(22.000000,7.000000)(22.000000,8.000000)(23.000000,8.000000)(23.000000,7.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(22.000000,7.000000)(22.000000,8.000000)(23.000000,8.000000)(23.000000,7.000000)
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(21.000000,7.000000)(21.000000,8.000000)(22.000000,8.000000)(22.000000,7.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(21.000000,7.000000)(21.000000,8.000000)(22.000000,8.000000)(22.000000,7.000000)
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(20.000000,7.000000)(20.000000,8.000000)(21.000000,8.000000)(21.000000,7.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(20.000000,7.000000)(20.000000,8.000000)(21.000000,8.000000)(21.000000,7.000000)
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(19.000000,7.000000)(19.000000,8.000000)(20.000000,8.000000)(20.000000,7.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(19.000000,7.000000)(19.000000,8.000000)(20.000000,8.000000)(20.000000,7.000000)
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(20.000000,8.000000)(20.000000,9.000000)(21.000000,9.000000)(21.000000,8.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(20.000000,8.000000)(20.000000,9.000000)(21.000000,9.000000)(21.000000,8.000000)
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(19.000000,8.000000)(19.000000,9.000000)(20.000000,9.000000)(20.000000,8.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(19.000000,8.000000)(19.000000,9.000000)(20.000000,9.000000)(20.000000,8.000000)
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(20.000000,13.000000)(20.000000,14.000000)(21.000000,14.000000)(21.000000,13.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(20.000000,13.000000)(20.000000,14.000000)(21.000000,14.000000)(21.000000,13.000000)
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(21.000000,13.000000)(21.000000,14.000000)(22.000000,14.000000)(22.000000,13.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(21.000000,13.000000)(21.000000,14.000000)(22.000000,14.000000)(22.000000,13.000000)
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(19.000000,14.000000)(19.000000,15.000000)(20.000000,15.000000)(20.000000,14.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(19.000000,14.000000)(19.000000,15.000000)(20.000000,15.000000)(20.000000,14.000000)
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(20.000000,14.000000)(20.000000,15.000000)(21.000000,15.000000)(21.000000,14.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(20.000000,14.000000)(20.000000,15.000000)(21.000000,15.000000)(21.000000,14.000000)
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(19.000000,15.000000)(19.000000,16.000000)(20.000000,16.000000)(20.000000,15.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(19.000000,15.000000)(19.000000,16.000000)(20.000000,16.000000)(20.000000,15.000000)
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(19.000000,16.000000)(19.000000,17.000000)(20.000000,17.000000)(20.000000,16.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(19.000000,16.000000)(19.000000,17.000000)(20.000000,17.000000)(20.000000,16.000000)
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(19.000000,9.000000)(19.000000,10.000000)(20.000000,10.000000)(20.000000,9.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(19.000000,9.000000)(19.000000,10.000000)(20.000000,10.000000)(20.000000,9.000000)
\setfont{Courier}{0.800000}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\rput[l](25.000000,6.000000){\scalebox{1 -1}{${\mathcal R}=R_+ \bar{R}_-$}}
\setfont{Helvetica}{0.800000}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\rput[l](31.000000,13.000000){\scalebox{1 -1}{}}
\setfont{Helvetica}{0.800000}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\rput[l](18.000000,6.000000){\scalebox{1 -1}{$R_+$}}
\setfont{Helvetica}{0.800000}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\rput[l](18.000000,12.000000){\scalebox{1 -1}{$R_-$}}
\psset{linewidth=0.050000}
\psset{linestyle=dotted,dotsep=0.200000}
\psset{linestyle=dotted,dotsep=0.200000}
\setlinecaps{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\psline(24.000000,5.000000)(24.000000,18.000000)
\psset{linewidth=0.050000}
\psset{linestyle=dotted,dotsep=0.200000}
\psset{linestyle=dotted,dotsep=0.200000}
\setlinecaps{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\psline(24.000000,11.000000)(17.000000,11.000000)
\psset{linewidth=0.050000}
\psset{linestyle=dotted,dotsep=0.200000}
\psset{linestyle=dotted,dotsep=0.200000}
\setlinecaps{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\psline(33.000000,5.000000)(33.000000,18.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinecaps{0}
\newrgbcolor{dialinecolor}{0.749020 0.749020 0.749020}
\psset{linecolor=dialinecolor}
\psline(36.000000,7.000000)(36.000000,16.000000)
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(37.000000,9.000000)(37.000000,10.000000)(38.000000,10.000000)(38.000000,9.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(37.000000,9.000000)(37.000000,10.000000)(38.000000,10.000000)(38.000000,9.000000)
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(40.000000,7.000000)(40.000000,8.000000)(41.000000,8.000000)(41.000000,7.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(40.000000,7.000000)(40.000000,8.000000)(41.000000,8.000000)(41.000000,7.000000)
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(39.000000,7.000000)(39.000000,8.000000)(40.000000,8.000000)(40.000000,7.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(39.000000,7.000000)(39.000000,8.000000)(40.000000,8.000000)(40.000000,7.000000)
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(38.000000,7.000000)(38.000000,8.000000)(39.000000,8.000000)(39.000000,7.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(38.000000,7.000000)(38.000000,8.000000)(39.000000,8.000000)(39.000000,7.000000)
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(37.000000,7.000000)(37.000000,8.000000)(38.000000,8.000000)(38.000000,7.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(37.000000,7.000000)(37.000000,8.000000)(38.000000,8.000000)(38.000000,7.000000)
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(38.000000,8.000000)(38.000000,9.000000)(39.000000,9.000000)(39.000000,8.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(38.000000,8.000000)(38.000000,9.000000)(39.000000,9.000000)(39.000000,8.000000)
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(37.000000,8.000000)(37.000000,9.000000)(38.000000,9.000000)(38.000000,8.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(37.000000,8.000000)(37.000000,9.000000)(38.000000,9.000000)(38.000000,8.000000)
\newrgbcolor{dialinecolor}{0.749020 0.749020 0.749020}
\psset{linecolor=dialinecolor}
\pspolygon*(35.000000,15.000000)(35.000000,16.000000)(36.000000,16.000000)(36.000000,15.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(35.000000,15.000000)(35.000000,16.000000)(36.000000,16.000000)(36.000000,15.000000)
\newrgbcolor{dialinecolor}{0.749020 0.749020 0.749020}
\psset{linecolor=dialinecolor}
\pspolygon*(35.000000,14.000000)(35.000000,15.000000)(36.000000,15.000000)(36.000000,14.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(35.000000,14.000000)(35.000000,15.000000)(36.000000,15.000000)(36.000000,14.000000)
\newrgbcolor{dialinecolor}{0.749020 0.749020 0.749020}
\psset{linecolor=dialinecolor}
\pspolygon*(34.000000,15.000000)(34.000000,16.000000)(35.000000,16.000000)(35.000000,15.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(34.000000,15.000000)(34.000000,16.000000)(35.000000,16.000000)(35.000000,15.000000)
\setfont{Courier}{0.800000}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\rput[l](34.000000,6.000000){\scalebox{1 -1}{${\mathcal R}=R_+ \bar{R}_-[1]$}}
\setfont{Helvetica}{0.800000}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\rput[l](40.000000,13.000000){\scalebox{1 -1}{}}
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(36.000000,7.000000)(36.000000,8.000000)(37.000000,8.000000)(37.000000,7.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(36.000000,7.000000)(36.000000,8.000000)(37.000000,8.000000)(37.000000,7.000000)
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(36.000000,8.000000)(36.000000,9.000000)(37.000000,9.000000)(37.000000,8.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(36.000000,8.000000)(36.000000,9.000000)(37.000000,9.000000)(37.000000,8.000000)
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(36.000000,9.000000)(36.000000,10.000000)(37.000000,10.000000)(37.000000,9.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(36.000000,9.000000)(36.000000,10.000000)(37.000000,10.000000)(37.000000,9.000000)
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(36.000000,10.000000)(36.000000,11.000000)(37.000000,11.000000)(37.000000,10.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(36.000000,10.000000)(36.000000,11.000000)(37.000000,11.000000)(37.000000,10.000000)
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(36.000000,11.000000)(36.000000,12.000000)(37.000000,12.000000)(37.000000,11.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(36.000000,11.000000)(36.000000,12.000000)(37.000000,12.000000)(37.000000,11.000000)
}\endpspicture
fig-resolved.tex
% PSTricks TeX macro
% Title: /home/andy/texdocs/2dym/fig-resolved.dia
% Creator: Dia v0.94
% CreationDate: Tue Jan 25 21:41:32 2005
% For: andy
% \usepackage{pstricks}
% The following commands are not supported in PSTricks at present
% We define them conditionally, so when they are implemented,
% this pstricks file will use them.
\ifx\setlinejoinmode\undefined
  \newcommand{\setlinejoinmode}[1]{}
\fi
\ifx\setlinecaps\undefined
  \newcommand{\setlinecaps}[1]{}
\fi
% This way define your own fonts mapping (for example with ifthen)
\ifx\setfont\undefined
  \newcommand{\setfont}[2]{}
\fi
\pspicture(6.950000,-32.050000)(37.867500,-4.432500)
\scalebox{1.000000 -1.000000}{
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\newrgbcolor{diafillcolor}{1.000000 1.000000 1.000000}
\psset{fillcolor=diafillcolor}
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinecaps{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\psline(7.000000,20.000000)(35.000000,20.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinecaps{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\psline(20.000000,7.000000)(20.000000,19.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinecaps{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\psline(20.000000,21.000000)(20.000000,32.000000)
\psset{linewidth=0.100000}
\psset{linestyle=dotted,dotsep=0.200000}
\psset{linestyle=dotted,dotsep=0.200000}
\setlinecaps{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\psline(17.000000,20.000000)(20.000000,17.000000)
\psset{linewidth=0.100000}
\psset{linestyle=dotted,dotsep=0.200000}
\psset{linestyle=dotted,dotsep=0.200000}
\setlinecaps{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\psline(10.000000,20.000000)(10.000000,16.000000)
\psset{linewidth=0.100000}
\psset{linestyle=dotted,dotsep=0.200000}
\psset{linestyle=dotted,dotsep=0.200000}
\setlinecaps{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\psline(31.000000,20.000000)(31.000000,16.000000)
\psset{linewidth=0.100000}
\psset{linestyle=dotted,dotsep=0.200000}
\psset{linestyle=dotted,dotsep=0.200000}
\setlinecaps{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\psline(20.000000,10.000000)(16.000000,10.000000)
\psset{linewidth=0.100000}
\psset{linestyle=dotted,dotsep=0.200000}
\psset{linestyle=dotted,dotsep=0.200000}
\setlinecaps{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\psline(20.000000,29.000000)(16.000000,29.000000)
\setfont{Helvetica}{0.800000}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\rput[l](37.000000,20.000000){\scalebox{1 -1}{$l$}}
\setfont{Helvetica}{0.800000}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\rput[l](19.000000,5.000000){\scalebox{1 -1}{$l'$}}
\setfont{Helvetica}{0.800000}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\rput[l](30.000000,15.000000){\scalebox{1 -1}{$U_-$}}
\setfont{Helvetica}{0.800000}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\rput[l](9.000000,15.000000){\scalebox{1 -1}{$U_+$}}
\setfont{Helvetica}{0.800000}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\rput[l](14.000000,10.000000){\scalebox{1 -1}{$U'_+$}}
\setfont{Helvetica}{0.800000}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\rput[l](14.000000,29.000000){\scalebox{1 -1}{$U'_-$}}
}\endpspicture
fig-toric-external.tex
% PSTricks TeX macro
% Title: /home/andy/texdocs/2dym/fig-toric-external.dia
% Creator: Dia v0.94
% CreationDate: Tue Mar 22 02:40:05 2005
% For: andy
% \usepackage{pstricks}
% The following commands are not supported in PSTricks at present
% We define them conditionally, so when they are implemented,
% this pstricks file will use them.
\ifx\setlinejoinmode\undefined
  \newcommand{\setlinejoinmode}[1]{}
\fi
\ifx\setlinecaps\undefined
  \newcommand{\setlinecaps}[1]{}
\fi
% This way define your own fonts mapping (for example with ifthen)
\ifx\setfont\undefined
  \newcommand{\setfont}[2]{}
\fi
\pspicture(4.929289,-18.500000)(25.070711,-1.400000)
\scalebox{1.000000 -1.000000}{
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\newrgbcolor{diafillcolor}{1.000000 1.000000 1.000000}
\psset{fillcolor=diafillcolor}
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinecaps{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\psline(5.000000,5.000000)(10.000000,10.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinecaps{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\psline(5.000000,15.000000)(10.000000,10.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinecaps{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\psline(10.000000,10.000000)(20.000000,10.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinecaps{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\psline(20.000000,10.000000)(25.000000,5.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinecaps{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\psline(25.000000,15.000000)(20.000000,10.000000)
\psset{linewidth=0.100000}
\psset{linestyle=dotted,dotsep=0.200000}
\psset{linestyle=dotted,dotsep=0.200000}
\setlinecaps{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\psline(8.900000,17.100000)(5.900000,14.100000)
\setfont{Helvetica}{0.800000}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\rput[l](15.000000,11.000000){\scalebox{1 -1}{$t$}}
\setfont{Helvetica}{0.800000}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\rput[l](9.150000,18.150000){\scalebox{1 -1}{$V$}}
\psset{linewidth=0.100000}
\psset{linestyle=dotted,dotsep=0.200000}
\psset{linestyle=dotted,dotsep=0.200000}
\setlinecaps{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\psline(6.000000,6.000000)(9.000000,3.000000)
\psset{linewidth=0.100000}
\psset{linestyle=dotted,dotsep=0.200000}
\psset{linestyle=dotted,dotsep=0.200000}
\setlinecaps{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\psline(24.000000,6.000000)(20.685700,3.000000)
\setfont{Helvetica}{0.800000}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\rput[l](9.000000,2.000000){\scalebox{1 -1}{$U'_1$}}
\setfont{Helvetica}{0.800000}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\rput[l](19.000000,2.000000){\scalebox{1 -1}{$U'_2$}}
}\endpspicture
fig-toric-internal.tex
% PSTricks TeX macro
% Title: /home/andy/texdocs/2dym/fig-toric-internal.dia
% Creator: Dia v0.94
% CreationDate: Mon Mar 28 22:39:20 2005
% For: andy
% \usepackage{pstricks}
% The following commands are not supported in PSTricks at present
% We define them conditionally, so when they are implemented,
% this pstricks file will use them.
\ifx\setlinejoinmode\undefined
  \newcommand{\setlinejoinmode}[1]{}
\fi
\ifx\setlinecaps\undefined
  \newcommand{\setlinecaps}[1]{}
\fi
% This way define your own fonts mapping (for example with ifthen)
\ifx\setfont\undefined
  \newcommand{\setfont}[2]{}
\fi
\pspicture(4.929289,-15.070711)(25.070711,-2.400000)
\scalebox{1.000000 -1.000000}{
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\newrgbcolor{diafillcolor}{1.000000 1.000000 1.000000}
\psset{fillcolor=diafillcolor}
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinecaps{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\psline(5.000000,5.000000)(10.000000,10.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinecaps{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\psline(5.000000,15.000000)(10.000000,10.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinecaps{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\psline(10.000000,10.000000)(20.000000,10.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinecaps{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\psline(20.000000,10.000000)(25.000000,5.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinecaps{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\psline(25.000000,15.000000)(20.000000,10.000000)
\psset{linewidth=0.100000}
\psset{linestyle=dotted,dotsep=0.200000}
\psset{linestyle=dotted,dotsep=0.200000}
\setlinecaps{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\psline(15.000000,10.000000)(15.000000,4.000000)
\setfont{Helvetica}{0.800000}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\rput[l](14.500000,11.000000){\scalebox{1 -1}{$t$}}
\setfont{Helvetica}{0.800000}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\rput[l](14.400000,3.000000){\scalebox{1 -1}{$U$}}
\psset{linewidth=0.100000}
\psset{linestyle=dotted,dotsep=0.200000}
\psset{linestyle=dotted,dotsep=0.200000}
\setlinecaps{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\psline(7.000000,7.000000)(10.000000,4.000000)
\psset{linewidth=0.100000}
\psset{linestyle=dotted,dotsep=0.200000}
\psset{linestyle=dotted,dotsep=0.200000}
\setlinecaps{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\psline(23.000000,7.000000)(20.570700,4.020710)
\setfont{Helvetica}{0.800000}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\rput[l](10.000000,3.000000){\scalebox{1 -1}{$U'_1$}}
\setfont{Helvetica}{0.800000}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\rput[l](19.000000,3.000000){\scalebox{1 -1}{$U'_2$}}
}\endpspicture
fig-young-antiboxes.tex
% PSTricks TeX macro
% Title: /home/andy/texdocs/2dym/fig-young-antiboxes.dia
% Creator: Dia v0.94
% CreationDate: Tue Feb 22 04:24:39 2005
% For: andy
% \usepackage{pstricks}
% The following commands are not supported in PSTricks at present
% We define them conditionally, so when they are implemented,
% this pstricks file will use them.
\ifx\setlinejoinmode\undefined
  \newcommand{\setlinejoinmode}[1]{}
\fi
\ifx\setlinecaps\undefined
  \newcommand{\setlinecaps}[1]{}
\fi
% This way define your own fonts mapping (for example with ifthen)
\ifx\setfont\undefined
  \newcommand{\setfont}[2]{}
\fi
\pspicture(16.950000,-15.050000)(24.050000,-5.950000)
\scalebox{1.000000 -1.000000}{
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\newrgbcolor{diafillcolor}{1.000000 1.000000 1.000000}
\psset{fillcolor=diafillcolor}
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinecaps{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\psline(20.000000,6.000000)(20.000000,15.000000)
\newrgbcolor{dialinecolor}{0.749020 0.749020 0.749020}
\psset{linecolor=dialinecolor}
\pspolygon*(18.000000,12.000000)(18.000000,13.000000)(19.000000,13.000000)(19.000000,12.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(18.000000,12.000000)(18.000000,13.000000)(19.000000,13.000000)(19.000000,12.000000)
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(20.000000,8.000000)(20.000000,9.000000)(21.000000,9.000000)(21.000000,8.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(20.000000,8.000000)(20.000000,9.000000)(21.000000,9.000000)(21.000000,8.000000)
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(23.000000,6.000000)(23.000000,7.000000)(24.000000,7.000000)(24.000000,6.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(23.000000,6.000000)(23.000000,7.000000)(24.000000,7.000000)(24.000000,6.000000)
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(22.000000,6.000000)(22.000000,7.000000)(23.000000,7.000000)(23.000000,6.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(22.000000,6.000000)(22.000000,7.000000)(23.000000,7.000000)(23.000000,6.000000)
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(21.000000,6.000000)(21.000000,7.000000)(22.000000,7.000000)(22.000000,6.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(21.000000,6.000000)(21.000000,7.000000)(22.000000,7.000000)(22.000000,6.000000)
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(20.000000,6.000000)(20.000000,7.000000)(21.000000,7.000000)(21.000000,6.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(20.000000,6.000000)(20.000000,7.000000)(21.000000,7.000000)(21.000000,6.000000)
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(21.000000,7.000000)(21.000000,8.000000)(22.000000,8.000000)(22.000000,7.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(21.000000,7.000000)(21.000000,8.000000)(22.000000,8.000000)(22.000000,7.000000)
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(20.000000,7.000000)(20.000000,8.000000)(21.000000,8.000000)(21.000000,7.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(20.000000,7.000000)(20.000000,8.000000)(21.000000,8.000000)(21.000000,7.000000)
\newrgbcolor{dialinecolor}{0.749020 0.749020 0.749020}
\psset{linecolor=dialinecolor}
\pspolygon*(18.000000,14.000000)(18.000000,15.000000)(19.000000,15.000000)(19.000000,14.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(18.000000,14.000000)(18.000000,15.000000)(19.000000,15.000000)(19.000000,14.000000)
\newrgbcolor{dialinecolor}{0.749020 0.749020 0.749020}
\psset{linecolor=dialinecolor}
\pspolygon*(19.000000,14.000000)(19.000000,15.000000)(20.000000,15.000000)(20.000000,14.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(19.000000,14.000000)(19.000000,15.000000)(20.000000,15.000000)(20.000000,14.000000)
\newrgbcolor{dialinecolor}{0.749020 0.749020 0.749020}
\psset{linecolor=dialinecolor}
\pspolygon*(18.000000,13.000000)(18.000000,14.000000)(19.000000,14.000000)(19.000000,13.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(18.000000,13.000000)(18.000000,14.000000)(19.000000,14.000000)(19.000000,13.000000)
\newrgbcolor{dialinecolor}{0.749020 0.749020 0.749020}
\psset{linecolor=dialinecolor}
\pspolygon*(19.000000,13.000000)(19.000000,14.000000)(20.000000,14.000000)(20.000000,13.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(19.000000,13.000000)(19.000000,14.000000)(20.000000,14.000000)(20.000000,13.000000)
\newrgbcolor{dialinecolor}{0.749020 0.749020 0.749020}
\psset{linecolor=dialinecolor}
\pspolygon*(19.000000,12.000000)(19.000000,13.000000)(20.000000,13.000000)(20.000000,12.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(19.000000,12.000000)(19.000000,13.000000)(20.000000,13.000000)(20.000000,12.000000)
\newrgbcolor{dialinecolor}{0.749020 0.749020 0.749020}
\psset{linecolor=dialinecolor}
\pspolygon*(17.000000,14.000000)(17.000000,15.000000)(18.000000,15.000000)(18.000000,14.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(17.000000,14.000000)(17.000000,15.000000)(18.000000,15.000000)(18.000000,14.000000)
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(20.000000,9.000000)(20.000000,10.000000)(21.000000,10.000000)(21.000000,9.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(20.000000,9.000000)(20.000000,10.000000)(21.000000,10.000000)(21.000000,9.000000)
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(20.000000,10.000000)(20.000000,11.000000)(21.000000,11.000000)(21.000000,10.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(20.000000,10.000000)(20.000000,11.000000)(21.000000,11.000000)(21.000000,10.000000)
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(20.000000,11.000000)(20.000000,12.000000)(21.000000,12.000000)(21.000000,11.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(20.000000,11.000000)(20.000000,12.000000)(21.000000,12.000000)(21.000000,11.000000)
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(21.000000,8.000000)(21.000000,9.000000)(22.000000,9.000000)(22.000000,8.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(21.000000,8.000000)(21.000000,9.000000)(22.000000,9.000000)(22.000000,8.000000)
\newrgbcolor{dialinecolor}{1.000000 1.000000 1.000000}
\psset{linecolor=dialinecolor}
\pspolygon*(21.000000,9.000000)(21.000000,10.000000)(22.000000,10.000000)(22.000000,9.000000)
\psset{linewidth=0.100000}
\psset{linestyle=solid}
\psset{linestyle=solid}
\setlinejoinmode{0}
\newrgbcolor{dialinecolor}{0.000000 0.000000 0.000000}
\psset{linecolor=dialinecolor}
\pspolygon(21.000000,9.000000)(21.000000,10.000000)(22.000000,10.000000)(22.000000,9.000000)
}\endpspicture
pstricks.tex
%% BEGIN: pstricks.tex
%%
%% PostScript macros for Generic TeX: main input file for PSTricks 97.
%% See the PSTricks User's Guide for description.
%% This uses the header file `pstricks.pro'.
%%
\def\fileversion{97 patch 14}
\def\filedate{1999/12/23}
%%
%% COPYRIGHT 1993, 1994, 1999 by Timothy Van Zandt, tvz@nwu.edu.
%%
%% This program can be redistributed and/or modified under the terms
%% of the LaTeX Project Public License Distributed from CTAN
%% archives in directory macros/latex/base/lppl.txt.
%%
\csname PSTricksLoaded\endcsname
\let\PSTricksLoaded\endinput
\edef\PstAtCode{\the\catcode`\@}
\catcode`\@=11\relax
\expandafter\ifx\csname @latexerr\endcsname\relax
\long\def\@ifundefined#1#2#3{\expandafter\ifx\csname
#1\endcsname\relax#2\else#3\fi}
\def\@namedef#1{\expandafter\def\csname #1\endcsname}
\def\@nameuse#1{\csname #1\endcsname}
\def\@eha{%
Your command was ignored.^^J
Type \space I <command> <return> \space to replace
it with another command,^^J
or \space <return> \space to continue without it.}
\def\@spaces{\space\space\space\space}
\def\typeout#1{\immediate\write\@unused{#1}}
\alloc@7\write\chardef\sixt@@n\@unused
\def\@empty{}
\def\@gobble#1{}
\def\@nnil{\@nil}
\def\@ifnextchar#1#2#3{%
\let\@tempe#1\def\@tempa{#2}\def\@tempb{#3}\futurelet\@tempc\@ifnch}
\def\@ifnch{%
\ifx\@tempc\@sptoken
\let\@tempd\@xifnch
\else
\ifx\@tempc\@tempe \let\@tempd\@tempa \else \let\@tempd\@tempb \fi
\fi
\@tempd}
\begingroup
\def\:{\global\let\@sptoken= } \:
\def\:{\@xifnch} \expandafter\gdef\: {\futurelet\@tempc\@ifnch}
\endgroup
\fi
\typeout{`PSTricks' v\fileversion\space\space <\filedate> (tvz)}
\def\@pstrickserr#1#2{%
\begingroup
\newlinechar`\^^J
\edef\pst@tempc{#2}%
\expandafter\errhelp\expandafter{\pst@tempc}%
\typeout{%
PSTricks error. \space See User's Guide for further information.^^J
\@spaces\@spaces\@spaces\@spaces
Type \space H <return> \space for immediate help.}%
\errmessage{#1}%
\endgroup}
\def\@ehpa{%
Your command was ignored. Default value substituted.^^J
Type \space <return> \space to procede.}
\def\@ehpb{%
Your command was ignored. Will recover best I can.^^J
Type \space <return> \space to procede.}
\def\@ehpc{%
You better fix this before proceding.^^J
See the PSTricks User's Guide or ask your system administrator for help.^^J
Type \space X <return> \space to quit.}
\def\pst@misplaced#1{\@pstrickserr{Misplaced \string#1 command}\@ehpb}
\newdimen\pst@dima
\newdimen\pst@dimb
\newdimen\pst@dimc
\newdimen\pst@dimd
\newdimen\pst@dimg
\newdimen\pst@dimh
\newbox\pst@hbox
\newbox\pst@boxg
\newcount\pst@cnta
\newcount\pst@cntb
\newcount\pst@cntc
\newcount\pst@cntd
\newcount\pst@cntg
\newcount\pst@cnth
\newif\if@pst
\newtoks\pst@toks
\newif\if@star
\def\pst@ifstar#1{%
\@ifnextchar*{\@startrue\def\next*{#1}\next}{\@starfalse#1}}
\def\pst@expandafter#1#2{%
\def\next{#1}%
\edef\@tempa{#2}%
\ifx\@tempa\@empty
\@pstrickserr{Unexpected empty argument!}\@ehpb
\def\@tempa{\@empty}%
\fi
\expandafter\next\@tempa}
\def\pst@dimtonum#1#2{\edef#2{\pst@@dimtonum#1}}
\def\pst@@dimtonum#1{\expandafter\pst@@@dimtonum\the#1}
{\catcode`\p=12 \catcode`\t=12 \global\@namedef{pst@@@dimtonum}#1pt{#1}}
\def\pst@pyth#1#2#3{%
\ifdim#1>#2\pst@@pyth#1#2#3\else\pst@@pyth#2#1#3\fi}
\def\pst@@pyth#1#2#3{%
\ifdim4#1>9#2%
#3=#1\advance#3 .2122#2%
\else
#3=.8384#1\advance#3 .5758#2%
\fi}
\def\pst@divide#1#2#3{%
\pst@@divide{#1}{#2}%
\pst@dimtonum\pst@dimg{#3}}
\def\pst@@divide#1#2{%
\pst@dimg=#1\relax
\pst@dimh=#2\relax
\pst@cntg=\pst@dimh
\pst@cnth=67108863
\pst@@@divide\pst@@@divide\pst@@@divide\pst@@@divide
\divide\pst@dimg\pst@cntg}
\def\pst@@@divide{%
\ifnum
\ifnum\pst@dimg<\z@-\fi\pst@dimg<\pst@cnth
\multiply\pst@dimg\sixt@@n
\else
\divide\pst@cntg\sixt@@n
\fi}
\def\pst@configerr#1{%
\@pstrickserr{\string#1 not defined in pstricks.con}\@ehpc}
% % \begin{macrocode}
\def\pstVerb#1{\pst@configerr\pstVerb}
\def\pstverb#1{\pst@configerr\pstverb}
\def\pstverbscale{\pst@configerr\pstverbscale}
\def\pstrotate{\pst@configerr\pstrotate}
\def\pstheader#1{\pst@configerr\pstheader}
\def\pstdriver{\pst@configerr\pstdriver}
\@ifundefined{pstcustomize}%
{\def\pstcustomize{\endinput\let\pstcustomize\relax}}{}
\input pstricks.con
\newif\ifPSTricks
\PSTrickstrue
\def\PSTricksOff{%
\def\pstheader##1{}%
\def\pstverb##1{}%
\def\pstVerb##1{}%
\PSTricksfalse}
\@ifundefined{pst@def}{\def\pst@def#1<#2>{\@namedef{tx@#1}{#2 }}}{}
\@ifundefined{pst@ATH}{\def\pst@ATH<#1>{}}{}
\pstheader{pstricks.pro}
\def\pst@dict{tx@Dict begin }
\def\pst@theheaders{pstricks.pro}
\def\pst@Verb#1{\pstVerb{\pst@dict #1 end}}
\def\tx@Atan{Atan }
\def\tx@Div{Div }
\def\tx@NET{NET }
\def\tx@Pyth{Pyth }
\def\tx@PtoC{PtoC }
\def\tx@PathLength@{PathLength@ }
\def\tx@PathLength{PathLength }
\pst@dimg=\pstunit\relax
\ifdim\pst@dimg=1bp
\def\pst@stp{.996264 dup scale}
\else
\edef\pst@stp{1 \pst@@dimtonum\pst@dimg\space div dup scale}
\fi
\def\tx@STP{STP }
\def\tx@STV{STV }
\def\pst@number#1{\pst@@dimtonum#1\space}
\def\pst@checknum#1#2{%
\edef\next{#1}%
\ifx\next\@empty
\let\pst@num\z@
\else
\expandafter\pst@@checknum\next..\@nil
\fi
\ifnum\pst@num=\z@
\@pstrickserr{Bad number: `#1'. 0 substituted.}\@ehpa
\def#2{0 }%
\else
\edef#2{\ifnum\pst@num=\tw@-\fi\the\pst@cntg.%
\expandafter\@gobble\the\pst@cnth\space}%
\fi}
\def\pst@@checknum{%
\@ifnextchar-%
{\let\pst@num\tw@\expandafter\pst@@@checknum\@gobble}%
{\let\pst@num\@ne\pst@@@checknum}}
\def\pst@@@checknum#1.#2.#3\@nil{%
\afterassignment\pst@@@@checknum\pst@cntg=0#1\relax\@nil
\afterassignment\pst@@@@checknum\pst@cnth=1#2\relax\@nil}
\def\pst@@@@checknum#1\relax\@nil{%
\ifx\@nil#1\@nil\else\let\pst@num\z@\fi}
\def\pst@getnumii#1 #2 #3\@nil{%
\pst@checknum{#1}\pst@tempg
\pst@checknum{#2}\pst@temph}
\def\pst@getnumiii#1 #2 #3 #4\@nil{%
\pst@checknum{#1}\pst@tempg
\pst@checknum{#2}\pst@temph
\pst@checknum{#3}\pst@tempi}
\def\pst@getnumiv#1 #2 #3 #4 #5\@nil{%
\pst@checknum{#1}\pst@tempg
\pst@checknum{#2}\pst@temph
\pst@checknum{#3}\pst@tempi
\pst@checknum{#4}\pst@tempj}
\def\pst@getdimnum#1 #2 #3\@nil{%
\pssetlength\pst@dimg{#1}%
\pst@checknum{#2}\pst@tempg}
% DG/SR modification begin - Jan. 7, 1998 - Patch 9
% Missing from pstricks.bug 0.93
%\def\pst@getscale#1#2{%
%\pst@expandafter\pst@getnumii{#1 #1} {} {} {}\@nil
%\@psttrue
%\ifdim\pst@tempg\p@=\z@
%\@pstrickserr{Bad scaling argument `#1'}\@ehpa
%\def\pst@tempg{1 }%
%\@pstfalse
%\fi
%\ifdim\pst@temph\p@=\z@
%\if@pst\@pstrickserr{Bad scaling argument `#1'}\@ehpa\fi
%\def\pst@temph{1 }%
%\fi
%\edef#2{\pst@tempg\space \pst@temph\space scale }%
%\ifdim\pst@tempg\p@=\p@ \ifdim\pst@temph\p@=\p@
%\def#2{}%
%\fi\fi}
\def\pst@getscale#1#2{%
\edef\pst@tempg{#1}%
\ifx\pst@tempg\@none
\def#2{}%
\else
\pst@expandafter\pst@getnumii{#1 #1} {} {} {}\@nil
\ifdim\pst@tempg\p@=\z@
\@pstrickserr{Bad scaling argument `#1'}\@ehpa
\def#2{}%
\else
\ifdim\pst@temph\p@=\z@
\@pstrickserr{Bad scaling argument `#1'}\@ehpa
\def#2{}%
\else
\edef#2{\pst@tempg\space \pst@temph\space scale }%
\fi
\fi
\fi}
% DG/SR modification end
\def\pst@getint#1#2{%
\pst@cntg=#1\relax
\edef#2{\the\pst@cntg\space}}
\begingroup
\catcode`\{=12
\catcode`\}=12
\catcode`\[=1
\catcode`\]=2
\gdef\pslbrace[{ ]
\gdef\psrbrace[} ]
\endgroup
\def\@newcolor#1#2{%
\expandafter\edef\csname #1\endcsname{\noexpand\pst@color{#2}}%
\expandafter\edef\csname color@#1\endcsname{#2}%
\ignorespaces}
\def\pst@color#1{%
\def\pst@currentcolor{#1}\pstVerb{#1}\aftergroup\pst@endcolor}
\def\pst@endcolor{\pstVerb{\pst@currentcolor}}
\def\pst@currentcolor{0 setgray}
\def\altcolormode{%
\def\pst@color##1{%
\pstVerb{gsave ##1}\aftergroup\pst@endcolor}%
\def\pst@endcolor{\pstVerb{\pst@grestore}}}
\def\pst@grestore{%
currentpoint
matrix currentmatrix
currentfont
grestore
setfont
setmatrix
moveto}
\def\pst@usecolor#1{\csname color@#1\endcsname\space}
\def\newgray#1#2{%
\pst@checknum{#2}\pst@tempg
\@newcolor{#1}{\pst@tempg setgray}}
\def\newrgbcolor#1#2{%
\pst@expandafter\pst@getnumiii{#2} {} {} {} {}\@nil
\@newcolor{#1}{\pst@tempg \pst@temph \pst@tempi setrgbcolor}}
\def\newhsbcolor#1#2{%
\pst@expandafter\pst@getnumiii{#2} {} {} {} {}\@nil
\@newcolor{#1}{\pst@tempg \pst@temph \pst@tempi sethsbcolor}}
\def\newcmykcolor#1#2{%
\pst@expandafter\pst@getnumiv{#2} {} {} {} {} {}\@nil
\@newcolor{#1}{\pst@tempg \pst@temph \pst@tempi \pst@tempj setcmykcolor}}
\newgray{black}{0}
\newgray{darkgray}{.25}
\newgray{gray}{.5}
\newgray{lightgray}{.75}
\newgray{white}{1}
\newrgbcolor{red}{1 0 0}
\newrgbcolor{green}{0 1 0}
\newrgbcolor{blue}{0 0 1}
\newrgbcolor{yellow}{1 1 0}
\newrgbcolor{cyan}{0 1 1}
\newrgbcolor{magenta}{1 0 1}
\def\psset#1{\@psset#1,\@nil\ignorespaces}
\def\@psset#1,{%
\@@psset#1==\@nil
\@ifnextchar\@nil{\@gobble}{\@psset}}
\def\@@psset#1=#2=#3\@nil{%
\@ifundefined{psset@#1}%
{\@pstrickserr{Graphics parameter `#1' not defined.}\@ehpa}%
{\@nameuse{psset@#1}{#2}}}%
\def\psset@style#1{%
\@ifundefined{pscs@#1}%
{\@pstrickserr{Custom style `#1' undefined}\@ehpa}%
{\@nameuse{pscs@#1}}}
\def\newpsstyle#1#2{\@namedef{pscs@#1}{\psset{#2}}}
\def\@none{none}
\def\pst@getcolor#1#2{%
\@ifundefined{color@#1}%
{\@pstrickserr{Color `#1' not defined}\@eha}%
{\edef#2{#1}}}
\newdimen\psunit \psunit 1cm
\newdimen\psxunit \psxunit 1cm
\newdimen\psyunit \psyunit 1cm
\let\psrunit\psunit
\def\pstunit@off{\let\@psunit\ignorespaces\ignorespaces}
\def\pssetlength#1#2{%
\let\@psunit\psunit
\afterassignment\pstunit@off
#1 #2\@psunit}
\def\psaddtolength#1#2{%
\let\@psunit\psunit
\afterassignment\pstunit@off
\advance#1 #2\@psunit}
\def\pssetxlength#1#2{%
\let\@psunit\psxunit
\afterassignment\pstunit@off
#1 #2\@psunit}
\def\pssetylength#1#2{%
\let\@psunit\psyunit
\afterassignment\pstunit@off
#1 #2\@psunit}
\def\psset@unit#1{%
\pssetlength\psunit{#1}%
\psxunit=\psunit
\psyunit=\psunit}
\def\psset@runit#1{\pssetlength\psrunit{#1}}
\def\psset@xunit#1{\pssetxlength\psxunit{#1}}
\def\psset@yunit#1{\pssetylength\psyunit{#1}}
\def\pst@getlength#1#2{%
\pssetlength\pst@dimg{#1}%
\edef#2{\pst@number\pst@dimg}}
\def\pst@@getlength#1#2{%
\pssetlength\pst@dimg{#1}%
\edef#2{\number\pst@dimg sp}}
\def\pst@getcoor#1#2{\pst@@getcoor{#1}\let#2\pst@coor}
\def\pst@coor{0 0 }
\def\pst@getcoors#1#2{%
\def\pst@aftercoors{\addto@pscode{#1 \pst@coors }#2}%
\def\pst@coors{}%
\pst@@getcoors}
\def\pst@@getcoors(#1){%
\pst@@getcoor{#1}%
\edef\pst@coors{\pst@coor\pst@coors}%
\@ifnextchar({\pst@@getcoors}{\pst@aftercoors}}
\def\pst@getangle#1#2{\pst@@getangle{#1}\let#2\pst@angle}
\def\pst@angle{0 }
\def\cartesian@coor#1,#2,#3\@nil{%
\pssetxlength\pst@dimg{#1}%
\pssetylength\pst@dimh{#2}%
\edef\pst@coor{\pst@number\pst@dimg \pst@number\pst@dimh}}
\def\NormalCoor{%
\def\pst@@getcoor##1{\pst@expandafter\cartesian@coor{##1},\relax,\@nil}%
\def\pst@@getangle##1{%
\pst@checknum{##1}\pst@angle
\edef\pst@angle{\pst@angle \pst@angleunit}}%
\def\psput@##1{\pst@@getcoor{##1}\leavevmode\psput@cartesian}}
\NormalCoor
\def\degrees{\@ifnextchar[{\@degrees}{\def\pst@angleunit{}}}
\def\@degrees[#1]{%
\pst@checknum{#1}\pst@tempg
\edef\pst@angleunit{360 \pst@tempg div mul }%
\ignorespaces}
\def\radians{\def\pst@angleunit{57.2956 mul }}
\def\pst@angleunit{}
\def\SpecialCoor{%
\def\pst@@getcoor##1{%
\begingroup
\pst@activecoor
\xdef\pst@tempg{##1}%
\endgroup
\expandafter\special@coor\pst@tempg||\@nil}%
\def\pst@@getangle##1{%
\begingroup
\pst@activecoor
\xdef\pst@tempg{##1}%
\endgroup
\expandafter\special@angle\pst@tempg\@empty)\@nil}%
\def\psput@##1{\pst@@getcoor{##1}\leavevmode\psput@special}}
\begingroup
\catcode`\|=13
\catcode`\;=13
\catcode`\!=13
\gdef\pst@activecoor{%
\def|{\string|}%
\def;{\string;}%
\def!{\string!}}
\endgroup
\def\special@coor#1|#2|#3\@nil{%
\ifx#3|\relax
\mixed@coor{#1}{#2}%
\else
\special@@coor#1;;\@nil
\fi}
\def\special@@coor#1{%
\ifcat#1a\relax
\def\next{\node@coor#1}%
\else
\ifx#1[\relax
\def\next{\Node@coor[}%
\else
\ifx#1!\relax
\def\next{\raw@coor}%
\else
\def\next{\special@@@coor#1}%
\fi
\fi
\fi
\next}
\def\special@@@coor#1;#2;#3\@nil{%
\ifx#3;\relax
\polar@coor{#1}{#2}%
\else
\cartesian@coor#1,\relax,\@nil
\fi}
\def\mixed@coor#1#2{%
\begingroup
% DG/SR modification begin - Oct. 27, 1997 - Patch 6
%\specialcoor@ii#1;;\@nil
%\let\pst@tempa\pst@coor
%\specialcoor@ii#2;;\@nil
\special@@coor#1;;\@nil
\let\pst@tempa\pst@coor
\special@@coor#2;;\@nil
% DG/SR modification end
\xdef\pst@tempg{\pst@tempa pop \pst@coor exch pop }%
\endgroup
\let\pst@coor\pst@tempg}
\def\polar@coor#1#2{%
\pssetlength\pst@dimg{#1}%
\pst@@getangle{#2}%
\edef\pst@coor{\pst@number\pst@dimg \pst@angle \tx@PtoC}}
\def\raw@coor#1;#2\@nil{%
\edef\pst@coor{%
#1 \pst@number\psyunit mul exch \pst@number\psxunit mul exch }}
\def\node@coor#1\@nil{%
\@pstrickserr{You must load `pst-node.tex' to use node coordinates.}\@ehps
\def\pst@coor{0 0 }}
\def\Node@coor{\node@coor}
\def\special@angle#1#2)#3\@nil{%
\ifx!#1\relax
\edef\pst@angle{#2 \pst@angleunit}%
\else
\ifx(#1\relax
\pst@@getcoor{#2}%
\edef\pst@angle{\pst@coor exch \tx@Atan}%
\else
\pst@checknum{#1#2}\pst@angle
\edef\pst@angle{\pst@angle \pst@angleunit}%
\fi
\fi}
\def\Cartesian{%
\def\cartesian@coor##1,##2,##3\@nil{%
\pssetxlength\pst@dimg{##1}%
\pssetylength\pst@dimh{##2}%
\edef\pst@coor{\pst@number\pst@dimg \pst@number\pst@dimh}}%
\@ifnextchar({\Cartesian@}{}}
\def\Cartesian@(#1,#2){%
\pssetxlength\psxunit{#1}%
\pssetylength\psyunit{#2}%
\ignorespaces}
\def\Polar{%
\def\psput@cartesian{\psput@special}%
\def\cartesian@coor##1,##2,##3\@nil{\polar@coor{##1}{##2}}}%
\def\psset@origin#1{%
\pst@@getcoor{#1}%
\edef\psk@origin{\pst@coor \tx@NET }}
\def\psk@origin{}
\newif\ifswapaxes
\def\psset@swapaxes#1{%
\@nameuse{@pst#1}%
\if@pst
\def\psk@swapaxes{-90 rotate -1 1 scale }%
\else
\def\psk@swapaxes{}%
\fi}
\psset@swapaxes{false}
\newif\ifshowpoints
\def\psset@showpoints#1{\@nameuse{showpoints#1}}
\psset@showpoints{false}
\let\pst@setrepeatarrowsflag\relax
\def\psset@border#1{%
\pst@getlength{#1}\psk@border
\pst@setrepeatarrowsflag}
\psset@border{0pt}
\def\psset@bordercolor#1{\pst@getcolor{#1}\psbordercolor}
\psset@bordercolor{white}
\newif\ifpsdoubleline
\def\psset@doubleline#1{%
\@nameuse{psdoubleline#1}%
\pst@setrepeatarrowsflag}
\psset@doubleline{false}
\def\psset@doublesep#1{\def\psdoublesep{#1}}
\psset@doublesep{1.25\pslinewidth}
\def\psset@doublecolor#1{\pst@getcolor{#1}\psdoublecolor}
\psset@doublecolor{white}
\newif\ifpsshadow
\def\psset@shadow#1{%
\@nameuse{psshadow#1}%
\pst@setrepeatarrowsflag}
\psset@shadow{false}
\def\psset@shadowsize#1{\pst@getlength{#1}\psk@shadowsize}
\psset@shadowsize{3pt}
\def\psset@shadowangle#1{\pst@getangle{#1}\psk@shadowangle}
\psset@shadowangle{-45}
\def\psset@shadowcolor#1{\pst@getcolor{#1}\psshadowcolor}
\psset@shadowcolor{darkgray}
\def\pst@repeatarrowsflag{\z@}
\def\pst@setrepeatarrowsflag{%
\edef\pst@repeatarrowsflag{%
\ifdim\psk@border\p@>\z@ 1\else\ifpsdoubleline 1\else
\ifpsshadow 1\else \z@\fi\fi\fi}}
\def\psls@none{}
\newdimen\pslinewidth
\def\psset@linewidth#1{\pssetlength\pslinewidth{#1}}
\psset@linewidth{.8pt}
\def\psset@linecolor#1{\pst@getcolor{#1}\pslinecolor}
\psset@linecolor{black}
\def\psls@solid{0 setlinecap stroke }
\def\pst@missing{%
\z@
\@pstrickserr{Missing number or dimension. 0 substituted}\@ehpa}
\def\psset@dash#1{%
\pst@expandafter\psset@@dash{#1} {\pst@missing} {\pst@missing} {}\@nil
\edef\psk@dash{\pst@number\pst@dimg \pst@number\pst@dimh}}
\def\psset@@dash#1 #2 #3\@nil{%
\pssetlength\pst@dimg{#1}%
\pssetlength\pst@dimh{#2}}
\psset@dash{5pt 3pt}
\newif\ifpsdashadjust
\def\psset@dashadjust#1{\@nameuse{psdashadjust#1}}
\psset@dashadjust{true}
\def\psls@dashed{%
\ifpsdashadjust
\psk@dash \pst@linetype\space \tx@DashLine
\else
[ \psk@dash ] 0 setdash stroke
\fi}
\def\tx@DashLine{DashLine }
\def\psset@dotsep#1{\pst@getlength{#1}\psk@dotsep}
\psset@dotsep{3pt}
\def\psls@dotted{%
\ifpsdashadjust
\psk@dotsep \pst@linetype\space \tx@DotLine
\else
[ 0 \psk@dotsep CLW add ] 0 setdash 1 setlinecap stroke
\fi}
\def\tx@DotLine{DotLine }
\def\psset@linestyle#1{%
\@ifundefined{psls@#1}%
{\@pstrickserr{Line style `#1' not defined}\@eha}%
{\edef\pslinestyle{#1}}}
\psset@linestyle{solid}
\def\psfs@none{}
\def\psset@fillcolor#1{\pst@getcolor{#1}\psfillcolor}
\psset@fillcolor{white}
\def\psfs@solid{\pst@fill{\pst@usecolor\psfillcolor fill}}
\def\psset@hatchwidth#1{\pst@getlength{#1}\psk@hatchwidth}
\psset@hatchwidth{.8pt}
\def\psset@hatchsep#1{\pst@getlength{#1}\psk@hatchsep}
\psset@hatchsep{4pt}
\def\psset@hatchcolor#1{\pst@getcolor{#1}\pshatchcolor}
\psset@hatchcolor{black}
\def\psset@hatchangle#1{\pst@getangle{#1}\psk@hatchangle}
\psset@hatchangle{45}
\def\pst@linefill{%
\psk@hatchangle rotate
\psk@hatchwidth SLW
\pst@usecolor\pshatchcolor
\psk@hatchsep \tx@LineFill}
\def\psfs@vlines{\pst@fill\pst@linefill}
\@namedef{psfs@vlines*}{\psfs@solid \psfs@vlines}
\def\psfs@hlines{\pst@fill{90 rotate \pst@linefill}}
\@namedef{psfs@hlines*}{\psfs@solid \psfs@hlines}
\def\psfs@crosshatch{\psfs@vlines \psfs@hlines}
\@namedef{psfs@crosshatch*}{\psfs@solid \psfs@vlines \psfs@hlines}
\def\tx@LineFill{LineFill }
\def\psset@fillstyle#1{%
\edef\pst@tempg{#1}\def\pst@temph{none}%
\ifx\pst@tempg\pst@temph
\let\psk@fillstyle\relax
\else
\@ifundefined{psfs@#1}%
{\@pstrickserr{Undefined fill style: `#1'}\@eha}%
{\edef\psk@fillstyle{\expandafter\noexpand\csname psfs@#1\endcsname}}%
\fi}
\def\psset@addfillstyle#1{%
\@ifundefined{psfs@#1}%
{\@pstrickserr{Undefined fill style: `#1'}\@eha}%
{\edef\psk@fillstyle{%
\expandafter\noexpand\psk@fillstyle
\expandafter\noexpand\csname psfs@#1\endcsname}}}
\psset@fillstyle{none}
\def\psset@arrows#1{%
\begingroup
\pst@activearrows
\xdef\pst@tempg{#1}%
\endgroup
\expandafter\psset@@arrows\pst@tempg\@empty-\@empty\@nil
\if@pst\else
\@pstrickserr{Bad arrows specification: #1}\@ehpa
\fi}
\def\psset@@arrows#1-#2\@empty#3\@nil{%
\@psttrue
\def\next##1,#1-##2,##3\@nil{\def\pst@tempg{##2}}%
\expandafter\next\pst@arrowtable,#1-#1,\@nil
\@ifundefined{psas@\pst@tempg}%
{\@pstfalse\def\psk@arrowA{}}%
{\let\psk@arrowA\pst@tempg}%
\@ifundefined{psas@#2}%
{\@pstfalse\def\psk@arrowB{}}%
{\def\psk@arrowB{#2}}}
\def\psk@arrowA{}
\def\psk@arrowB{}
\def\pst@arrowtable{,<->,<<->>,>-<,>>-<<,(-),[-]}
\begingroup
\catcode`\<=13
\catcode`\>=13
\catcode`\|=13
\gdef\pst@activearrows{\def<{\string<}\def>{\string>}\def|{\string|}}
\endgroup
\def\tx@BeginArrow{BeginArrow }
\def\tx@EndArrow{EndArrow }
\def\psset@arrowscale#1{\pst@getscale{#1}\psk@arrowscale}
\psset@arrowscale{1}
\def\psset@arrowsize#1{%
\pst@expandafter\pst@getdimnum{#1} 0 {} {}\@nil
\edef\psk@arrowsize{\pst@number\pst@dimg \pst@tempg}}
\psset@arrowsize{1.5pt 2}
\def\psset@arrowlength#1{\pst@checknum{#1}\psk@arrowlength}
\psset@arrowlength{1.4}
\def\psset@arrowinset#1{\pst@checknum{#1}\psk@arrowinset}%
\psset@arrowinset{.4}
\def\tx@Arrow{Arrow }
\@namedef{psas@>}{%
false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow}
\@namedef{psas@>>}{%
false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow
0 h T
gsave
newpath
false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow
CP
grestore
CP newpath moveto
2 copy
L
stroke
moveto}
\@namedef{psas@<}{%
true \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow}
\@namedef{psas@<<}{%
true \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow
CP newpath moveto 0 a neg L stroke 0 h neg T
false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow}
\def\psset@tbarsize#1{%
\pst@expandafter\pst@getdimnum{#1} 0 {} {}\@nil
\edef\psk@tbarsize{\pst@number\pst@dimg \pst@tempg}}
\psset@tbarsize{2pt 5}
\def\tx@Tbar{Tbar }
\@namedef{psas@|}{\psk@tbarsize \tx@Tbar}
\@namedef{psas@|*}{0 CLW -2 div T \psk@tbarsize \tx@Tbar}
\@namedef{psas@>|}{%
\psk@tbarsize \tx@Tbar
0 CLW 2 div T
newpath
false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow}
\@namedef{psas@>|*}{%
0 CLW -2 div T
\psk@tbarsize \tx@Tbar
0 CLW 2 div T
newpath
false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow}
\edef\pst@arrowtable{\pst@arrowtable,|<*->|*,|<->|}
\def\psset@bracketlength#1{\pst@checknum{#1}\psk@bracketlength}
\psset@bracketlength{.15}
\def\tx@Bracket{Bracket }
\@namedef{psas@]}{\psk@bracketlength \psk@tbarsize \tx@Bracket}
\def\psset@rbracketlength#1{\pst@checknum{#1}\psk@rbracketlength}
\psset@rbracketlength{.15}
\def\tx@RoundBracket{RoundBracket }
\@namedef{psas@)}{\psk@rbracketlength \psk@tbarsize \tx@RoundBracket}
\def\psas@c{1 \psas@@c}
\def\psas@cc{0 CLW 2 div T 1 \psas@@c}
\def\psas@C{2 \psas@@c}
\def\psas@@c{%
setlinecap
0 0 moveto
0 CLW 2 div L
stroke
0 0 moveto}
\def\psas@{}
\psset@arrows{-}
\def\tx@SD{SD }
\def\tx@EndDot{EndDot }
\def\psas@oo{{\pst@usecolor\psfillcolor true} true \psk@dotsize \tx@EndDot}
\def\psas@o{{\pst@usecolor\psfillcolor true} false \psk@dotsize \tx@EndDot}
\@namedef{psas@**}{{false} true \psk@dotsize \tx@EndDot}
\@namedef{psas@*}{{false} false \psk@dotsize \tx@EndDot}
\def\pst@par{}
\def\addto@par#1{%
\ifx\pst@par\@empty
\def\pst@par{#1}%
\else
\expandafter\def\expandafter\pst@par\expandafter{\pst@par,#1}%
\fi}
\def\addbefore@par#1{%
\ifx\pst@par\@empty
\def\pst@par{#1}%
\else
\toks@{#1}%
\pst@toks\expandafter{\pst@par}%
\edef\pst@par{\the\toks@,\the\pst@toks}%
\fi}
\def\use@par{%
\ifx\pst@par\@empty\else
\expandafter\@psset\pst@par,\@nil
\def\pst@par{}%
\fi}
\def\pst@object#1{%
\pst@ifstar{%
\@ifnextchar[%
{\pst@@object{#1}}%
{\def\pst@par{}\@nameuse{#1@i}}}}
\def\pst@@object#1[#2]{%
\def\pst@par{#2}%
\@ifnextchar+{\@nameuse{#1@i}}{\@nameuse{#1@i}}}
\def\newpsobject#1#2#3{%
\@ifundefined{#2@i}%
{\@pstrickserr{Graphics object `#2' not defined}\@eha}{%
\@namedef{#1}{\pst@object{#1}}%
\@namedef{#1@i}{\addbefore@par{#3}\@nameuse{#2@i}}}%
\ignorespaces}
\def\pst@getarrows#1{\@ifnextchar({#1}{\pst@@getarrows{#1}}}
\def\pst@@getarrows#1#2{\addto@par{arrows=#2}#1}
\def\begin@ClosedObj{%
\leavevmode
\pst@killglue
\begingroup
\use@par
\solid@star
\ifpsdoubleline \pst@setdoublesep \fi
\init@pscode}
\def\end@ClosedObj{%
\ifpsshadow \pst@closedshadow \fi
\ifdim\psk@border\p@>\z@ \pst@addborder \fi
\psk@fillstyle
\pst@stroke
\ifpsdoubleline \pst@doublestroke \fi
\ifshowpoints
% DG modification begin - Mar. 4, 1995
%\addto@pscode{Points aload length 2 div cvi /N ED \psdots@iii}%
\pst@OpenShowPoints
% DG modification end
\fi
\use@pscode
\endgroup
\ignorespaces}
\def\begin@OpenObj{%
\begin@ClosedObj
\let\pst@linetype\pst@arrowtype
\pst@addarrowdef}
\def\begin@AltOpenObj{%
\begin@ClosedObj
\def\pst@repeatarrowsflag{\z@}%
\def\pst@linetype{0}}
\def\end@OpenObj{%
\ifpsshadow \pst@openshadow \fi
\ifdim\psk@border\p@>\z@ \pst@addborder \fi
\psk@fillstyle
\pst@stroke
\ifpsdoubleline \pst@doublestroke \fi
\ifnum\pst@repeatarrowsflag>\z@ \pst@repeatarrows \fi
\ifshowpoints \pst@OpenShowPoints \fi
\use@pscode
\endgroup
\ignorespaces}
\def\begin@SpecialObj{%
\leavevmode
\pst@killglue
\begingroup
\use@par
\init@pscode}
\def\end@SpecialObj{%
\use@pscode
\endgroup
\ignorespaces}
\def\pst@code{}%
\def\init@pscode{%
\addto@pscode{%
\pst@number\pslinewidth SLW
\pst@usecolor\pslinecolor}}
\def\addto@pscode#1{\xdef\pst@code{\pst@code#1\space}}
\def\use@pscode{%
\pstverb{%
\pst@dict
\tx@STP
\pst@newpath
\psk@origin
\psk@swapaxes
\pst@code
end}%
\gdef\pst@code{}}
\def\pst@newpath{newpath }
\def\pst@@killglue{\unskip\ifdim\lastskip>\z@\expandafter\pst@@killglue\fi}
\def\KillGlue{\let\pst@killglue\pst@@killglue}
\def\DontKillGlue{\let\pst@killglue\relax}
\DontKillGlue
\def\solid@star{%
\if@star
\pslinewidth=\z@
\psdoublelinefalse
\def\pslinestyle{none}%
\def\psk@fillstyle{\psfs@solid}%
\let\psfillcolor\pslinecolor
\fi}
\def\pst@setdoublesep{%
\pst@getlength\psdoublesep\psdoublesep
\pslinewidth=2\pslinewidth
\advance\pslinewidth\psdoublesep\p@
\let\pst@setdoublesep\relax}
\def\tx@Shadow{Shadow }
\def\pst@closedshadow{%
\addto@pscode{%
gsave
\psk@shadowsize \psk@shadowangle \tx@PtoC
\tx@Shadow
\pst@usecolor\psshadowcolor
gsave fill grestore
stroke
grestore
gsave
\pst@usecolor\psfillcolor
gsave fill grestore
stroke
grestore}}
\def\pst@openshadow{%
\addto@pscode{%
gsave
\psk@shadowsize \psk@shadowangle \tx@PtoC
\tx@Shadow
\pst@usecolor\psshadowcolor
\ifx\psk@fillstyle\relax\else
gsave fill grestore
\fi
stroke}%
\pst@repeatarrows
\addto@pscode{grestore}
\ifx\psk@fillstyle\relax\else
\addto@pscode{%
gsave
\pst@usecolor\psfillcolor
gsave fill grestore
stroke
grestore}
\fi}
\def\pst@addborder{%
\addto@pscode{%
gsave
\psk@border 2 mul
CLW add SLW
\pst@usecolor\psbordercolor
stroke
grestore}}
\def\pst@stroke{%
\ifx\pslinestyle\@none\else
\addto@pscode{%
gsave
\pst@number\pslinewidth SLW
\pst@usecolor\pslinecolor
\@nameuse{psls@\pslinestyle}
grestore}%
\fi}
\def\pst@fill#1{\addto@pscode{gsave #1 grestore}}%
\def\pst@doublestroke{%
\addto@pscode{%
gsave
\psdoublesep SLW
\pst@usecolor\psdoublecolor
stroke
grestore}}
\def\pst@arrowtype{%
\ifx\psk@arrowB\@empty 0 \else -2 \fi
\ifx\psk@arrowA\@empty 0 \else -1 \fi
add}
\def\pst@addarrowdef{%
\addto@pscode{%
/ArrowA {
\ifx\psk@arrowA\@empty
\pst@oplineto
\else
\pst@arrowdef{A}
moveto
\fi
} def
/ArrowB {
\ifx\psk@arrowB\@empty \else \pst@arrowdef{B} \fi
} def}}
\def\pst@arrowdef#1{%
\ifnum\pst@repeatarrowsflag>\z@
/Arrow#1c [ 6 2 roll ] cvx def Arrow#1c
\fi
\tx@BeginArrow
\psk@arrowscale
\@nameuse{psas@\@nameuse{psk@arrow#1}}
\tx@EndArrow}
\def\pst@repeatarrows{%
\addto@pscode{%
gsave
\ifx\psk@arrowA\@empty\else
ArrowAc ArrowA pop pop
\fi
\ifx\psk@arrowB\@empty\else
ArrowBc ArrowB pop pop pop pop
\fi
grestore}}
\def\pst@OpenShowPoints{%
\addto@pscode{%
gsave
\psk@dotsize
\@nameuse{psds@\psk@dotstyle}
newpath
Points aload length 2 div 2 sub cvi /N ED
N 0 ge
{ \ifx\psk@arrowA\@empty
Dot
\else
pop pop
\fi
N { Dot } repeat
\ifx\psk@arrowB\@empty
Dot
\else
pop pop
\fi }
{ N 2 mul { pop } repeat }
ifelse
grestore}}
\def\pscustom{\pst@object{pscustom}}
\long\def\pscustom@i#1{%
\begin@SpecialObj
\solid@star
\let\pst@ifcustom\iftrue
\let\begin@ClosedObj\begin@CustomObj
\let\end@ClosedObj\endgroup
\def\begin@OpenObj{\begin@CustomObj\pst@addarrowdef}%
\let\end@OpenObj\endgroup
\let\begin@AltOpenObj\begin@CustomObj
\def\begin@SpecialObj{%
\begingroup
\pst@misplaced{special graphics object}%
\def\addto@pscode####1{}
\let\end@SpecialObj\endgroup}%
\def\@multips(##1)(##2)##3##4{\pst@misplaced\multips}%
\def\psclip##1{\pst@misplaced\psclip}%
\def\pst@repeatarrowsflag{\z@}%
\let\pst@setrepeatarrowsflag\relax
\showpointsfalse
\let\showpointstrue\relax
\def\pst@linetype{\pslinetype}%
\let\psset@liftpen\psset@@liftpen
\psset@liftpen{\z@}%
\def\pst@cp{/currentpoint load stopped pop }%
\def\pst@oplineto{/lineto load stopped { moveto } if }%
\def\pst@optcp##1##2{%
\ifnum##1=\z@\def##2{/currentpoint load stopped { 0 0 } if }\fi}%
\let\caddto@pscode\addto@pscode
\def\cuse@par##1{{\use@par##1}}%
\the\pst@customdefs
\setbox\pst@hbox=\hbox{#1}%
\psk@fillstyle
\pst@stroke
\end@SpecialObj}
\def\begin@CustomObj{%
\begingroup
\use@par
\addto@pscode{%
\pst@number\pslinewidth SLW
\pst@usecolor\pslinecolor}}
\def\pst@oplineto{moveto }
\def\pst@cp{}
\def\pst@optcp#1#2{}
\def\psset@liftpen#1{}
\def\psset@@liftpen#1{%
\ifcase#1\relax
\def\psk@liftpen{\z@}%
\def\pst@cp{/currentpoint load stopped pop }%
\def\pst@oplineto{/lineto load stopped { moveto } if }%
\or
\def\psk@liftpen{1}%
\def\pst@cp{}%
\def\pst@oplineto{/lineto load stopped { moveto } if }%
\or
\def\psk@liftpen{2}%
\def\pst@cp{}%
\def\pst@oplineto{moveto }%
\fi}
\psset@liftpen{0}
\def\psk@liftpen{-1}
\def\psset@linetype#1{%
\pst@getint{#1}\pslinetype
\ifnum\pst@dimg<-3
\@pstrickserr{linetype must be greater than -3}\@ehpa
\def\pslinetype{0}%
\fi}
\psset@linetype{0}
\def\caddto@pscode#1{%
\@pstrickserr{Command can only be used in \string\pscustom}\@ehpa}
\let\cuse@par\caddto@pscode
\def\tx@MSave{%
/msavemtrx
[ tx@Dict /msavemtrx known { msavemtrx aload pop } if CM ]
def }
\def\tx@MRestore{%
tx@Dict /msavemtrx known { length 0 gt } { false } ifelse
{ /msavematrx [ msavematrx aload pop setmatrix ] def }
if }
\newtoks\pst@customdefs
\pst@customdefs{%
\def\newpath{\addto@pscode{newpath}}%
\def\moveto(#1){\pst@@getcoor{#1}\addto@pscode{\pst@coor moveto}}%
\def\closepath{\addto@pscode{closepath}}%
\def\gsave{\begingroup\addto@pscode{gsave}}%
\def\grestore{\endgroup\addto@pscode{grestore}}%
% DG/SR modification begin - May 12, 1997 - Patch 2
%\def\translate(#1){\pst@@getcoor{#1}\addto@pscode{\pst@coor moveto}}%
\def\translate(#1){\pst@@getcoor{#1}\addto@pscode{\pst@coor translate}}%
% DG/SR modification end
\def\rotate#1{\pst@@getangle{#1}\addto@pscode{\pst@angle rotate}}%
\def\scale#1{\pst@getscale{#1}\pst@tempg\addto@pscode{\pst@tempg}}%
\def\msave{\addto@pscode{\tx@MSave}}%
\def\mrestore{\addto@pscode{\tx@MRestore}}%
\def\swapaxes{\addto@pscode{-90 rotate -1 1 scale}}%
\def\stroke{\pst@object{stroke}}%
\def\fill{\pst@object{fill}}%
\def\openshadow{\pst@object{openshadow}}%
\def\closedshadow{\pst@object{closedshadow}}%
% DG/SR modification begin - Jan. 7, 1998 - Patch 8
%\def\movepath(#1){\pst@@getcoor{#1}\addto@pscode{\pst@coor tx@Shadow}}%
\def\movepath(#1){\pst@@getcoor{#1}\addto@pscode{\pst@coor \tx@Shadow}}%
% DG/SR modification end
\def\lineto{\pst@onecoor{lineto}}%
\def\rlineto{\pst@onecoor{rlineto}}%
\def\curveto{\pst@threecoor{curveto}}%
\def\rcurveto{\pst@threecoor{rcurveto}}%
\def\code#1{\addto@pscode{#1}}%
\def\coor(#1){\pst@@getcoor{#1}\addto@pscode\pst@coor\@ifnextchar({\coor}{}}%
\def\rcoor{\pst@getcoors{}{}}%
\def\dim#1{\pssetlength\pst@dimg{#1}\addto@pscode{\pst@number\pst@dimg}}%
\def\setcolor#1{%
\@ifundefined{color@#1}{}{\addto@pscode{\use@color{#1}}}}%
\def\arrows#1{{\psset@arrows{#1}\pst@addarrowdef}}%
\let\file\pst@rawfile
} % END \pst@customdefs
\def\closedshadow@i{\cuse@par\pst@closedshadow}
\def\openshadow@i{\cuse@par\pst@openshadow}
\def\stroke@i{\cuse@par\pst@stroke}%
\def\fill@i{\cuse@par\psk@fillstyle}%
\def\pst@onecoor#1(#2){%
\pst@@getcoor{#2}%
\addto@pscode{\pst@coor #1}}
\def\pst@threecoor#1(#2)#3(#4)#5(#6){%
\begingroup
\pst@getcoor{#2}\pst@tempa
\pst@getcoor{#4}\pst@tempb
% DG/SR modification begin - Aug.  4, 1999 - Patch 11
%\pst@getcoor{#6}\pst@tembc
\pst@getcoor{#6}\pst@tempc
% DG/SR modification end
\addto@pscode{\pst@tempa \pst@tempb \pst@tempc #1}%
\endgroup}
\def\pst@rawfile#1{%
\begingroup
\def\do##1{\catcode`##1=12\relax}"
\dospecials
\catcode`\%=14
\pst@@rawfile{#1}%
\endgroup}
\def\pst@@rawfile#1{%
\immediate\openin1 #1
\ifeof1
\@pstrickserr{File `#1' not found}\@ehpa
\else
\immediate\read1 to \pst@tempg
\loop
\ifeof1 \@pstfalse\else\@psttrue\fi
\if@pst
\addto@pscode\pst@tempg
\immediate\read1 to \pst@tempg
\repeat
\fi
\immediate\closein1\relax}
\def\tx@NArray{NArray }
\def\tx@NArray{NArray }
\def\tx@Line{Line }
\def\tx@Arcto{Arcto }
\def\tx@CheckClosed{CheckClosed }
\def\tx@Polygon{Polygon }
\def\psset@gangle#1{\pst@getangle{#1}\psk@gangle}
\psset@gangle{0}
\def\tx@Diamond{Diamond }
\def\psdiamond{\pst@object{psdiamond}}
\def\psdiamond@i(#1){%
\@ifnextchar({\psdiamond@ii(#1)}{\psdiamond@ii(0,0)(#1)}}
\def\psdiamond@ii(#1)(#2){%
\begin@ClosedObj
\pst@getcoor{#1}\pst@tempa
\pst@getcoor{#2}\pst@tempb
\addto@pscode{%
\psline@iii
pop
\psk@dimen
\pst@tempb
\psk@gangle
\pst@tempa
\tx@Diamond}%
\def\pst@linetype{4}%
\end@ClosedObj}
\def\tx@Triangle{Triangle }
\def\pstriangle{\pst@object{pstriangle}}
\def\pstriangle@i(#1){%
\@ifnextchar({\pstriangle@ii(#1)}{\pstriangle@ii(0,0)(#1)}}
\def\pstriangle@ii(#1)(#2){%
\begin@ClosedObj
\pst@getcoor{#1}\pst@tempa
\pst@getcoor{#2}\pst@tempb
\addto@pscode{%
\psline@iii
pop
\psk@dimen
\pst@tempb
\psk@gangle
\pst@tempa
\tx@Triangle}%
\def\pst@linetype{2}%
\end@ClosedObj}
\def\tx@CCA{CCA }
\def\tx@CCA{CCA }
\def\tx@CC{CC }
\def\tx@IC{IC }
\def\tx@BOC{BOC }
\def\tx@NC{NC }
\def\tx@EOC{EOC }
\def\tx@BAC{BAC }
\def\tx@NAC{NAC }
\def\tx@EAC{EAC }
\def\tx@OpenCurve{OpenCurve }
\def\tx@AltCurve{AltCurve }
\def\tx@ClosedCurve{ClosedCurve }
\def\psset@curvature#1{%
\edef\pst@tempg{#1 }%
\expandafter\psset@@curvature\pst@tempg * * * \@nil}
\def\psset@@curvature#1 #2 #3 #4\@nil{%
\pst@checknum{#1}\pst@tempg
\pst@checknum{#2}\pst@temph
\pst@checknum{#3}\pst@tempi
\edef\psk@curvature{\pst@tempg \pst@temph \pst@tempi}}
\psset@curvature{1 .1 0}
\def\pscurve{\pst@object{pscurve}}
\def\pscurve@i{%
\pst@getarrows{%
\begin@OpenObj
\pst@getcoors[\pscurve@ii}}
\def\pscurve@ii{%
\addto@pscode{%
\pst@cp
\psk@curvature\space /c ED /b ED /a ED
\ifshowpoints true \else false \fi
\tx@OpenCurve}%
\end@OpenObj}
\def\psecurve{\pst@object{psecurve}}
\def\psecurve@i{%
\pst@getarrows{%
\begin@OpenObj
\pst@getcoors[\psecurve@ii}}
\def\psecurve@ii{%
\addto@pscode{%
\psk@curvature\space /c ED /b ED /a ED
\ifshowpoints true \else false \fi
\tx@AltCurve}%
\end@OpenObj}
\def\psccurve{\pst@object{psccurve}}
\def\psccurve@i{%
\begin@ClosedObj
\pst@getcoors[\psccurve@ii}
\def\psccurve@ii{%
\addto@pscode{%
\psk@curvature\space /c ED /b ED /a ED
\ifshowpoints true \else false \fi
\tx@ClosedCurve}%
\def\pst@linetype{1}%
\end@ClosedObj}
\def\psset@dotsize#1{%
\pst@expandafter\pst@getdimnum{#1} 0 {} {}\@nil
\edef\psk@@dotsize{\pst@number\pst@dimg}%
\let\psk@@@dotsize\pst@tempg
\edef\psk@dotsize{%
/DS \psk@@dotsize \psk@@@dotsize CLW mul add 2 div def }}
\psset@dotsize{2pt 2}
\def\psset@dotscale#1{%
\pst@getscale{#1}\psk@dotscale
\ifx\psk@dotscale\@empty
\def\psk@xdotscale{1 }%
\def\psk@ydotscale{1 }%
\else
\let\psk@xdotscale\pst@tempg
\let\psk@ydotscale\pst@temph
\fi}
% DG/SR modification begin - Oct. 17, 1997 - Patch 5
%\psset@dotscale{1}
% DG/SR modification end
\def\pst@Getangle#1#2{%
\pst@getangle{#1}\pst@tempg
\def\pst@temph{0. }%
\ifx\pst@tempg\pst@temph
\def#2{}%
\else
\edef#2{\pst@tempg\space rotate }%
\fi}
\def\psset@dotangle#1{%
\pst@getangle{#1}\psk@@dotangle
\ifdim\psk@@dotangle\p@=\z@
\let\psk@dotangle\@empty
\else
% DG/SR modification begin - Aug. 8, 1997 - Patch 4
%\edef\psk@dotangle{\psk@@dotangle rotate }
\edef\psk@dotangle{\psk@@dotangle rotate }%
% DG/SR modification end
\fi}
\psset@dotangle{0}
\def\pst@getdotsize{%
\pst@dimg=\psk@@@dotsize\pslinewidth
\advance\pst@dimg\psk@@dotsize\p@
\pst@dimh=\psk@ydotscale\pst@dimg
\pst@dimg=\psk@xdotscale\pst@dimg
\divide\pst@dimh 2
\divide\pst@dimg 2\relax}
% DG/SR modification begin - Oct. 17, 1997 - Patch 5
\psset@dotscale{1}
% DG/SR modification end
\def\psdot{\pst@object{psdot}}
\def\psdot@i{\@ifnextchar({\psdot@ii}{\psdot@ii(\z@,\z@)}}
\def\psdot@ii(#1){%
\begin@SpecialObj
\pst@@getcoor{#1}%
\addto@pscode{%
\psk@dotsize
\@nameuse{psds@\psk@dotstyle}%
\pst@coor Dot}%
\end@SpecialObj}
\def\psdots{\pst@object{psdots}}
\def\psdots@i{%
\begin@SpecialObj
\pst@getcoors[\psdots@ii}
\def\psdots@ii{%
\addto@pscode{false \tx@NArray \psdots@iii}%
\end@SpecialObj}
\def\psdots@iii{%
\psk@dotsize
\@nameuse{psds@\psk@dotstyle}
newpath
n { transform floor .5 add exch floor .5 add exch itransform Dot } repeat}
% DG: dead code (to suppress until \psset@dotstyle) ? - Aug. 4, 1997
\def\tx@SQ{SQ }
\def\tx@ST{ST }
\def\tx@SP{SP }
\def\pst@gdot#1{/Dot { gsave T \psk@dotangle \psk@dotscale #1 grestore } def }
\@namedef{psds@*}{\pst@gdot{0 0 DS \tx@SD}}
\@namedef{psds@o}{%
/r2 DS CLW sub def
\pst@gdot{0 0 DS \tx@SD \pst@usecolor\psfillcolor 0 0 r2 \tx@SD}}
\@namedef{psds@square*}{%
/r1 DS .886 mul def
\pst@gdot{r1 \tx@SQ}}
\@namedef{psds@square}{%
/r1 DS .886 mul def /r2 r1 CLW sub def
\pst@gdot{r1 \tx@SQ \pst@usecolor\psfillcolor r2 \tx@SQ}}
\@namedef{psds@triangle*}{%
/y1 DS .778 mul neg def /x1 y1 1.732 mul neg def
\pst@gdot{x1 y1 \tx@ST}}
\@namedef{psds@triangle}{%
/y1 DS .778 mul neg def /x1 y1 1.732 mul neg def
/y2 y1 CLW add def /x2 y2 1.732 mul neg def
\pst@gdot{x1 y1 \tx@ST \pst@usecolor\psfillcolor x2 y2 \tx@ST}}
\@namedef{psds@pentagon*}{%
/r1 DS 1.149 mul def
\pst@gdot{r1 \tx@SP}}
\@namedef{psds@pentagon}{%
DS .93 mul dup 1.236 mul /r1 ED CLW sub 1.236 mul /r2 ED
\pst@gdot{r1 \tx@SP \pst@usecolor\psfillcolor r2 \tx@SP}}
\@namedef{psds@+}{%
/DS DS 1.253 mul def
\pst@gdot{DS 0 moveto DS neg 0 L stroke 0 DS moveto 0 DS neg L stroke}}
\@namedef{psds@|}{%
\psk@tbarsize CLW mul add 2 div /DS ED
\pst@gdot{0 DS moveto 0 DS neg L stroke}}
% DG: end dead code?
\def\psset@dotstyle#1{%
\@ifundefined{psds@#1}%
{\@pstrickserr{Dot style `#1' not defined}\@eha}%
{\edef\psk@dotstyle{#1}}}
\psset@dotstyle{*}
\def\tx@FontDot{FontDot }
\def\newpsfontdot#1[#2]#3#4{%
\@namedef{psds@#1}{%
/#3 \psk@@dotangle [#2] \tx@FontDot
% DG/SR modification begin - Dec. 12, 1999 - Patch 14
%/Dot { moveto #4 show } bind def }}
/Dot { moveto gsave \psk@dotscale #4 show grestore } bind def }}
% DG/SR modification end
\def\newpsfontdotH#1[#2]#3#4#5{%
\@namedef{psds@#1}{%
/#3 \psk@@dotangle [#2] \tx@FontDot
/Dot {
moveto
\iftrue
% DG/SR modification begin - Dec. 23, 1999 - Patch 14
%gsave \pst@usecolor\psfillcolor #5 show grestore
%\fi
%#4 show
gsave \psk@dotscale \pst@usecolor\psfillcolor #5 show grestore
\fi
gsave \psk@dotscale #4 show grestore
% DG/SR modification end
} bind def }}
\pstheader{pst-dots.pro}
\newpsfontdot{*}%
[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(b)}
\newpsfontdotH{o}%
[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(c)}{(b)}
\newpsfontdotH{Bo}%
[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(C)}{(b)}
\newpsfontdotH{triangle}%
[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(t)}{(u)}
\newpsfontdotH{Btriangle}%
[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(T)}{(u)}
\newpsfontdot{triangle*}%
[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(u)}
\newpsfontdotH{square}%
[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(s)}{(r)}
\newpsfontdotH{Bsquare}%
[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(S)}{(r)}
\newpsfontdot{square*}%
[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(r)}
\newpsfontdotH{pentagon}%
[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(p)}{(q)}
\newpsfontdotH{Bpentagon}%
[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(P)}{(q)}
\newpsfontdot{pentagon*}%
[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(q)}
% DG/SR modification begin - Mar. 18, 1997 and Dec. 16, 1999 - Patch 14
%\newpsfontdot{diamond*}%
%[1.9 0.0 0.0 1.9 -0.4598 -0.70775]{Symbol}{<E0>}
%\newpsfontdot{diamond}%
%[2.3 0.0 0.0 2.3 -0.8533 -0.5336]{Symbol}{<A8>}
% D.G. modification begin - Jan. 17, 2000
\newpsfontdotH{diamond}%
[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(d)}{(l)}
\newpsfontdotH{Bdiamond}%
[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(D)}{(l)}
\newpsfontdot{diamond*}%
[1.0 0.0 0.0 1.0 0.0 0.0]{PSTricksDotFont}{(l)}
% DG/SR modification end
\newpsfontdot{oplus}%
[1.44928 0.0 0.0 1.44928 -0.562319 -0.478261]{Symbol}{<C5>}
\newpsfontdot{otimes}%
[1.44928 0.0 0.0 1.44928 -0.562319 -0.475362]{Symbol}{<C4>}
\newpsfontdot{x}%
[1.8 0.0 0.0 1.8 -0.495 -0.4788]{Symbol}{<B4>}
\newpsfontdot{+}%
[2.3 0.0 0.0 2.3 -0.6486 -0.5819]{Times-Roman}{<2B>}
\newpsfontdot{asterisk}%
[2.43309 0.0 0.0 2.43309 -0.609489 -1.14477]{Times-Roman}{<2A>}
\newpsfontdot{B+}%
[2.3 0.0 0.0 2.3 -0.6555 -0.5819]{Times-Bold}{<2B>}
\newpsfontdot{Basterisk}%
[2.29358 0.0 0.0 2.29358 -0.576835 -1.08486]{Times-Bold}{<2A>}
\newpsfontdot{|}%
% DG/SR modification begin - Oct. 27, 1997 - Patch 7
%[1.98413 0.0 0.0 1.98413 -0.258929 -0.712302]{Helvetica}{(|)}
[1.98413 0.0 0.0 1.38 -0.258929 -0.5]{Helvetica}{(|)}
% DG/SR modification end
\newpsfontdot{B|}%
% DG/SR modification begin - Oct. 27, 1997 - Patch 7
%[1.98413 0.0 0.0 1.98413 -0.277778 -0.78302]{Helvetica-Bold}{(|)}
[1.98413 0.0 0.0 1.38 -0.277778 -0.5]{Helvetica-Bold}{(|)}
% DG/SR modification end
\iffalse
\newpsfontdot{*}%
[2.77778 0.0 0.0 2.77778 -0.638889 -0.813889]{Symbol}{<B7>}
\newpsfontdot{o}%
[3.33333 0.0 0.0 3.33333 -0.666667 -1.78167]{Symbol}{<B0>}
\newpsfontdot{Bo}%
[4.69484 0.0 0.0 4.69484 -0.78169 -2.97418]{Times-Bold}{<CA>}
\fi
\newdimen\pslinearc
\def\psset@linearc#1{\pssetlength\pslinearc{#1}}
\psset@linearc{0pt}
\def\psline{\pst@object{psline}}
\def\psline@i{%
\pst@getarrows{%
\begin@OpenObj
\pst@getcoors[\psline@ii}}
\def\psline@ii{%
\addto@pscode{\pst@cp \psline@iii \tx@Line}%
\end@OpenObj}
\def\psline@iii{%
\ifdim\pslinearc>\z@
/r \pst@number\pslinearc def
/Lineto { \tx@Arcto } def
\else
/Lineto /lineto load def
\fi
\ifshowpoints true \else false \fi}
\def\qline(#1)(#2){%
\def\pst@par{}%
\begin@SpecialObj
\def\pst@linetype{0}%
\pst@getcoor{#1}\pst@tempa
\pst@@getcoor{#2}%
\addto@pscode{%
\pst@tempa moveto \pst@coor L
\@nameuse{psls@\pslinestyle}}%
\end@SpecialObj}
\def\pspolygon{\pst@object{pspolygon}}
\def\pspolygon@i{%
\begin@ClosedObj
\def\pst@cp{}%
\pst@getcoors[\pspolygon@ii}
\def\pspolygon@ii{%
\addto@pscode{\psline@iii \tx@Polygon}%
\def\pst@linetype{1}%
\end@ClosedObj}
\def\psset@framearc#1{\pst@checknum{#1}\psk@framearc}
\psset@framearc{0}
\def\psset@cornersize#1{%
\pst@expandafter\psset@@cornersize{#1}\@nil}
\def\psset@@cornersize#1#2\@nil{%
\if #1a\relax
\def\psk@cornersize{\pst@number\pslinearc false }%
\else
\def\psk@cornersize{\psk@framearc true }%
\fi}
\psset@cornersize{relative}
\def\tx@Rect{Rect }
\def\tx@OvalFrame{OvalFrame }
\def\tx@Frame{Frame }
\def\psset@dimen#1{%
\pst@expandafter\psset@@dimen{#1}\@nil}
\def\psset@@dimen#1#2\@nil{%
\if #1o\relax
\def\psk@dimen{.5 }%
\else
\if #1m\relax
\def\psk@dimen{0 }%
\else
\if #1i\relax
\def\psk@dimen{-.5 }%
\fi
\fi
\fi}
\psset@dimen{outer}
\def\psframe{\pst@object{psframe}}
\def\psframe@i(#1){%
\@ifnextchar({\psframe@ii(#1)}{\psframe@ii(0,0)(#1)}}
\def\psframe@ii(#1)(#2){%
\begin@ClosedObj
\pst@getcoor{#1}\pst@tempa
\pst@@getcoor{#2}%
\addto@pscode{\psk@cornersize \pst@tempa \pst@coor \psk@dimen \tx@Frame}%
\def\pst@linetype{2}%
\showpointsfalse
\end@ClosedObj}
\def\tx@BezierNArray{BezierNArray }
\def\tx@OpenBezier{OpenBezier }
\def\tx@ClosedBezier{ClosedBezier }
\def\tx@BezierShowPoints{BezierShowPoints }
\def\psbezier{\pst@object{psbezier}}
\def\psbezier@i{%
\pst@getarrows{%
\begin@OpenObj
\pst@getcoors[\psbezier@ii}}
\def\psbezier@ii{%
\addto@pscode{%
% DG/SR modification begin - Apr. 28, 1997 - Patch 1
% \psbezier doesn't work inside \pscustom
%\pst@cp
% DG/SR modification end
\ifshowpoints true \else false \fi
\tx@OpenBezier
\ifshowpoints \tx@BezierShowPoints \fi}%
\end@OpenObj}
\def\pscbezier{\pst@object{pscbezier}}
\def\pscbezier@i{%
\begin@ClosedObj
\pst@getcoors[\pscbezier@ii}
\def\pscbezier@ii{%
\addto@pscode{%
\ifshowpoints true \else false \fi
\tx@ClosedBezier
\ifshowpoints \tx@BezierShowPoints \fi}%
\chardef\pst@linetype=1
\end@ClosedObj}
\def\tx@Parab{Parab }
\def\parabola{\pst@object{parabola}}
\def\parabola@i{\pst@getarrows\parabola@ii}
\def\parabola@ii#1(#2)#3(#4){%
\begin@OpenObj
\pst@getcoor{#2}\pst@tempa
\pst@@getcoor{#4}%
\addto@pscode{\pst@tempa \pst@coor \tx@Parab}%
\end@OpenObj}
\def\psset@gridwidth#1{\pst@getlength{#1}\psk@gridwidth}
\psset@gridwidth{.8pt}
\def\psset@griddots#1{%
\pst@cntg=#1\relax
\edef\psk@griddots{\the\pst@cntg}}
\psset@griddots{0}
\def\psset@gridcolor#1{\pst@getcolor{#1}\psgridcolor}
\psset@gridcolor{black}
\def\psset@subgridwidth#1{\pst@getlength{#1}\psk@subgridwidth}
\psset@subgridwidth{.4pt}
\def\psset@subgridcolor#1{\pst@getcolor{#1}\pssubgridcolor}
\psset@subgridcolor{gray}
\def\psset@subgriddots#1{%
\pst@cntg=#1\relax\edef\psk@subgriddots{\the\pst@cntg}}
\psset@subgriddots{0}
\def\psset@subgriddiv#1{%
\pst@cntg=#1\relax\edef\psk@subgriddiv{\the\pst@cntg}}
\psset@subgriddiv{5}
\def\psset@gridlabels#1{\pst@getlength{#1}\psk@gridlabels}
\psset@gridlabels{10pt}
\def\psset@gridlabelcolor#1{\pst@getcolor{#1}\psgridlabelcolor}
\psset@gridlabelcolor{black}
\def\tx@Grid{Grid }
\def\psgrid{\pst@object{psgrid}}
\def\psgrid@i{\@ifnextchar(%
{\psgrid@ii}{\expandafter\psgrid@iv\pic@coor}}
\def\psgrid@ii(#1){\@ifnextchar(%
{\psgrid@iii(#1)}{\psgrid@iv(0,0)(0,0)(#1)}}
\def\psgrid@iii(#1)(#2){\@ifnextchar(%
{\psgrid@iv(#1)(#2)}{\psgrid@iv(#1)(#1)(#2)}}
\def\psgrid@iv(#1)(#2)(#3){%
\begin@SpecialObj
\pst@getcoor{#1}\pst@tempa
\pst@getcoor{#2}\pst@tempb
\pst@@getcoor{#3}%
\ifnum\psk@subgriddiv>1
\addto@pscode{gsave
\psk@subgridwidth SLW \pst@usecolor\pssubgridcolor
\pst@tempb \pst@coor \pst@tempa
\pst@number\psxunit \pst@number\psyunit
\psk@subgriddiv\space \psk@subgriddots\space
{} 0 \tx@Grid grestore}%
\fi
\addto@pscode{gsave
\psk@gridwidth SLW \pst@usecolor\psgridcolor
\pst@tempb \pst@coor \pst@tempa
\pst@number\psxunit \pst@number\psyunit
1 \psk@griddots\space { \pst@usecolor\psgridlabelcolor }
\psk@gridlabels \tx@Grid grestore}%
\end@SpecialObj}
\newif\ifpsmathbox
\psmathboxtrue
\def\pst@mathflag{\z@}
\newtoks\everypsbox
\let\pst@thisbox\relax
\long\def\pst@makenotverbbox#1#2{%
\edef\pst@mathflag{%
\ifpsmathbox\ifmmode\ifinner 1\else 2\fi\else \z@\fi\else \z@\fi}%
\setbox\pst@hbox=\hbox{%
\ifcase\pst@mathflag\or$\m@th\textstyle\or$\m@th\displaystyle\fi
{\pst@thisbox\the\everypsbox#2}%
\ifnum\pst@mathflag>\z@$\fi}%
#1}
\def\pst@makeverbbox#1{%
\def\pst@afterbox{#1}%
\edef\pst@mathflag{%
\ifpsmathbox\ifmmode\ifinner 1\else 2\fi\else \z@\fi\else \z@\fi}%
\afterassignment\pst@beginbox
\setbox\pst@hbox\hbox}
\def\pst@beginbox{%
\ifcase\pst@mathflag\or$\m@th\or$\m@th\displaystyle\fi
\bgroup\aftergroup\pst@endbox
\pst@thisbox
\the\everypsbox}
\def\pst@endbox{%
\ifnum\pst@mathflag>\z@$\fi
\egroup
\pst@afterbox}
\def\pst@makebox{\pst@@makebox}
\def\psverbboxtrue{\def\pst@@makebox{\pst@makeverbbox}}
\def\psverbboxfalse{\def\pst@@makebox{\pst@makenotverbbox}}
\psverbboxfalse
\def\pst@longbox{%
\def\pst@makebox{%
\gdef\pst@makebox{\pst@@makebox}%
\pst@makelongbox}}
\def\pst@makelongbox#1{%
\def\pst@afterbox{#1}%
\edef\pst@mathflag{%
\ifpsmathbox\ifmmode\ifinner 1\else 2\fi\else \z@\fi\else \z@\fi}%
\setbox\pst@hbox\hbox\bgroup
\aftergroup\pst@afterbox
\ifcase\pst@mathflag\or$\m@th\or$\m@th\displaystyle\fi
\begingroup
\pst@thisbox
\the\everypsbox}
\def\pst@endlongbox{%
\endgroup
\ifnum\pst@mathflag>\z@$\fi
\egroup}
\def\pslongbox#1#2{%
\@namedef{#1}{\pst@longbox#2}%
\@namedef{end#1}{\pst@endlongbox}}
\newdimen\psframesep
\def\psset@framesep#1{\pssetlength\psframesep{#1}}
\psset@framesep{3pt}
\newif\ifpsboxsep
\def\psset@boxsep#1{\@nameuse{psboxsep#1}}
\psset@boxsep{true}
\def\pst@useboxpar{%
\use@par
\if@star
\let\pslinecolor\psfillcolor
\solid@star
\let\solid@star\relax
\fi
\ifpsdoubleline \pst@setdoublesep \fi}
\def\psframebox{\pst@object{psframebox}}
\def\psframebox@i{\pst@makebox\psframebox@ii}
\def\psframebox@ii{%
\begingroup
\pst@useboxpar
\pst@dima=\pslinewidth
\advance\pst@dima by \psframesep
\pst@dimc=\wd\pst@hbox\advance\pst@dimc by \pst@dima
\pst@dimb=\dp\pst@hbox\advance\pst@dimb by \pst@dima
\pst@dimd=\ht\pst@hbox\advance\pst@dimd by \pst@dima
\setbox\pst@hbox=\hbox{%
\ifpsboxsep\kern\pst@dima\fi
\begin@ClosedObj
\addto@pscode{%
\psk@cornersize
\pst@number\pst@dima neg
\pst@number\pst@dimb neg
\pst@number\pst@dimc
\pst@number\pst@dimd
.5
\tx@Frame}%
\def\pst@linetype{2}%
\showpointsfalse
\end@ClosedObj
\box\pst@hbox
\ifpsboxsep\kern\pst@dima\fi}%
\ifpsboxsep\dp\pst@hbox=\pst@dimb\ht\pst@hbox=\pst@dimd\fi
\leavevmode\box\pst@hbox
\endgroup}
\def\psdblframebox{\pst@object{psdblframebox}}
\def\psdblframebox@i{\addto@par{doubleline=true}\psframebox@i}
\def\psclip#1{%
\leavevmode
\begingroup
\begin@psclip
\begingroup
\def\use@pscode{%
\pstVerb{%
\pst@dict
/mtrxc CM def
CP CP T
\tx@STV
\psk@origin
\psk@swapaxes
newpath
\pst@code
clip
newpath
mtrxc setmatrix
moveto
0 setgray
end}%
\gdef\pst@code{}}%
\def\@multips(##1)(##2)##3##4{\pst@misplaced\multips}%
\def\nc@object##1##2##3##4{\pst@misplaced{node connection}}%
\hbox to\z@{#1}%
\endgroup
\def\endpsclip{%
\end@psclip
\endgroup}%
\ignorespaces}
\def\endpsclip{\pst@misplaced\endpsclip}
\let\begin@psclip\relax
\def\end@psclip{\pstVerb{currentpoint initclip moveto}}
\def\AltClipMode{%
\def\end@psclip{\pstVerb{\pst@grestore}}%
\def\begin@psclip{\pstVerb{gsave}}}
\def\clipbox{\@ifnextchar[{\clipbox@}{\clipbox@[\z@]}}
% DG modification begin - Apr. 3, 1997
% From paulus@immd5.informatik.uni-erlangen.de (Dietrich Paulus)
%\def\clipbox@[#1]{\pst@makebox\clipbox@@{#1}}
\def\clipbox@[#1]{\pst@makebox{\clipbox@@{#1}}}
% DG modification end
\def\clipbox@@#1{%
\pssetlength\pst@dimg{#1}%
\leavevmode\hbox{%
\begin@psclip
\pst@Verb{%
CM \tx@STV CP T newpath
/a \pst@number\pst@dimg def
/w \pst@number{\wd\pst@hbox}a add def
/d \pst@number{\dp\pst@hbox}a add neg def
/h \pst@number{\ht\pst@hbox}a add def
a neg d moveto
a neg h L
w h L
w d L
closepath
clip
newpath
0 0 moveto
setmatrix}%
\unhbox\pst@hbox
\end@psclip}}
\def\psshadowbox{\pst@object{psshadowbox}}
\def\psshadowbox@i{\pst@makebox\psshadowbox@ii}
\def\psshadowbox@ii{%
\begingroup
\pst@useboxpar
\psshadowtrue
\psboxseptrue
\def\psk@shadowangle{-45 }%
\setbox\pst@hbox=\hbox{\psframebox@ii}%
\pst@dimh=\psk@shadowsize\p@
\pst@dimh=.7071\pst@dimh
\pst@dimg=\dp\pst@hbox
\advance\pst@dimg\pst@dimh
\dp\pst@hbox=\pst@dimg
\pst@dimg=\wd\pst@hbox
\advance\pst@dimg\pst@dimh
\wd\pst@hbox=\pst@dimg
\leavevmode
\box\pst@hbox
\endgroup}
\def\pscirclebox{\pst@object{pscirclebox}}
\def\pscirclebox@i{\pst@makebox\pscirclebox@ii}
\def\pscirclebox@ii{%
\begingroup
\pst@useboxpar
\setbox\pst@hbox=\hbox{%
\pst@nodehook
\pscirclebox@iii
\box\pst@hbox}%
\ifpsboxsep \pscirclebox@sep \fi
\leavevmode
\box\pst@hbox
\endgroup}
\def\pscirclebox@iii{%
\if@star
\pslinewidth\z@
\pstverb{\pst@dict \tx@STP \pst@usecolor\psfillcolor
newpath \pscirclebox@iv \tx@SD end}%
\else
\begin@ClosedObj
\def\pst@linetype{4}\showpointsfalse
\addto@pscode{%
\pscirclebox@iv CLW 2 div add 0 360 arc closepath}%
\end@ClosedObj
\fi}
\def\pscirclebox@iv{%
\pst@number{\wd\pst@hbox}2 div
\pst@number{\ht\pst@hbox}\pst@number{\dp\pst@hbox}add 2 div
2 copy \pst@number{\dp\pst@hbox}sub 4 2 roll
\tx@Pyth \pst@number\psframesep add }
\def\pscirclebox@sep{%
\pst@dimb=\ht\pst@hbox
\advance\pst@dimb\dp\pst@hbox
\divide\pst@dimb 2
\pst@dima=.5\wd\pst@hbox
\pst@pyth\pst@dima\pst@dimb\pst@dimc
\advance\pst@dimc\pslinewidth
\advance\pst@dimc\psframesep
\advance\pst@dimb-\pst@dimc
\setbox\pst@hbox=\hbox to2\pst@dimc{%
\hss
\vbox{\kern-\pst@dimb\box\pst@hbox}%
\hss}%
\advance\pst@dimb-\dp\pst@hbox
\dp\pst@hbox=-\pst@dimb}
\let\pst@nodehook\relax
\def\psCirclebox{\pst@object{psCirclebox}}
\def\psCirclebox@i{\pst@makebox\psCirclebox@ii}
\def\psCirclebox@ii{%
\begingroup
\pst@useboxpar
\pst@dima=\ht\pst@hbox
\advance\pst@dima\dp\pst@hbox
\divide\pst@dima\tw@
\pssetlength\pst@dimb\psk@radius
\setbox\pst@hbox=\hbox{%
\pst@nodehook
\pscircle(.5\wd\pst@hbox,\pst@dima){\pst@dimb}%
\box\pst@hbox}%
\ifpsboxsep \psCirclebox@sep \fi
\leavevmode
\box\pst@hbox
\endgroup}
\def\psCirclebox@sep{%
\pst@dimc=\pst@dimb
\advance\pst@dimb-\pst@dima
\advance\pst@dima\pst@dimc
\setbox\pst@hbox=\hbox to\tw@\pst@dimc{%
\hss
\vrule width \z@ depth \pst@dimb height \pst@dima
\box\pst@hbox
\hss}}%
\def\psovalbox{\pst@object{psovalbox}}
\def\psovalbox@i{\pst@makebox{\psovalbox@ii}}
\def\psovalbox@ii{%
\begingroup
\pst@useboxpar
\psovalbox@iii
\ifpsboxsep\psovalbox@sep\fi
\leavevmode
\box\pst@hbox
\endgroup}
\def\psovalbox@iii{%
\psovalbox@iv
\setbox\pst@hbox=\hbox{%
\begin@ClosedObj
\addto@pscode{%
0 360
\pst@number\pst@dimc CLW 2 div sub
\pst@number\pst@dimd CLW 2 div sub
\pst@number\pst@dima
\pst@number\pst@dimb
\tx@Ellipse
closepath}%
\def\pst@linetype{2}%
\end@ClosedObj
\unhbox\pst@hbox}}
\def\psovalbox@iv{%
\pst@dimc=\pslinewidth\advance\pst@dimc\psframesep
\pst@dimd=\ht\pst@hbox\advance\pst@dimd\dp\pst@hbox
\pst@dima=.5\wd\pst@hbox
\pst@dimb=.5\pst@dimd\advance\pst@dimb-\dp\pst@hbox
\pst@dimd=.707\pst@dimd
\advance\pst@dimd\pst@dimc
\advance\pst@dimc.707\wd\pst@hbox}
\def\psovalbox@sep{%
\setbox\pst@hbox\hbox to 2\pst@dimc{\hss\unhbox\pst@hbox\hss}%
\pst@dimg=\pst@dimd
\advance\pst@dimg-\pst@dimb
\dp\pst@hbox=\pst@dimg
\advance\pst@dimd\pst@dimb
\ht\pst@hbox=\pst@dimd}
\def\psdiabox{\pst@object{psdiabox}}
\def\psdiabox@i{\pst@makebox{\psdiabox@ii}}
\def\psdiabox@ii{%
\begingroup
\pst@useboxpar
\psdiabox@iii
\ifpsboxsep\psdiabox@sep\fi
\leavevmode
\box\pst@hbox
\endgroup}
\def\psdiabox@iv{%
\pst@dimg=.707\pslinewidth
\advance\pst@dimg.707\psframesep
\pst@dima=\wd\pst@hbox
\divide\pst@dima 2
\pst@dimc=\pst@dima
\advance\pst@dimc\pst@dimg
\pst@dimd=\ht\pst@hbox
\advance\pst@dimd\dp\pst@hbox
\divide\pst@dimd 2
\pst@dimb=\pst@dimd
\advance\pst@dimb-\dp\pst@hbox
\advance\pst@dimd\pst@dimg}
\def\psdiabox@iii{%
\psdiabox@iv
\setbox\pst@hbox=\hbox{%
\begin@ClosedObj
\addto@pscode{%
\psline@iii
pop
.5
\pst@number\pst@dimc 2 mul \pst@number\pst@dimd 2 mul
0
\pst@number\pst@dima \pst@number\pst@dimb
\tx@Diamond}%
\def\pst@linetype{4}%
\end@ClosedObj
\box\pst@hbox}}
\def\psdiabox@sep{%
\setbox\pst@hbox\hbox to 4\pst@dimc{\hss\unhbox\pst@hbox\hss}%
\multiply\pst@dimd 2
\advance\pst@dimd\pst@dimb
\ht\pst@hbox\pst@dimd
\advance\pst@dimd-2\pst@dimb
\dp\pst@hbox\pst@dimd}
\def\psset@trimode#1{\pst@expandafter\psset@@trimode{#1}\@empty\@empty\@nil}
\def\psset@@trimode#1#2#3\@nil{%
\let\pst@tempg#1\relax
\ifx\pst@tempg*%
\let\psk@@trimode\@empty
\let\pst@tempg#2\relax
\else
\let\psk@@trimode\relax
\fi
\edef\psk@trimode{%
\ifx R\pst@tempg 1 \else\ifx D\pst@tempg 2
\else\ifx L\pst@tempg 3 \else 0 \fi\fi\fi}}
\psset@trimode{U}
\def\pstribox{\pst@object{pstribox}}
\def\pstribox@i{\pst@makebox{\pstribox@ii}}
\def\pstribox@ii{%
\begingroup
\pst@useboxpar
\pstribox@iii
\ifpsboxsep\pstribox@sep\fi
\leavevmode
\box\pst@hbox
\endgroup}
\def\pstribox@iii{%
\pstribox@iv
\setbox\pst@hbox=\hbox{%
\begin@ClosedObj
\addto@pscode{%
\psline@iii
pop
.5
\pst@number\pst@dimc \pst@number\pst@dimd
\ifodd\psk@trimode exch \fi
\psk@trimode -90 mul
\pst@number\pst@dima \pst@number\pst@dimb
\tx@Triangle}%
\def\pst@linetype{2}%
\end@ClosedObj
\box\pst@hbox}}
\def\pstribox@iv{%
\pst@dimh=\pslinewidth
\advance\pst@dimh\psframesep
\pst@dimg=\ht\pst@hbox
\advance\pst@dimg-\dp\pst@hbox
\divide\pst@dimg 2
\edef\pst@tempa{\number\pst@dimg sp}% For use by nodes.
\ifodd\psk@trimode
\pst@dimb\pst@dimg
\else
\pst@dima=\wd\pst@hbox
\divide\pst@dima 2
\fi
\ifcase\psk@trimode
\pst@dimb=-\dp\pst@hbox
\advance\pst@dimb-\pst@dimh
\or
\pst@dima=-\pst@dimh
\or
\pst@dimb=\ht\pst@hbox
\advance\pst@dimb\pst@dimh
\or
\pst@dima=\wd\pst@hbox
\advance\pst@dima\pst@dimh
\fi
\pst@dimd=\dp\pst@hbox
\advance\pst@dimd\ht\pst@hbox
\ifx\psk@@trimode\relax
\pst@dimc=\wd\pst@hbox
\advance\pst@dimc\ifodd\psk@trimode 1.447\else 1.789\fi\pst@dimh
\multiply\pst@dimc 2
\advance\pst@dimd\ifodd\psk@trimode 1.789\else 1.447\fi\pst@dimh
\multiply\pst@dimd 2
\else
\ifodd\psk@trimode
\advance\pst@dimd 1.1547\wd\pst@hbox
\advance\pst@dimd 3.4641\pst@dimh
\pst@dimc=.866\pst@dimd
\else
\advance\pst@dimd .866\wd\pst@hbox %.866=(sqrt(3)/2)
\advance\pst@dimd 3\pst@dimh
\pst@dimc=1.1547\pst@dimd % 1.1547=(2/sqrt(3))
\fi
\fi}
\def\pstribox@sep{%
\ifodd\psk@trimode
\advance\pst@dimb.5\pst@dimd
\ht\pst@hbox=\pst@dimb
\advance\pst@dimd-\pst@dimb
\dp\pst@hbox=\pst@dimd
\else
\setbox\pst@hbox\hbox to \pst@dimc{\hss\unhbox\pst@hbox\hss}%
\global\pst@dimg=.5\pst@dimc
\fi
\ifcase\psk@trimode
\dp\pst@hbox-\pst@dimb
\advance\pst@dimd\pst@dimb
\ht\pst@hbox\pst@dimd
\or
\pst@dimg=.5\wd\pst@hbox
\global\advance\pst@dimg-\pst@dima
\setbox\pst@hbox\hbox to \pst@dimc{\kern-\pst@dima\box\pst@hbox\hss}%
\or
\ht\pst@hbox\pst@dimb
\advance\pst@dimd-\pst@dimb
\dp\pst@hbox\pst@dimd
\or
\pst@dimg=\pst@dimc
\advance\pst@dimg-\pst@dima
\global\advance\pst@dimg.5\wd\pst@hbox
\setbox\pst@hbox\hbox to \pst@dimc{%
\hss\box\pst@hbox\kern\psframesep\kern\pslinewidth}%
\fi}
\def\psset@arcsepA#1{\pst@getlength{#1}\psk@arcsepA}
\def\psset@arcsepB#1{\pst@getlength{#1}\psk@arcsepB}
\def\psset@arcsep#1{%
\psset@arcsepA{#1}\let\psk@arcsepB\psk@arcsepA}
\psset@arcsep{0}
\def\tx@ArcArrow{ArcArrow }
\def\psarc{\pst@object{psarc}}
\def\psarc@i{%
\@ifnextchar({\psarc@iii}{\psarc@ii}}
\def\psarc@ii#1{\addto@par{arrows=#1}%
\@ifnextchar({\psarc@iii}{\psarc@iii(0,0)}}
\def\psarc@iii(#1)#2#3#4{%
\begin@OpenObj
\pst@getangle{#3}\pst@tempa
\pst@getangle{#4}\pst@tempb
\pst@@getcoor{#1}%
\pssetlength\pst@dima{#2}%
\addto@pscode{\psarc@iv \psarc@v}%
\gdef\psarc@type{0}%
\showpointsfalse
\end@OpenObj}
\def\psarc@iv{%
\pst@coor /y ED /x ED
/r \pst@number\pst@dima def
/c 57.2957 r \tx@Div def
/angleA
\pst@tempa
\psk@arcsepA c mul 2 div
\ifcase \psarc@type add \or sub \fi
def
/angleB
\pst@tempb
\psk@arcsepB c mul 2 div
\ifcase \psarc@type sub \or add \fi
def
\ifshowpoints\psarc@showpoints\fi
\ifx\psk@arrowA\@empty
\ifnum\psk@liftpen=2
r angleA \tx@PtoC
y add exch x add exch
moveto
\fi
\fi}
\def\psarc@v{%
x y r
angleA
\ifx\psk@arrowA\@empty\else
{ ArrowA CP }
{ \ifcase\psarc@type add \or sub \fi }
\tx@ArcArrow
\fi
angleB
\ifx\psk@arrowB\@empty\else
{ ArrowB }
{ \ifcase\psarc@type sub \or add \fi }
\tx@ArcArrow
\fi
\ifcase\psarc@type arc \or arcn \fi}
\def\psarc@type{0}
\def\psarc@showpoints{%
gsave
newpath
x y moveto
x y r \pst@tempa \pst@tempb
\ifcase\psarc@type arc \or arcn \fi
closepath
CLW 2 div SLW
[ \psk@dash\space ] 0 setdash stroke
grestore }
\def\psarcn{\pst@object{psarcn}}
\def\psarcn@i{\def\psarc@type{1}\psarc@i}
\def\pscircle{\pst@object{pscircle}}
\def\pscircle@i{\@ifnextchar({\pscircle@do}{\pscircle@do(0,0)}}
\def\pscircle@do(#1)#2{%
\if@star
{\use@par\qdisk(#1){#2}}%
\else
\begin@ClosedObj
\pst@@getcoor{#1}%
\pssetlength\pst@dimc{#2}%
\def\pst@linetype{4}%
\addto@pscode{%
\pst@coor
\pst@number\pst@dimc
\psk@dimen CLW mul sub
0 360 arc
closepath}%
\showpointsfalse
\end@ClosedObj
\fi
\ignorespaces}
\def\qdisk(#1)#2{%
\def\pst@par{}%
\begin@SpecialObj
\pst@@getcoor{#1}%
\pssetlength\pst@dimg{#2}%
\addto@pscode{\pst@coor \pst@number\pst@dimg \tx@SD}%
\end@SpecialObj}
\def\psset@radius#1{\pst@@getlength{#1}\psk@radius}
\psset@radius{.25cm}
\def\psCircle{\pst@object{psCircle}}
\def\psCircle@i{\@ifnextchar({\psCircle@ii}{\psCircle@ii(0,0)}}
\def\psCircle@ii(#1){\pscircle@do(#1){\psk@radius}}
\def\pswedge{\pst@object{pswedge}}
\def\pswedge@i{\@ifnextchar({\pswedge@ii}{\pswedge@ii(0,0)}}
\def\pswedge@ii(#1)#2#3#4{%
\begin@ClosedObj
\pssetlength\pst@dimc{#2}
\pst@getangle{#3}\pst@tempa
\pst@getangle{#4}\pst@tempb
\pst@@getcoor{#1}%
\def\pst@linetype{1}%
\addto@pscode{%
\pst@coor
2 copy
moveto
\pst@number\pst@dimc \psk@dimen CLW mul sub % Adjusted radius
\pst@tempa \pst@tempb
arc
closepath}%
\showpointsfalse
\end@ClosedObj}
\def\tx@Ellipse{Ellipse }
\def\psellipse{\pst@object{psellipse}}
\def\psellipse@i(#1){\@ifnextchar(%
{\psellipse@ii(#1)}{\psellipse@ii(0,0)(#1)}}
\def\psellipse@ii(#1)(#2){%
\begin@ClosedObj
\pst@getcoor{#1}\pst@tempa
\pst@@getcoor{#2}%
\addto@pscode{%
0 360
\pst@coor
\ifdim\psk@dimen\p@=\z@\else
\psk@dimen CLW mul
dup 4 -1 roll sub neg 3 1 roll sub
\fi
\pst@tempa
\tx@Ellipse
closepath}%
\def\pst@linetype{2}%
\end@ClosedObj}
\def\multips{\@ifnextchar({\def\pst@par{}\multips@ii}{\multips@i}}
\def\multips@i#1{\def\pst@par{rot=#1}\multips@ii}
\def\multips@ii(#1){\@ifnextchar({\multips@iii(#1)}{\multips@iii(\z@,\z@)(#1)}}
\long\def\multips@iii(#1)(#2)#3#4{%
\begingroup
\use@par
\pst@getcoor{#1}\pst@tempa
\pst@@getcoor{#2}%
\pst@cnta=#3\relax
\init@pscode
\addto@pscode{%
\pst@tempa T \the\pst@cnta\space \pslbrace
gsave \ifx\psk@rot\@empty\else\psk@rot rotate \fi}%
\hbox to\z@{%
\def\init@pscode{%
\addto@pscode{%
gsave
\pst@number\pslinewidth SLW
\pst@usecolor\pslinecolor}}%
\def\use@pscode{\addto@pscode{grestore}}%
\def\psclip##1{\pst@misplaced\psclip}%
\def\nc@object##1##2##3##4{\pst@misplaced{node connection}}%
#4}%
\addto@pscode{grestore \pst@coor T \psrbrace repeat}%
\leavevmode
\use@pscode
\endgroup
\ignorespaces}
\def\scalebox#1{\pst@makebox{\@scalebox{#1}}}
\def\@scalebox#1{%
\begingroup
\pst@getscale{#1}\pst@tempa
\let\pst@tempc\pst@tempg
\let\pst@tempd\pst@temph
\@@scalebox
\endgroup}
\def\@@scalebox{%
\leavevmode
\hbox{%
\ifdim\pst@tempd\p@<\z@
\pst@dimg=\pst@tempd\ht\pst@hbox
\pst@dimh=\pst@tempd\dp\pst@hbox
\dp\pst@hbox=-\pst@dimg
\ht\pst@hbox=-\pst@dimh
\else
\ht\pst@hbox=\pst@tempd\ht\pst@hbox
\dp\pst@hbox=\pst@tempd\dp\pst@hbox
\fi
\pst@dima=\pst@tempc\wd\pst@hbox
\ifdim\pst@dima<\z@\kern-\pst@dima\fi
\pst@Verb{CP CP translate \pst@tempa \tx@NET}%
\hbox to \z@{\box\pst@hbox\hss}%
\pst@Verb{%
CP CP translate
1 \pst@tempc div 1 \pst@tempd div scale
\tx@NET}%
\ifdim\pst@dima>\z@\kern\pst@dima\fi}}
\pslongbox{Scalebox}{\scalebox}
\def\scaleboxto(#1,#2){\pst@makebox{\@scaleboxto(#1,#2)}}
\def\@scaleboxto(#1,#2){%
\begingroup
\pssetlength\pst@dima{#1}%
\pssetlength\pst@dimb{#2}%
\ifdim\pst@dima=\z@\else
\pst@divide{\pst@dima}{\wd\pst@hbox}\pst@tempc
\edef\pst@tempc{\pst@tempc\space}%
\fi
\ifdim\pst@dimb=\z@
\ifdim\pst@dima=\z@
\@pstrickserr{%
\string\scaleboxto\space dimensions cannot both be zero}\@ehpa
\def\pst@tempa{}%
\def\pst@tempc{1 }%
\def\pst@tempd{1 }%
\else
\let\pst@tempd\pst@tempc
\fi
\else
\pst@dimc=\ht\pst@hbox
\advance\pst@dimc\dp\pst@hbox
\pst@divide{\pst@dimb}{\pst@dimc}\pst@tempd
\edef\pst@tempd{\pst@tempd\space}%
\ifdim\pst@dima=\z@ \let\pst@tempc\pst@tempd \fi
\fi
\edef\pst@tempa{\pst@tempc \pst@tempd scale }%
\@@scalebox
\endgroup}
\pslongbox{Scaleboxto}{\scaleboxto}
\def\tx@Rot{Rot }
\def\rotateleft{\pst@makebox{\@rotateleft\pst@hbox}}
\def\@rotateleft#1{%
\leavevmode\hbox{\hskip\ht#1\hskip\dp#1\vbox{\vskip\wd#1%
\pst@Verb{90 \tx@Rot}
\vbox to \z@{\vss\hbox to \z@{\box#1\hss}\vskip\z@}%
\pst@Verb{-90 \tx@Rot}}}}
\def\rotateright{\pst@makebox{\@rotateright\pst@hbox}}
\def\@rotateright#1{%
\hbox{\hskip\ht#1\hskip\dp#1\vbox{\vskip\wd#1%
\pst@Verb{-90 \tx@Rot}
\vbox to \z@{\hbox to \z@{\hss\box#1}\vss}%
\pst@Verb{90 \tx@Rot}}}}
\def\rotatedown{\pst@makebox{\@rotatedown\pst@hbox}}
\def\@rotatedown#1{%
\hbox{\hskip\wd#1\vbox{\vskip\ht#1\vskip\dp#1%
\pst@Verb{180 \tx@Rot}%
\vbox to \z@{\hbox to \z@{\box#1\hss}\vss}%
\pst@Verb{-180 \tx@Rot}}}}
\pslongbox{Rotateleft}{\rotateleft}
\pslongbox{Rotateright}{\rotateright}
\pslongbox{Rotatedown}{\rotatedown}
\def\pst@starbox{%
\setbox\pst@hbox\hbox{\psframebox*[boxsep=false]{\unhbox\pst@hbox}}}
\def\pst@@makesmall#1{%
\setbox#1=\hbox to\z@{\hss\vbox to \z@{\vss\box#1\vss}\hss}}
\def\pst@@@makesmall#1{%
\pst@dimh=\psk@xref\wd#1%
\ifx\psk@yref\relax
\pst@dimg=\dp#1%
\else
\pst@dimg=\psk@yref\ht#1%
\advance\pst@dimg\psk@yref\dp#1%
\fi
\setbox#1=\hbox to\z@{%
\kern-\pst@dimh\vbox to\z@{\vss\box#1\kern-\pst@dimg}\hss}}
\def\psset@ref#1{\pst@expandafter\psset@@ref{#1}\@empty,,\@nil}
\def\psset@@ref#1#2,#3,#4\@nil{%
\def\psk@xref{.5}%
\def\psk@yref{.5}%
\let\pst@makesmall\pst@@@makesmall
\ifx\@empty#3\@empty
\@nameuse{getref@#1}%
\@nameuse{getref@#2}%
\else
\pst@checknum{#1#2}\psk@xref
\pst@checknum{#3}\psk@yref
\fi}
\def\getref@c{\let\pst@makesmall\pst@@makesmall}
\def\getref@t{\def\psk@yref{1}}
\def\getref@b{\def\psk@yref{0}}
\def\getref@B{\let\psk@yref\relax}
\def\getref@l{\def\psk@xref{0}}
\def\getref@r{\def\psk@xref{1}}
\psset@ref{c}
\def\psset@rot#1{%
\pst@expandafter{\@ifnextchar*{\psset@@@rot}{\psset@@rot}}{#1}\@nil}
\def\psset@@rot#1\@nil{%
\def\next##1@#1=##2@##3\@nil{%
\ifx\relax##2%
\pst@getangle{#1}\psk@rot
\else
\def\psk@rot{##2}%
\fi}%
\expandafter\next\pst@rottable @#1=\relax @\@nil}
\def\psset@@@rot#1#2\@nil{%
\psset@@rot#2\@nil
\edef\psk@rot{\pst@rotlist \ifx\psk@rot\@empty\else\psk@rot add \fi}}
\def\pst@rotlist{mark RAngle /a ED cleartomark a neg }
\def\pst@rottable{%
@0=%
@U=%
@L=90 %
@D=180 %
@R=-90 %
@N=\pst@rotlist
@W=\pst@rotlist 90 add %
@S=\pst@rotlist 180 add %
@E=\pst@rotlist 90 sub }
\psset@rot{0}
\def\tx@RotBegin{RotBegin }
\def\tx@RotEnd{RotEnd }
\def\pst@rotate#1#2{%
\ifx#1\@empty\else
\setbox#2=\hbox{\pst@Verb{#1 \tx@RotBegin}\box#2\pst@Verb{\tx@RotEnd}}%
\fi}
\def\psput@cartesian#1{%
\hbox to \z@{\kern\pst@dimg{\vbox to \z@{\vss\box#1\vskip\pst@dimh}\hss}}}
\def\psput@special#1{%
\hbox{%
\pst@Verb{{ \pst@coor } \tx@PutCoor \tx@PutBegin}%
\box#1%
\pst@Verb{\tx@PutEnd}}}
\def\tx@PutCoor{PutCoor }
\def\tx@PutBegin{PutBegin }
\def\tx@PutEnd{PutEnd }
\def\rput{\def\pst@par{}\pst@ifstar{\@ifnextchar[{\rput@i}{\rput@ii}}}
\def\rput@i[#1]{\addto@par{ref={#1}}\rput@ii}
\def\rput@ii{\@ifnextchar({\rput@iv}{\rput@iii}}
\def\rput@iii#1{\addto@par{rot={#1}}\@ifnextchar({\rput@iv}{\rput@iv(\z@,\z@)}}
\def\rput@iv(#1){\pst@killglue\pst@makebox{\rput@v{#1}}}
\def\rput@v#1{%
\begingroup
\use@par
\if@star\pst@starbox\fi
\pst@makesmall\pst@hbox
\pst@rotate\psk@rot\pst@hbox
\psput@{#1}\pst@hbox
\endgroup
\ignorespaces}
\def\multirput{%
\def\pst@par{}%
\pst@ifstar{\@ifnextchar[{\multirput@i}{\multirput@ii}}}
\def\multirput@i[#1]{\addto@par{ref={#1}}\multirput@ii}
\def\multirput@ii{\@ifnextchar({\multirput@iv}{\multirput@iii}}
\def\multirput@iii#1{\addto@par{rot={#1}}\multirput@iv}
\def\multirput@iv(#1){%
\@ifnextchar({\multirput@v(#1)}{\multirput@v(\z@,\z@)(#1)}}
\def\multirput@v(#1,#2)(#3,#4)#5{%
\pst@makebox{\multirput@vi(#1,#2)(#3,#4){#5}}}
\def\multirput@vi(#1,#2)(#3,#4)#5{%
\begingroup
\use@par
\if@star\pst@starbox\fi
\pst@makesmall\pst@hbox
\pst@rotate\psk@rot\pst@hbox
\pssetxlength\pst@dima{#1}%
\pssetylength\pst@dimb{#2}%
\pssetxlength\pst@dimc{#3}%
\pssetylength\pst@dimd{#4}%
\pst@cntg=#5\relax
\pst@cnth=\@ne
\leavevmode
\loop
\vbox to \z@{%
\vss
\hbox to \z@{\kern\pst@dima\copy\pst@hbox\hss}%
\vskip\pst@dimb}%
\ifnum\pst@cntg>\pst@cnth
\advance\pst@dima\pst@dimc
\advance\pst@dimb\pst@dimd
\advance\pst@cnth\@ne
\repeat
\endgroup
\ignorespaces}
\newif\if@fixedradius
\def\cput{\pst@object{cput}}
\def\cput@i{\@fixedradiusfalse\cput@ii}
\def\cput@ii{\pst@killglue\@ifnextchar({\cput@iv}{\cput@iii}}
\def\cput@iii#1{%
\addto@par{rot={#1}}%
\@ifnextchar({\cput@iv}{\cput@iv(\z@,\z@)}}
\def\cput@iv(#1){\pst@makebox{\cput@v{#1}}}
\def\cput@v#1{%
\begingroup
\use@par
\setbox\pst@hbox=\hbox{%
\psboxsepfalse
\if@fixedradius\psCirclebox@ii\else\pscirclebox@ii\fi}%
\pst@@makesmall\pst@hbox
\pst@rotate\psk@rot\pst@hbox
\psput@{#1}\pst@hbox
\endgroup
\ignorespaces}
\def\Cput{\pst@object{Cput}}
\def\Cput@i{\@fixedradiustrue\cput@ii}
\newdimen\pslabelsep
\def\psset@labelsep#1{\pssetlength\pslabelsep{#1}}
\psset@labelsep{5pt}
\def\psset@refangle#1{\pst@expandafter\psset@@refangle{#1}\@nil}
\def\psset@@refangle#1\@nil{%
\def\next##1@#1=##2"##3@##4\@nil{%
\ifx\relax##2%
\pst@getangle{#1}\psk@refangle
\def\psk@uputref{}%
\else
\def\psk@refangle{##2 }%
\def\psk@uputref{##3}%
\fi}%
\expandafter\next\pst@refangletable @#1=\relax"@\@nil}
\def\pst@refangletable{%
@r=0"20%
@u=90"02%
@l=180"10%
@d=-90"01%
@ur=45"22%
@ul=135"12%
@dr=-135"21%
@dl=-45"11}
\psset@refangle{0}
% DG/SR modification begin - Mar. 24, 1999 - Patch 10
%\def\uput{\def\pst@par{}\@ifnextchar[{\uput@ii}{\uput@i}}
\def\uput{\def\pst@par{}\pst@ifstar{\@ifnextchar[{\uput@ii}{\uput@i}}} 
% DG/SR modification end
\def\uput@i#1{\addto@par{labelsep=#1}\uput@ii}
\def\uput@ii[#1]{%
\addto@par{refangle={#1}}%
\@ifnextchar({\uput@iv}{\uput@iii}}
\def\uput@iii#1{%
\addto@par{rot={#1}}%
\@ifnextchar({\uput@iv}{\uput@iv(\z@,\z@)}}
\def\uput@iv(#1){\pst@killglue\pst@makebox{\uput@v{#1}}}
\def\uput@v#1{%
\begingroup
\use@par
\if@star\pst@starbox\fi
\uput@vi
\psput@{#1}\pst@hbox
\endgroup
\ignorespaces}
\def\uput@vi{%
\ifx\psk@uputref\@empty
\uput@vii\tx@UUput{}%
\else
\ifx\psk@rot\@empty
\expandafter\uput@viii\psk@uputref
\else
\uput@vii\tx@UUput{}%
\fi
\fi}
\def\uput@vii#1#2{%
\edef\pst@coor{%
\pst@number\pslabelsep
#2%
\pst@number{\wd\pst@hbox}%
\pst@number{\ht\pst@hbox}%
\pst@number{\dp\pst@hbox}%
\psk@refangle\space \ifx\psk@rot\@empty\else\psk@rot\space sub \fi
\tx@Uput #1}%
\setbox\pst@hbox=\hbox to\z@{\hss\vbox to\z@{\vss\box\pst@hbox\vss}\hss}%
\setbox\pst@hbox=\psput@special\pst@hbox
\ifx\psk@rot\@empty\else\pst@rotate\psk@rot\pst@hbox\fi}
\def\uput@viii#1#2{%
\ifnum#1>\z@\ifnum#2>\z@\pslabelsep=.707\pslabelsep\fi\fi
\setbox\pst@hbox=\vbox to\z@{%
\ifnum#2=1 \vskip\pslabelsep\else\vss\fi
\hbox to\z@{%
\ifnum#1=2 \hskip\pslabelsep\else\hss\fi
\box\pst@hbox
\ifnum#1=1 \hskip\pslabelsep\else\hss\fi}%
\ifnum#2=2 \vskip\pslabelsep\else\vss\fi}}
\def\tx@Uput{Uput }
\def\tx@UUput{UUput }
\def\Rput{\def\pst@par{}\pst@ifstar{\@ifnextchar[{\Rput@ii}{\Rput@i}}}
\def\Rput@i#1{\addto@par{labelsep=#1}\Rput@ii}
\def\Rput@ii[#1]{\addto@par{ref={#1}}\@ifnextchar({\Rput@iv}{\Rput@iii}}
\def\Rput@iii#1{\addto@par{rot={#1}}\@ifnextchar({\Rput@iv}{\Rput@iv(\z@,\z@)}}
\def\Rput@iv(#1){\pst@killglue\pst@makebox{\Rput@v{#1}}}
\def\Rput@v#1{%
\begingroup
\use@par
\if@star\pst@starbox\fi
\Rput@vi
\pst@makesmall\pst@hbox
\pst@rotate\psk@rot\pst@hbox
\psput@{#1}\pst@hbox
\endgroup
\ignorespaces}
\def\Rput@vi{%
\pst@dimg=\dp\pst@hbox
\advance\pst@dimg\pslabelsep
\dp\pst@hbox=\pst@dimg
\pst@dimg=\ht\pst@hbox
\advance\pst@dimg\pslabelsep
\ht\pst@hbox=\pst@dimg
\setbox\pst@hbox\hbox{\kern\pslabelsep\box\pst@hbox\kern\pslabelsep}}%
\def\oldpsput{%
\def\pst@par{}\pst@ifstar{\@ifnextchar[{\oldpsput@i}{\oldpsput@ii}}}
\def\oldpsput@i[#1]{\addto@par{ref={#1}}\oldpsput@ii}
\def\oldpsput@ii{\@ifnextchar<{\oldpsput@iii}{\oldpsput@iv}}
\def\oldpsput@iii<#1>{\rput@iii{#1}}
\def\OldPsput{\let\psput\oldpsput}
\def\NewPsput{\let\psput\rput}
\def\pspicture{\begingroup\pst@ifstar\pst@picture}
\def\pst@picture{%
\@ifnextchar[{\pst@@picture}{\pst@@picture[0]}}
\def\pst@@picture[#1]#2(#3,#4){%
\@ifnextchar({\pst@@@picture[#1](#3,#4)}%
{\pst@@@picture[#1](0,0)(#3,#4)}}
\def\pst@@@picture[#1](#2,#3)(#4,#5){%
\pssetxlength\pst@dima{#2}%
\pssetylength\pst@dimb{#3}%
\pssetxlength\pst@dimc{#4}%
\pssetylength\pst@dimd{#5}%
\ifdim\pst@dima>\pst@dimc
\pst@dimg=\pst@dima
\pst@dima=\pst@dimc
\pst@dimc=\pst@dimg
\fi
\ifdim\pst@dimb>\pst@dimd
\pst@dimg=\pst@dimb
\pst@dimb=\pst@dimd
\pst@dimd=\pst@dimg
\fi
\def\pst@tempa{#1}%
\setbox\pst@hbox=\hbox\bgroup
\begingroup\KillGlue
\@ifundefined{@latexerr}{}{\let\unitlength\psunit}%
\edef\pic@coor{(#2,#3)(#2,#3)(#4,#5)}\ignorespaces}
\def\pic@coor{(0,0)(0,0)(10,10)}
\def\endpspicture{%
\pst@killglue
\endgroup
\egroup
\ifdim\wd\pst@hbox=\z@\else
%\@pstrickserr{Extraneous space in the pspicture environment}%
%{Type \space <return> \space to procede.}%
\fi
\ht\pst@hbox=\pst@dimd
\dp\pst@hbox=-\pst@dimb
\setbox\pst@hbox=\hbox{%
\kern-\pst@dima
\ifx\pst@tempa\@empty\else
\advance\pst@dimd-\pst@dimb
\pst@dimd=\pst@tempa\pst@dimd
\advance\pst@dimd\pst@dimb
\lower\pst@dimd
\fi
\box\pst@hbox
\kern\pst@dimc}%
\if@star\setbox\pst@hbox=\hbox{\clipbox@@\z@}\fi
\leavevmode\box\pst@hbox
\endgroup}
\@namedef{pspicture*}{\pspicture*}
\@namedef{endpspicture*}{\endpspicture}
\def\tx@BeginOL{BeginOL }
\def\tx@InitOL{InitOL }
\def\pst@initoverlay#1{\pst@Verb{\tx@InitOL /TheOL (#1) def}}
\def\AltOverlayMode{%
\def\pst@initoverlay##1{%
\pst@Verb{%
\tx@InitOL
/Visible { initclip } def
/Invisible {
CP newpath OLUnit itransform moveto clip newpath moveto
} def
/TheOL (##1) def}}}
\def\pst@overlay#1{%
\edef\curr@overlay{#1}%
\pst@Verb{(#1) BOL}%
\aftergroup\pst@endoverlay}
\def\pst@endoverlay{%
\pst@Verb{(\curr@overlay) BOL}}
\def\curr@overlay{all}
\newbox\theoverlaybox
\def\overlaybox{%
\global\setbox\theoverlaybox=\hbox\bgroup
\begingroup
\let\psoverlay\pst@overlay
\def\overlaybox{%
\@pstrickserr{Overlays cannot be nested}\@eha}%
\def\putoverlaybox{%
\@pstrickserr{You must end the overlay box
before using \string\putoverlaybox}}%
\psoverlay{main}%
\ignorespaces}
\def\endoverlaybox{\endgroup\egroup}
\def\putoverlaybox#1{%
\hbox{\pst@initoverlay{#1}\copy\theoverlaybox}}
\def\psoverlay{\@pstrickserr{\string\psoverlay\space
can only be used after \string\overlaybox}}
\ifx\pstcustomize\relax \input pstricks.con \fi
\catcode`\@=\PstAtCode\relax
%
\endinput
%%
%% END: pstricks.tex

2dym-open.bbl
\providecommand{\href}[2]{#2}\begingroup\raggedright\begin{thebibliography}{10}

\bibitem{LopesCardoso:1998wt}
B.~de~Wit, G.~Lopes~Cardoso, and T.~Mohaupt, ``Corrections to macroscopic
  supersymmetric black-hole entropy,'' {\em Phys. Lett.} {\bf B451} (1999)
  309--316,
\href{http://www.arXiv.org/abs/hep-th/9812082}{{\tt hep-th/9812082}}.
%%CITATION = HEP-TH 9812082;%%.

\bibitem{LopesCardoso:1999cv}
B.~de~Wit, G.~Lopes~Cardoso, and T.~Mohaupt, ``Deviations from the area law for
  supersymmetric black holes,'' {\em Fortsch. Phys.} {\bf 48} (2000) 49--64,
\href{http://www.arXiv.org/abs/hep-th/9904005}{{\tt hep-th/9904005}}.
%%CITATION = HEP-TH 9904005;%%.

\bibitem{LopesCardoso:1999ur}
B.~de~Wit, G.~Lopes~Cardoso, and T.~Mohaupt, ``Macroscopic entropy formulae and
  non-holomorphic corrections for supersymmetric black holes,'' {\em Nucl.
  Phys.} {\bf B567} (2000) 87--110,
\href{http://www.arXiv.org/abs/hep-th/9906094}{{\tt hep-th/9906094}}.
%%CITATION = HEP-TH 9906094;%%.

\bibitem{Ooguri:2004zv}
H.~Ooguri, A.~Strominger, and C.~Vafa, ``Black hole attractors and the
  topological string,''
\href{http://www.arXiv.org/abs/hep-th/0405146}{{\tt hep-th/0405146}}.
%%CITATION = HEP-TH 0405146;%%.

\bibitem{Vafa:2004qa}
C.~Vafa, ``{T}wo dimensional {Y}ang-{M}ills, black holes and topological
  strings,''
\href{http://www.arXiv.org/abs/hep-th/0406058}{{\tt hep-th/0406058}}.
%%CITATION = HEP-TH 0406058;%%.

\bibitem{Aganagic:2004js}
M.~Aganagic, H.~Ooguri, N.~Saulina, and C.~Vafa, ``{B}lack holes,
  {$q$}-deformed 2d {Y}ang-{M}ills, and non-perturbative topological strings,''
\href{http://www.arXiv.org/abs/hep-th/0411280}{{\tt hep-th/0411280}}.
%%CITATION = HEP-TH 0411280;%%.

\bibitem{bh-atish}
A.~Dabholkar, ``{E}xact counting of black hole microstates,''
  \href{http://www.arXiv.org/abs/hep-th/0409148}{{\tt hep-th/0409148}}.

\bibitem{Sen:2005pu}
A.~Sen, ``Black holes, elementary strings and holomorphic anomaly,''
\href{http://www.arXiv.org/abs/hep-th/0502126}{{\tt hep-th/0502126}}.
%%CITATION = HEP-TH 0502126;%%.

\bibitem{Dabholkar:2005by}
A.~Dabholkar, F.~Denef, G.~W. Moore, and B.~Pioline, ``Exact and asymptotic
  degeneracies of small black holes,''
\href{http://www.arXiv.org/abs/hep-th/0502157}{{\tt hep-th/0502157}}.
%%CITATION = HEP-TH 0502157;%%.

\bibitem{Sen:2005ch}
A.~Sen, ``{B}lack holes and the spectrum of half-{BPS} states in {$\N=4$}
  supersymmetric string theory,''
\href{http://www.arXiv.org/abs/hep-th/0504005}{{\tt hep-th/0504005}}.
%%CITATION = HEP-TH 0504005;%%.

\bibitem{Ferrara:1995ih}
S.~Ferrara, R.~Kallosh, and A.~Strominger, ``{$\N=2$} extremal black holes,''
  {\em Phys. Rev.} {\bf D52} (1995) 5412--5416,
\href{http://www.arXiv.org/abs/hep-th/9508072}{{\tt hep-th/9508072}}.
%%CITATION = HEP-TH 9508072;%%.

\bibitem{Strominger:1996kf}
A.~Strominger, ``{M}acroscopic {E}ntropy of {$\N=2$} {E}xtremal {B}lack
  {H}oles,'' {\em Phys. Lett.} {\bf B383} (1996) 39--43,
\href{http://www.arXiv.org/abs/hep-th/9602111}{{\tt hep-th/9602111}}.
%%CITATION = HEP-TH 9602111;%%.

\bibitem{Witten:1993ed}
E.~Witten, ``Quantum background independence in string theory,''
\href{http://arXiv.org/abs/hep-th/9306122}{{\tt hep-th/9306122}}.
%%CITATION = HEP-TH 9306122;%%.

\bibitem{Dijkgraaf:2002ac}
R.~Dijkgraaf, E.~Verlinde, and M.~Vonk, ``{O}n the partition sum of the {NS}
  five-brane,''
\href{http://www.arXiv.org/abs/hep-th/0205281}{{\tt hep-th/0205281}}.
%%CITATION = HEP-TH 0205281;%%.

\bibitem{Bershadsky:1993ta}
M.~Bershadsky, S.~Cecotti, H.~Ooguri, and C.~Vafa, ``Holomorphic anomalies in
  topological field theories,'' {\em Nucl. Phys.} {\bf B405} (1993) 279--304,
\href{http://www.arXiv.org/abs/hep-th/9302103}{{\tt hep-th/9302103}}.
%%CITATION = HEP-TH 9302103;%%.

\bibitem{Bershadsky:1994cx}
M.~Bershadsky, S.~Cecotti, H.~Ooguri, and C.~Vafa, ``Kodaira-{S}pencer theory
  of gravity and exact results for quantum string amplitudes,'' {\em Commun.
  Math. Phys.} {\bf 165} (1994) 311--428,
\href{http://www.arXiv.org/abs/hep-th/9309140}{{\tt hep-th/9309140}}.
%%CITATION = CMPHA,165,311;%%.

\bibitem{Verlinde:2004ck}
E.~Verlinde, ``Attractors and the holomorphic anomaly,''
\href{http://www.arXiv.org/abs/hep-th/0412139}{{\tt hep-th/0412139}}.
%%CITATION = HEP-TH 0412139;%%.

\bibitem{Bershadsky:1996qy}
M.~Bershadsky, V.~Sadov, and C.~Vafa, ``D-branes and topological field
  theories,'' {\em Nucl. Phys.} {\bf B463} (1996) 420--434,
\href{http://arXiv.org/abs/hep-th/9511222}{{\tt hep-th/9511222}}.
%%CITATION = HEP-TH 9511222;%%.

\bibitem{Bryan:2004iq}
J.~Bryan and R.~Pandharipande, ``{T}he local {G}romov-{W}itten theory of
  curves,''
\href{http://www.arXiv.org/abs/math.ag/0411037}{{\tt math.ag/0411037}}.
%%CITATION = MATH.AG 0411037;%%.

\bibitem{Aganagic:2003db}
M.~Aganagic, A.~Klemm, M.~Marino, and C.~Vafa, ``The topological vertex,''
\href{http://www.arXiv.org/abs/hep-th/0305132}{{\tt hep-th/0305132}}.
%%CITATION = HEP-TH 0305132;%%.

\bibitem{top-integ}
M.~Aganagic, R.~Dijkgraaf, A.~Klemm, M.~Marino, and C.~Vafa, ``{T}opological
  strings and integrable hierarchies,''
  \href{http://www.arXiv.org/abs/hep-th/0312085}{{\tt hep-th/0312085}}.

\bibitem{Elitzur:1989nr}
S.~Elitzur, G.~W. Moore, A.~Schwimmer, and N.~Seiberg, ``Remarks on the
  canonical quantization of the {C}hern-{S}imons-{W}itten theory,'' {\em Nucl.
  Phys.} {\bf B326} (1989)
108.
%%CITATION = NUPHA,B326,108;%%.

\bibitem{Aganagic:2002wv}
M.~Aganagic, A.~Klemm, M.~Marino, and C.~Vafa, ``{M}atrix model as a mirror of
  {C}hern-{S}imons theory,''
\href{http://www.arXiv.org/abs/hep-th/0211098}{{\tt hep-th/0211098}}.
%%CITATION = HEP-TH 0211098;%%.

\bibitem{Witten:1992fb}
E.~Witten, ``{Chern-Simons} gauge theory as a string theory,'' {\em Prog.
  Math.} {\bf 133} (1995) 637--678,
\href{http://www.arXiv.org/abs/hep-th/9207094}{{\tt hep-th/9207094}}.
%%CITATION = HEP-TH 9207094;%%.

\bibitem{Ooguri:1999bv}
H.~Ooguri and C.~Vafa, ``Knot invariants and topological strings,'' {\em Nucl.
  Phys.} {\bf B577} (2000) 419--438,
\href{http://arXiv.org/abs/hep-th/9912123}{{\tt hep-th/9912123}}.
%%CITATION = HEP-TH 9912123;%%.

\bibitem{MR1664890}
R.~C. McLean, ``Deformations of calibrated submanifolds,'' {\em Comm. Anal.
  Geom.} {\bf 6} (1998), no.~4, 705--747.

\bibitem{Aganagic:2001nx}
M.~Aganagic, A.~Klemm, and C.~Vafa, ``Disk instantons, mirror symmetry and the
  duality web,'' {\em Z. Naturforsch.} {\bf A57} (2002) 1--28,
\href{http://www.arXiv.org/abs/hep-th/0105045}{{\tt hep-th/0105045}}.
%%CITATION = HEP-TH 0105045;%%.

\bibitem{Aganagic:2000gs}
M.~Aganagic and C.~Vafa, ``{M}irror symmetry, {D}-branes and counting
  holomorphic discs,''
\href{http://www.arXiv.org/abs/hep-th/0012041}{{\tt hep-th/0012041}}.
%%CITATION = HEP-TH 0012041;%%.

\bibitem{MR1354144}
I.~G. Macdonald, {\em Symmetric functions and {H}all polynomials}.
\newblock Oxford Mathematical Monographs. The Clarendon Press Oxford University
  Press, New York, second~ed., 1995.
\newblock With contributions by A. Zelevinsky, Oxford Science Publications.

\bibitem{Cordes:1995fc}
S.~Cordes, G.~W. Moore, and S.~Ramgoolam, ``Lectures on 2-d {Y}ang-{M}ills
  theory, equivariant cohomology and topological field theories,'' {\em Nucl.
  Phys. Proc. Suppl.} {\bf 41} (1995) 184--244,
\href{http://www.arXiv.org/abs/hep-th/9411210}{{\tt hep-th/9411210}}.
%%CITATION = NUPHZ,41,184;%%.

\bibitem{Buffenoir:1994fh}
E.~Buffenoir and P.~Roche, ``Two-dimensional lattice gauge theory based on a
  quantum group,'' {\em Commun. Math. Phys.} {\bf 170} (1995) 669--698,
\href{http://www.arXiv.org/abs/hep-th/9405126}{{\tt hep-th/9405126}}.
%%CITATION = HEP-TH 9405126;%%.

\bibitem{Gross:1993hu}
D.~J. Gross and W.~Taylor, ``Two-dimensional {QCD} is a string theory,'' {\em
  Nucl. Phys.} {\bf B400} (1993) 181--210,
\href{http://arXiv.org/abs/hep-th/9301068}{{\tt hep-th/9301068}}.
%%CITATION = HEP-TH 9301068;%%.

\bibitem{Iqbal:2004ne}
A.~Iqbal and A.-K. Kashani-Poor, ``The vertex on a strip,''
\href{http://www.arXiv.org/abs/hep-th/0410174}{{\tt hep-th/0410174}}.
%%CITATION = HEP-TH 0410174;%%.

\bibitem{Gopakumar:1998ki}
R.~Gopakumar and C.~Vafa, ``On the gauge theory/geometry correspondence,'' {\em
  Adv. Theor. Math. Phys.} {\bf 3} (1999) 1415--1443,
\href{http://arXiv.org/abs/hep-th/9811131}{{\tt hep-th/9811131}}.
%%CITATION = HEP-TH 9811131;%%.

\bibitem{Aganagic:2002qg}
M.~Aganagic, M.~Marino, and C.~Vafa, ``All loop topological string amplitudes
  from {C}hern-{S}imons theory,''
\href{http://arXiv.org/abs/hep-th/0206164}{{\tt hep-th/0206164}}.
%%CITATION = HEP-TH 0206164;%%.

\bibitem{Witten:1989hf}
E.~Witten, ``Quantum field theory and the {J}ones polynomial,'' {\em Commun.
  Math. Phys.} {\bf 121} (1989)
351.
%%CITATION = CMPHA,121,351;%%.

\bibitem{Gopakumar:1998ii}
R.~Gopakumar and C.~Vafa, ``M-theory and topological strings. {I},''
\href{http://www.arXiv.org/abs/hep-th/9809187}{{\tt hep-th/9809187}}.
%%CITATION = HEP-TH 9809187;%%.

\bibitem{Faber:2000ma}
C.~Faber and R.~Pandharipande, ``{L}ogarithmic series and {H}odge integrals in
  the tautological ring (with an appendix by {D}. {Z}agier),''
\href{http://www.arXiv.org/abs/math.ag/0002112}{{\tt math.ag/0002112}}.
%%CITATION = MATH.AG 0002112;%%.

\bibitem{Saulina:2004da}
N.~Saulina and C.~Vafa, ``{D}-branes as defects in the {C}alabi-{Y}au
  crystal,''
\href{http://www.arXiv.org/abs/hep-th/0404246}{{\tt hep-th/0404246}}.
%%CITATION = HEP-TH 0404246;%%.

\end{thebibliography}\endgroup
