%%
%% This is file `xypdf.tex',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% xypdf.dtx  (with options: `basic')
%% 
%% The xypdf package for TeX and LaTeX
%% Copyright (c) 2010 by Daniel Müllner (M\"ullner)
%% <http://danifold.net>
%% --------------------------------------------------------------------------
%% 
%% This program is free software: you can redistribute it and/or modify it
%% under the terms of the GNU General Public License as published by the Free
%% Software Foundation, either version 2 of the License, or (at your option)
%% any later version.
%% 
%% This program is distributed in the hope that it will be useful, but
%% WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
%% or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
%% for more details.
%% 
%% The GNU General Public License is available at
%% <http://www.gnu.org/licenses/>.
%% 
%% --------------------------------------------------------------------------
%% 
%% This file is part of the xypdf package for TeX and LaTeX2e. The xypdf
%% package may be distributed and/or modified under the conditions of the
%% GNU General Public License as published by the Free Software Foundation,
%% either version 2 of the License, or (at your option) any later version.
%% The distribution consists of the following files:
%% 
%%    xypdf.dtx  -  Documented source code
%%    xypdf.ins  -  Installation script
%%    xypdf.pdf  -  Documentation (generated from xypdf.dtx)
%% 
%% The files with the TeX code are generated by the following command:
%% 
%%    latex xypdf.ins
%% 
%% This generates the files xypdf.tex, xypdf-co.tex, xypdf-cu.tex,
%% xypdf-fr.tex, xypdf-li.tex and xypdf-ro.tex.
%% 
%% --------------------------------------------------------------------------
%% 
%% The xypdf package improves the output quality of the Xy-pic package when
%% PDF documents are generated. It produces generic PDF code for graphical
%% elements like lines, curves and circles instead of approximating these
%% elements with glyphs in special fonts as the original Xy-pic package does.
%% The xypdf package works with both TeX and LaTeX in the occurrences of
%% pdfTeX, XeTeX and eTeX with dvipdfm(x) to generate PDF files. It is being
%% integrated and distributed together with Xy-pic, starting with Xy-pic
%% version 3.8.
%% 
%% The copyright for the xypdf package is by its author, Daniel Müllner
%% (Muellner, M\"ullner).
%% 
\ifx\xyloaded\undefined\input xy \fi
\xyprovide{pdf}{PDF driver}{1.9}{Daniel M\"ullner\newline}{\url{http://danifold.net}}{}
\ifx\makeatletter\undefined\input miniltx \fi
\newcommand*\xypdfdate{2016/07/25}
\newdriver{\xyaddsupport{pdf}\xP@pdf@on
\xyaddsupport{color}\xP@color@on
\xyaddsupport{curve}\xP@curve@on
\xyaddsupport{frame}\xP@frame@on
\xyaddsupport{rotate}\xP@rotate@on
}
\xyaddunsupport{pdf}\xP@pdf@off
\xyaddunsupport{color}\xP@color@off
\xyaddunsupport{curve}\xP@curve@off
\xyaddunsupport{frame}\xP@frame@off
\xyaddunsupport{rotate}\xP@rotate@off
\newcommand*\xypdfon{\xP@pdf@on
\xP@color@on
\xP@curve@on
\xP@frame@on
\xP@line@on
\xP@rotate@on
}
\newcommand*\xypdfoff{\xP@pdf@off
\xP@color@off
\xP@curve@off
\xP@frame@off
\xP@line@off
\xP@rotate@off
}
\ifx\unexpanded\@undefined
\PackageError{xypdf}{eTeX is needed for the xypdf package}{}
\fi
\newcommand*\xP@testpdfsave{\ifpdf
\ifx\pdfsave\@undefined
\ifx\pdfextension\@undefined
\PackageError{xypdf}{LuaTeX or pdfTeX version 1.40.0
or higher is needed for^^Jthe xypdf package with PDF output}{}\fi
\fi
\fi
\let\xP@testpdfsave\@undefined
}
\ifx\PackageWarning\@undefined
\newcommand*\xP@warning[2]{{\newlinechar`\^^J\@warning{Package #1 Warning: #2\@empty.}}}
\else
\newcommand*\xP@warning{\PackageWarning}
\fi
\newcommand*\xP@pdf@on{}
\newcommand*\xP@pdf@off{}
\newcommand*\xP@color@on{}
\newcommand*\xP@color@off{}
\newcommand*\xP@curve@on{}
\newcommand*\xP@curve@off{}
\newcommand*\xP@frame@on{}
\newcommand*\xP@frame@off{}
\newcommand*\xP@line@on{}
\newcommand*\xP@line@off{}
\newcommand*\xP@rotate@on{}
\newcommand*\xP@rotate@off{}
\newcommand*\xP@hook[2]{\edef\next@{\let\expandafter\noexpand\csname xP@old@#2\endcsname
\expandafter\noexpand\csname#2\endcsname}\next@
\expandafter\edef\csname xP@#1@on\endcsname{\unexpanded\expandafter\expandafter\expandafter{\csname xP@#1@on\endcsname}\let\expandafter\noexpand\csname#2\endcsname
\expandafter\noexpand\csname xP@#2\endcsname
}\expandafter\edef\csname xP@#1@off\endcsname{\unexpanded\expandafter\expandafter\expandafter{\csname xP@#1@off\endcsname}\let\expandafter\noexpand\csname#2\endcsname
\expandafter\noexpand\csname xP@old@#2\endcsname
}}
\newcommand*\xP@defpdfliteral{\ifpdf
\ifx\pdfextension\@undefined
\newcommand*\xP@literal[1]{\pdfsave\pdfliteral{##1}\pdfrestore}
\newcommand*\xP@cm[5]{\pdfsave
\pdfsetmatrix{##1 ##2 ##3 ##4}##5\pdfrestore
}
\else
\newcommand*\xP@literal[1]{\pdfextension save\pdfextension literal{##1}\pdfextension restore\relax
}
\newcommand*\xP@cm[5]{\pdfextension save\pdfextension setmatrix{##1 ##2 ##3 ##4}##5\pdfextension restore\relax
}
\fi
\@ifundefined{@pdfcolorstack}{\def\@pdfcolorstack{\z@}}{}\ifx\pdfextension\@undefined
\newcommand*\xP@setcolor[3]{\pdfcolorstack\@pdfcolorstack push{##1 ##2 ##1 ##3}}
\newcommand*\xP@resetcolor{\pdfcolorstack\@pdfcolorstack pop\relax}\else
\newcommand*\xP@setcolor[3]{\pdfextension colorstack\@pdfcolorstack push{##1 ##2 ##1 ##3}}
\newcommand*\xP@resetcolor{\pdfextension colorstack\@pdfcolorstack pop\relax
}\fi
\else
\newcommand*\xP@literal{\xP@warning{xypdf}{The produced DVI file is NOT PORTABLE. Convert it with^^Jdvipdfm(x) to the PDF format but do not expect the DVI file itself to be^^Jdisplayed correctly\@gobble}\global\let\xP@literal\xP@literal@
\xP@literal
}
\newcommand*\xP@literal@[1]{\special{pdf:content ##1}}
\newcommand*\xP@cm[5]{\special{pdf:btrans matrix ##1 ##2 ##3 ##4 0 0}##5\special{pdf:etrans}}
\newcommand*\xP@setcolor[3]{\special{pdf:bcolor[##1]}}
\newcommand*\xP@resetcolor{\special{pdf:ecolor}}\fi
\let\xP@defpdfliteral\@undefined
}
\DN@{\@firstofone}
\DNii@{xy}
\ifx\@currname\nextii@
\ifx\AtEndOfPackage\@undefined
\else
\DN@{\AtEndOfPackage}\fi
\fi
\next@
{\RequirePackage{ifpdf}\xP@testpdfsave
\xP@defpdfliteral}
\@ifdefinable\xP@digits\relax
\ifx\pdfvariable\@undefined
\ifx\pdfdecimaldigits\@undefined
\newcommand*\xP@digits{2}
\else
\xdef\xP@digits{\the\pdfdecimaldigits}
\ifnum\xP@digits<2
\xP@warning{xypdf}{The precision in \string\pdfdecimaldigits\space is only \xP@digits\space decimals.^^JIt is recommended to set \string\pdfdecimaldigits\space to 2 or 3 for best output quality\@gobble}
\fi
\fi
\else
\xdef\xP@digits{\the\pdfvariable decimaldigits}
\ifnum\xP@digits<2
\xP@warning{xypdf}{The precision in "\string\pdfvariable\space decimaldigits" is only \xP@digits^^Jdecimals. It is recommended to set "decimaldigits" to 2 or 3 for best output^^Jquality\@gobble}
\fi
\fi
\newcommand*\xP@dim[1]{\expandafter\xP@removePT\the\dimexpr(#1)*800/803\relax\space}
\newcommand*\xP@precdim[1]{\xP@EARPT\dimexpr(#1)*800/803\relax\space}
\newcommand*\xP@EARPT{\expandafter\removePT@\the}
\newcommand*\xP@coor[1]{\xP@dim{#1}\xP@dim}
\@ifdefinable\xP@removePT\relax
{\@makeother\p\@makeother\t\gdef\xP@removePT#1pt{\xP@removePT@#10000@}}
\@ifdefinable\xP@removePT@\relax
\ifcase\xP@digits
\def\xP@removePT@#1.#2#3@{\ifnum#2<5
#1\else
\the\numexpr-\if-#1-\else-#1+\fi\@ne\relax
\fi
}
\or
\def\xP@removePT@#1#2.#3#4#5@{\ifnum#4<5
#1#2\if#30\else
.#3\fi
\else
\expandafter\xP@removePT
\the\dimexpr#1#2.#3pt+\if#1--\fi.12pt\relax
\fi
}
\or
\def\xP@removePT@#1#2.#3#4#5#6@{\ifnum#5<5
#1#2\if#40\if#30\else
.#3\fi
\else
.#3#4\fi
\else
\expandafter\xP@removePT
\the\dimexpr#1#2.#3#4pt+\if#1--\fi786sp\relax
\fi
}
\or
\def\xP@removePT@#1#2.#3#4#5#6#7@{\ifnum#6<5
#1#2\if#50\if#40\if#30\else
.#3\fi
\else
.#3#4\fi
\else
.#3#4#5\fi
\else
\expandafter\xP@removePT
\the\dimexpr#1#2.#3#4#5pt+\if#1--\fi79sp\relax
\fi
}
\or
\def\xP@removePT@#1#2.#3#4#5#6#7#8@{\ifnum#7<5
#1#2\if#60\if#50\if#40\if#30\else
.#3\fi
\else
.#3#4\fi
\else
.#3#4#5\fi
\else
.#3#4#5#6\fi
\else
\expandafter\xP@removePT
\the\dimexpr#1#2.#3#4#5#6pt+\if#1--\fi8sp\relax
\fi
}
\else
\let\xP@dim\xP@precdim
\fi
\AtBeginDocument{{\setboxz@h{$ $}}\@ifdefinable\xP@lw\relax
\@ifdefinable\xP@preclw\relax
\edef\xP@preclw{\the\fontdimen8\textfont3}\edef\xP@lw{\xP@dim\xP@preclw}\PackageInfo{xypdf}{Line width: \xP@preclw}}
\xP@hook{pdf}{line@}
\newcommand*\xP@line@{\setboxz@h{\xP@setsolidpat
\xP@stroke{0 0 m \xP@coor{\cosDirection\xydashl@}{\sinDirection\xydashl@}l}}\U@c\sinDirection\xydashl@
\D@c\z@
\ifdim\U@c<\z@
\multiply\U@c\m@ne
\xP@swapdim\U@c\D@c
\fi
\ht\z@\U@c
\dp\z@\D@c
\R@c\cosDirection\xydashl@
\L@c\z@
\ifdim\R@c<\z@
\multiply\R@c\m@ne
\xP@swapdim\L@c\R@c
\fi
\hskip\L@c\boxz@\hskip\R@c
\edef\tmp@{\egroup\U@c\the\U@c\D@c\the\D@c\L@c\the\L@c\R@c\the\R@c}\tmp@
\Edge@c={\rectangleEdge}\edef\Upness@{\ifdim\z@<\U@c1\else0\fi}\edef\Leftness@{\ifdim\z@<\L@c1\else0\fi}\def\Drop@@{\styledboxz@}\def\Connect@@{\solid@}}
\xP@hook{pdf}{solid@}
\newcommand*\xP@solid@{\straight@\xP@solidSpread}
\@ifdefinable\xP@solidSpread\relax
\def\xP@solidSpread#1\repeat@{{\@tempswatrue
\ifdim\X@p=\X@c
\ifdim\Y@p=\Y@c
\@tempswafalse
\fi
\fi
\if@tempswa
\xP@setsolidpat
\xP@stroke{\xP@coor\X@p\Y@p m \xP@coor\X@c\Y@c l}\fi
}}
\newcommand*\xP@pattern{}
\newcommand*\xP@setsolidpat{\def\xP@pattern{1 J 1 j []0 d}\global\let\xP@lastpattern\xP@solidmacro
}
\newcommand*\xP@stroke[1]{\xP@literal{\xP@lw w \xP@pattern\space#1 S}}
\xP@hook{pdf}{dash@}
\newcommand\xP@dash@{\line@\def\Connect@@{\straight@\xP@dashedSpread}}
\@ifdefinable\xP@dashedSpread\relax
\def\xP@dashedSpread#1\repeat@{{\xP@veclen
\ifdim\@tempdimb>\z@
\xP@setdashpat
\xP@savec
\xP@stroke{\xP@coor\X@p\Y@p m \xP@coor\X@c\Y@c l}\fi
}}
\newcommand*\xP@setdashpat{\xP@testcont\xP@dashmacro
\ifxP@splinecont
{\count@\numexpr2*((\@tempdimb-\xydashl@/3)/(2*\xydashl@))\relax
\global\dimen@i
\ifnum\count@>\z@
\dimexpr\@tempdimb/\count@\relax
\else
\z@
\fi
}\@tempdima\dimen@i
\edef\xP@pattern{1 J 1 j [\ifdim\@tempdima>\z@
\xP@precdim\@tempdima]\xP@precdim\@tempdima
\else
]0 \fi
d}\else
\@tempdima
\ifdim\@tempdimb>\xydashl@
\dimexpr\@tempdimb/(2*((\@tempdimb+\xydashl@)/(2*\xydashl@))-1)\relax
\else
\z@
\fi
\edef\xP@pattern{1 J 1 j [\ifdim\@tempdima>\z@\xP@precdim\@tempdima\fi
]0 d}\fi
\global\let\xP@lastpattern\xP@dashmacro
}
\newcommand*\xP@setcldashpat{{\count@\numexpr2*((\@tempdimb-\xydashl@/3)/(2*\xydashl@))\relax
\xdef\@gtempa{1 J 1 j [\ifnum\count@>\z@\xP@precdim{\@tempdimb/\count@}\fi]\ifnum\count@>\z@\xP@precdim{\@tempdimb*3/2/\count@}\else0 \fi d}}\edef\xP@pattern{\@gtempa}}
\xP@hook{pdf}{point@}
\newcommand*\xP@point@{\xP@zerodot\egroup\Invisible@false
\Hidden@false\def\Leftness@{.5}\def\U@pness@{.5}\ctipEdge@
\def\Drop@@{\styledboxz@}\def\Connect@@{\straight@\xP@dottedSpread}}
\newcommand*\xP@zerodot{\hb@xt@\z@{\hss
\vbox to\z@{\vss\hrule\@width\xP@preclw\@height\xP@preclw\vss}\hss}}
\@ifdefinable\xP@dottedSpread\relax
\def\xP@dottedSpread#1\repeat@{{\xP@veclen
\ifdim\@tempdimb>\z@
\xP@setdottedpat
\xP@savec
\xP@stroke{\xP@coor\X@p\Y@p m \xP@coor\X@c\Y@c l}\fi
}}
\newcommand*\xP@setdottedpat{\xP@testcont\xP@dotmacro
\ifxP@splinecont
\@tempdima\dimexpr\@tempdimb/(\@tempdimb/131072+1)-\xP@preclw\relax
\edef\xP@pattern{0 J [\ifdim\@tempdima>\z@
\xP@precdim\xP@preclw\xP@precdim\@tempdima
\fi
]\xP@precdim{\xP@preclw+1sp}d}\else
\advance\@tempdimb-\xP@preclw
\ifdim\@tempdimb<\z@\@tempdimb\z@\fi
\@tempdima\dimexpr\@tempdimb/(\@tempdimb/131072+1)-\xP@preclw\relax
\edef\xP@pattern{0 J [\ifdim\@tempdima>\z@
\xP@precdim\xP@preclw\xP@precdim\@tempdima
\fi
]0 d}\fi
\global\let\xP@lastpattern\xP@dotmacro
}
\newcommand*\xP@setcldottedpat{\@tempdima\dimexpr\@tempdimb/(\@tempdimb/131072+1)-\xP@preclw\relax
\edef\xP@pattern{0 J [\ifdim\@tempdima>\z@
\xP@precdim\xP@preclw\xP@precdim\@tempdima
\fi
]\xP@precdim{\dimexpr\xP@preclw+\@tempdima/2\relax}d}}
\newcommand*\xP@abs[1]{\ifdim#1<\z@\multiply#1\m@ne\fi}
\ifx\ifpdfabsdim\@undefined
\newcommand*\xP@ifabsless[2]{\ifdim\ifdim#1<\z@-\fi#1<\ifdim#2<\z@-\fi#2}
\@gobble\fi
\else
\newcommand*\xP@ifabsless[2]{\ifpdfabsdim#1<#2}
\fi
\ifx\ifabsdim\@undefined
\else
\renewcommand*\xP@ifabsless[2]{\ifabsdim#1<#2}
\fi
\newcommand*\xP@swapdim[2]{\@tempdima#1#1#2#2\@tempdima}
\newcommand*\xP@swapnum[2]{\@tempcnta#1#1#2#2\@tempcnta}
\newcommand*\xP@min[2]{\ifdim#1<#2#1\else#2\fi}
\newcommand*\xP@max[2]{\ifdim#1>#2#1\else#2\fi}
\newcommand*\xP@Max[2]{#1\ifdim#2<\z@\xP@max#1{-#2}\else\xP@max#1#2\fi}
\newcommand*\xP@sqrt{\loop
\@tempdimb\dimexpr(\@tempdimc+(\@tempdima*\p@/\@tempdimc))/2\relax
\unless\ifdim\@tempdimc=\@tempdimb
\@tempdimc\@tempdimb\relax
\repeat
}
\newcommand*\xP@veclen{{\xP@veclen@
\global\dimen@i\@tempdimb
}\@tempdimb\dimen@i
}
\newcommand*\xP@veclen@{\xP@abs\d@Y
\ifdim\d@X=\z@
\@tempdimb\d@Y
\else
\xP@abs\d@X
\ifdim\d@Y=\z@
\@tempdimb\d@X
\else
\@tempswatrue
\ifdim\d@X>5931641sp\relax\@tempswafalse\fi
\ifdim\d@Y>5931641sp\relax\@tempswafalse\fi
\if@tempswa
\count@\@ne
\loop
\@tempdima\dimexpr\d@X*\d@X/\p@+\d@Y*\d@Y/\p@\relax
\ifdim\@tempdima<4096pt
\@tempcnta\ifdim\@tempdima<1024pt\ifdim\@tempdima<256pt8\else4\fi\else\tw@\fi
\multiply\d@X\@tempcnta
\multiply\d@Y\@tempcnta
\multiply\count@\@tempcnta
\repeat
\@tempdimc\dimexpr(\d@X+\d@Y)*3/4\relax
\xP@sqrt
\@tempdimb\dimexpr\@tempdimb/\count@\relax
\else
\ifdim\d@X>83042982sp\relax\@tempswatrue\fi
\ifdim\d@Y>83042982sp\relax\@tempswatrue\fi
\if@tempswa
\@tempdima\dimexpr\d@X/182*\d@X/11927552+\d@Y/182*\d@Y/11927552\relax
\@tempdimc\dimexpr(\d@X+\d@Y)*3/728\relax
\xP@sqrt
\multiply\@tempdimb182\relax
\else
\@tempdima\dimexpr\d@X*\d@X/12845056+\d@Y*\d@Y/12845056\relax
\@tempdimc\dimexpr(\d@X+\d@Y)*3/56\relax
\xP@sqrt
\multiply\@tempdimb14\relax
\fi
\fi
\fi
\fi
}
\xP@hook{pdf}{squiggledSpread@}
\@ifdefinable\xP@squiggledSpread@\relax
\def\xP@squiggledSpread@#1\repeat@{{\xP@veclen
\ifdim\@tempdimb>\z@
\edef\@tempa{\xP@coor\X@p\Y@p m }\toks@\expandafter{\@tempa}\@tempcnta\numexpr\@tempdimb/\xybsqll@\relax
\ifnum\@tempcnta<\tw@\@tempcnta\tw@\fi
\@tempdima\dimexpr\d@X/\@tempcnta\relax
\@tempdimc\dimexpr\d@Y/\@tempcnta\relax
\xP@testcont\xP@oddsquigglemacro
\ifxP@splinecont
\def\xP@squigsign{-}\else
\let\xP@squigsign\@empty
\fi
\count@\z@
\loop
\xP@append\toks@{\xP@coor{\X@p+\d@X*\count@/\@tempcnta+(\@tempdima
-\xP@squigsign\ifodd\count@-\fi\@tempdimc)*147546029/534618434}{\Y@p+\d@Y*\count@/\@tempcnta+(\@tempdimc
+\xP@squigsign\ifodd\count@-\fi\@tempdima)*147546029/534618434}}\advance\count@\@ne
\xP@append\toks@{\xP@coor{\X@p+\d@X*\count@/\@tempcnta-(\@tempdima
-\xP@squigsign\ifodd\count@-\fi\@tempdimc)*147546029/534618434}{\Y@p+\d@Y*\count@/\@tempcnta-(\@tempdimc
+\xP@squigsign\ifodd\count@-\fi\@tempdima)*147546029/534618434}\xP@coor{\X@p+\d@X*\count@/\@tempcnta}{\Y@p+\d@Y*\count@/\@tempcnta}c }\ifnum\count@<\@tempcnta
\repeat
\xP@setsolidpat
\global\expandafter\let\expandafter\xP@lastpattern
\ifodd\numexpr\count@\if\xP@squigsign-+1\fi\relax
\xP@oddsquigglemacro
\else
\xP@evensquigglemacro
\fi
\xP@savec
\xP@stroke{\the\toks@}\fi
}}
\newcommand*\xP@squigsign{}
\newcommand*\xP@append[2]{{\edef\@tempa{#1{\the#1#2}}\expandafter}\@tempa
}
\xP@hook{pdf}{circhar@@}
\newcommand*\xP@circhar@@[1]{\expandafter\xP@circhar@@@\ifcase#1 000{-173517671/654249180}{65307479/619869377}{-34221476/65864945}{225058681/768398401}{-543339720/768398401}\or
0{-543339720/768398401}{181455824/967576667}{-554561898/619869377}{826676217/1870772527}{-1}{543339720/768398401}{-1}\or
0{-1}{173517671/654249180}{-1}{34221476/65864945}{-554561898/619869377}{543339720/768398401}{-543339720/768398401}\or
0{-543339720/768398401}{181455824/967576667}{-34221476/65864945}{225058681/768398401}{-173517671/654249180}{225058681/768398401}0\or
0{543339720/768398401}{181455824/967576667}{34221476/65864945}{225058681/768398401}{173517671/654249180}{225058681/768398401}0\or
01{173517671/654249180}1{34221476/65864945}{554561898/619869377}{543339720/768398401}{543339720/768398401}\or
0{543339720/768398401}{181455824/967576667}{554561898/619869377}{826676217/1870772527}1{543339720/768398401}1\or
000{173517671/654249180}{65307479/619869377}{34221476/65864945}{225058681/768398401}{543339720/768398401}\fi}
\newcommand\xP@circhar@@@[8]{\xP@setsolidpat
\xP@stroke{\xP@coor{\R@*#1}{\R@*#2}m
\xP@coor{\R@*#3}{\R@*#4}\xP@coor{\R@*#5}{\R@*#6}\xP@coor{\R@*#7}{\R@*#8}c}\vrule width\z@ height\R@ depth\R@
\kern\dimexpr\R@*#7\relax
}
\xP@hook{pdf}{cirrestrict@@}
\newcommand*\xP@cirrestrict@@{\count@\z@\relax}
\newcommand*\xP@trigfromdir[1]{{\Direction#1\relax
\count@-\Direction
\advance\count@4096
\divide\count@2048
\ifcase\count@
\d@X\K@\p@
\d@Y\numexpr\Direction-3*\K@\relax\p@
\or
\d@X\numexpr\Direction-\K@\relax\p@
\d@Y-\K@\p@
\or
\d@X-\K@\p@
\d@Y\numexpr-\Direction-\K@\relax\p@
\or
\d@X\numexpr-\Direction-3*\K@\relax\p@
\d@Y\K@\p@
\else
\PackageError{xypdf}{Unexpected case in direction calculation}{Feel free to contact the author of the xypdf package with a minimal example.}\fi
\xP@veclen
\xdef\@gtempa{\def\noexpand\cosDirection{\xP@EARPT\dimexpr\d@X*\p@/\@tempdimb\relax}\def\noexpand\sinDirection{\xP@EARPT\dimexpr\d@Y*\p@/\@tempdimb\relax}}}\@gtempa
}
\outer\def\@tempa{\alloc@1\dimen\dimendef\insc@unt}
\let\xP@newdimen\newdimen
\ifx\newdimen\@tempa
\def\xP@newdimen{\alloc@1\dimen\dimendef\insc@unt}
\fi
\outer\def\@tempa#1{\count@=\escapechar\escapechar=-1
\expandafter\expandafter\expandafter
\def\@if#1{true}{\let#1=\iftrue}\expandafter\expandafter\expandafter
\def\@if#1{false}{\let#1=\iffalse}\@if#1{false}\escapechar=\count@}
\let\@tempa\relax
\newcommand*\xP@lastX{}
\newcommand*\xP@lastY{}
\newcommand*\xP@lastpattern{}
\newcommand*\xP@solidmacro{solid}
\newcommand*\xP@dotmacro{dot}
\newcommand*\xP@dashmacro{dash}
\newcommand*\xP@evensquigglemacro{evensquiggle}
\newcommand*\xP@oddsquigglemacro{oddsquiggle}
\newcommand*\xP@brokensquigglemacro{brokensquiggle}
\renewcommand*\xyinside@{\global\let\xP@lastpattern\@empty
\saveXyStyle@ \aftergroup\xycheck@end
\setboxz@h\bgroup
\plainxy@
\X@c=\z@\Y@c=\z@\czeroEdge@
\X@p=\z@\Y@p=\z@\U@p=\z@\D@p=\z@\L@p=\z@\R@p=\z@\Edge@p={\zeroEdge}\X@min=\hsize\X@max=-\hsize\Y@min=\hsize\Y@max=-\hsize
\mathsurround=\z@
\expandafter\POS\everyxy@@
}
\newcommand*\xP@savec{\xdef\xP@lastX{\the\X@c}\xdef\xP@lastY{\the\Y@c}}
\@ifdefinable\ifxP@splinecont\relax
\@ifdefinable\xP@splineconttrue\relax
\@ifdefinable\xP@splinecontfalse\relax
\newif\ifxP@splinecont
\newcommand*\xP@testcont[1]{\xP@splinecontfalse
\ifxP@cont
\ifx\xP@lastpattern#1\ifdim\xP@lastX=\X@p
\ifdim\xP@lastY=\Y@p
\xP@splineconttrue
\fi
\fi
\fi
\fi
}
\@ifdefinable\ifxP@cont\relax
\@ifdefinable\xP@conttrue\relax
\@ifdefinable\xP@contfalse\relax
\newif\ifxP@cont
\newcommand*\xypdfcontpatternon{\xP@conttrue}
\newcommand*\xypdfcontpatternoff{\xP@contfalse}
\xP@conttrue
\let\@tempa\@undefined
\let\nextii@\@undefined
\DN@{\xywithoption{color}{\message{Xy-pic pdf driver: `color' extension support}\@ifundefined{xypdf-co@loaded}{\input xypdf-co\relax}{\message{not reloaded}}}\xywithoption{curve}{\message{Xy-pic pdf driver: `curve' extension support}\@ifundefined{xypdf-cu@loaded}{\input xypdf-cu\relax}{\message{not reloaded}}}\xywithoption{frame}{\message{Xy-pic pdf driver: `frame' extension support}\@ifundefined{xypdf-fr@loaded}{\input xypdf-fr\relax}{\message{not reloaded}}}\xywithoption{line}{\message{Xy-pic pdf driver: `line' extension support}\@ifundefined{xypdf-li@loaded}{\input xypdf-li\relax}{\message{not reloaded}}}\xywithoption{rotate}{\message{Xy-pic pdf driver: `rotate' extension support}\@ifundefined{xypdf-ro@loaded}{\input xypdf-ro\relax}{\message{not reloaded}}}}
\next@
\xyendinput
%%
%% End of file `xypdf.tex'.
