diff --git a/books/bookvol10.3.pamphlet b/books/bookvol10.3.pamphlet
index e496cbf..2b35d0e 100644
--- a/books/bookvol10.3.pamphlet
+++ b/books/bookvol10.3.pamphlet
@@ -39196,7 +39196,7 @@ the open operation.
"jazz1"
Type: File List Integer
-The open function arguments are a FileNam} and a String specifying the
+The open function arguments are a FileName and a String specifying the
mode. If a full pathname is not specified, the current default
directory is assumed. The mode must be one of "input" or "output".
If it is not specified, "input" is assumed. Once the file has been
diff --git a/books/bookvol10.4.pamphlet b/books/bookvol10.4.pamphlet
index 1b5716f..65a295f 100644
--- a/books/bookvol10.4.pamphlet
+++ b/books/bookvol10.4.pamphlet
@@ -42689,6 +42689,276 @@ GraphicsDefaults(): Exports == Implementation where
\end{chunk}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{package GRAPHVIZ Graphviz}
+\begin{chunk}{Graphviz.input}
+)set break resume
+)sys rm -f Graphviz.output
+)spool Graphviz.output
+)set message test on
+)set message auto off
+)clear all
+
+--S 1 of 6
+header:=standardDotHeader()
+--R
+--R
+--R (1)
+--R ["digraph graphname {", "graph [rankdir="LR" ranksep="3.0"]",
+--R "node [style=filled];", "edge [penwidth="0.5" color="blue"];"]
+--R Type: List(String)
+--E 1
+
+--S 2 of 6
+graph:=sampleDotGraph()
+--R
+--R
+--R (2)
+--R ["I1 [fillcolor="white"];", "I2 [fillcolor="white"];",
+--R "N1 [fillcolor="cadetblue"];", "N2 [fillcolor="coral"];",
+--R "N3 [fillcolor="green"];", "N4 [fillcolor="gold"];",
+--R "N5 [fillcolor="cyan"];", "N6 [fillcolor="red"];",
+--R "N7 [fillcolor="yellow"];", "N8 [fillcolor="orange"];",
+--R "O1 [fillcolor="white"];", "O2 [fillcolor="white"];", "I1 -> N1;",
+--R "I1 -> N2;", "I1 -> N3;", "I2 -> N1;", "I2 -> N2;", "I2 -> N3;",
+--R "N1 -> N4;", "N1 -> N5;", "N1 -> N6;", "N2 -> N4;", "N2 -> N5;",
+--R "N2 -> N6;", "N3 -> N4;", "N3 -> N5;",
+--R "N3 -> N6 [color="red" penwidth="3"];", "N4 -> N7;", "N4 -> N8;",
+--R "N5 -> N7;", "N5 -> N8;", "N6 -> N7;", "N6 -> N8;", "N7 -> O1;",
+--R "N8 -> O2;"]
+--R Type: List(String)
+--E 2
+
+--S 3 of 6
+writeDotGraph(header,graph,"NeuralNet")
+--R
+--R Type: Void
+--E 3
+
+--S 4 of 6
+dot2eps "NeuralNet"
+--R
+--R Type: Void
+--E 4
+
+--S 5 of 6
+-- dotview("evince","NeuralNet")
+--S 5
+
+--S 6 of 6
+)show Graphviz
+--R
+--R Graphviz is a package constructor
+--R Abbreviation for Graphviz is GRAPHVIZ
+--R This constructor is exposed in this frame.
+--R Issue )edit /research/silver/books/bookvol10.4.pamphlet to see algebra source code for GRAPHVIZ
+--R
+--R------------------------------- Operations --------------------------------
+--R dot2eps : String -> Void dotview : (String,String) -> Void
+--R sampleDotGraph : () -> List(String)
+--R standardDotHeader : () -> List(String)
+--R writeDotGraph : (List(String),List(String),String) -> Void
+--R
+--E 6
+
+)spool
+)lisp (bye)
+\end{chunk}
+\begin{chunk}{Graphviz.help}
+====================================================================
+Graphviz examples
+====================================================================
+
+Graphviz dot files have a header which might look like
+
+ digraph graphname {
+ graph [rankdir="LR" ranksep="3.0"]
+ node [style=filled];
+ edge [penwidth="0.5" color="blue"];
+
+This default header can be created using 'standardDotHeader()'
+
+ header:=standardDotHeader()
+
+A graph is the body of the dot file containing information
+about what the nodes are and how they are connected. It might
+contain node information such as
+
+ I1 [fillcolor="white"];
+ N1 [fillcolor="cadetblue"];
+
+and line information such as
+
+ I1 -> N1 [color="red" penwidth="3"];
+
+A sample graph can be created using 'sampleDotGraph()'
+
+ graph:=sampleDotGraph()
+
+Once the header and graph information is created we can
+write that information into a file using the function
+'writeDotGraph'. Two things to note are
+ * a trailing '}' line is automatically added
+ * the supplied name adds the ".dot" extension
+
+ writeDotGraph(header,graph,"NeuralNet")
+
+will create the file "NeuralNet.dot"
+
+The "NeuralNet.dot" file can be graphed and stored in
+an encapsulated postscript (.eps) format with
+
+ dot2eps "NeuralNet"
+
+will create the file "NeuralNet.eps"
+
+You can call a viewer on your platform.
+Linux has 'evince'. MAC has 'gv'. MAC has 'open'.
+Most places have 'firefox'
+
+ dotview("evince","NeuralNet")
+
+See Also:
+o )show Graphviz
+
+\end{chunk}
+\pagehead{Graphviz}{GRAPHVIZ}
+\pagepic{ps/v104graphviz.eps}{GRAPHVIZ}{1.00}
+
+{\bf Exports:}\\
+\begin{tabular}{lllll}
+\cross{GRAPHVIZ}{dot2eps} &
+\cross{GRAPHVIZ}{dotview} &
+\cross{GRAPHVIZ}{sampleDotGraph} &
+\cross{GRAPHVIZ}{standardDotHeader} &
+\cross{GRAPHVIZ}{writeDotGraph}
+\end{tabular}
+
+\begin{chunk}{package GRAPHVIZ Graphviz}
+)abbrev package GRAPHVIZ Graphviz
+++ Author: Mark Botch
+++ Date Created: September 3, 2014
+++ Description:
+++ Low level tools for creating and viewing graphs using graphviz
+Graphviz(): Exports == Implementation where
+
+ HEADER ==> List String
+ BODY ==> List String
+ GRAPH ==> List String
+ DOTFILE ==> List String
+ FILENAME ==> String
+
+ Exports ==> with
+
+ standardDotHeader: () -> HEADER
+ ++ create the standard dot
+ ++
+ ++X header:=standardDotHeader()
+
+ sampleDotGraph: () -> GRAPH
+ ++ creates a sample graph file
+ ++
+ ++X graph:=sampleDotGraph()
+
+ writeDotGraph: (HEADER, GRAPH, FILENAME) -> Void
+ ++ creates a graphviz dot file and writes it out
+ ++
+ ++X header:=standardDotHeader()
+ ++X graph:=sampleDotGraph()
+ ++X writeDotGraph(header,graph,"NeuralNet")
+
+ dot2eps: FILENAME -> Void
+ ++ dot2eps runs dot -T eps filename.dot >filename.eps
+ ++
+ ++X dot2eps "NeuralNet"
+
+ dotview:(String,String) -> Void
+ ++ dotview runs "viewer filename".
+ ++ A file extension of ".eps" is added.
+ ++
+ ++X dotview("evince","NeuralNet") -- on Linux
+ ++X dotview("gv","NeuralNet") -- on MAC
+ ++X dotview("firefox","NeuralNet") -- most places
+
+ Implementation == add
+
+ standardDotHeader() ==
+ ["digraph graphname {",_
+ "graph [rankdir=_"LR_" ranksep=_"3.0_"]",_
+ "node [style=filled];",_
+ "edge [penwidth=_"0.5_" color=_"blue_"];"_
+ ]
+
+ sampleDotGraph() ==
+ ["I1 [fillcolor=_"white_"];",_
+ "I2 [fillcolor=_"white_"];",_
+ "N1 [fillcolor=_"cadetblue_"];",_
+ "N2 [fillcolor=_"coral_"];",_
+ "N3 [fillcolor=_"green_"];",_
+ "N4 [fillcolor=_"gold_"];",_
+ "N5 [fillcolor=_"cyan_"];",_
+ "N6 [fillcolor=_"red_"];",_
+ "N7 [fillcolor=_"yellow_"];",_
+ "N8 [fillcolor=_"orange_"];",_
+ "O1 [fillcolor=_"white_"];",_
+ "O2 [fillcolor=_"white_"];",_
+ "I1 -> N1;",_
+ "I1 -> N2;",_
+ "I1 -> N3;",_
+ "I2 -> N1;",_
+ "I2 -> N2;",_
+ "I2 -> N3;",_
+ "N1 -> N4;",_
+ "N1 -> N5;",_
+ "N1 -> N6;",_
+ "N2 -> N4;",_
+ "N2 -> N5;",_
+ "N2 -> N6;",_
+ "N3 -> N4;",_
+ "N3 -> N5;",_
+ "N3 -> N6 [color=_"red_" penwidth=_"3_"];",_
+ "N4 -> N7;",_
+ "N4 -> N8;",_
+ "N5 -> N7;",_
+ "N5 -> N8;",_
+ "N6 -> N7;",_
+ "N6 -> N8;",_
+ "N7 -> O1;",_
+ "N8 -> O2;"_
+ ]
+
+ writeDotGraph(header:HEADER, graph:GRAPH, name:FILENAME):Void ==
+ file:TextFile:=open(concat(name,".dot")::FileName,"output")
+ for line in header repeat writeLine!(file,line)
+ for line in graph repeat writeLine!(file,line)
+ write!(file,"}")
+ close!(file)
+ void()
+
+ dot2eps(file) ==
+ instr:String:=concat(file,".dot >")
+ outstr:String:=concat(file,".eps")
+ command:=concat("dot -T eps ",concat(instr,outstr))
+ SYSTEM(command)$Lisp
+ void()
+
+ dotview(viewr,file) ==
+ outstr:String:=concat(file,".eps")
+ SYSTEM(concat(viewr,concat(" ",outstr)))$Lisp
+ void()
+
+
+
+
+\end{chunk}
+\begin{chunk}{GRAY.dotabb}
+"GRAPHVIZ" [color="#FF4488",href="bookvol10.4.pdf#nameddest=GRAPHVIZ"]
+"STRING" [color="#88FF44",href="bookvol10.3.pdf#nameddest=STRING"]
+"GRAPHVIZ" -> "STRING"
+
+\end{chunk}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{package GRAY GrayCode}
\begin{chunk}{GrayCode.input}
)set break resume
diff --git a/books/bookvol10.pamphlet b/books/bookvol10.pamphlet
index 587f03a..53b0bea 100644
--- a/books/bookvol10.pamphlet
+++ b/books/bookvol10.pamphlet
@@ -5955,7 +5955,8 @@ LAYER11=\
${OUT}/FTEM.o ${OUT}/GENEEZ.o ${OUT}/GENMFACT.o ${OUT}/GENPGCD.o \
${OUT}/GALFACTU.o ${OUT}/GALPOLYU.o ${OUT}/GB.o ${OUT}/GBEUCLID.o \
${OUT}/GBF.o ${OUT}/GBINTERN.o ${OUT}/GHENSEL.o ${OUT}/GMODPOL.o \
- ${OUT}/GOSPER.o ${OUT}/GRIMAGE.o ${OUT}/GROEBSOL.o ${OUT}/HDMP.o \
+ ${OUT}/GOSPER.o ${OUT}/GRAPHVIZ.o \
+ ${OUT}/GRIMAGE.o ${OUT}/GROEBSOL.o ${OUT}/HDMP.o \
${OUT}/HDP.o ${OUT}/HEXADEC.o ${OUT}/HEUGCD.o ${OUT}/HTMLFORM.o \
${OUT}/IBPTOOLS.o \
${OUT}/IFF.o ${OUT}/IBITS.o ${OUT}/ICARD.o ${OUT}/ICDEN.o \
@@ -7354,6 +7355,11 @@ LAYER11=\
/*"GMODPOL" -> {"OCAMON"; "OAMON"; "OASGP"; "OAMONS"; "VSPACE"; "FIELD"}*/
/*"GMODPOL" -> {"EUCDOM"; "PID"; "DIVRING"}*/
+"GRAPHVIZ" [color="#FF4488",href="bookvol10.4.pdf#nameddest=GRAPHVIZ"]
+"GRAPHVIZ" -> "STRING"
+/*"GRAPHVIZ" -> {"LIST"; "CHAR"; "SINT"; "OUTFORM"; "INT"; "PRIMARR"} */
+/*"GRAPHVIZ" -> {"A1AGG-"; "ISTRING"} */
+
"GOSPER" [color="#FF4488",href="bookvol10.4.pdf#nameddest=GOSPER"]
/*"GOSPER" -> {"OAMONS"; "OCAMON"; "OAMON"; "OASGP"; "ORDSET"; "SETCAT"}*/
/*"GOSPER" -> {"BASTYPE"; "KOERCE"; "ABELMON"; "ABELSG"; "CABMON"; "INTDOM"}*/
@@ -18371,6 +18377,7 @@ REGRESS= \
GradedModule.regress \
GraphicsDefaults.regress \
GraphImage.regress \
+ Graphviz.regress \
GrayCode.regress \
GroebnerFactorizationPackage.regress \
GroebnerInternalPackage.regress \
diff --git a/books/bookvol5.pamphlet b/books/bookvol5.pamphlet
index f79bdfc..ad1491b 100644
--- a/books/bookvol5.pamphlet
+++ b/books/bookvol5.pamphlet
@@ -24346,6 +24346,7 @@ otherwise the new algebra won't be loaded by the interpreter when needed.
(|GeneralPackageForAlgebraicFunctionField| . GPAFF)
(|GeneralUnivariatePowerSeries| . GSERIES)
(|GenerateUnivariatePowerSeries| . GENUPS)
+ (|Graphviz| . GRAPHVIZ)
(|GnuDraw| . GDRAW)
(|GraphicsDefaults| . GRDEF)
(|GroebnerPackage| . GB)
diff --git a/books/ps/v104graphviz.eps b/books/ps/v104graphviz.eps
new file mode 100644
index 0000000..c78f46b
--- /dev/null
+++ b/books/ps/v104graphviz.eps
@@ -0,0 +1,278 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: graphviz version 2.26.3 (20100126.1600)
+%%Title: pic
+%%Pages: 1
+%%BoundingBox: 36 36 134 152
+%%EndComments
+save
+%%BeginProlog
+/DotDict 200 dict def
+DotDict begin
+
+/setupLatin1 {
+mark
+/EncodingVector 256 array def
+ EncodingVector 0
+
+ISOLatin1Encoding 0 255 getinterval putinterval
+EncodingVector 45 /hyphen put
+
+% Set up ISO Latin 1 character encoding
+/starnetISO {
+ dup dup findfont dup length dict begin
+ { 1 index /FID ne { def }{ pop pop } ifelse
+ } forall
+ /Encoding EncodingVector def
+ currentdict end definefont
+} def
+/Times-Roman starnetISO def
+/Times-Italic starnetISO def
+/Times-Bold starnetISO def
+/Times-BoldItalic starnetISO def
+/Helvetica starnetISO def
+/Helvetica-Oblique starnetISO def
+/Helvetica-Bold starnetISO def
+/Helvetica-BoldOblique starnetISO def
+/Courier starnetISO def
+/Courier-Oblique starnetISO def
+/Courier-Bold starnetISO def
+/Courier-BoldOblique starnetISO def
+cleartomark
+} bind def
+
+%%BeginResource: procset graphviz 0 0
+/coord-font-family /Times-Roman def
+/default-font-family /Times-Roman def
+/coordfont coord-font-family findfont 8 scalefont def
+
+/InvScaleFactor 1.0 def
+/set_scale {
+ dup 1 exch div /InvScaleFactor exch def
+ scale
+} bind def
+
+% styles
+/solid { [] 0 setdash } bind def
+/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
+/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
+/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
+/bold { 2 setlinewidth } bind def
+/filled { } bind def
+/unfilled { } bind def
+/rounded { } bind def
+/diagonals { } bind def
+
+% hooks for setting color
+/nodecolor { sethsbcolor } bind def
+/edgecolor { sethsbcolor } bind def
+/graphcolor { sethsbcolor } bind def
+/nopcolor {pop pop pop} bind def
+
+/beginpage { % i j npages
+ /npages exch def
+ /j exch def
+ /i exch def
+ /str 10 string def
+ npages 1 gt {
+ gsave
+ coordfont setfont
+ 0 0 moveto
+ (\() show i str cvs show (,) show j str cvs show (\)) show
+ grestore
+ } if
+} bind def
+
+/set_font {
+ findfont exch
+ scalefont setfont
+} def
+
+% draw text fitted to its expected width
+/alignedtext { % width text
+ /text exch def
+ /width exch def
+ gsave
+ width 0 gt {
+ [] 0 setdash
+ text stringwidth pop width exch sub text length div 0 text ashow
+ } if
+ grestore
+} def
+
+/boxprim { % xcorner ycorner xsize ysize
+ 4 2 roll
+ moveto
+ 2 copy
+ exch 0 rlineto
+ 0 exch rlineto
+ pop neg 0 rlineto
+ closepath
+} bind def
+
+/ellipse_path {
+ /ry exch def
+ /rx exch def
+ /y exch def
+ /x exch def
+ matrix currentmatrix
+ newpath
+ x y translate
+ rx ry scale
+ 0 0 1 0 360 arc
+ setmatrix
+} bind def
+
+/endpage { showpage } bind def
+/showpage { } def
+
+/layercolorseq
+ [ % layer color sequence - darkest to lightest
+ [0 0 0]
+ [.2 .8 .8]
+ [.4 .8 .8]
+ [.6 .8 .8]
+ [.8 .8 .8]
+ ]
+def
+
+/layerlen layercolorseq length def
+
+/setlayer {/maxlayer exch def /curlayer exch def
+ layercolorseq curlayer 1 sub layerlen mod get
+ aload pop sethsbcolor
+ /nodecolor {nopcolor} def
+ /edgecolor {nopcolor} def
+ /graphcolor {nopcolor} def
+} bind def
+
+/onlayer { curlayer ne {invis} if } def
+
+/onlayers {
+ /myupper exch def
+ /mylower exch def
+ curlayer mylower lt
+ curlayer myupper gt
+ or
+ {invis} if
+} def
+
+/curlayer 0 def
+
+%%EndResource
+%%EndProlog
+%%BeginSetup
+14 default-font-family set_font
+1 setmiterlimit
+% /arrowlength 10 def
+% /arrowwidth 5 def
+
+% make sure pdfmark is harmless for PS-interpreters other than Distiller
+/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
+% make '<<' and '>>' safe on PS Level 1 devices
+/languagelevel where {pop languagelevel}{1} ifelse
+2 lt {
+ userdict (<<) cvn ([) cvn load put
+ userdict (>>) cvn ([) cvn load put
+} if
+
+%%EndSetup
+setupLatin1
+%%Page: 1 1
+%%PageBoundingBox: 36 36 134 152
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 98 116 boxprim clip newpath
+1 1 set_scale 0 rotate 40 41 translate
+0.16355 0.45339 0.92549 graphcolor
+newpath -4 -5 moveto
+-4 112 lineto
+95 112 lineto
+95 -5 lineto
+closepath fill
+1 setlinewidth
+0.16355 0.45339 0.92549 graphcolor
+newpath -4 -5 moveto
+-4 112 lineto
+95 112 lineto
+95 -5 lineto
+closepath stroke
+% GRAPHVIZ
+gsave
+[ /Rect [ 0 72 90 108 ]
+ /Border [ 0 0 0 ]
+ /Action << /Subtype /URI /URI (bookvol10.4.pdf#nameddest=GRAPHVIZ) >>
+ /Subtype /Link
+/ANN pdfmark
+0.93939 0.73333 1 nodecolor
+newpath 90 108 moveto
+0 108 lineto
+0 72 lineto
+90 72 lineto
+closepath fill
+1 setlinewidth
+filled
+0.93939 0.73333 1 nodecolor
+newpath 90 108 moveto
+0 108 lineto
+0 72 lineto
+90 72 lineto
+closepath stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+8 86.4 moveto 74 (GRAPHVIZ) alignedtext
+grestore
+% STRING
+gsave
+[ /Rect [ 10 0 80 36 ]
+ /Border [ 0 0 0 ]
+ /Action << /Subtype /URI /URI (bookvol10.3.pdf#nameddest=STRING) >>
+ /Subtype /Link
+/ANN pdfmark
+0.27273 0.73333 1 nodecolor
+newpath 80 36 moveto
+10 36 lineto
+10 0 lineto
+80 0 lineto
+closepath fill
+1 setlinewidth
+filled
+0.27273 0.73333 1 nodecolor
+newpath 80 36 moveto
+10 36 lineto
+10 0 lineto
+80 0 lineto
+closepath stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+17.5 14.4 moveto 55 (STRING) alignedtext
+grestore
+% GRAPHVIZ->STRING
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 45 71.83 moveto
+45 64.13 45 54.97 45 46.42 curveto
+stroke
+0 0 0 edgecolor
+newpath 48.5 46.41 moveto
+45 36.41 lineto
+41.5 46.41 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 48.5 46.41 moveto
+45 36.41 lineto
+41.5 46.41 lineto
+closepath stroke
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+end
+restore
+%%EOF
diff --git a/changelog b/changelog
index 7db6080..6bf0843 100644
--- a/changelog
+++ b/changelog
@@ -1,26 +1,34 @@
+20140904 tpd src/axiom-website/patches.html 20140904.01.tpd.patch
+20140904 tpd books/ps/v104graphviz.eps
+20140904 tpd books/bookvol10.3
+20140904 tpd books/bookvol10.4
+20140904 tpd books/bookvol10
+20140904 tpd books/bookvol5
+20140904 tpd src/input/Makefile
+20140904 tpd src/input/graphviz.input
20140903 tpd src/axiom-website/patches.html 20140903.02.tpd.patch
20140903 tpd src/axiom-website/videos.html add Building Test Cases video
20140903 tpd src/axiom-website/patches.html 20140903.01.tpd.patch
20140903 tpd src/input/Makefile typo fix
20140902 tpd src/axiom-website/patches.html 20140902.01.tpd.patch
-20140902 tpd books/bookvol10.3.pamphlet add CAD
-20140902 tpd books/bookvol10.4.pamphlet add CAD
-20140902 tpd books/bookvol10.pamphlet add CAD
-20140902 tpd books/bookvol5.pamphlet add CAD
-20140902 tpd books/bookvolbib.pamphlet add CAD references
-20140902 tpd books/ps/v103cell.eps
-20140902 tpd books/ps/v103simplecell.eps
-20140902 tpd books/ps/v104cylindricalalgebraicdecompositionpackage.eps
-20140902 tpd books/ps/v104cylindricalalgebraicdecompositionutilities.eps
+20140902 rxr books/bookvol10.3.pamphlet add CAD
+20140902 rxr books/bookvol10.4.pamphlet add CAD
+20140902 rxr books/bookvol10.pamphlet add CAD
+20140902 rxr books/bookvol5.pamphlet add CAD
+20140902 rxr books/bookvolbib.pamphlet add CAD references
+20140902 rxr books/ps/v103cell.eps
+20140902 rxr books/ps/v103simplecell.eps
+20140902 rxr books/ps/v104cylindricalalgebraicdecompositionpackage.eps
+20140902 rxr books/ps/v104cylindricalalgebraicdecompositionutilities.eps
+20140902 rxr src/input/Makefile.pamphlet add cad.input
+20140902 rxr src/input/cad.input test CAD
+20140902 rxr src/share/algebra/browse.daase add CAD
+20140902 rxr src/share/algebra/category.daase add CAD
+20140902 rxr src/share/algebra/dependents.daase/index.kaf add CAD
+20140902 rxr src/share/algebra/interp.daase add CAD
+20140902 rxr src/share/algebra/operation.daase add CAD
+20140902 rxr src/share/algebra/users.daase/index.kaf add CAD
20140902 tpd books/ps/v104definiteintegrationtools.eps
-20140902 tpd src/input/Makefile.pamphlet add cad.input
-20140902 tpd src/input/cad.input test CAD
-20140902 tpd src/share/algebra/browse.daase add CAD
-20140902 tpd src/share/algebra/category.daase add CAD
-20140902 tpd src/share/algebra/dependents.daase/index.kaf add CAD
-20140902 tpd src/share/algebra/interp.daase add CAD
-20140902 tpd src/share/algebra/operation.daase add CAD
-20140902 tpd src/share/algebra/users.daase/index.kaf add CAD
20140901 tpd src/axiom-website/patches.html 20140901.03.tpd.patch
20140901 tpd src/axiom-website/documentation.html add Socrates quote
20140901 tpd src/axiom-website/patches.html 20140901.02.tpd.patch
diff --git a/patch b/patch
index 59796cf..dbdf69b 100644
--- a/patch
+++ b/patch
@@ -1,3 +1,3 @@
-src/axiom-website/videos.html add Building Test Cases video
+books/bookvol10.4 add graphviz package
-Detail how to build and deploy regression test cases
+Add a package to create encapsulated postscript (.eps) graphs
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index 70b2307..f195772 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -4626,6 +4626,8 @@ books/bookvol10.3, vol10.4 add Cylindrical Algebraic Computation
src/input/Makefile typo fix
20140903.02.tpd.patch
src/axiom-website/videos.html add Building Test Cases video
+20140904.01.tpd.patch
+books/bookvol10.4 add graphviz package