diff --git a/Changelog b/Changelog
--- a/Changelog
+++ b/Changelog
@@ -1,4 +1,4 @@
-% graphviz - Changelog
+% Changelog
 % Ivan Lazar Miljenovic
 
 Release History and Changelog
@@ -10,11 +10,91 @@
 Changes in 2999.13.0.0
 ----------------------
 
-* Added support for the `osage` and `patchwork` visualisation tools.
+* Added support for the `osage` and `patchwork` visualisation tools,
+  available as of Graphviz-2.28.0.
 
-* Now uses Dot semantics as of Graphviz-2.28.0.  The only change is
-  when parsing the Attribute `overlap=false`; this is now equivalent
-  to `overlap=prism`.
+* Updated attributes as of Graphviz-2.28.0:
+
+    - `SVG` colors are now supported, and the support for different
+      colors has been revamped.
+
+    - `overlap=false` is now equivalent to `overlap=prism` and the
+      `RemoveOverlaps` option has been removed.
+
+    - `LabelScheme` and `Rotation` are new attributes for use with
+      `sfdp`.
+
+    - `Scale` is a new attribute for use with `twopi`.
+
+    - Add new italics, bold, underline, superscript and subscript
+      options for HTML-like labels.
+
+    - `LHeight` and `LWidth` for getting the height and width of the
+      root graph and clusters.
+
+* Updated attributes from the current development branch of Graphviz
+  (i.e. 2.29.*).  Please note that these will probably not work yet,
+  but are implemented now for future-proofing.
+
+    - A new style for edges: `Tapered`.
+
+    - `XLabel` allows you to specify labels external to a node or
+      edge.  `ForceLabels` allow you to specify that these should be
+      drawn even when they will cause overlaps.
+
+    - `ImagePath` allows you to specify where to search for images.
+
+    - HTML-like labels now support `ID` values as well as horizontal
+      and vertical rules.
+
+    - `BgColor` and `FillColor` now take a list of colors: this allows
+      gradient fills for graphs, clusters and nodes.  The `Radial`
+      style and `GradientAngle` are also used for this purpose.
+
+    - `FillColor` is now used by edges to set the color of any arrows.
+
+    - [WebP](http://en.wikipedia.org/wiki/WebP) output support added.
+
+* Other attribute changes:
+
+    - Use a specified data type for the `Ordering` attribute rather
+      than an arbitrary `Text` value, and provide a documented wrapper
+      in `Data.GraphViz.Attributes`.
+
+    - `Bb` has been renamed `BoundingBox`.
+
+    - `ID` now only takes `EscString` (a type alias for `Text`) values
+      rather than arbitrary `Label`s.
+
+    - The `Data.GraphViz.Attributes.HTML` module has had all values
+      re-named and is now meant to be imported qualified.  It is also
+      no longer re-exported from `Data.GraphViz.Attributes.Complete`.
+
+* The `ToGraphID` class provides a common wrapper to help create
+  cluster identifiers, etc.
+
+* Cabal's `Test-Suite` functionality is now used.  As part of this,
+  the `Data.GraphViz.Testing` module and sub-modules are no longer
+  exported by the library.
+
+* The new `Benchmark` support in Cabal-1.14 is now used for the
+  benchmark script.
+
+* Dropped support for base-3.
+
+* The `Data.GraphViz.State` module is no longer exposed, as there's no
+  need for users to use it.
+
+* Bugfixes:
+
+    - Some corner cases in canonicalisation prevented it from being
+      idempotent.
+
+    - The `TestParsing` script will no longer crash and refuse to
+      continue if an IO-based error (e.g. unable to successfully call
+      `dot`) occurs.
+
+    - A typo was spotted by **Gabor Greif**.
 
 Changes in 2999.12.0.4
 ----------------------
diff --git a/Data/GraphViz/Algorithms.hs b/Data/GraphViz/Algorithms.hs
--- a/Data/GraphViz/Algorithms.hs
+++ b/Data/GraphViz/Algorithms.hs
@@ -118,11 +118,16 @@
                        , EdgeAttrs topEAs
                        ]
     nUnlook (n,(p,as)) = (F.toList p, DotNode n as)
+    -- DotNodes paired and sorted by their paths
     ns = sortBy (compLists `on` fst) . map nUnlook $ Map.toList nl
+    -- nodes in clusters vs top-level
     (clustNs, topNs) = thisLevel ns
+    -- edges in clusters vs top-level
     (clustEL, topEs) = if edgesInClusters opts
                        then edgeClusters nl es
                        else (Map.empty, es)
+
+    -- The global attributes that are also applicable to clusters.
     topClustAs = filter usedByClusters $ attrs gas
     topClustAs' = toSAttr topClustAs
 
@@ -140,41 +145,62 @@
                                         . groupBy ((==) `on` (listToMaybe . fst))
 
     -- Create a new cluster.
+    -- oAs - outer cluster attributes
+    -- nAs - outer node attributes
+    -- eAs - outer edge attributes
+    -- (*S variants are same thing but as sets; premature optimisation?)
+    -- cns - nodes in this cluster
     toClust oAs oAsS nAs nAsS eAs eAsS cns
       = DotSG { isCluster     = True
               , subGraphID    = cID
               , subGraphStmts = stmts
               }
       where
+        -- Find the ID for this cluster.
         cID = head . fst $ head cns
+
+        -- Get the nodes that are deeper and the ones that belong
+        -- here.
         (nested, here) = thisLevel $ map (first tail) cns
+
+
         stmts = DotStmts { attrStmts = sgAs
                          , subGraphs = subSGs
                          , nodeStmts = here'
                          , edgeStmts = edges'
                          }
 
+        -- Starting global attributes
         sgAs = nonEmptyGAs [ GraphAttrs as'
                            , NodeAttrs nas'
                            , EdgeAttrs eas'
                            ]
 
+        -- Sub-clusters
         subSGs = clusts as asS nas nasS eas easS nested
 
+        -- The attributes attached to this cluster ID in the original.
         as = attrs . snd $ cl Map.! cID
         asS = toSAttr as
-        as' = innerAttributes oAs oAsS as
 
+        -- Get the global attributes that apply to this cluster,
+        -- ignoring ones set globally.
+        as' = fst $ innerAttributes oAs oAsS as
+
+        -- The node attributes that can be stated globally.
         nas = mCommon nodeAttributes here
         nasS = toSAttr nas
-        nas' = innerAttributes nAs nAsS nas
-        here' = map (\dn -> dn {nodeAttributes = nodeAttributes dn \\ nas}) here
+        (nas',nOv) = innerAttributes nAs nAsS nas
 
+        -- The nodes that belong here, with updated attributes.
+        here' = map (\dn -> dn {nodeAttributes = nodeAttributes dn \\ (nas ++ nOv)}) here
+
         eas = mCommon edgeAttributes edges
         easS = toSAttr eas
-        eas' = innerAttributes eAs eAsS eas
-        edges' = map (\de -> de {edgeAttributes = edgeAttributes de \\ eas}) edges
+        (eas',eOv) = innerAttributes eAs eAsS eas
+        edges' = map (\de -> de {edgeAttributes = edgeAttributes de \\ (eas ++ eOv)}) edges
 
+        -- Find edges that belong here
         edges = fromMaybe [] $ cID `Map.lookup` clustEL
 
     thisLevel = second (map snd) . span (not . null . fst)
@@ -218,10 +244,10 @@
           . map (last *** DList.singleton)
 
 -- Return only those attributes that are required within the inner
--- sub-graph.
+-- sub-graph.  Also returns the overrides.
 innerAttributes                    :: Attributes -> SAttrs
-                                      -> Attributes -> Attributes
-innerAttributes outer outerS inner = sort $ inner' ++ override
+                                      -> Attributes -> (Attributes, Attributes)
+innerAttributes outer outerS inner = (sort $ inner' ++ override, override)
   where
     -- Remove all Attributes that are also defined in the outer cluster
     inner' = inner \\ outer
@@ -391,4 +417,3 @@
                              let n' = toNode e
                              unless (isMarked m n' || t' `Set.member` delSet)
                                $ traverse t' n'
-
diff --git a/Data/GraphViz/Attributes.hs b/Data/GraphViz/Attributes.hs
--- a/Data/GraphViz/Attributes.hs
+++ b/Data/GraphViz/Attributes.hs
@@ -25,19 +25,25 @@
          -- $labels
        , toLabel
        , textLabel
+       , xLabel
+       , xTextLabel
+       , forceLabels
        , textLabelValue
        , Labellable(..)
          -- * Colors
          -- $colors
        , X11Color(..)
        , bgColor
+       , bgColors
        , fillColor
+       , fillColors
        , fontColor
        , penColor
        , color
          -- * Stylistic attributes
          -- $styles
        , penWidth
+       , gradientAngle
        , style
        , styles
        , Style
@@ -49,6 +55,8 @@
        , filled
        , diagonals
        , rounded
+       , tapered
+       , radial
          -- * Node shapes
        , shape
        , Shape(..)
@@ -76,9 +84,16 @@
        , invODot
        , oBox
        , oDiamond
+         -- * Layout
+       , ordering
+       , Order(..)
+       , rank
+       , RankType(..)
        ) where
 
 import Data.GraphViz.Attributes.Complete
+import Data.GraphViz.Attributes.Colors.X11
+import qualified Data.GraphViz.Attributes.HTML as Html
 
 import qualified Data.Text.Lazy as T
 import Data.Text.Lazy(Text)
@@ -124,12 +139,25 @@
 toLabel :: (Labellable a) => a -> Attribute
 toLabel = Label . toLabelValue
 
--- | An alias for 'toLabel' for use with the OverloadedStrings
+-- | An alias for 'toLabel' for use with the @OverloadedStrings@
 --   extension.
 textLabel :: Text -> Attribute
 textLabel = toLabel
 
--- | An alias for 'toLabelValue' for use with the OverloadedStrings
+-- | Create a label /outside/ of a node\/edge.  Currently only in the
+-- | Graphviz development branch (2.29.*).
+xLabel :: (Labellable a) => a -> Attribute
+xLabel = XLabel . toLabelValue
+
+-- | An alias for 'xLabel' for use with the @OverloadedStrings@ extension.
+xTextLabel :: Text -> Attribute
+xTextLabel = xLabel
+
+-- | Force the positioning of 'xLabel's, even when it will cause overlaps.
+forceLabels :: Attribute
+forceLabels = ForceLabels True
+
+-- | An alias for 'toLabelValue' for use with the @OverloadedStrings@
 --   extension.
 textLabelValue :: Text -> Label
 textLabelValue = toLabelValue
@@ -152,14 +180,14 @@
 instance Labellable Bool where
   toLabelValue = toLabelValue . show
 
-instance Labellable HtmlLabel where
+instance Labellable Html.Label where
   toLabelValue = HtmlLabel
 
-instance Labellable HtmlText where
-  toLabelValue = toLabelValue . HtmlText
+instance Labellable Html.Text where
+  toLabelValue = toLabelValue . Html.Text
 
-instance Labellable HtmlTable where
-  toLabelValue = toLabelValue . HtmlTable
+instance Labellable Html.Table where
+  toLabelValue = toLabelValue . Html.Table
 
 instance Labellable RecordFields where
   toLabelValue = RecordLabel
@@ -180,27 +208,46 @@
 {- $colors
 
    The recommended way of dealing with colors in Dot graphs is to use the
-   named 'X11Colors' rather than explicitly specifying RGB, RGBA or HSV
+   named 'X11Color's rather than explicitly specifying RGB, RGBA or HSV
    colors.
 
+   These functions also allow you to use SVG and Brewer colors, but
+   X11 colors are generally preferable.  If you wish to use SVG
+   colors, either import this module hiding 'X11Color' or import the
+   SVG module qualified.
+
  -}
 
--- | Specify the background color of a graph or cluster.  Requires
---   @'style' 'filled'@.
-bgColor :: X11Color -> Attribute
-bgColor = BgColor . X11Color
+-- | Specify the background color of a graph or cluster.  For
+--   clusters, if @'style' 'filled'@ is used, then 'fillColor' will
+--   override it.
+bgColor :: (NamedColor nc) => nc -> Attribute
+bgColor = BgColor . (:[]) . toColor
 
--- | Specify the fill color of a node.  Requires @'style' 'filled'@.
-fillColor :: X11Color -> Attribute
-fillColor = FillColor . X11Color
+-- | As with 'bgColor', but add a second color to create a gradient
+--   effect.  Requires Graphviz >= 2.29.0.
+bgColors       :: (NamedColor nc) => nc -> nc -> Attribute
+bgColors c1 c2 = BgColor $ map toColor [c1,c2]
 
+-- | Specify the fill color of a node, cluster or arrowhead.  Requires
+--   @'style' 'filled'@ for nodes and clusters.  For nodes and edges,
+--   if this isn't set then the 'color' value is used instead; for
+--   clusters, 'bgColor' is used.
+fillColor :: (NamedColor nc) => nc -> Attribute
+fillColor = FillColor . (:[]) . toColor
+
+-- | As with 'fillColor', but add a second color to create a gradient
+--   effect.  Requires Graphviz >= 2.29.0.
+fillColors       :: (NamedColor nc) => nc -> nc -> Attribute
+fillColors c1 c2 = FillColor $ map toColor [c1,c2]
+
 -- | Specify the color of text.
-fontColor :: X11Color -> Attribute
-fontColor = FontColor . X11Color
+fontColor :: (NamedColor nc) => nc -> Attribute
+fontColor = FontColor . toColor
 
 -- | Specify the color of the bounding box of a cluster.
-penColor :: X11Color -> Attribute
-penColor = PenColor . X11Color
+penColor :: (NamedColor nc) => nc -> Attribute
+penColor = PenColor . toColor
 
 -- | The @color@ attribute serves several purposes.  As such care must
 --   be taken when using it, and it is preferable to use those
@@ -215,16 +262,16 @@
 --   * If the 'filled' 'Style' is set, then it defines the
 --     background color of nodes and clusters unless 'fillColor' or
 --     'bgColor' respectively is set.
-color :: X11Color -> Attribute
-color = Color . (:[]) . X11Color
+color :: (NamedColor nc) => nc -> Attribute
+color = Color . (:[]) . toColor
 
 -- -----------------------------------------------------------------------------
 
 {- $styles
 
-   Various stylistic attributes to customise how items are drawn.  All
-   'Style's are available for nodes; those specified also can be used
-   for edges and clusters.
+   Various stylistic attributes to customise how items are drawn.
+   Unless specified otherwise, all 'Style's are available for nodes;
+   those specified also can be used for edges and clusters.
 
  -}
 
@@ -269,10 +316,26 @@
 diagonals :: Style
 diagonals = SItem Diagonals []
 
+-- | Only available for edges; creates a tapered edge between the two
+--   nodes.  Requires Graphviz >= 2.29.0.
+tapered :: Style
+tapered = SItem Tapered []
+
+-- | Available for nodes, clusters and edges.  When using
+--   'gradientAngle', indicates that a radial gradient should be used.
+--   Requires Graphviz >= 2.29.0.
+radial :: Style
+radial = SItem Radial []
+
 -- | Specify the width of lines.  Valid for clusters, nodes and edges.
 penWidth :: Double -> Attribute
 penWidth = PenWidth
 
+-- | Specify the angle at which gradient fills are drawn; for use with
+--   'bgColors' and 'fillColors'.  Requires Graphviz >= 2.29.0.
+gradientAngle :: Int -> Attribute
+gradientAngle = GradientAngle
+
 -- -----------------------------------------------------------------------------
 
 -- | The shape of a node.
@@ -320,3 +383,20 @@
 vee = AType [(noMods, Vee)]
 
 -- -----------------------------------------------------------------------------
+
+-- | Specify an ordering of edges of a node: either the outgoing or
+--   the incoming edges of a node must appear left-to-right in the
+--   same order in which they are defined in the input.
+--
+--   When specified as both a global graph or sub-graph level
+--   attribute, then it takes precedence over an attribute specified
+--   for an individual node.
+ordering :: Order -> Attribute
+ordering = Ordering
+
+-- -----------------------------------------------------------------------------
+
+-- | When using @dot@, this allows you to control relative placement
+--   of sub-graphs and clusters.
+rank :: RankType -> Attribute
+rank = Rank
diff --git a/Data/GraphViz/Attributes/ColorScheme.hs b/Data/GraphViz/Attributes/ColorScheme.hs
--- a/Data/GraphViz/Attributes/ColorScheme.hs
+++ b/Data/GraphViz/Attributes/ColorScheme.hs
@@ -18,10 +18,11 @@
 
 -- | This represents the color schemes that Graphviz accepts.
 data ColorScheme = X11
+                 | SVG
                  | Brewer BrewerScheme
                  deriving (Eq, Ord, Show, Read)
 
--- | Specify which colour pallete and how many colours it has.  Note
+-- | Specify which colour palette and how many colours it has.  Note
 --   the allowed values for the different 'BrewerName's.
 data BrewerScheme = BScheme BrewerName Word8
                   deriving (Eq, Ord, Show, Read)
diff --git a/Data/GraphViz/Attributes/Colors.hs b/Data/GraphViz/Attributes/Colors.hs
--- a/Data/GraphViz/Attributes/Colors.hs
+++ b/Data/GraphViz/Attributes/Colors.hs
@@ -22,2521 +22,268 @@
 module Data.GraphViz.Attributes.Colors
        ( -- * Color schemes.
          ColorScheme(..)
-       , BrewerScheme(..)
-       , BrewerName(..)
-         -- * Colors
-       , Color(..)
-       , X11Color(..)
-         -- * Conversion to\/from @Colour@.
-       , toColour
-       , x11Colour
-       , fromColour
-       , fromAColour
-       ) where
-
-import Data.GraphViz.Parsing
-import Data.GraphViz.Printing
-import Data.GraphViz.State
-import Data.GraphViz.Attributes.ColorScheme
-import Data.GraphViz.Util(bool)
-import Data.GraphViz.Exception
-
-import Data.Colour( AlphaColour, opaque, transparent, withOpacity
-                  , over, black, alphaChannel, darken)
-import Data.Colour.SRGB(Colour, sRGB, sRGB24, toSRGB24)
-import Data.Colour.RGBSpace(uncurryRGB)
-import Data.Colour.RGBSpace.HSV(hsv)
-
-import Data.Char(isHexDigit)
-import Numeric(showHex, readHex)
-import Data.Word(Word8)
-import qualified Data.Text.Lazy as T
-import Control.Monad(liftM)
-
--- -----------------------------------------------------------------------------
-
--- | Defining a color for use with Graphviz.  Note that named colors
---   have been split up into 'X11Color's and those based upon the
---   Brewer color schemes.
-data Color = RGB { red   :: Word8
-                 , green :: Word8
-                 , blue  :: Word8
-                 }
-           | RGBA { red   :: Word8
-                  , green :: Word8
-                  , blue  :: Word8
-                  , alpha :: Word8
-                  }
-             -- | The 'hue', 'saturation' and 'value' values must all
-             --   be @0 <= x <=1@.
-           | HSV { hue        :: Double
-                 , saturation :: Double
-                 , value      :: Double
-                 }
-           | X11Color X11Color
-           | BrewerColor BrewerScheme Word8 -- ^ This value should be
-                                            --   between @1@ and the
-                                            --   level of the
-                                            --   'BrewerScheme' being
-                                            --   used.
-           deriving (Eq, Ord, Show, Read)
-
-instance PrintDot Color where
-  unqtDot (RGB  r g b)       = hexColor [r,g,b]
-  unqtDot (RGBA r g b a)     = hexColor [r,g,b,a]
-  unqtDot (HSV  h s v)       = hcat . punctuate comma $ mapM unqtDot [h,s,v]
-  unqtDot (X11Color name)    = unqtDot name
-  unqtDot (BrewerColor bs n) = printBrewerColor False bs n
-
-  toDot (X11Color name)    = toDot name
-  toDot (BrewerColor bs n) = printBrewerColor True bs n
-  toDot c                  = dquotes $ unqtDot c
-
-  unqtListToDot = hcat . punctuate colon . mapM unqtDot
-
-  -- These two don't need to be quoted if they're on their own.
-  listToDot [X11Color name]    = toDot name
-  listToDot [BrewerColor bs n] = printBrewerColor True bs n
-  listToDot cs                 = dquotes $ unqtListToDot cs
-
-hexColor :: [Word8] -> DotCode
-hexColor = (<>) (char '#') . hcat . mapM word8Doc
-
-word8Doc   :: Word8 -> DotCode
-word8Doc w = text $ padding `T.append` simple
-  where
-    simple = T.pack $ showHex w ""
-    padding = T.replicate count (T.singleton '0')
-    count = 2 - findCols 1 w
-    findCols c n
-      | n < 16 = c
-      | otherwise = findCols (c+1) (n `div` 16)
-
-instance ParseDot Color where
-  parseUnqt = oneOf [ parseHexBased
-                    , parseHSV
-                      -- Have to parse BrewerColor first, as some of them may appear to be X11 colors
-                    , liftM (uncurry BrewerColor) $ parseBrewerColor False
-                    , liftM X11Color $ parseX11Color False
-                    ]
-    where
-      parseHexBased
-          = do character '#'
-               cs <- many1 parse2Hex
-               return $ case cs of
-                          [r,g,b] -> RGB r g b
-                          [r,g,b,a] -> RGBA r g b a
-                          _ -> throw . NotDotCode
-                               $ "Not a valid hex Color specification: "
-                                  ++ show cs
-      parseHSV = do h <- parse
-                    parseSep
-                    s <- parse
-                    parseSep
-                    v <- parse
-                    return $ HSV h s v
-      parseSep = oneOf [ string ","
-                       , whitespace
-                       ]
-      parse2Hex = do c1 <- satisfy isHexDigit
-                     c2 <- satisfy isHexDigit
-                     let [(n, [])] = readHex [c1, c2]
-                     return n
-
-  parse = quotedParse parseUnqt
-          `onFail` -- These two might not need to be quoted
-          oneOf [ liftM X11Color parseUnqt
-                , do Brewer bc <- getColorScheme
-                     liftM (BrewerColor bc) parseUnqt
-                ]
-
-  parseUnqtList = sepBy1 parseUnqt (character ':')
-
-  parseList = liftM (:[])
-              -- Unquoted single color
-              (oneOf [ liftM X11Color parseUnqt
-                     , do Brewer bc <- getColorScheme
-                          liftM (BrewerColor bc) parseUnqt
-                     ]
-              )
-              `onFail`
-              quotedParse parseUnqtList
-
-printBrewerColor        :: Bool -> BrewerScheme -> Word8 -> DotCode
-printBrewerColor q bs l = do cs <- getColorScheme
-                             case cs of
-                               Brewer bs'
-                                 | bs == bs' -> unqtDot l
-                               _             -> addQ $ fslash <> unqtDot bs
-                                                       <> fslash <> unqtDot l
-  where
-    addQ = bool id dquotes q
-
-parseBrewerColor   :: Bool -> Parse (BrewerScheme, Word8)
-parseBrewerColor q = do Brewer bs <- getColorScheme
-                        optional $ stringRep () "//"
-                        liftM ((,) bs) $ bool parseUnqt parse q
-                     `onFail`
-                     bool id quotedParse q ( do character '/'
-                                                bs <- parseUnqt
-                                                character '/'
-                                                l <- parseUnqt
-                                                return (bs,l)
-                                           )
-
--- -----------------------------------------------------------------------------
-
--- | Covers the four cases:
---
---   * yyyy
---   * /yyyy
---   * /X11/yyyy
---   * //yyyy
---
-parseX11Color   :: Bool -> Parse X11Color
-parseX11Color q = bool parseUnqt parse q
-                  `onFail`
-                  bool id quotedParse q
-                    ( do character '/'
-                         optional $ do optional $ do X11 <- parseUnqt
-                                                     return ()
-                                       character '/'
-                         parseUnqt
-                    )
-
--- | The X11 colors that Graphviz uses.  Note that these are slightly
---   different from the \"normal\" X11 colors used (e.g. the inclusion
---   of @Crimson@).  Graphviz's list of colors also duplicated almost
---   all @Gray@ colors with @Grey@ ones; parsing of an 'X11Color'
---   which is specified using \"grey\" will succeed, even for those
---   that don't have the duplicate spelling (e.g. @DarkSlateGray1@).
-data X11Color = AliceBlue
-              | AntiqueWhite
-              | AntiqueWhite1
-              | AntiqueWhite2
-              | AntiqueWhite3
-              | AntiqueWhite4
-              | Aquamarine
-              | Aquamarine1
-              | Aquamarine2
-              | Aquamarine3
-              | Aquamarine4
-              | Azure
-              | Azure1
-              | Azure2
-              | Azure3
-              | Azure4
-              | Beige
-              | Bisque
-              | Bisque1
-              | Bisque2
-              | Bisque3
-              | Bisque4
-              | Black
-              | BlanchedAlmond
-              | Blue
-              | Blue1
-              | Blue2
-              | Blue3
-              | Blue4
-              | BlueViolet
-              | Brown
-              | Brown1
-              | Brown2
-              | Brown3
-              | Brown4
-              | Burlywood
-              | Burlywood1
-              | Burlywood2
-              | Burlywood3
-              | Burlywood4
-              | CadetBlue
-              | CadetBlue1
-              | CadetBlue2
-              | CadetBlue3
-              | CadetBlue4
-              | Chartreuse
-              | Chartreuse1
-              | Chartreuse2
-              | Chartreuse3
-              | Chartreuse4
-              | Chocolate
-              | Chocolate1
-              | Chocolate2
-              | Chocolate3
-              | Chocolate4
-              | Coral
-              | Coral1
-              | Coral2
-              | Coral3
-              | Coral4
-              | CornFlowerBlue
-              | CornSilk
-              | CornSilk1
-              | CornSilk2
-              | CornSilk3
-              | CornSilk4
-              | Crimson
-              | Cyan
-              | Cyan1
-              | Cyan2
-              | Cyan3
-              | Cyan4
-              | DarkGoldenrod
-              | DarkGoldenrod1
-              | DarkGoldenrod2
-              | DarkGoldenrod3
-              | DarkGoldenrod4
-              | DarkGreen
-              | Darkkhaki
-              | DarkOliveGreen
-              | DarkOliveGreen1
-              | DarkOliveGreen2
-              | DarkOliveGreen3
-              | DarkOliveGreen4
-              | DarkOrange
-              | DarkOrange1
-              | DarkOrange2
-              | DarkOrange3
-              | DarkOrange4
-              | DarkOrchid
-              | DarkOrchid1
-              | DarkOrchid2
-              | DarkOrchid3
-              | DarkOrchid4
-              | DarkSalmon
-              | DarkSeaGreen
-              | DarkSeaGreen1
-              | DarkSeaGreen2
-              | DarkSeaGreen3
-              | DarkSeaGreen4
-              | DarkSlateBlue
-              | DarkSlateGray
-              | DarkSlateGray1
-              | DarkSlateGray2
-              | DarkSlateGray3
-              | DarkSlateGray4
-              | DarkTurquoise
-              | DarkViolet
-              | DeepPink
-              | DeepPink1
-              | DeepPink2
-              | DeepPink3
-              | DeepPink4
-              | DeepSkyBlue
-              | DeepSkyBlue1
-              | DeepSkyBlue2
-              | DeepSkyBlue3
-              | DeepSkyBlue4
-              | DimGray
-              | DodgerBlue
-              | DodgerBlue1
-              | DodgerBlue2
-              | DodgerBlue3
-              | DodgerBlue4
-              | Firebrick
-              | Firebrick1
-              | Firebrick2
-              | Firebrick3
-              | Firebrick4
-              | FloralWhite
-              | ForestGreen
-              | Gainsboro
-              | GhostWhite
-              | Gold
-              | Gold1
-              | Gold2
-              | Gold3
-              | Gold4
-              | Goldenrod
-              | Goldenrod1
-              | Goldenrod2
-              | Goldenrod3
-              | Goldenrod4
-              | Gray
-              | Gray0
-              | Gray1
-              | Gray2
-              | Gray3
-              | Gray4
-              | Gray5
-              | Gray6
-              | Gray7
-              | Gray8
-              | Gray9
-              | Gray10
-              | Gray11
-              | Gray12
-              | Gray13
-              | Gray14
-              | Gray15
-              | Gray16
-              | Gray17
-              | Gray18
-              | Gray19
-              | Gray20
-              | Gray21
-              | Gray22
-              | Gray23
-              | Gray24
-              | Gray25
-              | Gray26
-              | Gray27
-              | Gray28
-              | Gray29
-              | Gray30
-              | Gray31
-              | Gray32
-              | Gray33
-              | Gray34
-              | Gray35
-              | Gray36
-              | Gray37
-              | Gray38
-              | Gray39
-              | Gray40
-              | Gray41
-              | Gray42
-              | Gray43
-              | Gray44
-              | Gray45
-              | Gray46
-              | Gray47
-              | Gray48
-              | Gray49
-              | Gray50
-              | Gray51
-              | Gray52
-              | Gray53
-              | Gray54
-              | Gray55
-              | Gray56
-              | Gray57
-              | Gray58
-              | Gray59
-              | Gray60
-              | Gray61
-              | Gray62
-              | Gray63
-              | Gray64
-              | Gray65
-              | Gray66
-              | Gray67
-              | Gray68
-              | Gray69
-              | Gray70
-              | Gray71
-              | Gray72
-              | Gray73
-              | Gray74
-              | Gray75
-              | Gray76
-              | Gray77
-              | Gray78
-              | Gray79
-              | Gray80
-              | Gray81
-              | Gray82
-              | Gray83
-              | Gray84
-              | Gray85
-              | Gray86
-              | Gray87
-              | Gray88
-              | Gray89
-              | Gray90
-              | Gray91
-              | Gray92
-              | Gray93
-              | Gray94
-              | Gray95
-              | Gray96
-              | Gray97
-              | Gray98
-              | Gray99
-              | Gray100
-              | Green
-              | Green1
-              | Green2
-              | Green3
-              | Green4
-              | GreenYellow
-              | HoneyDew
-              | HoneyDew1
-              | HoneyDew2
-              | HoneyDew3
-              | HoneyDew4
-              | HotPink
-              | HotPink1
-              | HotPink2
-              | HotPink3
-              | HotPink4
-              | IndianRed
-              | IndianRed1
-              | IndianRed2
-              | IndianRed3
-              | IndianRed4
-              | Indigo
-              | Ivory
-              | Ivory1
-              | Ivory2
-              | Ivory3
-              | Ivory4
-              | Khaki
-              | Khaki1
-              | Khaki2
-              | Khaki3
-              | Khaki4
-              | Lavender
-              | LavenderBlush
-              | LavenderBlush1
-              | LavenderBlush2
-              | LavenderBlush3
-              | LavenderBlush4
-              | LawnGreen
-              | LemonChiffon
-              | LemonChiffon1
-              | LemonChiffon2
-              | LemonChiffon3
-              | LemonChiffon4
-              | LightBlue
-              | LightBlue1
-              | LightBlue2
-              | LightBlue3
-              | LightBlue4
-              | LightCoral
-              | LightCyan
-              | LightCyan1
-              | LightCyan2
-              | LightCyan3
-              | LightCyan4
-              | LightGoldenrod
-              | LightGoldenrod1
-              | LightGoldenrod2
-              | LightGoldenrod3
-              | LightGoldenrod4
-              | LightGoldenrodYellow
-              | LightGray
-              | LightPink
-              | LightPink1
-              | LightPink2
-              | LightPink3
-              | LightPink4
-              | LightSalmon
-              | LightSalmon1
-              | LightSalmon2
-              | LightSalmon3
-              | LightSalmon4
-              | LightSeaGreen
-              | LightSkyBlue
-              | LightSkyBlue1
-              | LightSkyBlue2
-              | LightSkyBlue3
-              | LightSkyBlue4
-              | LightSlateBlue
-              | LightSlateGray
-              | LightSteelBlue
-              | LightSteelBlue1
-              | LightSteelBlue2
-              | LightSteelBlue3
-              | LightSteelBlue4
-              | LightYellow
-              | LightYellow1
-              | LightYellow2
-              | LightYellow3
-              | LightYellow4
-              | LimeGreen
-              | Linen
-              | Magenta
-              | Magenta1
-              | Magenta2
-              | Magenta3
-              | Magenta4
-              | Maroon
-              | Maroon1
-              | Maroon2
-              | Maroon3
-              | Maroon4
-              | MediumAquamarine
-              | MediumBlue
-              | MediumOrchid
-              | MediumOrchid1
-              | MediumOrchid2
-              | MediumOrchid3
-              | MediumOrchid4
-              | MediumPurple
-              | MediumPurple1
-              | MediumPurple2
-              | MediumPurple3
-              | MediumPurple4
-              | MediumSeaGreen
-              | MediumSlateBlue
-              | MediumSpringGreen
-              | MediumTurquoise
-              | MediumVioletRed
-              | MidnightBlue
-              | MintCream
-              | MistyRose
-              | MistyRose1
-              | MistyRose2
-              | MistyRose3
-              | MistyRose4
-              | Moccasin
-              | NavajoWhite
-              | NavajoWhite1
-              | NavajoWhite2
-              | NavajoWhite3
-              | NavajoWhite4
-              | Navy
-              | NavyBlue
-              | OldLace
-              | OliveDrab
-              | OliveDrab1
-              | OliveDrab2
-              | OliveDrab3
-              | OliveDrab4
-              | Orange
-              | Orange1
-              | Orange2
-              | Orange3
-              | Orange4
-              | OrangeRed
-              | OrangeRed1
-              | OrangeRed2
-              | OrangeRed3
-              | OrangeRed4
-              | Orchid
-              | Orchid1
-              | Orchid2
-              | Orchid3
-              | Orchid4
-              | PaleGoldenrod
-              | PaleGreen
-              | PaleGreen1
-              | PaleGreen2
-              | PaleGreen3
-              | PaleGreen4
-              | PaleTurquoise
-              | PaleTurquoise1
-              | PaleTurquoise2
-              | PaleTurquoise3
-              | PaleTurquoise4
-              | PaleVioletRed
-              | PaleVioletRed1
-              | PaleVioletRed2
-              | PaleVioletRed3
-              | PaleVioletRed4
-              | PapayaWhip
-              | PeachPuff
-              | PeachPuff1
-              | PeachPuff2
-              | PeachPuff3
-              | PeachPuff4
-              | Peru
-              | Pink
-              | Pink1
-              | Pink2
-              | Pink3
-              | Pink4
-              | Plum
-              | Plum1
-              | Plum2
-              | Plum3
-              | Plum4
-              | PowderBlue
-              | Purple
-              | Purple1
-              | Purple2
-              | Purple3
-              | Purple4
-              | Red
-              | Red1
-              | Red2
-              | Red3
-              | Red4
-              | RosyBrown
-              | RosyBrown1
-              | RosyBrown2
-              | RosyBrown3
-              | RosyBrown4
-              | RoyalBlue
-              | RoyalBlue1
-              | RoyalBlue2
-              | RoyalBlue3
-              | RoyalBlue4
-              | SaddleBrown
-              | Salmon
-              | Salmon1
-              | Salmon2
-              | Salmon3
-              | Salmon4
-              | SandyBrown
-              | SeaGreen
-              | SeaGreen1
-              | SeaGreen2
-              | SeaGreen3
-              | SeaGreen4
-              | SeaShell
-              | SeaShell1
-              | SeaShell2
-              | SeaShell3
-              | SeaShell4
-              | Sienna
-              | Sienna1
-              | Sienna2
-              | Sienna3
-              | Sienna4
-              | SkyBlue
-              | SkyBlue1
-              | SkyBlue2
-              | SkyBlue3
-              | SkyBlue4
-              | SlateBlue
-              | SlateBlue1
-              | SlateBlue2
-              | SlateBlue3
-              | SlateBlue4
-              | SlateGray
-              | SlateGray1
-              | SlateGray2
-              | SlateGray3
-              | SlateGray4
-              | Snow
-              | Snow1
-              | Snow2
-              | Snow3
-              | Snow4
-              | SpringGreen
-              | SpringGreen1
-              | SpringGreen2
-              | SpringGreen3
-              | SpringGreen4
-              | SteelBlue
-              | SteelBlue1
-              | SteelBlue2
-              | SteelBlue3
-              | SteelBlue4
-              | Tan
-              | Tan1
-              | Tan2
-              | Tan3
-              | Tan4
-              | Thistle
-              | Thistle1
-              | Thistle2
-              | Thistle3
-              | Thistle4
-              | Tomato
-              | Tomato1
-              | Tomato2
-              | Tomato3
-              | Tomato4
-              | Transparent -- ^ Equivalent to setting @Style [SItem Invisible []]@.
-              | Turquoise
-              | Turquoise1
-              | Turquoise2
-              | Turquoise3
-              | Turquoise4
-              | Violet
-              | VioletRed
-              | VioletRed1
-              | VioletRed2
-              | VioletRed3
-              | VioletRed4
-              | Wheat
-              | Wheat1
-              | Wheat2
-              | Wheat3
-              | Wheat4
-              | White
-              | WhiteSmoke
-              | Yellow
-              | Yellow1
-              | Yellow2
-              | Yellow3
-              | Yellow4
-              | YellowGreen
-              deriving (Eq, Ord, Bounded, Enum, Show, Read)
-
-instance PrintDot X11Color where
-  unqtDot AliceBlue            = unqtText "aliceblue"
-  unqtDot AntiqueWhite         = unqtText "antiquewhite"
-  unqtDot AntiqueWhite1        = unqtText "antiquewhite1"
-  unqtDot AntiqueWhite2        = unqtText "antiquewhite2"
-  unqtDot AntiqueWhite3        = unqtText "antiquewhite3"
-  unqtDot AntiqueWhite4        = unqtText "antiquewhite4"
-  unqtDot Aquamarine           = unqtText "aquamarine"
-  unqtDot Aquamarine1          = unqtText "aquamarine1"
-  unqtDot Aquamarine2          = unqtText "aquamarine2"
-  unqtDot Aquamarine3          = unqtText "aquamarine3"
-  unqtDot Aquamarine4          = unqtText "aquamarine4"
-  unqtDot Azure                = unqtText "azure"
-  unqtDot Azure1               = unqtText "azure1"
-  unqtDot Azure2               = unqtText "azure2"
-  unqtDot Azure3               = unqtText "azure3"
-  unqtDot Azure4               = unqtText "azure4"
-  unqtDot Beige                = unqtText "beige"
-  unqtDot Bisque               = unqtText "bisque"
-  unqtDot Bisque1              = unqtText "bisque1"
-  unqtDot Bisque2              = unqtText "bisque2"
-  unqtDot Bisque3              = unqtText "bisque3"
-  unqtDot Bisque4              = unqtText "bisque4"
-  unqtDot Black                = unqtText "black"
-  unqtDot BlanchedAlmond       = unqtText "blanchedalmond"
-  unqtDot Blue                 = unqtText "blue"
-  unqtDot Blue1                = unqtText "blue1"
-  unqtDot Blue2                = unqtText "blue2"
-  unqtDot Blue3                = unqtText "blue3"
-  unqtDot Blue4                = unqtText "blue4"
-  unqtDot BlueViolet           = unqtText "blueviolet"
-  unqtDot Brown                = unqtText "brown"
-  unqtDot Brown1               = unqtText "brown1"
-  unqtDot Brown2               = unqtText "brown2"
-  unqtDot Brown3               = unqtText "brown3"
-  unqtDot Brown4               = unqtText "brown4"
-  unqtDot Burlywood            = unqtText "burlywood"
-  unqtDot Burlywood1           = unqtText "burlywood1"
-  unqtDot Burlywood2           = unqtText "burlywood2"
-  unqtDot Burlywood3           = unqtText "burlywood3"
-  unqtDot Burlywood4           = unqtText "burlywood4"
-  unqtDot CadetBlue            = unqtText "cadetblue"
-  unqtDot CadetBlue1           = unqtText "cadetblue1"
-  unqtDot CadetBlue2           = unqtText "cadetblue2"
-  unqtDot CadetBlue3           = unqtText "cadetblue3"
-  unqtDot CadetBlue4           = unqtText "cadetblue4"
-  unqtDot Chartreuse           = unqtText "chartreuse"
-  unqtDot Chartreuse1          = unqtText "chartreuse1"
-  unqtDot Chartreuse2          = unqtText "chartreuse2"
-  unqtDot Chartreuse3          = unqtText "chartreuse3"
-  unqtDot Chartreuse4          = unqtText "chartreuse4"
-  unqtDot Chocolate            = unqtText "chocolate"
-  unqtDot Chocolate1           = unqtText "chocolate1"
-  unqtDot Chocolate2           = unqtText "chocolate2"
-  unqtDot Chocolate3           = unqtText "chocolate3"
-  unqtDot Chocolate4           = unqtText "chocolate4"
-  unqtDot Coral                = unqtText "coral"
-  unqtDot Coral1               = unqtText "coral1"
-  unqtDot Coral2               = unqtText "coral2"
-  unqtDot Coral3               = unqtText "coral3"
-  unqtDot Coral4               = unqtText "coral4"
-  unqtDot CornFlowerBlue       = unqtText "cornflowerblue"
-  unqtDot CornSilk             = unqtText "cornsilk"
-  unqtDot CornSilk1            = unqtText "cornsilk1"
-  unqtDot CornSilk2            = unqtText "cornsilk2"
-  unqtDot CornSilk3            = unqtText "cornsilk3"
-  unqtDot CornSilk4            = unqtText "cornsilk4"
-  unqtDot Crimson              = unqtText "crimson"
-  unqtDot Cyan                 = unqtText "cyan"
-  unqtDot Cyan1                = unqtText "cyan1"
-  unqtDot Cyan2                = unqtText "cyan2"
-  unqtDot Cyan3                = unqtText "cyan3"
-  unqtDot Cyan4                = unqtText "cyan4"
-  unqtDot DarkGoldenrod        = unqtText "darkgoldenrod"
-  unqtDot DarkGoldenrod1       = unqtText "darkgoldenrod1"
-  unqtDot DarkGoldenrod2       = unqtText "darkgoldenrod2"
-  unqtDot DarkGoldenrod3       = unqtText "darkgoldenrod3"
-  unqtDot DarkGoldenrod4       = unqtText "darkgoldenrod4"
-  unqtDot DarkGreen            = unqtText "darkgreen"
-  unqtDot Darkkhaki            = unqtText "darkkhaki"
-  unqtDot DarkOliveGreen       = unqtText "darkolivegreen"
-  unqtDot DarkOliveGreen1      = unqtText "darkolivegreen1"
-  unqtDot DarkOliveGreen2      = unqtText "darkolivegreen2"
-  unqtDot DarkOliveGreen3      = unqtText "darkolivegreen3"
-  unqtDot DarkOliveGreen4      = unqtText "darkolivegreen4"
-  unqtDot DarkOrange           = unqtText "darkorange"
-  unqtDot DarkOrange1          = unqtText "darkorange1"
-  unqtDot DarkOrange2          = unqtText "darkorange2"
-  unqtDot DarkOrange3          = unqtText "darkorange3"
-  unqtDot DarkOrange4          = unqtText "darkorange4"
-  unqtDot DarkOrchid           = unqtText "darkorchid"
-  unqtDot DarkOrchid1          = unqtText "darkorchid1"
-  unqtDot DarkOrchid2          = unqtText "darkorchid2"
-  unqtDot DarkOrchid3          = unqtText "darkorchid3"
-  unqtDot DarkOrchid4          = unqtText "darkorchid4"
-  unqtDot DarkSalmon           = unqtText "darksalmon"
-  unqtDot DarkSeaGreen         = unqtText "darkseagreen"
-  unqtDot DarkSeaGreen1        = unqtText "darkseagreen1"
-  unqtDot DarkSeaGreen2        = unqtText "darkseagreen2"
-  unqtDot DarkSeaGreen3        = unqtText "darkseagreen3"
-  unqtDot DarkSeaGreen4        = unqtText "darkseagreen4"
-  unqtDot DarkSlateBlue        = unqtText "darkslateblue"
-  unqtDot DarkSlateGray        = unqtText "darkslategray"
-  unqtDot DarkSlateGray1       = unqtText "darkslategray1"
-  unqtDot DarkSlateGray2       = unqtText "darkslategray2"
-  unqtDot DarkSlateGray3       = unqtText "darkslategray3"
-  unqtDot DarkSlateGray4       = unqtText "darkslategray4"
-  unqtDot DarkTurquoise        = unqtText "darkturquoise"
-  unqtDot DarkViolet           = unqtText "darkviolet"
-  unqtDot DeepPink             = unqtText "deeppink"
-  unqtDot DeepPink1            = unqtText "deeppink1"
-  unqtDot DeepPink2            = unqtText "deeppink2"
-  unqtDot DeepPink3            = unqtText "deeppink3"
-  unqtDot DeepPink4            = unqtText "deeppink4"
-  unqtDot DeepSkyBlue          = unqtText "deepskyblue"
-  unqtDot DeepSkyBlue1         = unqtText "deepskyblue1"
-  unqtDot DeepSkyBlue2         = unqtText "deepskyblue2"
-  unqtDot DeepSkyBlue3         = unqtText "deepskyblue3"
-  unqtDot DeepSkyBlue4         = unqtText "deepskyblue4"
-  unqtDot DimGray              = unqtText "dimgray"
-  unqtDot DodgerBlue           = unqtText "dodgerblue"
-  unqtDot DodgerBlue1          = unqtText "dodgerblue1"
-  unqtDot DodgerBlue2          = unqtText "dodgerblue2"
-  unqtDot DodgerBlue3          = unqtText "dodgerblue3"
-  unqtDot DodgerBlue4          = unqtText "dodgerblue4"
-  unqtDot Firebrick            = unqtText "firebrick"
-  unqtDot Firebrick1           = unqtText "firebrick1"
-  unqtDot Firebrick2           = unqtText "firebrick2"
-  unqtDot Firebrick3           = unqtText "firebrick3"
-  unqtDot Firebrick4           = unqtText "firebrick4"
-  unqtDot FloralWhite          = unqtText "floralwhite"
-  unqtDot ForestGreen          = unqtText "forestgreen"
-  unqtDot Gainsboro            = unqtText "gainsboro"
-  unqtDot GhostWhite           = unqtText "ghostwhite"
-  unqtDot Gold                 = unqtText "gold"
-  unqtDot Gold1                = unqtText "gold1"
-  unqtDot Gold2                = unqtText "gold2"
-  unqtDot Gold3                = unqtText "gold3"
-  unqtDot Gold4                = unqtText "gold4"
-  unqtDot Goldenrod            = unqtText "goldenrod"
-  unqtDot Goldenrod1           = unqtText "goldenrod1"
-  unqtDot Goldenrod2           = unqtText "goldenrod2"
-  unqtDot Goldenrod3           = unqtText "goldenrod3"
-  unqtDot Goldenrod4           = unqtText "goldenrod4"
-  unqtDot Gray                 = unqtText "gray"
-  unqtDot Gray0                = unqtText "gray0"
-  unqtDot Gray1                = unqtText "gray1"
-  unqtDot Gray2                = unqtText "gray2"
-  unqtDot Gray3                = unqtText "gray3"
-  unqtDot Gray4                = unqtText "gray4"
-  unqtDot Gray5                = unqtText "gray5"
-  unqtDot Gray6                = unqtText "gray6"
-  unqtDot Gray7                = unqtText "gray7"
-  unqtDot Gray8                = unqtText "gray8"
-  unqtDot Gray9                = unqtText "gray9"
-  unqtDot Gray10               = unqtText "gray10"
-  unqtDot Gray11               = unqtText "gray11"
-  unqtDot Gray12               = unqtText "gray12"
-  unqtDot Gray13               = unqtText "gray13"
-  unqtDot Gray14               = unqtText "gray14"
-  unqtDot Gray15               = unqtText "gray15"
-  unqtDot Gray16               = unqtText "gray16"
-  unqtDot Gray17               = unqtText "gray17"
-  unqtDot Gray18               = unqtText "gray18"
-  unqtDot Gray19               = unqtText "gray19"
-  unqtDot Gray20               = unqtText "gray20"
-  unqtDot Gray21               = unqtText "gray21"
-  unqtDot Gray22               = unqtText "gray22"
-  unqtDot Gray23               = unqtText "gray23"
-  unqtDot Gray24               = unqtText "gray24"
-  unqtDot Gray25               = unqtText "gray25"
-  unqtDot Gray26               = unqtText "gray26"
-  unqtDot Gray27               = unqtText "gray27"
-  unqtDot Gray28               = unqtText "gray28"
-  unqtDot Gray29               = unqtText "gray29"
-  unqtDot Gray30               = unqtText "gray30"
-  unqtDot Gray31               = unqtText "gray31"
-  unqtDot Gray32               = unqtText "gray32"
-  unqtDot Gray33               = unqtText "gray33"
-  unqtDot Gray34               = unqtText "gray34"
-  unqtDot Gray35               = unqtText "gray35"
-  unqtDot Gray36               = unqtText "gray36"
-  unqtDot Gray37               = unqtText "gray37"
-  unqtDot Gray38               = unqtText "gray38"
-  unqtDot Gray39               = unqtText "gray39"
-  unqtDot Gray40               = unqtText "gray40"
-  unqtDot Gray41               = unqtText "gray41"
-  unqtDot Gray42               = unqtText "gray42"
-  unqtDot Gray43               = unqtText "gray43"
-  unqtDot Gray44               = unqtText "gray44"
-  unqtDot Gray45               = unqtText "gray45"
-  unqtDot Gray46               = unqtText "gray46"
-  unqtDot Gray47               = unqtText "gray47"
-  unqtDot Gray48               = unqtText "gray48"
-  unqtDot Gray49               = unqtText "gray49"
-  unqtDot Gray50               = unqtText "gray50"
-  unqtDot Gray51               = unqtText "gray51"
-  unqtDot Gray52               = unqtText "gray52"
-  unqtDot Gray53               = unqtText "gray53"
-  unqtDot Gray54               = unqtText "gray54"
-  unqtDot Gray55               = unqtText "gray55"
-  unqtDot Gray56               = unqtText "gray56"
-  unqtDot Gray57               = unqtText "gray57"
-  unqtDot Gray58               = unqtText "gray58"
-  unqtDot Gray59               = unqtText "gray59"
-  unqtDot Gray60               = unqtText "gray60"
-  unqtDot Gray61               = unqtText "gray61"
-  unqtDot Gray62               = unqtText "gray62"
-  unqtDot Gray63               = unqtText "gray63"
-  unqtDot Gray64               = unqtText "gray64"
-  unqtDot Gray65               = unqtText "gray65"
-  unqtDot Gray66               = unqtText "gray66"
-  unqtDot Gray67               = unqtText "gray67"
-  unqtDot Gray68               = unqtText "gray68"
-  unqtDot Gray69               = unqtText "gray69"
-  unqtDot Gray70               = unqtText "gray70"
-  unqtDot Gray71               = unqtText "gray71"
-  unqtDot Gray72               = unqtText "gray72"
-  unqtDot Gray73               = unqtText "gray73"
-  unqtDot Gray74               = unqtText "gray74"
-  unqtDot Gray75               = unqtText "gray75"
-  unqtDot Gray76               = unqtText "gray76"
-  unqtDot Gray77               = unqtText "gray77"
-  unqtDot Gray78               = unqtText "gray78"
-  unqtDot Gray79               = unqtText "gray79"
-  unqtDot Gray80               = unqtText "gray80"
-  unqtDot Gray81               = unqtText "gray81"
-  unqtDot Gray82               = unqtText "gray82"
-  unqtDot Gray83               = unqtText "gray83"
-  unqtDot Gray84               = unqtText "gray84"
-  unqtDot Gray85               = unqtText "gray85"
-  unqtDot Gray86               = unqtText "gray86"
-  unqtDot Gray87               = unqtText "gray87"
-  unqtDot Gray88               = unqtText "gray88"
-  unqtDot Gray89               = unqtText "gray89"
-  unqtDot Gray90               = unqtText "gray90"
-  unqtDot Gray91               = unqtText "gray91"
-  unqtDot Gray92               = unqtText "gray92"
-  unqtDot Gray93               = unqtText "gray93"
-  unqtDot Gray94               = unqtText "gray94"
-  unqtDot Gray95               = unqtText "gray95"
-  unqtDot Gray96               = unqtText "gray96"
-  unqtDot Gray97               = unqtText "gray97"
-  unqtDot Gray98               = unqtText "gray98"
-  unqtDot Gray99               = unqtText "gray99"
-  unqtDot Gray100              = unqtText "gray100"
-  unqtDot Green                = unqtText "green"
-  unqtDot Green1               = unqtText "green1"
-  unqtDot Green2               = unqtText "green2"
-  unqtDot Green3               = unqtText "green3"
-  unqtDot Green4               = unqtText "green4"
-  unqtDot GreenYellow          = unqtText "greenyellow"
-  unqtDot HoneyDew             = unqtText "honeydew"
-  unqtDot HoneyDew1            = unqtText "honeydew1"
-  unqtDot HoneyDew2            = unqtText "honeydew2"
-  unqtDot HoneyDew3            = unqtText "honeydew3"
-  unqtDot HoneyDew4            = unqtText "honeydew4"
-  unqtDot HotPink              = unqtText "hotpink"
-  unqtDot HotPink1             = unqtText "hotpink1"
-  unqtDot HotPink2             = unqtText "hotpink2"
-  unqtDot HotPink3             = unqtText "hotpink3"
-  unqtDot HotPink4             = unqtText "hotpink4"
-  unqtDot IndianRed            = unqtText "indianred"
-  unqtDot IndianRed1           = unqtText "indianred1"
-  unqtDot IndianRed2           = unqtText "indianred2"
-  unqtDot IndianRed3           = unqtText "indianred3"
-  unqtDot IndianRed4           = unqtText "indianred4"
-  unqtDot Indigo               = unqtText "indigo"
-  unqtDot Ivory                = unqtText "ivory"
-  unqtDot Ivory1               = unqtText "ivory1"
-  unqtDot Ivory2               = unqtText "ivory2"
-  unqtDot Ivory3               = unqtText "ivory3"
-  unqtDot Ivory4               = unqtText "ivory4"
-  unqtDot Khaki                = unqtText "khaki"
-  unqtDot Khaki1               = unqtText "khaki1"
-  unqtDot Khaki2               = unqtText "khaki2"
-  unqtDot Khaki3               = unqtText "khaki3"
-  unqtDot Khaki4               = unqtText "khaki4"
-  unqtDot Lavender             = unqtText "lavender"
-  unqtDot LavenderBlush        = unqtText "lavenderblush"
-  unqtDot LavenderBlush1       = unqtText "lavenderblush1"
-  unqtDot LavenderBlush2       = unqtText "lavenderblush2"
-  unqtDot LavenderBlush3       = unqtText "lavenderblush3"
-  unqtDot LavenderBlush4       = unqtText "lavenderblush4"
-  unqtDot LawnGreen            = unqtText "lawngreen"
-  unqtDot LemonChiffon         = unqtText "lemonchiffon"
-  unqtDot LemonChiffon1        = unqtText "lemonchiffon1"
-  unqtDot LemonChiffon2        = unqtText "lemonchiffon2"
-  unqtDot LemonChiffon3        = unqtText "lemonchiffon3"
-  unqtDot LemonChiffon4        = unqtText "lemonchiffon4"
-  unqtDot LightBlue            = unqtText "lightblue"
-  unqtDot LightBlue1           = unqtText "lightblue1"
-  unqtDot LightBlue2           = unqtText "lightblue2"
-  unqtDot LightBlue3           = unqtText "lightblue3"
-  unqtDot LightBlue4           = unqtText "lightblue4"
-  unqtDot LightCoral           = unqtText "lightcoral"
-  unqtDot LightCyan            = unqtText "lightcyan"
-  unqtDot LightCyan1           = unqtText "lightcyan1"
-  unqtDot LightCyan2           = unqtText "lightcyan2"
-  unqtDot LightCyan3           = unqtText "lightcyan3"
-  unqtDot LightCyan4           = unqtText "lightcyan4"
-  unqtDot LightGoldenrod       = unqtText "lightgoldenrod"
-  unqtDot LightGoldenrod1      = unqtText "lightgoldenrod1"
-  unqtDot LightGoldenrod2      = unqtText "lightgoldenrod2"
-  unqtDot LightGoldenrod3      = unqtText "lightgoldenrod3"
-  unqtDot LightGoldenrod4      = unqtText "lightgoldenrod4"
-  unqtDot LightGoldenrodYellow = unqtText "lightgoldenrodyellow"
-  unqtDot LightGray            = unqtText "lightgray"
-  unqtDot LightPink            = unqtText "lightpink"
-  unqtDot LightPink1           = unqtText "lightpink1"
-  unqtDot LightPink2           = unqtText "lightpink2"
-  unqtDot LightPink3           = unqtText "lightpink3"
-  unqtDot LightPink4           = unqtText "lightpink4"
-  unqtDot LightSalmon          = unqtText "lightsalmon"
-  unqtDot LightSalmon1         = unqtText "lightsalmon1"
-  unqtDot LightSalmon2         = unqtText "lightsalmon2"
-  unqtDot LightSalmon3         = unqtText "lightsalmon3"
-  unqtDot LightSalmon4         = unqtText "lightsalmon4"
-  unqtDot LightSeaGreen        = unqtText "lightseagreen"
-  unqtDot LightSkyBlue         = unqtText "lightskyblue"
-  unqtDot LightSkyBlue1        = unqtText "lightskyblue1"
-  unqtDot LightSkyBlue2        = unqtText "lightskyblue2"
-  unqtDot LightSkyBlue3        = unqtText "lightskyblue3"
-  unqtDot LightSkyBlue4        = unqtText "lightskyblue4"
-  unqtDot LightSlateBlue       = unqtText "lightslateblue"
-  unqtDot LightSlateGray       = unqtText "lightslategray"
-  unqtDot LightSteelBlue       = unqtText "lightsteelblue"
-  unqtDot LightSteelBlue1      = unqtText "lightsteelblue1"
-  unqtDot LightSteelBlue2      = unqtText "lightsteelblue2"
-  unqtDot LightSteelBlue3      = unqtText "lightsteelblue3"
-  unqtDot LightSteelBlue4      = unqtText "lightsteelblue4"
-  unqtDot LightYellow          = unqtText "lightyellow"
-  unqtDot LightYellow1         = unqtText "lightyellow1"
-  unqtDot LightYellow2         = unqtText "lightyellow2"
-  unqtDot LightYellow3         = unqtText "lightyellow3"
-  unqtDot LightYellow4         = unqtText "lightyellow4"
-  unqtDot LimeGreen            = unqtText "limegreen"
-  unqtDot Linen                = unqtText "linen"
-  unqtDot Magenta              = unqtText "magenta"
-  unqtDot Magenta1             = unqtText "magenta1"
-  unqtDot Magenta2             = unqtText "magenta2"
-  unqtDot Magenta3             = unqtText "magenta3"
-  unqtDot Magenta4             = unqtText "magenta4"
-  unqtDot Maroon               = unqtText "maroon"
-  unqtDot Maroon1              = unqtText "maroon1"
-  unqtDot Maroon2              = unqtText "maroon2"
-  unqtDot Maroon3              = unqtText "maroon3"
-  unqtDot Maroon4              = unqtText "maroon4"
-  unqtDot MediumAquamarine     = unqtText "mediumaquamarine"
-  unqtDot MediumBlue           = unqtText "mediumblue"
-  unqtDot MediumOrchid         = unqtText "mediumorchid"
-  unqtDot MediumOrchid1        = unqtText "mediumorchid1"
-  unqtDot MediumOrchid2        = unqtText "mediumorchid2"
-  unqtDot MediumOrchid3        = unqtText "mediumorchid3"
-  unqtDot MediumOrchid4        = unqtText "mediumorchid4"
-  unqtDot MediumPurple         = unqtText "mediumpurple"
-  unqtDot MediumPurple1        = unqtText "mediumpurple1"
-  unqtDot MediumPurple2        = unqtText "mediumpurple2"
-  unqtDot MediumPurple3        = unqtText "mediumpurple3"
-  unqtDot MediumPurple4        = unqtText "mediumpurple4"
-  unqtDot MediumSeaGreen       = unqtText "mediumseagreen"
-  unqtDot MediumSlateBlue      = unqtText "mediumslateblue"
-  unqtDot MediumSpringGreen    = unqtText "mediumspringgreen"
-  unqtDot MediumTurquoise      = unqtText "mediumturquoise"
-  unqtDot MediumVioletRed      = unqtText "mediumvioletred"
-  unqtDot MidnightBlue         = unqtText "midnightblue"
-  unqtDot MintCream            = unqtText "mintcream"
-  unqtDot MistyRose            = unqtText "mistyrose"
-  unqtDot MistyRose1           = unqtText "mistyrose1"
-  unqtDot MistyRose2           = unqtText "mistyrose2"
-  unqtDot MistyRose3           = unqtText "mistyrose3"
-  unqtDot MistyRose4           = unqtText "mistyrose4"
-  unqtDot Moccasin             = unqtText "moccasin"
-  unqtDot NavajoWhite          = unqtText "navajowhite"
-  unqtDot NavajoWhite1         = unqtText "navajowhite1"
-  unqtDot NavajoWhite2         = unqtText "navajowhite2"
-  unqtDot NavajoWhite3         = unqtText "navajowhite3"
-  unqtDot NavajoWhite4         = unqtText "navajowhite4"
-  unqtDot Navy                 = unqtText "navy"
-  unqtDot NavyBlue             = unqtText "navyblue"
-  unqtDot OldLace              = unqtText "oldlace"
-  unqtDot OliveDrab            = unqtText "olivedrab"
-  unqtDot OliveDrab1           = unqtText "olivedrab1"
-  unqtDot OliveDrab2           = unqtText "olivedrab2"
-  unqtDot OliveDrab3           = unqtText "olivedrab3"
-  unqtDot OliveDrab4           = unqtText "olivedrab4"
-  unqtDot Orange               = unqtText "orange"
-  unqtDot Orange1              = unqtText "orange1"
-  unqtDot Orange2              = unqtText "orange2"
-  unqtDot Orange3              = unqtText "orange3"
-  unqtDot Orange4              = unqtText "orange4"
-  unqtDot OrangeRed            = unqtText "orangered"
-  unqtDot OrangeRed1           = unqtText "orangered1"
-  unqtDot OrangeRed2           = unqtText "orangered2"
-  unqtDot OrangeRed3           = unqtText "orangered3"
-  unqtDot OrangeRed4           = unqtText "orangered4"
-  unqtDot Orchid               = unqtText "orchid"
-  unqtDot Orchid1              = unqtText "orchid1"
-  unqtDot Orchid2              = unqtText "orchid2"
-  unqtDot Orchid3              = unqtText "orchid3"
-  unqtDot Orchid4              = unqtText "orchid4"
-  unqtDot PaleGoldenrod        = unqtText "palegoldenrod"
-  unqtDot PaleGreen            = unqtText "palegreen"
-  unqtDot PaleGreen1           = unqtText "palegreen1"
-  unqtDot PaleGreen2           = unqtText "palegreen2"
-  unqtDot PaleGreen3           = unqtText "palegreen3"
-  unqtDot PaleGreen4           = unqtText "palegreen4"
-  unqtDot PaleTurquoise        = unqtText "paleturquoise"
-  unqtDot PaleTurquoise1       = unqtText "paleturquoise1"
-  unqtDot PaleTurquoise2       = unqtText "paleturquoise2"
-  unqtDot PaleTurquoise3       = unqtText "paleturquoise3"
-  unqtDot PaleTurquoise4       = unqtText "paleturquoise4"
-  unqtDot PaleVioletRed        = unqtText "palevioletred"
-  unqtDot PaleVioletRed1       = unqtText "palevioletred1"
-  unqtDot PaleVioletRed2       = unqtText "palevioletred2"
-  unqtDot PaleVioletRed3       = unqtText "palevioletred3"
-  unqtDot PaleVioletRed4       = unqtText "palevioletred4"
-  unqtDot PapayaWhip           = unqtText "papayawhip"
-  unqtDot PeachPuff            = unqtText "peachpuff"
-  unqtDot PeachPuff1           = unqtText "peachpuff1"
-  unqtDot PeachPuff2           = unqtText "peachpuff2"
-  unqtDot PeachPuff3           = unqtText "peachpuff3"
-  unqtDot PeachPuff4           = unqtText "peachpuff4"
-  unqtDot Peru                 = unqtText "peru"
-  unqtDot Pink                 = unqtText "pink"
-  unqtDot Pink1                = unqtText "pink1"
-  unqtDot Pink2                = unqtText "pink2"
-  unqtDot Pink3                = unqtText "pink3"
-  unqtDot Pink4                = unqtText "pink4"
-  unqtDot Plum                 = unqtText "plum"
-  unqtDot Plum1                = unqtText "plum1"
-  unqtDot Plum2                = unqtText "plum2"
-  unqtDot Plum3                = unqtText "plum3"
-  unqtDot Plum4                = unqtText "plum4"
-  unqtDot PowderBlue           = unqtText "powderblue"
-  unqtDot Purple               = unqtText "purple"
-  unqtDot Purple1              = unqtText "purple1"
-  unqtDot Purple2              = unqtText "purple2"
-  unqtDot Purple3              = unqtText "purple3"
-  unqtDot Purple4              = unqtText "purple4"
-  unqtDot Red                  = unqtText "red"
-  unqtDot Red1                 = unqtText "red1"
-  unqtDot Red2                 = unqtText "red2"
-  unqtDot Red3                 = unqtText "red3"
-  unqtDot Red4                 = unqtText "red4"
-  unqtDot RosyBrown            = unqtText "rosybrown"
-  unqtDot RosyBrown1           = unqtText "rosybrown1"
-  unqtDot RosyBrown2           = unqtText "rosybrown2"
-  unqtDot RosyBrown3           = unqtText "rosybrown3"
-  unqtDot RosyBrown4           = unqtText "rosybrown4"
-  unqtDot RoyalBlue            = unqtText "royalblue"
-  unqtDot RoyalBlue1           = unqtText "royalblue1"
-  unqtDot RoyalBlue2           = unqtText "royalblue2"
-  unqtDot RoyalBlue3           = unqtText "royalblue3"
-  unqtDot RoyalBlue4           = unqtText "royalblue4"
-  unqtDot SaddleBrown          = unqtText "saddlebrown"
-  unqtDot Salmon               = unqtText "salmon"
-  unqtDot Salmon1              = unqtText "salmon1"
-  unqtDot Salmon2              = unqtText "salmon2"
-  unqtDot Salmon3              = unqtText "salmon3"
-  unqtDot Salmon4              = unqtText "salmon4"
-  unqtDot SandyBrown           = unqtText "sandybrown"
-  unqtDot SeaGreen             = unqtText "seagreen"
-  unqtDot SeaGreen1            = unqtText "seagreen1"
-  unqtDot SeaGreen2            = unqtText "seagreen2"
-  unqtDot SeaGreen3            = unqtText "seagreen3"
-  unqtDot SeaGreen4            = unqtText "seagreen4"
-  unqtDot SeaShell             = unqtText "seashell"
-  unqtDot SeaShell1            = unqtText "seashell1"
-  unqtDot SeaShell2            = unqtText "seashell2"
-  unqtDot SeaShell3            = unqtText "seashell3"
-  unqtDot SeaShell4            = unqtText "seashell4"
-  unqtDot Sienna               = unqtText "sienna"
-  unqtDot Sienna1              = unqtText "sienna1"
-  unqtDot Sienna2              = unqtText "sienna2"
-  unqtDot Sienna3              = unqtText "sienna3"
-  unqtDot Sienna4              = unqtText "sienna4"
-  unqtDot SkyBlue              = unqtText "skyblue"
-  unqtDot SkyBlue1             = unqtText "skyblue1"
-  unqtDot SkyBlue2             = unqtText "skyblue2"
-  unqtDot SkyBlue3             = unqtText "skyblue3"
-  unqtDot SkyBlue4             = unqtText "skyblue4"
-  unqtDot SlateBlue            = unqtText "slateblue"
-  unqtDot SlateBlue1           = unqtText "slateblue1"
-  unqtDot SlateBlue2           = unqtText "slateblue2"
-  unqtDot SlateBlue3           = unqtText "slateblue3"
-  unqtDot SlateBlue4           = unqtText "slateblue4"
-  unqtDot SlateGray            = unqtText "slategray"
-  unqtDot SlateGray1           = unqtText "slategray1"
-  unqtDot SlateGray2           = unqtText "slategray2"
-  unqtDot SlateGray3           = unqtText "slategray3"
-  unqtDot SlateGray4           = unqtText "slategray4"
-  unqtDot Snow                 = unqtText "snow"
-  unqtDot Snow1                = unqtText "snow1"
-  unqtDot Snow2                = unqtText "snow2"
-  unqtDot Snow3                = unqtText "snow3"
-  unqtDot Snow4                = unqtText "snow4"
-  unqtDot SpringGreen          = unqtText "springgreen"
-  unqtDot SpringGreen1         = unqtText "springgreen1"
-  unqtDot SpringGreen2         = unqtText "springgreen2"
-  unqtDot SpringGreen3         = unqtText "springgreen3"
-  unqtDot SpringGreen4         = unqtText "springgreen4"
-  unqtDot SteelBlue            = unqtText "steelblue"
-  unqtDot SteelBlue1           = unqtText "steelblue1"
-  unqtDot SteelBlue2           = unqtText "steelblue2"
-  unqtDot SteelBlue3           = unqtText "steelblue3"
-  unqtDot SteelBlue4           = unqtText "steelblue4"
-  unqtDot Tan                  = unqtText "tan"
-  unqtDot Tan1                 = unqtText "tan1"
-  unqtDot Tan2                 = unqtText "tan2"
-  unqtDot Tan3                 = unqtText "tan3"
-  unqtDot Tan4                 = unqtText "tan4"
-  unqtDot Thistle              = unqtText "thistle"
-  unqtDot Thistle1             = unqtText "thistle1"
-  unqtDot Thistle2             = unqtText "thistle2"
-  unqtDot Thistle3             = unqtText "thistle3"
-  unqtDot Thistle4             = unqtText "thistle4"
-  unqtDot Tomato               = unqtText "tomato"
-  unqtDot Tomato1              = unqtText "tomato1"
-  unqtDot Tomato2              = unqtText "tomato2"
-  unqtDot Tomato3              = unqtText "tomato3"
-  unqtDot Tomato4              = unqtText "tomato4"
-  unqtDot Transparent          = unqtText "transparent"
-  unqtDot Turquoise            = unqtText "turquoise"
-  unqtDot Turquoise1           = unqtText "turquoise1"
-  unqtDot Turquoise2           = unqtText "turquoise2"
-  unqtDot Turquoise3           = unqtText "turquoise3"
-  unqtDot Turquoise4           = unqtText "turquoise4"
-  unqtDot Violet               = unqtText "violet"
-  unqtDot VioletRed            = unqtText "violetred"
-  unqtDot VioletRed1           = unqtText "violetred1"
-  unqtDot VioletRed2           = unqtText "violetred2"
-  unqtDot VioletRed3           = unqtText "violetred3"
-  unqtDot VioletRed4           = unqtText "violetred4"
-  unqtDot Wheat                = unqtText "wheat"
-  unqtDot Wheat1               = unqtText "wheat1"
-  unqtDot Wheat2               = unqtText "wheat2"
-  unqtDot Wheat3               = unqtText "wheat3"
-  unqtDot Wheat4               = unqtText "wheat4"
-  unqtDot White                = unqtText "white"
-  unqtDot WhiteSmoke           = unqtText "whitesmoke"
-  unqtDot Yellow               = unqtText "yellow"
-  unqtDot Yellow1              = unqtText "yellow1"
-  unqtDot Yellow2              = unqtText "yellow2"
-  unqtDot Yellow3              = unqtText "yellow3"
-  unqtDot Yellow4              = unqtText "yellow4"
-  unqtDot YellowGreen          = unqtText "yellowgreen"
-
-instance ParseDot X11Color where
-  parseUnqt = stringValue [ ("aliceblue", AliceBlue)
-                          , ("antiquewhite", AntiqueWhite)
-                          , ("antiquewhite1", AntiqueWhite1)
-                          , ("antiquewhite2", AntiqueWhite2)
-                          , ("antiquewhite3", AntiqueWhite3)
-                          , ("antiquewhite4", AntiqueWhite4)
-                          , ("aquamarine", Aquamarine)
-                          , ("aquamarine1", Aquamarine1)
-                          , ("aquamarine2", Aquamarine2)
-                          , ("aquamarine3", Aquamarine3)
-                          , ("aquamarine4", Aquamarine4)
-                          , ("azure", Azure)
-                          , ("azure1", Azure1)
-                          , ("azure2", Azure2)
-                          , ("azure3", Azure3)
-                          , ("azure4", Azure4)
-                          , ("beige", Beige)
-                          , ("bisque", Bisque)
-                          , ("bisque1", Bisque1)
-                          , ("bisque2", Bisque2)
-                          , ("bisque3", Bisque3)
-                          , ("bisque4", Bisque4)
-                          , ("black", Black)
-                          , ("blanchedalmond", BlanchedAlmond)
-                          , ("blue", Blue)
-                          , ("blue1", Blue1)
-                          , ("blue2", Blue2)
-                          , ("blue3", Blue3)
-                          , ("blue4", Blue4)
-                          , ("blueviolet", BlueViolet)
-                          , ("brown", Brown)
-                          , ("brown1", Brown1)
-                          , ("brown2", Brown2)
-                          , ("brown3", Brown3)
-                          , ("brown4", Brown4)
-                          , ("burlywood", Burlywood)
-                          , ("burlywood1", Burlywood1)
-                          , ("burlywood2", Burlywood2)
-                          , ("burlywood3", Burlywood3)
-                          , ("burlywood4", Burlywood4)
-                          , ("cadetblue", CadetBlue)
-                          , ("cadetblue1", CadetBlue1)
-                          , ("cadetblue2", CadetBlue2)
-                          , ("cadetblue3", CadetBlue3)
-                          , ("cadetblue4", CadetBlue4)
-                          , ("chartreuse", Chartreuse)
-                          , ("chartreuse1", Chartreuse1)
-                          , ("chartreuse2", Chartreuse2)
-                          , ("chartreuse3", Chartreuse3)
-                          , ("chartreuse4", Chartreuse4)
-                          , ("chocolate", Chocolate)
-                          , ("chocolate1", Chocolate1)
-                          , ("chocolate2", Chocolate2)
-                          , ("chocolate3", Chocolate3)
-                          , ("chocolate4", Chocolate4)
-                          , ("coral", Coral)
-                          , ("coral1", Coral1)
-                          , ("coral2", Coral2)
-                          , ("coral3", Coral3)
-                          , ("coral4", Coral4)
-                          , ("cornflowerblue", CornFlowerBlue)
-                          , ("cornsilk", CornSilk)
-                          , ("cornsilk1", CornSilk1)
-                          , ("cornsilk2", CornSilk2)
-                          , ("cornsilk3", CornSilk3)
-                          , ("cornsilk4", CornSilk4)
-                          , ("crimson", Crimson)
-                          , ("cyan", Cyan)
-                          , ("cyan1", Cyan1)
-                          , ("cyan2", Cyan2)
-                          , ("cyan3", Cyan3)
-                          , ("cyan4", Cyan4)
-                          , ("darkgoldenrod", DarkGoldenrod)
-                          , ("darkgoldenrod1", DarkGoldenrod1)
-                          , ("darkgoldenrod2", DarkGoldenrod2)
-                          , ("darkgoldenrod3", DarkGoldenrod3)
-                          , ("darkgoldenrod4", DarkGoldenrod4)
-                          , ("darkgreen", DarkGreen)
-                          , ("darkkhaki", Darkkhaki)
-                          , ("darkolivegreen", DarkOliveGreen)
-                          , ("darkolivegreen1", DarkOliveGreen1)
-                          , ("darkolivegreen2", DarkOliveGreen2)
-                          , ("darkolivegreen3", DarkOliveGreen3)
-                          , ("darkolivegreen4", DarkOliveGreen4)
-                          , ("darkorange", DarkOrange)
-                          , ("darkorange1", DarkOrange1)
-                          , ("darkorange2", DarkOrange2)
-                          , ("darkorange3", DarkOrange3)
-                          , ("darkorange4", DarkOrange4)
-                          , ("darkorchid", DarkOrchid)
-                          , ("darkorchid1", DarkOrchid1)
-                          , ("darkorchid2", DarkOrchid2)
-                          , ("darkorchid3", DarkOrchid3)
-                          , ("darkorchid4", DarkOrchid4)
-                          , ("darksalmon", DarkSalmon)
-                          , ("darkseagreen", DarkSeaGreen)
-                          , ("darkseagreen1", DarkSeaGreen1)
-                          , ("darkseagreen2", DarkSeaGreen2)
-                          , ("darkseagreen3", DarkSeaGreen3)
-                          , ("darkseagreen4", DarkSeaGreen4)
-                          , ("darkslateblue", DarkSlateBlue)
-                          , ("darkslategray", DarkSlateGray)
-                          , ("darkslategrey", DarkSlateGray)
-                          , ("darkslategray1", DarkSlateGray1)
-                          , ("darkslategrey1", DarkSlateGray1)
-                          , ("darkslategray2", DarkSlateGray2)
-                          , ("darkslategrey2", DarkSlateGray2)
-                          , ("darkslategray3", DarkSlateGray3)
-                          , ("darkslategrey3", DarkSlateGray3)
-                          , ("darkslategray4", DarkSlateGray4)
-                          , ("darkslategrey4", DarkSlateGray4)
-                          , ("darkturquoise", DarkTurquoise)
-                          , ("darkviolet", DarkViolet)
-                          , ("deeppink", DeepPink)
-                          , ("deeppink1", DeepPink1)
-                          , ("deeppink2", DeepPink2)
-                          , ("deeppink3", DeepPink3)
-                          , ("deeppink4", DeepPink4)
-                          , ("deepskyblue", DeepSkyBlue)
-                          , ("deepskyblue1", DeepSkyBlue1)
-                          , ("deepskyblue2", DeepSkyBlue2)
-                          , ("deepskyblue3", DeepSkyBlue3)
-                          , ("deepskyblue4", DeepSkyBlue4)
-                          , ("dimgray", DimGray)
-                          , ("dimgrey", DimGray)
-                          , ("dodgerblue", DodgerBlue)
-                          , ("dodgerblue1", DodgerBlue1)
-                          , ("dodgerblue2", DodgerBlue2)
-                          , ("dodgerblue3", DodgerBlue3)
-                          , ("dodgerblue4", DodgerBlue4)
-                          , ("firebrick", Firebrick)
-                          , ("firebrick1", Firebrick1)
-                          , ("firebrick2", Firebrick2)
-                          , ("firebrick3", Firebrick3)
-                          , ("firebrick4", Firebrick4)
-                          , ("floralwhite", FloralWhite)
-                          , ("forestgreen", ForestGreen)
-                          , ("gainsboro", Gainsboro)
-                          , ("ghostwhite", GhostWhite)
-                          , ("gold", Gold)
-                          , ("gold1", Gold1)
-                          , ("gold2", Gold2)
-                          , ("gold3", Gold3)
-                          , ("gold4", Gold4)
-                          , ("goldenrod", Goldenrod)
-                          , ("goldenrod1", Goldenrod1)
-                          , ("goldenrod2", Goldenrod2)
-                          , ("goldenrod3", Goldenrod3)
-                          , ("goldenrod4", Goldenrod4)
-                          , ("gray", Gray)
-                          , ("grey", Gray)
-                          , ("gray0", Gray0)
-                          , ("grey0", Gray0)
-                          , ("gray1", Gray1)
-                          , ("grey1", Gray1)
-                          , ("gray2", Gray2)
-                          , ("grey2", Gray2)
-                          , ("gray3", Gray3)
-                          , ("grey3", Gray3)
-                          , ("gray4", Gray4)
-                          , ("grey4", Gray4)
-                          , ("gray5", Gray5)
-                          , ("grey5", Gray5)
-                          , ("gray6", Gray6)
-                          , ("grey6", Gray6)
-                          , ("gray7", Gray7)
-                          , ("grey7", Gray7)
-                          , ("gray8", Gray8)
-                          , ("grey8", Gray8)
-                          , ("gray9", Gray9)
-                          , ("grey9", Gray9)
-                          , ("gray10", Gray10)
-                          , ("grey10", Gray10)
-                          , ("gray11", Gray11)
-                          , ("grey11", Gray11)
-                          , ("gray12", Gray12)
-                          , ("grey12", Gray12)
-                          , ("gray13", Gray13)
-                          , ("grey13", Gray13)
-                          , ("gray14", Gray14)
-                          , ("grey14", Gray14)
-                          , ("gray15", Gray15)
-                          , ("grey15", Gray15)
-                          , ("gray16", Gray16)
-                          , ("grey16", Gray16)
-                          , ("gray17", Gray17)
-                          , ("grey17", Gray17)
-                          , ("gray18", Gray18)
-                          , ("grey18", Gray18)
-                          , ("gray19", Gray19)
-                          , ("grey19", Gray19)
-                          , ("gray20", Gray20)
-                          , ("grey20", Gray20)
-                          , ("gray21", Gray21)
-                          , ("grey21", Gray21)
-                          , ("gray22", Gray22)
-                          , ("grey22", Gray22)
-                          , ("gray23", Gray23)
-                          , ("grey23", Gray23)
-                          , ("gray24", Gray24)
-                          , ("grey24", Gray24)
-                          , ("gray25", Gray25)
-                          , ("grey25", Gray25)
-                          , ("gray26", Gray26)
-                          , ("grey26", Gray26)
-                          , ("gray27", Gray27)
-                          , ("grey27", Gray27)
-                          , ("gray28", Gray28)
-                          , ("grey28", Gray28)
-                          , ("gray29", Gray29)
-                          , ("grey29", Gray29)
-                          , ("gray30", Gray30)
-                          , ("grey30", Gray30)
-                          , ("gray31", Gray31)
-                          , ("grey31", Gray31)
-                          , ("gray32", Gray32)
-                          , ("grey32", Gray32)
-                          , ("gray33", Gray33)
-                          , ("grey33", Gray33)
-                          , ("gray34", Gray34)
-                          , ("grey34", Gray34)
-                          , ("gray35", Gray35)
-                          , ("grey35", Gray35)
-                          , ("gray36", Gray36)
-                          , ("grey36", Gray36)
-                          , ("gray37", Gray37)
-                          , ("grey37", Gray37)
-                          , ("gray38", Gray38)
-                          , ("grey38", Gray38)
-                          , ("gray39", Gray39)
-                          , ("grey39", Gray39)
-                          , ("gray40", Gray40)
-                          , ("grey40", Gray40)
-                          , ("gray41", Gray41)
-                          , ("grey41", Gray41)
-                          , ("gray42", Gray42)
-                          , ("grey42", Gray42)
-                          , ("gray43", Gray43)
-                          , ("grey43", Gray43)
-                          , ("gray44", Gray44)
-                          , ("grey44", Gray44)
-                          , ("gray45", Gray45)
-                          , ("grey45", Gray45)
-                          , ("gray46", Gray46)
-                          , ("grey46", Gray46)
-                          , ("gray47", Gray47)
-                          , ("grey47", Gray47)
-                          , ("gray48", Gray48)
-                          , ("grey48", Gray48)
-                          , ("gray49", Gray49)
-                          , ("grey49", Gray49)
-                          , ("gray50", Gray50)
-                          , ("grey50", Gray50)
-                          , ("gray51", Gray51)
-                          , ("grey51", Gray51)
-                          , ("gray52", Gray52)
-                          , ("grey52", Gray52)
-                          , ("gray53", Gray53)
-                          , ("grey53", Gray53)
-                          , ("gray54", Gray54)
-                          , ("grey54", Gray54)
-                          , ("gray55", Gray55)
-                          , ("grey55", Gray55)
-                          , ("gray56", Gray56)
-                          , ("grey56", Gray56)
-                          , ("gray57", Gray57)
-                          , ("grey57", Gray57)
-                          , ("gray58", Gray58)
-                          , ("grey58", Gray58)
-                          , ("gray59", Gray59)
-                          , ("grey59", Gray59)
-                          , ("gray60", Gray60)
-                          , ("grey60", Gray60)
-                          , ("gray61", Gray61)
-                          , ("grey61", Gray61)
-                          , ("gray62", Gray62)
-                          , ("grey62", Gray62)
-                          , ("gray63", Gray63)
-                          , ("grey63", Gray63)
-                          , ("gray64", Gray64)
-                          , ("grey64", Gray64)
-                          , ("gray65", Gray65)
-                          , ("grey65", Gray65)
-                          , ("gray66", Gray66)
-                          , ("grey66", Gray66)
-                          , ("gray67", Gray67)
-                          , ("grey67", Gray67)
-                          , ("gray68", Gray68)
-                          , ("grey68", Gray68)
-                          , ("gray69", Gray69)
-                          , ("grey69", Gray69)
-                          , ("gray70", Gray70)
-                          , ("grey70", Gray70)
-                          , ("gray71", Gray71)
-                          , ("grey71", Gray71)
-                          , ("gray72", Gray72)
-                          , ("grey72", Gray72)
-                          , ("gray73", Gray73)
-                          , ("grey73", Gray73)
-                          , ("gray74", Gray74)
-                          , ("grey74", Gray74)
-                          , ("gray75", Gray75)
-                          , ("grey75", Gray75)
-                          , ("gray76", Gray76)
-                          , ("grey76", Gray76)
-                          , ("gray77", Gray77)
-                          , ("grey77", Gray77)
-                          , ("gray78", Gray78)
-                          , ("grey78", Gray78)
-                          , ("gray79", Gray79)
-                          , ("grey79", Gray79)
-                          , ("gray80", Gray80)
-                          , ("grey80", Gray80)
-                          , ("gray81", Gray81)
-                          , ("grey81", Gray81)
-                          , ("gray82", Gray82)
-                          , ("grey82", Gray82)
-                          , ("gray83", Gray83)
-                          , ("grey83", Gray83)
-                          , ("gray84", Gray84)
-                          , ("grey84", Gray84)
-                          , ("gray85", Gray85)
-                          , ("grey85", Gray85)
-                          , ("gray86", Gray86)
-                          , ("grey86", Gray86)
-                          , ("gray87", Gray87)
-                          , ("grey87", Gray87)
-                          , ("gray88", Gray88)
-                          , ("grey88", Gray88)
-                          , ("gray89", Gray89)
-                          , ("grey89", Gray89)
-                          , ("gray90", Gray90)
-                          , ("grey90", Gray90)
-                          , ("gray91", Gray91)
-                          , ("grey91", Gray91)
-                          , ("gray92", Gray92)
-                          , ("grey92", Gray92)
-                          , ("gray93", Gray93)
-                          , ("grey93", Gray93)
-                          , ("gray94", Gray94)
-                          , ("grey94", Gray94)
-                          , ("gray95", Gray95)
-                          , ("grey95", Gray95)
-                          , ("gray96", Gray96)
-                          , ("grey96", Gray96)
-                          , ("gray97", Gray97)
-                          , ("grey97", Gray97)
-                          , ("gray98", Gray98)
-                          , ("grey98", Gray98)
-                          , ("gray99", Gray99)
-                          , ("grey99", Gray99)
-                          , ("gray100", Gray100)
-                          , ("grey100", Gray100)
-                          , ("green", Green)
-                          , ("green1", Green1)
-                          , ("green2", Green2)
-                          , ("green3", Green3)
-                          , ("green4", Green4)
-                          , ("greenyellow", GreenYellow)
-                          , ("honeydew", HoneyDew)
-                          , ("honeydew1", HoneyDew1)
-                          , ("honeydew2", HoneyDew2)
-                          , ("honeydew3", HoneyDew3)
-                          , ("honeydew4", HoneyDew4)
-                          , ("hotpink", HotPink)
-                          , ("hotpink1", HotPink1)
-                          , ("hotpink2", HotPink2)
-                          , ("hotpink3", HotPink3)
-                          , ("hotpink4", HotPink4)
-                          , ("indianred", IndianRed)
-                          , ("indianred1", IndianRed1)
-                          , ("indianred2", IndianRed2)
-                          , ("indianred3", IndianRed3)
-                          , ("indianred4", IndianRed4)
-                          , ("indigo", Indigo)
-                          , ("ivory", Ivory)
-                          , ("ivory1", Ivory1)
-                          , ("ivory2", Ivory2)
-                          , ("ivory3", Ivory3)
-                          , ("ivory4", Ivory4)
-                          , ("khaki", Khaki)
-                          , ("khaki1", Khaki1)
-                          , ("khaki2", Khaki2)
-                          , ("khaki3", Khaki3)
-                          , ("khaki4", Khaki4)
-                          , ("lavender", Lavender)
-                          , ("lavenderblush", LavenderBlush)
-                          , ("lavenderblush1", LavenderBlush1)
-                          , ("lavenderblush2", LavenderBlush2)
-                          , ("lavenderblush3", LavenderBlush3)
-                          , ("lavenderblush4", LavenderBlush4)
-                          , ("lawngreen", LawnGreen)
-                          , ("lemonchiffon", LemonChiffon)
-                          , ("lemonchiffon1", LemonChiffon1)
-                          , ("lemonchiffon2", LemonChiffon2)
-                          , ("lemonchiffon3", LemonChiffon3)
-                          , ("lemonchiffon4", LemonChiffon4)
-                          , ("lightblue", LightBlue)
-                          , ("lightblue1", LightBlue1)
-                          , ("lightblue2", LightBlue2)
-                          , ("lightblue3", LightBlue3)
-                          , ("lightblue4", LightBlue4)
-                          , ("lightcoral", LightCoral)
-                          , ("lightcyan", LightCyan)
-                          , ("lightcyan1", LightCyan1)
-                          , ("lightcyan2", LightCyan2)
-                          , ("lightcyan3", LightCyan3)
-                          , ("lightcyan4", LightCyan4)
-                          , ("lightgoldenrod", LightGoldenrod)
-                          , ("lightgoldenrod1", LightGoldenrod1)
-                          , ("lightgoldenrod2", LightGoldenrod2)
-                          , ("lightgoldenrod3", LightGoldenrod3)
-                          , ("lightgoldenrod4", LightGoldenrod4)
-                          , ("lightgoldenrodyellow", LightGoldenrodYellow)
-                          , ("lightgray", LightGray)
-                          , ("lightgrey", LightGray)
-                          , ("lightpink", LightPink)
-                          , ("lightpink1", LightPink1)
-                          , ("lightpink2", LightPink2)
-                          , ("lightpink3", LightPink3)
-                          , ("lightpink4", LightPink4)
-                          , ("lightsalmon", LightSalmon)
-                          , ("lightsalmon1", LightSalmon1)
-                          , ("lightsalmon2", LightSalmon2)
-                          , ("lightsalmon3", LightSalmon3)
-                          , ("lightsalmon4", LightSalmon4)
-                          , ("lightseagreen", LightSeaGreen)
-                          , ("lightskyblue", LightSkyBlue)
-                          , ("lightskyblue1", LightSkyBlue1)
-                          , ("lightskyblue2", LightSkyBlue2)
-                          , ("lightskyblue3", LightSkyBlue3)
-                          , ("lightskyblue4", LightSkyBlue4)
-                          , ("lightslateblue", LightSlateBlue)
-                          , ("lightslategray", LightSlateGray)
-                          , ("lightslategrey", LightSlateGray)
-                          , ("lightsteelblue", LightSteelBlue)
-                          , ("lightsteelblue1", LightSteelBlue1)
-                          , ("lightsteelblue2", LightSteelBlue2)
-                          , ("lightsteelblue3", LightSteelBlue3)
-                          , ("lightsteelblue4", LightSteelBlue4)
-                          , ("lightyellow", LightYellow)
-                          , ("lightyellow1", LightYellow1)
-                          , ("lightyellow2", LightYellow2)
-                          , ("lightyellow3", LightYellow3)
-                          , ("lightyellow4", LightYellow4)
-                          , ("limegreen", LimeGreen)
-                          , ("linen", Linen)
-                          , ("magenta", Magenta)
-                          , ("magenta1", Magenta1)
-                          , ("magenta2", Magenta2)
-                          , ("magenta3", Magenta3)
-                          , ("magenta4", Magenta4)
-                          , ("maroon", Maroon)
-                          , ("maroon1", Maroon1)
-                          , ("maroon2", Maroon2)
-                          , ("maroon3", Maroon3)
-                          , ("maroon4", Maroon4)
-                          , ("mediumaquamarine", MediumAquamarine)
-                          , ("mediumblue", MediumBlue)
-                          , ("mediumorchid", MediumOrchid)
-                          , ("mediumorchid1", MediumOrchid1)
-                          , ("mediumorchid2", MediumOrchid2)
-                          , ("mediumorchid3", MediumOrchid3)
-                          , ("mediumorchid4", MediumOrchid4)
-                          , ("mediumpurple", MediumPurple)
-                          , ("mediumpurple1", MediumPurple1)
-                          , ("mediumpurple2", MediumPurple2)
-                          , ("mediumpurple3", MediumPurple3)
-                          , ("mediumpurple4", MediumPurple4)
-                          , ("mediumseagreen", MediumSeaGreen)
-                          , ("mediumslateblue", MediumSlateBlue)
-                          , ("mediumspringgreen", MediumSpringGreen)
-                          , ("mediumturquoise", MediumTurquoise)
-                          , ("mediumvioletred", MediumVioletRed)
-                          , ("midnightblue", MidnightBlue)
-                          , ("mintcream", MintCream)
-                          , ("mistyrose", MistyRose)
-                          , ("mistyrose1", MistyRose1)
-                          , ("mistyrose2", MistyRose2)
-                          , ("mistyrose3", MistyRose3)
-                          , ("mistyrose4", MistyRose4)
-                          , ("moccasin", Moccasin)
-                          , ("navajowhite", NavajoWhite)
-                          , ("navajowhite1", NavajoWhite1)
-                          , ("navajowhite2", NavajoWhite2)
-                          , ("navajowhite3", NavajoWhite3)
-                          , ("navajowhite4", NavajoWhite4)
-                          , ("navy", Navy)
-                          , ("navyblue", NavyBlue)
-                          , ("oldlace", OldLace)
-                          , ("olivedrab", OliveDrab)
-                          , ("olivedrab1", OliveDrab1)
-                          , ("olivedrab2", OliveDrab2)
-                          , ("olivedrab3", OliveDrab3)
-                          , ("olivedrab4", OliveDrab4)
-                          , ("orange", Orange)
-                          , ("orange1", Orange1)
-                          , ("orange2", Orange2)
-                          , ("orange3", Orange3)
-                          , ("orange4", Orange4)
-                          , ("orangered", OrangeRed)
-                          , ("orangered1", OrangeRed1)
-                          , ("orangered2", OrangeRed2)
-                          , ("orangered3", OrangeRed3)
-                          , ("orangered4", OrangeRed4)
-                          , ("orchid", Orchid)
-                          , ("orchid1", Orchid1)
-                          , ("orchid2", Orchid2)
-                          , ("orchid3", Orchid3)
-                          , ("orchid4", Orchid4)
-                          , ("palegoldenrod", PaleGoldenrod)
-                          , ("palegreen", PaleGreen)
-                          , ("palegreen1", PaleGreen1)
-                          , ("palegreen2", PaleGreen2)
-                          , ("palegreen3", PaleGreen3)
-                          , ("palegreen4", PaleGreen4)
-                          , ("paleturquoise", PaleTurquoise)
-                          , ("paleturquoise1", PaleTurquoise1)
-                          , ("paleturquoise2", PaleTurquoise2)
-                          , ("paleturquoise3", PaleTurquoise3)
-                          , ("paleturquoise4", PaleTurquoise4)
-                          , ("palevioletred", PaleVioletRed)
-                          , ("palevioletred1", PaleVioletRed1)
-                          , ("palevioletred2", PaleVioletRed2)
-                          , ("palevioletred3", PaleVioletRed3)
-                          , ("palevioletred4", PaleVioletRed4)
-                          , ("papayawhip", PapayaWhip)
-                          , ("peachpuff", PeachPuff)
-                          , ("peachpuff1", PeachPuff1)
-                          , ("peachpuff2", PeachPuff2)
-                          , ("peachpuff3", PeachPuff3)
-                          , ("peachpuff4", PeachPuff4)
-                          , ("peru", Peru)
-                          , ("pink", Pink)
-                          , ("pink1", Pink1)
-                          , ("pink2", Pink2)
-                          , ("pink3", Pink3)
-                          , ("pink4", Pink4)
-                          , ("plum", Plum)
-                          , ("plum1", Plum1)
-                          , ("plum2", Plum2)
-                          , ("plum3", Plum3)
-                          , ("plum4", Plum4)
-                          , ("powderblue", PowderBlue)
-                          , ("purple", Purple)
-                          , ("purple1", Purple1)
-                          , ("purple2", Purple2)
-                          , ("purple3", Purple3)
-                          , ("purple4", Purple4)
-                          , ("red", Red)
-                          , ("red1", Red1)
-                          , ("red2", Red2)
-                          , ("red3", Red3)
-                          , ("red4", Red4)
-                          , ("rosybrown", RosyBrown)
-                          , ("rosybrown1", RosyBrown1)
-                          , ("rosybrown2", RosyBrown2)
-                          , ("rosybrown3", RosyBrown3)
-                          , ("rosybrown4", RosyBrown4)
-                          , ("royalblue", RoyalBlue)
-                          , ("royalblue1", RoyalBlue1)
-                          , ("royalblue2", RoyalBlue2)
-                          , ("royalblue3", RoyalBlue3)
-                          , ("royalblue4", RoyalBlue4)
-                          , ("saddlebrown", SaddleBrown)
-                          , ("salmon", Salmon)
-                          , ("salmon1", Salmon1)
-                          , ("salmon2", Salmon2)
-                          , ("salmon3", Salmon3)
-                          , ("salmon4", Salmon4)
-                          , ("sandybrown", SandyBrown)
-                          , ("seagreen", SeaGreen)
-                          , ("seagreen1", SeaGreen1)
-                          , ("seagreen2", SeaGreen2)
-                          , ("seagreen3", SeaGreen3)
-                          , ("seagreen4", SeaGreen4)
-                          , ("seashell", SeaShell)
-                          , ("seashell1", SeaShell1)
-                          , ("seashell2", SeaShell2)
-                          , ("seashell3", SeaShell3)
-                          , ("seashell4", SeaShell4)
-                          , ("sienna", Sienna)
-                          , ("sienna1", Sienna1)
-                          , ("sienna2", Sienna2)
-                          , ("sienna3", Sienna3)
-                          , ("sienna4", Sienna4)
-                          , ("skyblue", SkyBlue)
-                          , ("skyblue1", SkyBlue1)
-                          , ("skyblue2", SkyBlue2)
-                          , ("skyblue3", SkyBlue3)
-                          , ("skyblue4", SkyBlue4)
-                          , ("slateblue", SlateBlue)
-                          , ("slateblue1", SlateBlue1)
-                          , ("slateblue2", SlateBlue2)
-                          , ("slateblue3", SlateBlue3)
-                          , ("slateblue4", SlateBlue4)
-                          , ("slategray", SlateGray)
-                          , ("slategrey", SlateGray)
-                          , ("slategray1", SlateGray1)
-                          , ("slategrey1", SlateGray1)
-                          , ("slategray2", SlateGray2)
-                          , ("slategrey2", SlateGray2)
-                          , ("slategray3", SlateGray3)
-                          , ("slategrey3", SlateGray3)
-                          , ("slategray4", SlateGray4)
-                          , ("slategrey4", SlateGray4)
-                          , ("snow", Snow)
-                          , ("snow1", Snow1)
-                          , ("snow2", Snow2)
-                          , ("snow3", Snow3)
-                          , ("snow4", Snow4)
-                          , ("springgreen", SpringGreen)
-                          , ("springgreen1", SpringGreen1)
-                          , ("springgreen2", SpringGreen2)
-                          , ("springgreen3", SpringGreen3)
-                          , ("springgreen4", SpringGreen4)
-                          , ("steelblue", SteelBlue)
-                          , ("steelblue1", SteelBlue1)
-                          , ("steelblue2", SteelBlue2)
-                          , ("steelblue3", SteelBlue3)
-                          , ("steelblue4", SteelBlue4)
-                          , ("tan", Tan)
-                          , ("tan1", Tan1)
-                          , ("tan2", Tan2)
-                          , ("tan3", Tan3)
-                          , ("tan4", Tan4)
-                          , ("thistle", Thistle)
-                          , ("thistle1", Thistle1)
-                          , ("thistle2", Thistle2)
-                          , ("thistle3", Thistle3)
-                          , ("thistle4", Thistle4)
-                          , ("tomato", Tomato)
-                          , ("tomato1", Tomato1)
-                          , ("tomato2", Tomato2)
-                          , ("tomato3", Tomato3)
-                          , ("tomato4", Tomato4)
-                          , ("transparent", Transparent)
-                          , ("invis", Transparent)
-                          , ("none", Transparent)
-                          , ("turquoise", Turquoise)
-                          , ("turquoise1", Turquoise1)
-                          , ("turquoise2", Turquoise2)
-                          , ("turquoise3", Turquoise3)
-                          , ("turquoise4", Turquoise4)
-                          , ("violet", Violet)
-                          , ("violetred", VioletRed)
-                          , ("violetred1", VioletRed1)
-                          , ("violetred2", VioletRed2)
-                          , ("violetred3", VioletRed3)
-                          , ("violetred4", VioletRed4)
-                          , ("wheat", Wheat)
-                          , ("wheat1", Wheat1)
-                          , ("wheat2", Wheat2)
-                          , ("wheat3", Wheat3)
-                          , ("wheat4", Wheat4)
-                          , ("white", White)
-                          , ("whitesmoke", WhiteSmoke)
-                          , ("yellow", Yellow)
-                          , ("yellow1", Yellow1)
-                          , ("yellow2", Yellow2)
-                          , ("yellow3", Yellow3)
-                          , ("yellow4", Yellow4)
-                          , ("yellowgreen", YellowGreen)
-                          ]
-
--- | Attempt to convert a 'Color' into a 'Colour' value with an alpha
---   channel.  The use of 'Maybe' is because the RGB values of the
---   'BrewerColor's haven't been stored here (primarily for licensing
---   reasons).
-toColour                :: Color -> Maybe (AlphaColour Double)
-toColour (RGB r g b)    = Just . opaque $ sRGB24 r g b
-toColour (RGBA r g b a) = Just . withOpacity (sRGB24 r g b) $ toOpacity a
--- Colour expects the hue to be an angle, so multiply by 360
-toColour (HSV h s v)    = Just . opaque . uncurryRGB sRGB $ hsv (h*360) s v
-toColour (X11Color c)   = Just $ x11Colour c
-toColour BrewerColor{}  = Nothing
-
-toOpacity   :: Word8 -> Double
-toOpacity a = fromIntegral a / maxWord
-
--- | Convert an 'X11Color' to its equivalent 'Colour' value.  Note
---   that it uses 'AlphaColour' because of 'Transparent'; all other
---   'X11Color' values are completely opaque.
-x11Colour                      :: X11Color -> AlphaColour Double
-x11Colour AliceBlue            = opaque $ sRGB24 240 248 255
-x11Colour AntiqueWhite         = opaque $ sRGB24 250 235 215
-x11Colour AntiqueWhite1        = opaque $ sRGB24 255 239 219
-x11Colour AntiqueWhite2        = opaque $ sRGB24 238 223 204
-x11Colour AntiqueWhite3        = opaque $ sRGB24 205 192 176
-x11Colour AntiqueWhite4        = opaque $ sRGB24 139 131 120
-x11Colour Aquamarine           = opaque $ sRGB24 127 255 212
-x11Colour Aquamarine1          = opaque $ sRGB24 127 255 212
-x11Colour Aquamarine2          = opaque $ sRGB24 118 238 198
-x11Colour Aquamarine3          = opaque $ sRGB24 102 205 170
-x11Colour Aquamarine4          = opaque $ sRGB24 69  139 116
-x11Colour Azure                = opaque $ sRGB24 240 255 255
-x11Colour Azure1               = opaque $ sRGB24 240 255 255
-x11Colour Azure2               = opaque $ sRGB24 224 238 238
-x11Colour Azure3               = opaque $ sRGB24 193 205 205
-x11Colour Azure4               = opaque $ sRGB24 131 139 139
-x11Colour Beige                = opaque $ sRGB24 245 245 220
-x11Colour Bisque               = opaque $ sRGB24 255 228 196
-x11Colour Bisque1              = opaque $ sRGB24 255 228 196
-x11Colour Bisque2              = opaque $ sRGB24 238 213 183
-x11Colour Bisque3              = opaque $ sRGB24 205 183 158
-x11Colour Bisque4              = opaque $ sRGB24 139 125 107
-x11Colour Black                = opaque $ sRGB24 0   0   0
-x11Colour BlanchedAlmond       = opaque $ sRGB24 255 235 205
-x11Colour Blue                 = opaque $ sRGB24 0   0   255
-x11Colour Blue1                = opaque $ sRGB24 0   0   255
-x11Colour Blue2                = opaque $ sRGB24 0   0   238
-x11Colour Blue3                = opaque $ sRGB24 0   0   205
-x11Colour Blue4                = opaque $ sRGB24 0   0   139
-x11Colour BlueViolet           = opaque $ sRGB24 138 43  226
-x11Colour Brown                = opaque $ sRGB24 165 42  42
-x11Colour Brown1               = opaque $ sRGB24 255 64  64
-x11Colour Brown2               = opaque $ sRGB24 238 59  59
-x11Colour Brown3               = opaque $ sRGB24 205 51  51
-x11Colour Brown4               = opaque $ sRGB24 139 35  35
-x11Colour Burlywood            = opaque $ sRGB24 222 184 135
-x11Colour Burlywood1           = opaque $ sRGB24 255 211 155
-x11Colour Burlywood2           = opaque $ sRGB24 238 197 145
-x11Colour Burlywood3           = opaque $ sRGB24 205 170 125
-x11Colour Burlywood4           = opaque $ sRGB24 139 115 85
-x11Colour CadetBlue            = opaque $ sRGB24 95  158 160
-x11Colour CadetBlue1           = opaque $ sRGB24 152 245 255
-x11Colour CadetBlue2           = opaque $ sRGB24 142 229 238
-x11Colour CadetBlue3           = opaque $ sRGB24 122 197 205
-x11Colour CadetBlue4           = opaque $ sRGB24 83  134 139
-x11Colour Chartreuse           = opaque $ sRGB24 127 255 0
-x11Colour Chartreuse1          = opaque $ sRGB24 127 255 0
-x11Colour Chartreuse2          = opaque $ sRGB24 118 238 0
-x11Colour Chartreuse3          = opaque $ sRGB24 102 205 0
-x11Colour Chartreuse4          = opaque $ sRGB24 69  139 0
-x11Colour Chocolate            = opaque $ sRGB24 210 105 30
-x11Colour Chocolate1           = opaque $ sRGB24 255 127 36
-x11Colour Chocolate2           = opaque $ sRGB24 238 118 33
-x11Colour Chocolate3           = opaque $ sRGB24 205 102 29
-x11Colour Chocolate4           = opaque $ sRGB24 139 69  19
-x11Colour Coral                = opaque $ sRGB24 255 127 80
-x11Colour Coral1               = opaque $ sRGB24 255 114 86
-x11Colour Coral2               = opaque $ sRGB24 238 106 80
-x11Colour Coral3               = opaque $ sRGB24 205 91  69
-x11Colour Coral4               = opaque $ sRGB24 139 62  47
-x11Colour CornFlowerBlue       = opaque $ sRGB24 100 149 237
-x11Colour CornSilk             = opaque $ sRGB24 255 248 220
-x11Colour CornSilk1            = opaque $ sRGB24 255 248 220
-x11Colour CornSilk2            = opaque $ sRGB24 238 232 205
-x11Colour CornSilk3            = opaque $ sRGB24 205 200 177
-x11Colour CornSilk4            = opaque $ sRGB24 139 136 120
-x11Colour Crimson              = opaque $ sRGB24 220 20  60
-x11Colour Cyan                 = opaque $ sRGB24 0   255 255
-x11Colour Cyan1                = opaque $ sRGB24 0   255 255
-x11Colour Cyan2                = opaque $ sRGB24 0   238 238
-x11Colour Cyan3                = opaque $ sRGB24 0   205 205
-x11Colour Cyan4                = opaque $ sRGB24 0   139 139
-x11Colour DarkGoldenrod        = opaque $ sRGB24 184 134 11
-x11Colour DarkGoldenrod1       = opaque $ sRGB24 255 185 15
-x11Colour DarkGoldenrod2       = opaque $ sRGB24 238 173 14
-x11Colour DarkGoldenrod3       = opaque $ sRGB24 205 149 12
-x11Colour DarkGoldenrod4       = opaque $ sRGB24 139 101 8
-x11Colour DarkGreen            = opaque $ sRGB24 0   100 0
-x11Colour Darkkhaki            = opaque $ sRGB24 189 183 107
-x11Colour DarkOliveGreen       = opaque $ sRGB24 85  107 47
-x11Colour DarkOliveGreen1      = opaque $ sRGB24 202 255 112
-x11Colour DarkOliveGreen2      = opaque $ sRGB24 188 238 104
-x11Colour DarkOliveGreen3      = opaque $ sRGB24 162 205 90
-x11Colour DarkOliveGreen4      = opaque $ sRGB24 110 139 61
-x11Colour DarkOrange           = opaque $ sRGB24 255 140 0
-x11Colour DarkOrange1          = opaque $ sRGB24 255 127 0
-x11Colour DarkOrange2          = opaque $ sRGB24 238 118 0
-x11Colour DarkOrange3          = opaque $ sRGB24 205 102 0
-x11Colour DarkOrange4          = opaque $ sRGB24 139 69  0
-x11Colour DarkOrchid           = opaque $ sRGB24 153 50  204
-x11Colour DarkOrchid1          = opaque $ sRGB24 191 62  255
-x11Colour DarkOrchid2          = opaque $ sRGB24 178 58  238
-x11Colour DarkOrchid3          = opaque $ sRGB24 154 50  205
-x11Colour DarkOrchid4          = opaque $ sRGB24 104 34  139
-x11Colour DarkSalmon           = opaque $ sRGB24 233 150 122
-x11Colour DarkSeaGreen         = opaque $ sRGB24 143 188 143
-x11Colour DarkSeaGreen1        = opaque $ sRGB24 193 255 193
-x11Colour DarkSeaGreen2        = opaque $ sRGB24 180 238 180
-x11Colour DarkSeaGreen3        = opaque $ sRGB24 155 205 155
-x11Colour DarkSeaGreen4        = opaque $ sRGB24 105 139 105
-x11Colour DarkSlateBlue        = opaque $ sRGB24 72  61  139
-x11Colour DarkSlateGray        = opaque $ sRGB24 47  79  79
-x11Colour DarkSlateGray1       = opaque $ sRGB24 151 255 255
-x11Colour DarkSlateGray2       = opaque $ sRGB24 141 238 238
-x11Colour DarkSlateGray3       = opaque $ sRGB24 121 205 205
-x11Colour DarkSlateGray4       = opaque $ sRGB24 82  139 139
-x11Colour DarkTurquoise        = opaque $ sRGB24 0   206 209
-x11Colour DarkViolet           = opaque $ sRGB24 148 0   211
-x11Colour DeepPink             = opaque $ sRGB24 255 20  147
-x11Colour DeepPink1            = opaque $ sRGB24 255 20  147
-x11Colour DeepPink2            = opaque $ sRGB24 238 18  137
-x11Colour DeepPink3            = opaque $ sRGB24 205 16  118
-x11Colour DeepPink4            = opaque $ sRGB24 139 10  80
-x11Colour DeepSkyBlue          = opaque $ sRGB24 0   191 255
-x11Colour DeepSkyBlue1         = opaque $ sRGB24 0   191 255
-x11Colour DeepSkyBlue2         = opaque $ sRGB24 0   178 238
-x11Colour DeepSkyBlue3         = opaque $ sRGB24 0   154 205
-x11Colour DeepSkyBlue4         = opaque $ sRGB24 0   104 139
-x11Colour DimGray              = opaque $ sRGB24 105 105 105
-x11Colour DodgerBlue           = opaque $ sRGB24 30  144 255
-x11Colour DodgerBlue1          = opaque $ sRGB24 30  144 255
-x11Colour DodgerBlue2          = opaque $ sRGB24 28  134 238
-x11Colour DodgerBlue3          = opaque $ sRGB24 24  116 205
-x11Colour DodgerBlue4          = opaque $ sRGB24 16  78  139
-x11Colour Firebrick            = opaque $ sRGB24 178 34  34
-x11Colour Firebrick1           = opaque $ sRGB24 255 48  48
-x11Colour Firebrick2           = opaque $ sRGB24 238 44  44
-x11Colour Firebrick3           = opaque $ sRGB24 205 38  38
-x11Colour Firebrick4           = opaque $ sRGB24 139 26  26
-x11Colour FloralWhite          = opaque $ sRGB24 255 250 240
-x11Colour ForestGreen          = opaque $ sRGB24 34  139 34
-x11Colour Gainsboro            = opaque $ sRGB24 220 220 220
-x11Colour GhostWhite           = opaque $ sRGB24 248 248 255
-x11Colour Gold                 = opaque $ sRGB24 255 215 0
-x11Colour Gold1                = opaque $ sRGB24 255 215 0
-x11Colour Gold2                = opaque $ sRGB24 238 201 0
-x11Colour Gold3                = opaque $ sRGB24 205 173 0
-x11Colour Gold4                = opaque $ sRGB24 139 117 0
-x11Colour Goldenrod            = opaque $ sRGB24 218 165 32
-x11Colour Goldenrod1           = opaque $ sRGB24 255 193 37
-x11Colour Goldenrod2           = opaque $ sRGB24 238 180 34
-x11Colour Goldenrod3           = opaque $ sRGB24 205 155 29
-x11Colour Goldenrod4           = opaque $ sRGB24 139 105 20
-x11Colour Gray                 = opaque $ sRGB24 192 192 192
-x11Colour Gray0                = opaque $ sRGB24 0   0   0
-x11Colour Gray1                = opaque $ sRGB24 3   3   3
-x11Colour Gray2                = opaque $ sRGB24 5   5   5
-x11Colour Gray3                = opaque $ sRGB24 8   8   8
-x11Colour Gray4                = opaque $ sRGB24 10  10  10
-x11Colour Gray5                = opaque $ sRGB24 13  13  13
-x11Colour Gray6                = opaque $ sRGB24 15  15  15
-x11Colour Gray7                = opaque $ sRGB24 18  18  18
-x11Colour Gray8                = opaque $ sRGB24 20  20  20
-x11Colour Gray9                = opaque $ sRGB24 23  23  23
-x11Colour Gray10               = opaque $ sRGB24 26  26  26
-x11Colour Gray11               = opaque $ sRGB24 28  28  28
-x11Colour Gray12               = opaque $ sRGB24 31  31  31
-x11Colour Gray13               = opaque $ sRGB24 33  33  33
-x11Colour Gray14               = opaque $ sRGB24 36  36  36
-x11Colour Gray15               = opaque $ sRGB24 38  38  38
-x11Colour Gray16               = opaque $ sRGB24 41  41  41
-x11Colour Gray17               = opaque $ sRGB24 43  43  43
-x11Colour Gray18               = opaque $ sRGB24 46  46  46
-x11Colour Gray19               = opaque $ sRGB24 48  48  48
-x11Colour Gray20               = opaque $ sRGB24 51  51  51
-x11Colour Gray21               = opaque $ sRGB24 54  54  54
-x11Colour Gray22               = opaque $ sRGB24 56  56  56
-x11Colour Gray23               = opaque $ sRGB24 59  59  59
-x11Colour Gray24               = opaque $ sRGB24 61  61  61
-x11Colour Gray25               = opaque $ sRGB24 64  64  64
-x11Colour Gray26               = opaque $ sRGB24 66  66  66
-x11Colour Gray27               = opaque $ sRGB24 69  69  69
-x11Colour Gray28               = opaque $ sRGB24 71  71  71
-x11Colour Gray29               = opaque $ sRGB24 74  74  74
-x11Colour Gray30               = opaque $ sRGB24 77  77  77
-x11Colour Gray31               = opaque $ sRGB24 79  79  79
-x11Colour Gray32               = opaque $ sRGB24 82  82  82
-x11Colour Gray33               = opaque $ sRGB24 84  84  84
-x11Colour Gray34               = opaque $ sRGB24 87  87  87
-x11Colour Gray35               = opaque $ sRGB24 89  89  89
-x11Colour Gray36               = opaque $ sRGB24 92  92  92
-x11Colour Gray37               = opaque $ sRGB24 94  94  94
-x11Colour Gray38               = opaque $ sRGB24 97  97  97
-x11Colour Gray39               = opaque $ sRGB24 99  99  99
-x11Colour Gray40               = opaque $ sRGB24 102 102 102
-x11Colour Gray41               = opaque $ sRGB24 105 105 105
-x11Colour Gray42               = opaque $ sRGB24 107 107 107
-x11Colour Gray43               = opaque $ sRGB24 110 110 110
-x11Colour Gray44               = opaque $ sRGB24 112 112 112
-x11Colour Gray45               = opaque $ sRGB24 115 115 115
-x11Colour Gray46               = opaque $ sRGB24 117 117 117
-x11Colour Gray47               = opaque $ sRGB24 120 120 120
-x11Colour Gray48               = opaque $ sRGB24 122 122 122
-x11Colour Gray49               = opaque $ sRGB24 125 125 125
-x11Colour Gray50               = opaque $ sRGB24 127 127 127
-x11Colour Gray51               = opaque $ sRGB24 130 130 130
-x11Colour Gray52               = opaque $ sRGB24 133 133 133
-x11Colour Gray53               = opaque $ sRGB24 135 135 135
-x11Colour Gray54               = opaque $ sRGB24 138 138 138
-x11Colour Gray55               = opaque $ sRGB24 140 140 140
-x11Colour Gray56               = opaque $ sRGB24 143 143 143
-x11Colour Gray57               = opaque $ sRGB24 145 145 145
-x11Colour Gray58               = opaque $ sRGB24 148 148 148
-x11Colour Gray59               = opaque $ sRGB24 150 150 150
-x11Colour Gray60               = opaque $ sRGB24 153 153 153
-x11Colour Gray61               = opaque $ sRGB24 156 156 156
-x11Colour Gray62               = opaque $ sRGB24 158 158 158
-x11Colour Gray63               = opaque $ sRGB24 161 161 161
-x11Colour Gray64               = opaque $ sRGB24 163 163 163
-x11Colour Gray65               = opaque $ sRGB24 166 166 166
-x11Colour Gray66               = opaque $ sRGB24 168 168 168
-x11Colour Gray67               = opaque $ sRGB24 171 171 171
-x11Colour Gray68               = opaque $ sRGB24 173 173 173
-x11Colour Gray69               = opaque $ sRGB24 176 176 176
-x11Colour Gray70               = opaque $ sRGB24 179 179 179
-x11Colour Gray71               = opaque $ sRGB24 181 181 181
-x11Colour Gray72               = opaque $ sRGB24 184 184 184
-x11Colour Gray73               = opaque $ sRGB24 186 186 186
-x11Colour Gray74               = opaque $ sRGB24 189 189 189
-x11Colour Gray75               = opaque $ sRGB24 191 191 191
-x11Colour Gray76               = opaque $ sRGB24 194 194 194
-x11Colour Gray77               = opaque $ sRGB24 196 196 196
-x11Colour Gray78               = opaque $ sRGB24 199 199 199
-x11Colour Gray79               = opaque $ sRGB24 201 201 201
-x11Colour Gray80               = opaque $ sRGB24 204 204 204
-x11Colour Gray81               = opaque $ sRGB24 207 207 207
-x11Colour Gray82               = opaque $ sRGB24 209 209 209
-x11Colour Gray83               = opaque $ sRGB24 212 212 212
-x11Colour Gray84               = opaque $ sRGB24 214 214 214
-x11Colour Gray85               = opaque $ sRGB24 217 217 217
-x11Colour Gray86               = opaque $ sRGB24 219 219 219
-x11Colour Gray87               = opaque $ sRGB24 222 222 222
-x11Colour Gray88               = opaque $ sRGB24 224 224 224
-x11Colour Gray89               = opaque $ sRGB24 227 227 227
-x11Colour Gray90               = opaque $ sRGB24 229 229 229
-x11Colour Gray91               = opaque $ sRGB24 232 232 232
-x11Colour Gray92               = opaque $ sRGB24 235 235 235
-x11Colour Gray93               = opaque $ sRGB24 237 237 237
-x11Colour Gray94               = opaque $ sRGB24 240 240 240
-x11Colour Gray95               = opaque $ sRGB24 242 242 242
-x11Colour Gray96               = opaque $ sRGB24 245 245 245
-x11Colour Gray97               = opaque $ sRGB24 247 247 247
-x11Colour Gray98               = opaque $ sRGB24 250 250 250
-x11Colour Gray99               = opaque $ sRGB24 252 252 252
-x11Colour Gray100              = opaque $ sRGB24 255 255 255
-x11Colour Green                = opaque $ sRGB24 0   255 0
-x11Colour Green1               = opaque $ sRGB24 0   255 0
-x11Colour Green2               = opaque $ sRGB24 0   238 0
-x11Colour Green3               = opaque $ sRGB24 0   205 0
-x11Colour Green4               = opaque $ sRGB24 0   139 0
-x11Colour GreenYellow          = opaque $ sRGB24 173 255 47
-x11Colour HoneyDew             = opaque $ sRGB24 240 255 240
-x11Colour HoneyDew1            = opaque $ sRGB24 240 255 240
-x11Colour HoneyDew2            = opaque $ sRGB24 224 238 224
-x11Colour HoneyDew3            = opaque $ sRGB24 193 205 193
-x11Colour HoneyDew4            = opaque $ sRGB24 131 139 131
-x11Colour HotPink              = opaque $ sRGB24 255 105 180
-x11Colour HotPink1             = opaque $ sRGB24 255 110 180
-x11Colour HotPink2             = opaque $ sRGB24 238 106 167
-x11Colour HotPink3             = opaque $ sRGB24 205 96  144
-x11Colour HotPink4             = opaque $ sRGB24 139 58  98
-x11Colour IndianRed            = opaque $ sRGB24 205 92  92
-x11Colour IndianRed1           = opaque $ sRGB24 255 106 106
-x11Colour IndianRed2           = opaque $ sRGB24 238 99  99
-x11Colour IndianRed3           = opaque $ sRGB24 205 85  85
-x11Colour IndianRed4           = opaque $ sRGB24 139 58  58
-x11Colour Indigo               = opaque $ sRGB24 75  0   130
-x11Colour Ivory                = opaque $ sRGB24 255 255 240
-x11Colour Ivory1               = opaque $ sRGB24 255 255 240
-x11Colour Ivory2               = opaque $ sRGB24 238 238 224
-x11Colour Ivory3               = opaque $ sRGB24 205 205 193
-x11Colour Ivory4               = opaque $ sRGB24 139 139 131
-x11Colour Khaki                = opaque $ sRGB24 240 230 140
-x11Colour Khaki1               = opaque $ sRGB24 255 246 143
-x11Colour Khaki2               = opaque $ sRGB24 238 230 133
-x11Colour Khaki3               = opaque $ sRGB24 205 198 115
-x11Colour Khaki4               = opaque $ sRGB24 139 134 78
-x11Colour Lavender             = opaque $ sRGB24 230 230 250
-x11Colour LavenderBlush        = opaque $ sRGB24 255 240 245
-x11Colour LavenderBlush1       = opaque $ sRGB24 255 240 245
-x11Colour LavenderBlush2       = opaque $ sRGB24 238 224 229
-x11Colour LavenderBlush3       = opaque $ sRGB24 205 193 197
-x11Colour LavenderBlush4       = opaque $ sRGB24 139 131 134
-x11Colour LawnGreen            = opaque $ sRGB24 124 252 0
-x11Colour LemonChiffon         = opaque $ sRGB24 255 250 205
-x11Colour LemonChiffon1        = opaque $ sRGB24 255 250 205
-x11Colour LemonChiffon2        = opaque $ sRGB24 238 233 191
-x11Colour LemonChiffon3        = opaque $ sRGB24 205 201 165
-x11Colour LemonChiffon4        = opaque $ sRGB24 139 137 112
-x11Colour LightBlue            = opaque $ sRGB24 173 216 230
-x11Colour LightBlue1           = opaque $ sRGB24 191 239 255
-x11Colour LightBlue2           = opaque $ sRGB24 178 223 238
-x11Colour LightBlue3           = opaque $ sRGB24 154 192 205
-x11Colour LightBlue4           = opaque $ sRGB24 104 131 139
-x11Colour LightCoral           = opaque $ sRGB24 240 128 128
-x11Colour LightCyan            = opaque $ sRGB24 224 255 255
-x11Colour LightCyan1           = opaque $ sRGB24 224 255 255
-x11Colour LightCyan2           = opaque $ sRGB24 209 238 238
-x11Colour LightCyan3           = opaque $ sRGB24 180 205 205
-x11Colour LightCyan4           = opaque $ sRGB24 122 139 139
-x11Colour LightGoldenrod       = opaque $ sRGB24 238 221 130
-x11Colour LightGoldenrod1      = opaque $ sRGB24 255 236 139
-x11Colour LightGoldenrod2      = opaque $ sRGB24 238 220 130
-x11Colour LightGoldenrod3      = opaque $ sRGB24 205 190 112
-x11Colour LightGoldenrod4      = opaque $ sRGB24 139 129 76
-x11Colour LightGoldenrodYellow = opaque $ sRGB24 250 250 210
-x11Colour LightGray            = opaque $ sRGB24 211 211 211
-x11Colour LightPink            = opaque $ sRGB24 255 182 193
-x11Colour LightPink1           = opaque $ sRGB24 255 174 185
-x11Colour LightPink2           = opaque $ sRGB24 238 162 173
-x11Colour LightPink3           = opaque $ sRGB24 205 140 149
-x11Colour LightPink4           = opaque $ sRGB24 139 95  101
-x11Colour LightSalmon          = opaque $ sRGB24 255 160 122
-x11Colour LightSalmon1         = opaque $ sRGB24 255 160 122
-x11Colour LightSalmon2         = opaque $ sRGB24 238 149 114
-x11Colour LightSalmon3         = opaque $ sRGB24 205 129 98
-x11Colour LightSalmon4         = opaque $ sRGB24 139 87  66
-x11Colour LightSeaGreen        = opaque $ sRGB24 32  178 170
-x11Colour LightSkyBlue         = opaque $ sRGB24 135 206 250
-x11Colour LightSkyBlue1        = opaque $ sRGB24 176 226 255
-x11Colour LightSkyBlue2        = opaque $ sRGB24 164 211 238
-x11Colour LightSkyBlue3        = opaque $ sRGB24 141 182 205
-x11Colour LightSkyBlue4        = opaque $ sRGB24 96  123 139
-x11Colour LightSlateBlue       = opaque $ sRGB24 132 112 255
-x11Colour LightSlateGray       = opaque $ sRGB24 119 136 153
-x11Colour LightSteelBlue       = opaque $ sRGB24 176 196 222
-x11Colour LightSteelBlue1      = opaque $ sRGB24 202 225 255
-x11Colour LightSteelBlue2      = opaque $ sRGB24 188 210 238
-x11Colour LightSteelBlue3      = opaque $ sRGB24 162 181 205
-x11Colour LightSteelBlue4      = opaque $ sRGB24 110 123 139
-x11Colour LightYellow          = opaque $ sRGB24 255 255 224
-x11Colour LightYellow1         = opaque $ sRGB24 255 255 224
-x11Colour LightYellow2         = opaque $ sRGB24 238 238 209
-x11Colour LightYellow3         = opaque $ sRGB24 205 205 180
-x11Colour LightYellow4         = opaque $ sRGB24 139 139 122
-x11Colour LimeGreen            = opaque $ sRGB24 50  205 50
-x11Colour Linen                = opaque $ sRGB24 250 240 230
-x11Colour Magenta              = opaque $ sRGB24 255 0   255
-x11Colour Magenta1             = opaque $ sRGB24 255 0   255
-x11Colour Magenta2             = opaque $ sRGB24 238 0   238
-x11Colour Magenta3             = opaque $ sRGB24 205 0   205
-x11Colour Magenta4             = opaque $ sRGB24 139 0   139
-x11Colour Maroon               = opaque $ sRGB24 176 48  96
-x11Colour Maroon1              = opaque $ sRGB24 255 52  179
-x11Colour Maroon2              = opaque $ sRGB24 238 48  167
-x11Colour Maroon3              = opaque $ sRGB24 205 41  144
-x11Colour Maroon4              = opaque $ sRGB24 139 28  98
-x11Colour MediumAquamarine     = opaque $ sRGB24 102 205 170
-x11Colour MediumBlue           = opaque $ sRGB24 0   0   205
-x11Colour MediumOrchid         = opaque $ sRGB24 186 85  211
-x11Colour MediumOrchid1        = opaque $ sRGB24 224 102 255
-x11Colour MediumOrchid2        = opaque $ sRGB24 209 95  238
-x11Colour MediumOrchid3        = opaque $ sRGB24 180 82  205
-x11Colour MediumOrchid4        = opaque $ sRGB24 122 55  139
-x11Colour MediumPurple         = opaque $ sRGB24 147 112 219
-x11Colour MediumPurple1        = opaque $ sRGB24 171 130 255
-x11Colour MediumPurple2        = opaque $ sRGB24 159 121 238
-x11Colour MediumPurple3        = opaque $ sRGB24 137 104 205
-x11Colour MediumPurple4        = opaque $ sRGB24 93  71  139
-x11Colour MediumSeaGreen       = opaque $ sRGB24 60  179 113
-x11Colour MediumSlateBlue      = opaque $ sRGB24 123 104 238
-x11Colour MediumSpringGreen    = opaque $ sRGB24 0   250 154
-x11Colour MediumTurquoise      = opaque $ sRGB24 72  209 204
-x11Colour MediumVioletRed      = opaque $ sRGB24 199 21  133
-x11Colour MidnightBlue         = opaque $ sRGB24 25  25  112
-x11Colour MintCream            = opaque $ sRGB24 245 255 250
-x11Colour MistyRose            = opaque $ sRGB24 255 228 225
-x11Colour MistyRose1           = opaque $ sRGB24 255 228 225
-x11Colour MistyRose2           = opaque $ sRGB24 238 213 210
-x11Colour MistyRose3           = opaque $ sRGB24 205 183 181
-x11Colour MistyRose4           = opaque $ sRGB24 139 125 123
-x11Colour Moccasin             = opaque $ sRGB24 255 228 181
-x11Colour NavajoWhite          = opaque $ sRGB24 255 222 173
-x11Colour NavajoWhite1         = opaque $ sRGB24 255 222 173
-x11Colour NavajoWhite2         = opaque $ sRGB24 238 207 161
-x11Colour NavajoWhite3         = opaque $ sRGB24 205 179 139
-x11Colour NavajoWhite4         = opaque $ sRGB24 139 121 94
-x11Colour Navy                 = opaque $ sRGB24 0   0   128
-x11Colour NavyBlue             = opaque $ sRGB24 0   0   128
-x11Colour OldLace              = opaque $ sRGB24 253 245 230
-x11Colour OliveDrab            = opaque $ sRGB24 107 142 35
-x11Colour OliveDrab1           = opaque $ sRGB24 192 255 62
-x11Colour OliveDrab2           = opaque $ sRGB24 179 238 58
-x11Colour OliveDrab3           = opaque $ sRGB24 154 205 50
-x11Colour OliveDrab4           = opaque $ sRGB24 105 139 34
-x11Colour Orange               = opaque $ sRGB24 255 165 0
-x11Colour Orange1              = opaque $ sRGB24 255 165 0
-x11Colour Orange2              = opaque $ sRGB24 238 154 0
-x11Colour Orange3              = opaque $ sRGB24 205 133 0
-x11Colour Orange4              = opaque $ sRGB24 139 90  0
-x11Colour OrangeRed            = opaque $ sRGB24 255 69  0
-x11Colour OrangeRed1           = opaque $ sRGB24 255 69  0
-x11Colour OrangeRed2           = opaque $ sRGB24 238 64  0
-x11Colour OrangeRed3           = opaque $ sRGB24 205 55  0
-x11Colour OrangeRed4           = opaque $ sRGB24 139 37  0
-x11Colour Orchid               = opaque $ sRGB24 218 112 214
-x11Colour Orchid1              = opaque $ sRGB24 255 131 250
-x11Colour Orchid2              = opaque $ sRGB24 238 122 233
-x11Colour Orchid3              = opaque $ sRGB24 205 105 201
-x11Colour Orchid4              = opaque $ sRGB24 139 71  137
-x11Colour PaleGoldenrod        = opaque $ sRGB24 238 232 170
-x11Colour PaleGreen            = opaque $ sRGB24 152 251 152
-x11Colour PaleGreen1           = opaque $ sRGB24 154 255 154
-x11Colour PaleGreen2           = opaque $ sRGB24 144 238 144
-x11Colour PaleGreen3           = opaque $ sRGB24 124 205 124
-x11Colour PaleGreen4           = opaque $ sRGB24 84  139 84
-x11Colour PaleTurquoise        = opaque $ sRGB24 175 238 238
-x11Colour PaleTurquoise1       = opaque $ sRGB24 187 255 255
-x11Colour PaleTurquoise2       = opaque $ sRGB24 174 238 238
-x11Colour PaleTurquoise3       = opaque $ sRGB24 150 205 205
-x11Colour PaleTurquoise4       = opaque $ sRGB24 102 139 139
-x11Colour PaleVioletRed        = opaque $ sRGB24 219 112 147
-x11Colour PaleVioletRed1       = opaque $ sRGB24 255 130 171
-x11Colour PaleVioletRed2       = opaque $ sRGB24 238 121 159
-x11Colour PaleVioletRed3       = opaque $ sRGB24 205 104 137
-x11Colour PaleVioletRed4       = opaque $ sRGB24 139 71  93
-x11Colour PapayaWhip           = opaque $ sRGB24 255 239 213
-x11Colour PeachPuff            = opaque $ sRGB24 255 218 185
-x11Colour PeachPuff1           = opaque $ sRGB24 255 218 185
-x11Colour PeachPuff2           = opaque $ sRGB24 238 203 173
-x11Colour PeachPuff3           = opaque $ sRGB24 205 175 149
-x11Colour PeachPuff4           = opaque $ sRGB24 139 119 101
-x11Colour Peru                 = opaque $ sRGB24 205 133 63
-x11Colour Pink                 = opaque $ sRGB24 255 192 203
-x11Colour Pink1                = opaque $ sRGB24 255 181 197
-x11Colour Pink2                = opaque $ sRGB24 238 169 184
-x11Colour Pink3                = opaque $ sRGB24 205 145 158
-x11Colour Pink4                = opaque $ sRGB24 139 99  108
-x11Colour Plum                 = opaque $ sRGB24 221 160 221
-x11Colour Plum1                = opaque $ sRGB24 255 187 255
-x11Colour Plum2                = opaque $ sRGB24 238 174 238
-x11Colour Plum3                = opaque $ sRGB24 205 150 205
-x11Colour Plum4                = opaque $ sRGB24 139 102 139
-x11Colour PowderBlue           = opaque $ sRGB24 176 224 230
-x11Colour Purple               = opaque $ sRGB24 160 32  240
-x11Colour Purple1              = opaque $ sRGB24 155 48  255
-x11Colour Purple2              = opaque $ sRGB24 145 44  238
-x11Colour Purple3              = opaque $ sRGB24 125 38  205
-x11Colour Purple4              = opaque $ sRGB24 85  26  139
-x11Colour Red                  = opaque $ sRGB24 255 0   0
-x11Colour Red1                 = opaque $ sRGB24 255 0   0
-x11Colour Red2                 = opaque $ sRGB24 238 0   0
-x11Colour Red3                 = opaque $ sRGB24 205 0   0
-x11Colour Red4                 = opaque $ sRGB24 139 0   0
-x11Colour RosyBrown            = opaque $ sRGB24 188 143 143
-x11Colour RosyBrown1           = opaque $ sRGB24 255 193 193
-x11Colour RosyBrown2           = opaque $ sRGB24 238 180 180
-x11Colour RosyBrown3           = opaque $ sRGB24 205 155 155
-x11Colour RosyBrown4           = opaque $ sRGB24 139 105 105
-x11Colour RoyalBlue            = opaque $ sRGB24 65  105 225
-x11Colour RoyalBlue1           = opaque $ sRGB24 72  118 255
-x11Colour RoyalBlue2           = opaque $ sRGB24 67  110 238
-x11Colour RoyalBlue3           = opaque $ sRGB24 58  95  205
-x11Colour RoyalBlue4           = opaque $ sRGB24 39  64  139
-x11Colour SaddleBrown          = opaque $ sRGB24 139 69  19
-x11Colour Salmon               = opaque $ sRGB24 250 128 114
-x11Colour Salmon1              = opaque $ sRGB24 255 140 105
-x11Colour Salmon2              = opaque $ sRGB24 238 130 98
-x11Colour Salmon3              = opaque $ sRGB24 205 112 84
-x11Colour Salmon4              = opaque $ sRGB24 139 76  57
-x11Colour SandyBrown           = opaque $ sRGB24 244 164 96
-x11Colour SeaGreen             = opaque $ sRGB24 46  139 87
-x11Colour SeaGreen1            = opaque $ sRGB24 84  255 159
-x11Colour SeaGreen2            = opaque $ sRGB24 78  238 148
-x11Colour SeaGreen3            = opaque $ sRGB24 67  205 128
-x11Colour SeaGreen4            = opaque $ sRGB24 46  139 87
-x11Colour SeaShell             = opaque $ sRGB24 255 245 238
-x11Colour SeaShell1            = opaque $ sRGB24 255 245 238
-x11Colour SeaShell2            = opaque $ sRGB24 238 229 222
-x11Colour SeaShell3            = opaque $ sRGB24 205 197 191
-x11Colour SeaShell4            = opaque $ sRGB24 139 134 130
-x11Colour Sienna               = opaque $ sRGB24 160 82  45
-x11Colour Sienna1              = opaque $ sRGB24 255 130 71
-x11Colour Sienna2              = opaque $ sRGB24 238 121 66
-x11Colour Sienna3              = opaque $ sRGB24 205 104 57
-x11Colour Sienna4              = opaque $ sRGB24 139 71  38
-x11Colour SkyBlue              = opaque $ sRGB24 135 206 235
-x11Colour SkyBlue1             = opaque $ sRGB24 135 206 255
-x11Colour SkyBlue2             = opaque $ sRGB24 126 192 238
-x11Colour SkyBlue3             = opaque $ sRGB24 108 166 205
-x11Colour SkyBlue4             = opaque $ sRGB24 74  112 139
-x11Colour SlateBlue            = opaque $ sRGB24 106 90  205
-x11Colour SlateBlue1           = opaque $ sRGB24 131 111 255
-x11Colour SlateBlue2           = opaque $ sRGB24 122 103 238
-x11Colour SlateBlue3           = opaque $ sRGB24 105 89  205
-x11Colour SlateBlue4           = opaque $ sRGB24 71  60  139
-x11Colour SlateGray            = opaque $ sRGB24 112 128 144
-x11Colour SlateGray1           = opaque $ sRGB24 198 226 255
-x11Colour SlateGray2           = opaque $ sRGB24 185 211 238
-x11Colour SlateGray3           = opaque $ sRGB24 159 182 205
-x11Colour SlateGray4           = opaque $ sRGB24 108 123 139
-x11Colour Snow                 = opaque $ sRGB24 255 250 250
-x11Colour Snow1                = opaque $ sRGB24 255 250 250
-x11Colour Snow2                = opaque $ sRGB24 238 233 233
-x11Colour Snow3                = opaque $ sRGB24 205 201 201
-x11Colour Snow4                = opaque $ sRGB24 139 137 137
-x11Colour SpringGreen          = opaque $ sRGB24 0   255 127
-x11Colour SpringGreen1         = opaque $ sRGB24 0   255 127
-x11Colour SpringGreen2         = opaque $ sRGB24 0   238 118
-x11Colour SpringGreen3         = opaque $ sRGB24 0   205 102
-x11Colour SpringGreen4         = opaque $ sRGB24 0   139 69
-x11Colour SteelBlue            = opaque $ sRGB24 70  130 180
-x11Colour SteelBlue1           = opaque $ sRGB24 99  184 255
-x11Colour SteelBlue2           = opaque $ sRGB24 92  172 238
-x11Colour SteelBlue3           = opaque $ sRGB24 79  148 205
-x11Colour SteelBlue4           = opaque $ sRGB24 54  100 139
-x11Colour Tan                  = opaque $ sRGB24 210 180 140
-x11Colour Tan1                 = opaque $ sRGB24 255 165 79
-x11Colour Tan2                 = opaque $ sRGB24 238 154 73
-x11Colour Tan3                 = opaque $ sRGB24 205 133 63
-x11Colour Tan4                 = opaque $ sRGB24 139 90  43
-x11Colour Thistle              = opaque $ sRGB24 216 191 216
-x11Colour Thistle1             = opaque $ sRGB24 255 225 255
-x11Colour Thistle2             = opaque $ sRGB24 238 210 238
-x11Colour Thistle3             = opaque $ sRGB24 205 181 205
-x11Colour Thistle4             = opaque $ sRGB24 139 123 139
-x11Colour Tomato               = opaque $ sRGB24 255 99  71
-x11Colour Tomato1              = opaque $ sRGB24 255 99  71
-x11Colour Tomato2              = opaque $ sRGB24 238 92  66
-x11Colour Tomato3              = opaque $ sRGB24 205 79  57
-x11Colour Tomato4              = opaque $ sRGB24 139 54  38
-x11Colour Transparent          = transparent
-x11Colour Turquoise            = opaque $ sRGB24 64  224 208
-x11Colour Turquoise1           = opaque $ sRGB24 0   245 255
-x11Colour Turquoise2           = opaque $ sRGB24 0   229 238
-x11Colour Turquoise3           = opaque $ sRGB24 0   197 205
-x11Colour Turquoise4           = opaque $ sRGB24 0   134 139
-x11Colour Violet               = opaque $ sRGB24 238 130 238
-x11Colour VioletRed            = opaque $ sRGB24 208 32  144
-x11Colour VioletRed1           = opaque $ sRGB24 255 62  150
-x11Colour VioletRed2           = opaque $ sRGB24 238 58  140
-x11Colour VioletRed3           = opaque $ sRGB24 205 50  120
-x11Colour VioletRed4           = opaque $ sRGB24 139 34  82
-x11Colour Wheat                = opaque $ sRGB24 245 222 179
-x11Colour Wheat1               = opaque $ sRGB24 255 231 186
-x11Colour Wheat2               = opaque $ sRGB24 238 216 174
-x11Colour Wheat3               = opaque $ sRGB24 205 186 150
-x11Colour Wheat4               = opaque $ sRGB24 139 126 102
-x11Colour White                = opaque $ sRGB24 255 255 255
-x11Colour WhiteSmoke           = opaque $ sRGB24 245 245 245
-x11Colour Yellow               = opaque $ sRGB24 255 255 0
-x11Colour Yellow1              = opaque $ sRGB24 255 255 0
-x11Colour Yellow2              = opaque $ sRGB24 238 238 0
-x11Colour Yellow3              = opaque $ sRGB24 205 205 0
-x11Colour Yellow4              = opaque $ sRGB24 139 139 0
-x11Colour YellowGreen          = opaque $ sRGB24 154 205 50
+         -- * Colors
+       , Color(..)
+       , NamedColor(toColor)
+         -- * Conversion to\/from @Colour@.
+       , toColour
+       , fromColour
+       , fromAColour
+       ) where
+
+import Data.GraphViz.Parsing
+import Data.GraphViz.Printing
+import Data.GraphViz.State
+import Data.GraphViz.Attributes.ColorScheme(ColorScheme(..))
+import Data.GraphViz.Attributes.Colors.X11(X11Color(Transparent), x11Colour)
+import Data.GraphViz.Attributes.Colors.SVG(SVGColor, svgColour)
+import Data.GraphViz.Attributes.Colors.Brewer(BrewerColor(..))
+import Data.GraphViz.Util(bool)
+import Data.GraphViz.Exception
+
+import Data.Colour( AlphaColour, opaque, withOpacity
+                  , over, black, alphaChannel, darken)
+import Data.Colour.SRGB(Colour, sRGB, sRGB24, toSRGB24)
+import Data.Colour.RGBSpace(uncurryRGB)
+import Data.Colour.RGBSpace.HSV(hsv)
+
+import Data.Char(isHexDigit)
+import Numeric(showHex, readHex)
+import Data.Maybe(isJust)
+import Data.Word(Word8)
+import qualified Data.Text.Lazy as T
+import Control.Monad(liftM)
+
+-- -----------------------------------------------------------------------------
+
+-- | Defining a color for use with Graphviz.  Note that named colors
+--   have been split up into 'X11Color's and those based upon the
+--   Brewer color schemes.
+data Color = RGB { red   :: Word8
+                 , green :: Word8
+                 , blue  :: Word8
+                 }
+           | RGBA { red   :: Word8
+                  , green :: Word8
+                  , blue  :: Word8
+                  , alpha :: Word8
+                  }
+             -- | The 'hue', 'saturation' and 'value' values must all
+             --   be @0 <= x <=1@.
+           | HSV { hue        :: Double
+                 , saturation :: Double
+                 , value      :: Double
+                 }
+           | X11Color X11Color
+           | SVGColor SVGColor
+           | BrewerColor BrewerColor
+           deriving (Eq, Ord, Show, Read)
+
+instance PrintDot Color where
+  unqtDot (RGB  r g b)     = hexColor [r,g,b]
+  unqtDot (RGBA r g b a)   = hexColor [r,g,b,a]
+  unqtDot (HSV  h s v)     = hcat . punctuate comma $ mapM unqtDot [h,s,v]
+  unqtDot (SVGColor name)  = printNC False name
+  unqtDot (X11Color name)  = printNC False name
+  unqtDot (BrewerColor bc) = printNC False bc
+
+  -- Some cases might not need quotes.
+  toDot (X11Color name)  = printNC True name
+  toDot (SVGColor name)  = printNC True name
+  toDot (BrewerColor bc) = printNC True bc
+  toDot c                = dquotes $ unqtDot c
+
+  unqtListToDot = hcat . punctuate colon . mapM unqtDot
+
+  -- These three might not need to be quoted if they're on their own.
+  listToDot [X11Color name]  = printNC True name
+  listToDot [SVGColor name]  = printNC True name
+  listToDot [BrewerColor bc] = printNC True bc
+  listToDot cs               = dquotes $ unqtListToDot cs
+
+hexColor :: [Word8] -> DotCode
+hexColor = (<>) (char '#') . hcat . mapM word8Doc
+
+word8Doc   :: Word8 -> DotCode
+word8Doc w = text $ padding `T.append` simple
+  where
+    simple = T.pack $ showHex w ""
+    padding = T.replicate count (T.singleton '0')
+    count = 2 - findCols 1 w
+    findCols c n
+      | n < 16 = c
+      | otherwise = findCols (c+1) (n `div` 16)
+
+instance ParseDot Color where
+  parseUnqt = oneOf [ parseHexBased
+                    , parseHSV
+                      -- Have to parse BrewerColor first, as some of them may appear to be X11 colors
+                    , parseNC (undefined :: BrewerColor) False
+                    , parseNC (undefined :: SVGColor) False
+                    , parseX11Color False
+                    ]
+    where
+      parseHexBased
+          = do character '#'
+               cs <- many1 parse2Hex
+               return $ case cs of
+                          [r,g,b] -> RGB r g b
+                          [r,g,b,a] -> RGBA r g b a
+                          _ -> throw . NotDotCode
+                               $ "Not a valid hex Color specification: "
+                                  ++ show cs
+      parseHSV = do h <- parse
+                    parseSep
+                    s <- parse
+                    parseSep
+                    v <- parse
+                    return $ HSV h s v
+      parseSep = oneOf [ string ","
+                       , whitespace1
+                       ]
+      parse2Hex = do c1 <- satisfy isHexDigit
+                     c2 <- satisfy isHexDigit
+                     let [(n, [])] = readHex [c1, c2]
+                     return n
+
+  parse = quotedParse parseUnqt
+          `onFail` -- These three might not need to be quoted
+          oneOf [ parseNC (undefined :: BrewerColor) True
+                , parseNC (undefined :: SVGColor) True
+                , parseX11Color True
+                ]
+
+  parseUnqtList = sepBy1 parseUnqt (character ':')
+
+  parseList = liftM (:[])
+              -- Unquoted single color
+              (oneOf [ parseNC (undefined :: BrewerColor) True
+                     , parseNC (undefined :: SVGColor) True
+                     , parseX11Color True
+                     ]
+              )
+              `onFail`
+              quotedParse parseUnqtList
+
+-- -----------------------------------------------------------------------------
+
+-- | More easily convert named colors to an overall 'Color' value.
+class NamedColor nc where
+    colorScheme :: nc -> ColorScheme
+
+    toColor :: nc -> Color
+
+    printNC :: Bool -> nc -> DotCode
+
+    parseNC' :: Bool -> Parse nc
+
+-- First value just used for type
+parseNC :: (NamedColor nc) => nc -> Bool -> Parse Color
+parseNC nc q = fmap (toColor . flip asTypeOf nc)
+               $ parseNC' q
+
+instance NamedColor BrewerColor where
+    colorScheme (BC bs _) = Brewer bs
+
+    toColor = BrewerColor
+
+    printNC = printNamedColor (\ (BC _ l) -> l)
+
+    parseNC' = parseNamedColor mBCS parseUnqt (const True) BC
+        where
+          mBCS (Brewer bs) = Just bs
+          mBCS _           = Nothing
+
+instance NamedColor X11Color where
+    colorScheme = const X11
+
+    toColor = X11Color
+
+    printNC = printNamedColor id
+
+    parseNC' = parseNamedColor mX11 (parseColorScheme False) (isJust . mX11) (const id)
+        where
+          mX11 X11 = Just X11
+          mX11 _   = Nothing
+
+instance NamedColor SVGColor where
+    colorScheme = const SVG
+
+    toColor = SVGColor
+
+    printNC = printNamedColor id
+
+    parseNC' = parseNamedColor mSVG (parseColorScheme False) (isJust . mSVG) (const id)
+        where
+          mSVG SVG = Just SVG
+          mSVG _   = Nothing
+
+printNamedColor :: (NamedColor nc, PrintDot lv) => (nc -> lv)
+                   -> Bool -> nc -> DotCode
+printNamedColor fl q c = do currentCS <- getColorScheme
+                            if cs == currentCS
+                               then (bool unqtDot toDot q) lv
+                               else bool id dquotes q
+                                    $ fslash <> printColorScheme False cs
+                                      <> fslash <> unqtDot lv
+    where
+      cs = colorScheme c
+      lv = fl c
+
+parseNamedColor :: (NamedColor nc, ParseDot lv)
+                   => (ColorScheme -> Maybe cs) -> Parse cs -> (cs -> Bool)
+                   -> (cs -> lv -> nc) -> Bool -> Parse nc
+parseNamedColor gcs parseCS vcs mkC q
+    = do Just cs <- gcs `fmap` getColorScheme
+         lv <- bool parseUnqt parse q
+               `onFail`
+               mQts (string "//" *> parseUnqt)
+         return $ mkC cs lv
+      `onFail`
+      mQts ( do character '/'
+                cs <- parseCS
+                character '/'
+                if vcs cs
+                   then do lv <- parseUnqt
+                           return $ mkC cs lv
+                   else fail "Explicit colorscheme not as expected."
+           )
+    where
+      mQts = bool id quotedParse q
+
+-- -----------------------------------------------------------------------------
+
+-- X11 has a special case when parsing: '/yyyy'
+
+parseX11Color   :: Bool -> Parse Color
+parseX11Color q = fmap X11Color
+                  $ parseNC' q
+                    `onFail`
+                    bool id quotedParse q (character '/' *> parseUnqt)
+                    `onFail`
+                    -- Can use X11 colors within brewer colorscheme.
+                    do cs <- getColorScheme
+                       case cs of
+                         Brewer{} -> bool parseUnqt parse q
+                         _        -> fail "Unable to parse an X11 color within Brewer"
+
+-- -----------------------------------------------------------------------------
+
+-- | Attempt to convert a 'Color' into a 'Colour' value with an alpha
+--   channel.  The use of 'Maybe' is because the RGB values of the
+--   'BrewerColor's haven't been stored here (primarily for licensing
+--   reasons).
+toColour                :: Color -> Maybe (AlphaColour Double)
+toColour (RGB r g b)    = Just . opaque $ sRGB24 r g b
+toColour (RGBA r g b a) = Just . withOpacity (sRGB24 r g b) $ toOpacity a
+-- Colour expects the hue to be an angle, so multiply by 360
+toColour (HSV h s v)    = Just . opaque . uncurryRGB sRGB $ hsv (h*360) s v
+toColour (X11Color c)   = Just $ x11Colour c
+toColour (SVGColor c)   = Just . opaque $ svgColour c
+toColour BrewerColor{}  = Nothing
+
+toOpacity   :: Word8 -> Double
+toOpacity a = fromIntegral a / maxWord
 
 -- | Convert a 'Colour' value to an 'RGB' 'Color'.
 fromColour :: Colour Double -> Color
diff --git a/Data/GraphViz/Attributes/Colors/Brewer.hs b/Data/GraphViz/Attributes/Colors/Brewer.hs
new file mode 100644
--- /dev/null
+++ b/Data/GraphViz/Attributes/Colors/Brewer.hs
@@ -0,0 +1,52 @@
+{-# LANGUAGE OverloadedStrings #-}
+
+{- |
+   Module      : Data.GraphViz.Attributes.Colors.Brewer
+   Description : Specification of Brewer colors.
+   Copyright   : (c) Ivan Lazar Miljenovic
+   License     : 3-Clause BSD-style
+   Maintainer  : Ivan.Miljenovic@gmail.com
+
+   You almost definitely do /not/ want to use this module.  It is only
+   defined for completeness when parsing existing Dot code.
+
+   Graphviz contains a list of colors known as the /Brewer color
+   schemes/.
+
+   These colors are available under an Apache-style license:
+   <http://www.graphviz.org/doc/info/colors.html#brewer_license>.  As
+   such, they are not recommended for general use, and have only been
+   included in this package for completeness.
+
+   The complete list of Brewer colors can be found at
+   <http://www.graphviz.org/doc/info/colors.html#brewer>.
+
+ -}
+module Data.GraphViz.Attributes.Colors.Brewer
+    ( BrewerScheme(..)
+    , BrewerName(..)
+    , BrewerColor(..)
+    ) where
+
+{-
+
+ This is a virtual module designed just to re-export the Brewer colors.
+
+ -}
+
+import Data.GraphViz.Attributes.ColorScheme(BrewerScheme(..), BrewerName(..))
+
+-- To get the instances
+import Data.GraphViz.Parsing()
+import Data.GraphViz.Printing()
+
+import Data.Word(Word8)
+
+-- -----------------------------------------------------------------------------
+
+-- Note: we do /not/ have {Print,Parse}Dot instances for this; it's covered in Color.
+
+-- | This value should be between @1@ and the level of the
+--   'BrewerScheme' being used.
+data BrewerColor = BC BrewerScheme Word8
+                   deriving (Eq, Ord, Show, Read)
diff --git a/Data/GraphViz/Attributes/Colors/SVG.hs b/Data/GraphViz/Attributes/Colors/SVG.hs
new file mode 100644
--- /dev/null
+++ b/Data/GraphViz/Attributes/Colors/SVG.hs
@@ -0,0 +1,609 @@
+{-# LANGUAGE OverloadedStrings #-}
+
+{- |
+   Module      : Data.GraphViz.Attributes.Colors.SVG
+   Description : Specification of SVG colors.
+   Copyright   : (c) Ivan Lazar Miljenovic
+   License     : 3-Clause BSD-style
+   Maintainer  : Ivan.Miljenovic@gmail.com
+
+   Graphviz comes with an SVG color scheme:
+   <http://www.graphviz.org/doc/info/colors.html#svg>
+
+   However, in general use you probably want to use
+   "Data.GraphViz.Attributes.Colors.X11" instead, unless you are only
+   generating SVG images.
+
+ -}
+module Data.GraphViz.Attributes.Colors.SVG
+    ( SVGColor(..)
+    , svgColour
+    ) where
+
+import Data.GraphViz.Parsing
+import Data.GraphViz.Printing
+
+import Data.Colour(Colour)
+import Data.Colour.SRGB(sRGB24)
+
+-- -----------------------------------------------------------------------------
+
+-- | The SVG colors that Graphviz uses.  Graphviz's list of colors
+--   also duplicated all @*Gray*@ colors with @*Grey*@ ones; parsing
+--   of an 'SVGColor' which is specified using \"grey\" will succeed.
+data SVGColor = AliceBlue
+              | AntiqueWhite
+              | Aqua
+              | Aquamarine
+              | Azure
+              | Beige
+              | Bisque
+              | Black
+              | BlanchedAlmond
+              | Blue
+              | BlueViolet
+              | Brown
+              | Burlywood
+              | CadetBlue
+              | Chartreuse
+              | Chocolate
+              | Coral
+              | CornflowerBlue
+              | Cornsilk
+              | Crimson
+              | Cyan
+              | DarkBlue
+              | DarkCyan
+              | DarkGoldenrod
+              | DarkGray
+              | DarkGreen
+              | DarkKhaki
+              | DarkMagenta
+              | DarkOliveGreen
+              | DarkOrange
+              | DarkOrchid
+              | DarkRed
+              | DarkSalmon
+              | DarkSeaGreen
+              | DarkSlateBlue
+              | DarkSlateGray
+              | DarkTurquoise
+              | DarkViolet
+              | DeepPink
+              | DeepSkyBlue
+              | DimGray
+              | DodgerBlue
+              | Firebrick
+              | FloralWhite
+              | ForestGreen
+              | Fuchsia
+              | Gainsboro
+              | GhostWhite
+              | Gold
+              | Goldenrod
+              | Gray
+              | Green
+              | GreenYellow
+              | Honeydew
+              | HotPink
+              | IndianRed
+              | Indigo
+              | Ivory
+              | Khaki
+              | Lavender
+              | LavenderBlush
+              | LawnGreen
+              | LemonChiffon
+              | LightBlue
+              | LightCoral
+              | LightCyan
+              | LightGoldenrodYellow
+              | LightGray
+              | LightGreen
+              | LightPink
+              | LightSalmon
+              | LightSeaGreen
+              | LightSkyBlue
+              | LightSlateGray
+              | LightSteelBlue
+              | LightYellow
+              | Lime
+              | LimeGreen
+              | Linen
+              | Magenta
+              | Maroon
+              | MediumAquamarine
+              | MediumBlue
+              | MediumOrchid
+              | MediumPurple
+              | MediumSeaGreen
+              | MediumSlateBlue
+              | MediumSpringGreen
+              | MediumTurquoise
+              | MediumVioletRed
+              | MidnightBlue
+              | MintCream
+              | MistyRose
+              | Moccasin
+              | NavajoWhite
+              | Navy
+              | OldLace
+              | Olive
+              | OliveDrab
+              | Orange
+              | OrangeRed
+              | Orchid
+              | PaleGoldenrod
+              | PaleGreen
+              | PaleTurquoise
+              | PaleVioletRed
+              | PapayaWhip
+              | PeachPuff
+              | Peru
+              | Pink
+              | Plum
+              | PowderBlue
+              | Purple
+              | Red
+              | RosyBrown
+              | RoyalBlue
+              | SaddleBrown
+              | Salmon
+              | SandyBrown
+              | SeaGreen
+              | SeaShell
+              | Sienna
+              | Silver
+              | SkyBlue
+              | SlateBlue
+              | SlateGray
+              | Snow
+              | SpringGreen
+              | SteelBlue
+              | Tan
+              | Teal
+              | Thistle
+              | Tomato
+              | Turquoise
+              | Violet
+              | Wheat
+              | White
+              | WhiteSmoke
+              | Yellow
+              | YellowGreen
+              deriving (Eq, Ord, Bounded, Enum, Show, Read)
+
+instance PrintDot SVGColor where
+  unqtDot AliceBlue            = unqtText "aliceblue"
+  unqtDot AntiqueWhite         = unqtText "antiquewhite"
+  unqtDot Aqua                 = unqtText "aqua"
+  unqtDot Aquamarine           = unqtText "aquamarine"
+  unqtDot Azure                = unqtText "azure"
+  unqtDot Beige                = unqtText "beige"
+  unqtDot Bisque               = unqtText "bisque"
+  unqtDot Black                = unqtText "black"
+  unqtDot BlanchedAlmond       = unqtText "blanchedalmond"
+  unqtDot Blue                 = unqtText "blue"
+  unqtDot BlueViolet           = unqtText "blueviolet"
+  unqtDot Brown                = unqtText "brown"
+  unqtDot Burlywood            = unqtText "burlywood"
+  unqtDot CadetBlue            = unqtText "cadetblue"
+  unqtDot Chartreuse           = unqtText "chartreuse"
+  unqtDot Chocolate            = unqtText "chocolate"
+  unqtDot Coral                = unqtText "coral"
+  unqtDot CornflowerBlue       = unqtText "cornflowerblue"
+  unqtDot Cornsilk             = unqtText "cornsilk"
+  unqtDot Crimson              = unqtText "crimson"
+  unqtDot Cyan                 = unqtText "cyan"
+  unqtDot DarkBlue             = unqtText "darkblue"
+  unqtDot DarkCyan             = unqtText "darkcyan"
+  unqtDot DarkGoldenrod        = unqtText "darkgoldenrod"
+  unqtDot DarkGray             = unqtText "darkgray"
+  unqtDot DarkGreen            = unqtText "darkgreen"
+  unqtDot DarkKhaki            = unqtText "darkkhaki"
+  unqtDot DarkMagenta          = unqtText "darkmagenta"
+  unqtDot DarkOliveGreen       = unqtText "darkolivegreen"
+  unqtDot DarkOrange           = unqtText "darkorange"
+  unqtDot DarkOrchid           = unqtText "darkorchid"
+  unqtDot DarkRed              = unqtText "darkred"
+  unqtDot DarkSalmon           = unqtText "darksalmon"
+  unqtDot DarkSeaGreen         = unqtText "darkseagreen"
+  unqtDot DarkSlateBlue        = unqtText "darkslateblue"
+  unqtDot DarkSlateGray        = unqtText "darkslategray"
+  unqtDot DarkTurquoise        = unqtText "darkturquoise"
+  unqtDot DarkViolet           = unqtText "darkviolet"
+  unqtDot DeepPink             = unqtText "deeppink"
+  unqtDot DeepSkyBlue          = unqtText "deepskyblue"
+  unqtDot DimGray              = unqtText "dimgray"
+  unqtDot DodgerBlue           = unqtText "dodgerblue"
+  unqtDot Firebrick            = unqtText "firebrick"
+  unqtDot FloralWhite          = unqtText "floralwhite"
+  unqtDot ForestGreen          = unqtText "forestgreen"
+  unqtDot Fuchsia              = unqtText "fuchsia"
+  unqtDot Gainsboro            = unqtText "gainsboro"
+  unqtDot GhostWhite           = unqtText "ghostwhite"
+  unqtDot Gold                 = unqtText "gold"
+  unqtDot Goldenrod            = unqtText "goldenrod"
+  unqtDot Gray                 = unqtText "gray"
+  unqtDot Green                = unqtText "green"
+  unqtDot GreenYellow          = unqtText "greenyellow"
+  unqtDot Honeydew             = unqtText "honeydew"
+  unqtDot HotPink              = unqtText "hotpink"
+  unqtDot IndianRed            = unqtText "indianred"
+  unqtDot Indigo               = unqtText "indigo"
+  unqtDot Ivory                = unqtText "ivory"
+  unqtDot Khaki                = unqtText "khaki"
+  unqtDot Lavender             = unqtText "lavender"
+  unqtDot LavenderBlush        = unqtText "lavenderblush"
+  unqtDot LawnGreen            = unqtText "lawngreen"
+  unqtDot LemonChiffon         = unqtText "lemonchiffon"
+  unqtDot LightBlue            = unqtText "lightblue"
+  unqtDot LightCoral           = unqtText "lightcoral"
+  unqtDot LightCyan            = unqtText "lightcyan"
+  unqtDot LightGoldenrodYellow = unqtText "lightgoldenrodyellow"
+  unqtDot LightGray            = unqtText "lightgray"
+  unqtDot LightGreen           = unqtText "lightgreen"
+  unqtDot LightPink            = unqtText "lightpink"
+  unqtDot LightSalmon          = unqtText "lightsalmon"
+  unqtDot LightSeaGreen        = unqtText "lightseagreen"
+  unqtDot LightSkyBlue         = unqtText "lightskyblue"
+  unqtDot LightSlateGray       = unqtText "lightslategray"
+  unqtDot LightSteelBlue       = unqtText "lightsteelblue"
+  unqtDot LightYellow          = unqtText "lightyellow"
+  unqtDot Lime                 = unqtText "lime"
+  unqtDot LimeGreen            = unqtText "limegreen"
+  unqtDot Linen                = unqtText "linen"
+  unqtDot Magenta              = unqtText "magenta"
+  unqtDot Maroon               = unqtText "maroon"
+  unqtDot MediumAquamarine     = unqtText "mediumaquamarine"
+  unqtDot MediumBlue           = unqtText "mediumblue"
+  unqtDot MediumOrchid         = unqtText "mediumorchid"
+  unqtDot MediumPurple         = unqtText "mediumpurple"
+  unqtDot MediumSeaGreen       = unqtText "mediumseagreen"
+  unqtDot MediumSlateBlue      = unqtText "mediumslateblue"
+  unqtDot MediumSpringGreen    = unqtText "mediumspringgreen"
+  unqtDot MediumTurquoise      = unqtText "mediumturquoise"
+  unqtDot MediumVioletRed      = unqtText "mediumvioletred"
+  unqtDot MidnightBlue         = unqtText "midnightblue"
+  unqtDot MintCream            = unqtText "mintcream"
+  unqtDot MistyRose            = unqtText "mistyrose"
+  unqtDot Moccasin             = unqtText "moccasin"
+  unqtDot NavajoWhite          = unqtText "navajowhite"
+  unqtDot Navy                 = unqtText "navy"
+  unqtDot OldLace              = unqtText "oldlace"
+  unqtDot Olive                = unqtText "olive"
+  unqtDot OliveDrab            = unqtText "olivedrab"
+  unqtDot Orange               = unqtText "orange"
+  unqtDot OrangeRed            = unqtText "orangered"
+  unqtDot Orchid               = unqtText "orchid"
+  unqtDot PaleGoldenrod        = unqtText "palegoldenrod"
+  unqtDot PaleGreen            = unqtText "palegreen"
+  unqtDot PaleTurquoise        = unqtText "paleturquoise"
+  unqtDot PaleVioletRed        = unqtText "palevioletred"
+  unqtDot PapayaWhip           = unqtText "papayawhip"
+  unqtDot PeachPuff            = unqtText "peachpuff"
+  unqtDot Peru                 = unqtText "peru"
+  unqtDot Pink                 = unqtText "pink"
+  unqtDot Plum                 = unqtText "plum"
+  unqtDot PowderBlue           = unqtText "powderblue"
+  unqtDot Purple               = unqtText "purple"
+  unqtDot Red                  = unqtText "red"
+  unqtDot RosyBrown            = unqtText "rosybrown"
+  unqtDot RoyalBlue            = unqtText "royalblue"
+  unqtDot SaddleBrown          = unqtText "saddlebrown"
+  unqtDot Salmon               = unqtText "salmon"
+  unqtDot SandyBrown           = unqtText "sandybrown"
+  unqtDot SeaGreen             = unqtText "seagreen"
+  unqtDot SeaShell             = unqtText "seashell"
+  unqtDot Sienna               = unqtText "sienna"
+  unqtDot Silver               = unqtText "silver"
+  unqtDot SkyBlue              = unqtText "skyblue"
+  unqtDot SlateBlue            = unqtText "slateblue"
+  unqtDot SlateGray            = unqtText "slategray"
+  unqtDot Snow                 = unqtText "snow"
+  unqtDot SpringGreen          = unqtText "springgreen"
+  unqtDot SteelBlue            = unqtText "steelblue"
+  unqtDot Tan                  = unqtText "tan"
+  unqtDot Teal                 = unqtText "teal"
+  unqtDot Thistle              = unqtText "thistle"
+  unqtDot Tomato               = unqtText "tomato"
+  unqtDot Turquoise            = unqtText "turquoise"
+  unqtDot Violet               = unqtText "violet"
+  unqtDot Wheat                = unqtText "wheat"
+  unqtDot White                = unqtText "white"
+  unqtDot WhiteSmoke           = unqtText "whitesmoke"
+  unqtDot Yellow               = unqtText "yellow"
+  unqtDot YellowGreen          = unqtText "yellowgreen"
+
+instance ParseDot SVGColor where
+  parseUnqt = stringValue [ ("aliceblue", AliceBlue)
+                          , ("antiquewhite", AntiqueWhite)
+                          , ("aqua", Aqua)
+                          , ("aquamarine", Aquamarine)
+                          , ("azure", Azure)
+                          , ("beige", Beige)
+                          , ("bisque", Bisque)
+                          , ("black", Black)
+                          , ("blanchedalmond", BlanchedAlmond)
+                          , ("blue", Blue)
+                          , ("blueviolet", BlueViolet)
+                          , ("brown", Brown)
+                          , ("burlywood", Burlywood)
+                          , ("cadetblue", CadetBlue)
+                          , ("chartreuse", Chartreuse)
+                          , ("chocolate", Chocolate)
+                          , ("coral", Coral)
+                          , ("cornflowerblue", CornflowerBlue)
+                          , ("cornsilk", Cornsilk)
+                          , ("crimson", Crimson)
+                          , ("cyan", Cyan)
+                          , ("darkblue", DarkBlue)
+                          , ("darkcyan", DarkCyan)
+                          , ("darkgoldenrod", DarkGoldenrod)
+                          , ("darkgray", DarkGray)
+                          , ("darkgrey", DarkGray)
+                          , ("darkgreen", DarkGreen)
+                          , ("darkkhaki", DarkKhaki)
+                          , ("darkmagenta", DarkMagenta)
+                          , ("darkolivegreen", DarkOliveGreen)
+                          , ("darkorange", DarkOrange)
+                          , ("darkorchid", DarkOrchid)
+                          , ("darkred", DarkRed)
+                          , ("darksalmon", DarkSalmon)
+                          , ("darkseagreen", DarkSeaGreen)
+                          , ("darkslateblue", DarkSlateBlue)
+                          , ("darkslategray", DarkSlateGray)
+                          , ("darkslategrey", DarkSlateGray)
+                          , ("darkturquoise", DarkTurquoise)
+                          , ("darkviolet", DarkViolet)
+                          , ("deeppink", DeepPink)
+                          , ("deepskyblue", DeepSkyBlue)
+                          , ("dimgray", DimGray)
+                          , ("dimgrey", DimGray)
+                          , ("dodgerblue", DodgerBlue)
+                          , ("firebrick", Firebrick)
+                          , ("floralwhite", FloralWhite)
+                          , ("forestgreen", ForestGreen)
+                          , ("fuchsia", Fuchsia)
+                          , ("gainsboro", Gainsboro)
+                          , ("ghostwhite", GhostWhite)
+                          , ("gold", Gold)
+                          , ("goldenrod", Goldenrod)
+                          , ("gray", Gray)
+                          , ("grey", Gray)
+                          , ("green", Green)
+                          , ("greenyellow", GreenYellow)
+                          , ("honeydew", Honeydew)
+                          , ("hotpink", HotPink)
+                          , ("indianred", IndianRed)
+                          , ("indigo", Indigo)
+                          , ("ivory", Ivory)
+                          , ("khaki", Khaki)
+                          , ("lavender", Lavender)
+                          , ("lavenderblush", LavenderBlush)
+                          , ("lawngreen", LawnGreen)
+                          , ("lemonchiffon", LemonChiffon)
+                          , ("lightblue", LightBlue)
+                          , ("lightcoral", LightCoral)
+                          , ("lightcyan", LightCyan)
+                          , ("lightgoldenrodyellow", LightGoldenrodYellow)
+                          , ("lightgray", LightGray)
+                          , ("lightgrey", LightGray)
+                          , ("lightgreen", LightGreen)
+                          , ("lightpink", LightPink)
+                          , ("lightsalmon", LightSalmon)
+                          , ("lightseagreen", LightSeaGreen)
+                          , ("lightskyblue", LightSkyBlue)
+                          , ("lightslategray", LightSlateGray)
+                          , ("lightslategrey", LightSlateGray)
+                          , ("lightsteelblue", LightSteelBlue)
+                          , ("lightyellow", LightYellow)
+                          , ("lime", Lime)
+                          , ("limegreen", LimeGreen)
+                          , ("linen", Linen)
+                          , ("magenta", Magenta)
+                          , ("maroon", Maroon)
+                          , ("mediumaquamarine", MediumAquamarine)
+                          , ("mediumblue", MediumBlue)
+                          , ("mediumorchid", MediumOrchid)
+                          , ("mediumpurple", MediumPurple)
+                          , ("mediumseagreen", MediumSeaGreen)
+                          , ("mediumslateblue", MediumSlateBlue)
+                          , ("mediumspringgreen", MediumSpringGreen)
+                          , ("mediumturquoise", MediumTurquoise)
+                          , ("mediumvioletred", MediumVioletRed)
+                          , ("midnightblue", MidnightBlue)
+                          , ("mintcream", MintCream)
+                          , ("mistyrose", MistyRose)
+                          , ("moccasin", Moccasin)
+                          , ("navajowhite", NavajoWhite)
+                          , ("navy", Navy)
+                          , ("oldlace", OldLace)
+                          , ("olive", Olive)
+                          , ("olivedrab", OliveDrab)
+                          , ("orange", Orange)
+                          , ("orangered", OrangeRed)
+                          , ("orchid", Orchid)
+                          , ("palegoldenrod", PaleGoldenrod)
+                          , ("palegreen", PaleGreen)
+                          , ("paleturquoise", PaleTurquoise)
+                          , ("palevioletred", PaleVioletRed)
+                          , ("papayawhip", PapayaWhip)
+                          , ("peachpuff", PeachPuff)
+                          , ("peru", Peru)
+                          , ("pink", Pink)
+                          , ("plum", Plum)
+                          , ("powderblue", PowderBlue)
+                          , ("purple", Purple)
+                          , ("red", Red)
+                          , ("rosybrown", RosyBrown)
+                          , ("royalblue", RoyalBlue)
+                          , ("saddlebrown", SaddleBrown)
+                          , ("salmon", Salmon)
+                          , ("sandybrown", SandyBrown)
+                          , ("seagreen", SeaGreen)
+                          , ("seashell", SeaShell)
+                          , ("sienna", Sienna)
+                          , ("silver", Silver)
+                          , ("skyblue", SkyBlue)
+                          , ("slateblue", SlateBlue)
+                          , ("slategray", SlateGray)
+                          , ("slategrey", SlateGray)
+                          , ("snow", Snow)
+                          , ("springgreen", SpringGreen)
+                          , ("steelblue", SteelBlue)
+                          , ("tan", Tan)
+                          , ("teal", Teal)
+                          , ("thistle", Thistle)
+                          , ("tomato", Tomato)
+                          , ("turquoise", Turquoise)
+                          , ("violet", Violet)
+                          , ("wheat", Wheat)
+                          , ("white", White)
+                          , ("whitesmoke", WhiteSmoke)
+                          , ("yellow", Yellow)
+                          , ("yellowgreen", YellowGreen)
+                          ]
+
+-- | Convert an 'SVGColor' to its equivalent 'Colour' value.
+svgColour                      :: SVGColor -> Colour Double
+svgColour AliceBlue            = sRGB24 240 248 255
+svgColour AntiqueWhite         = sRGB24 250 235 215
+svgColour Aqua                 = sRGB24 0   255 255
+svgColour Aquamarine           = sRGB24 127 255 212
+svgColour Azure                = sRGB24 240 255 255
+svgColour Beige                = sRGB24 245 245 220
+svgColour Bisque               = sRGB24 255 228 196
+svgColour Black                = sRGB24 0   0   0
+svgColour BlanchedAlmond       = sRGB24 255 235 205
+svgColour Blue                 = sRGB24 0   0   255
+svgColour BlueViolet           = sRGB24 138 43  226
+svgColour Brown                = sRGB24 165 42  42
+svgColour Burlywood            = sRGB24 222 184 135
+svgColour CadetBlue            = sRGB24 95  158 160
+svgColour Chartreuse           = sRGB24 127 255 0
+svgColour Chocolate            = sRGB24 210 105 30
+svgColour Coral                = sRGB24 255 127 80
+svgColour CornflowerBlue       = sRGB24 100 149 237
+svgColour Cornsilk             = sRGB24 255 248 220
+svgColour Crimson              = sRGB24 220 20  60
+svgColour Cyan                 = sRGB24 0   255 255
+svgColour DarkBlue             = sRGB24 0   0   139
+svgColour DarkCyan             = sRGB24 0   139 139
+svgColour DarkGoldenrod        = sRGB24 184 134 11
+svgColour DarkGray             = sRGB24 169 169 169
+svgColour DarkGreen            = sRGB24 0   100 0
+svgColour DarkKhaki            = sRGB24 189 183 107
+svgColour DarkMagenta          = sRGB24 139 0   139
+svgColour DarkOliveGreen       = sRGB24 85  107 47
+svgColour DarkOrange           = sRGB24 255 140 0
+svgColour DarkOrchid           = sRGB24 153 50  204
+svgColour DarkRed              = sRGB24 139 0   0
+svgColour DarkSalmon           = sRGB24 233 150 122
+svgColour DarkSeaGreen         = sRGB24 143 188 143
+svgColour DarkSlateBlue        = sRGB24 72  61  139
+svgColour DarkSlateGray        = sRGB24 47  79  79
+svgColour DarkTurquoise        = sRGB24 0   206 209
+svgColour DarkViolet           = sRGB24 148 0   211
+svgColour DeepPink             = sRGB24 255 20  147
+svgColour DeepSkyBlue          = sRGB24 0   191 255
+svgColour DimGray              = sRGB24 105 105 105
+svgColour DodgerBlue           = sRGB24 30  144 255
+svgColour Firebrick            = sRGB24 178 34  34
+svgColour FloralWhite          = sRGB24 255 250 240
+svgColour ForestGreen          = sRGB24 34  139 34
+svgColour Fuchsia              = sRGB24 255 0   255
+svgColour Gainsboro            = sRGB24 220 220 220
+svgColour GhostWhite           = sRGB24 248 248 255
+svgColour Gold                 = sRGB24 255 215 0
+svgColour Goldenrod            = sRGB24 218 165 32
+svgColour Gray                 = sRGB24 128 128 128
+svgColour Green                = sRGB24 0   128 0
+svgColour GreenYellow          = sRGB24 173 255 47
+svgColour Honeydew             = sRGB24 240 255 240
+svgColour HotPink              = sRGB24 255 105 180
+svgColour IndianRed            = sRGB24 205 92  92
+svgColour Indigo               = sRGB24 75  0   130
+svgColour Ivory                = sRGB24 255 255 240
+svgColour Khaki                = sRGB24 240 230 140
+svgColour Lavender             = sRGB24 230 230 250
+svgColour LavenderBlush        = sRGB24 255 240 245
+svgColour LawnGreen            = sRGB24 124 252 0
+svgColour LemonChiffon         = sRGB24 255 250 205
+svgColour LightBlue            = sRGB24 173 216 230
+svgColour LightCoral           = sRGB24 240 128 128
+svgColour LightCyan            = sRGB24 224 255 255
+svgColour LightGoldenrodYellow = sRGB24 250 250 210
+svgColour LightGray            = sRGB24 211 211 211
+svgColour LightGreen           = sRGB24 144 238 144
+svgColour LightPink            = sRGB24 255 182 193
+svgColour LightSalmon          = sRGB24 255 160 122
+svgColour LightSeaGreen        = sRGB24 32  178 170
+svgColour LightSkyBlue         = sRGB24 135 206 250
+svgColour LightSlateGray       = sRGB24 119 136 153
+svgColour LightSteelBlue       = sRGB24 176 196 222
+svgColour LightYellow          = sRGB24 255 255 224
+svgColour Lime                 = sRGB24 0   255 0
+svgColour LimeGreen            = sRGB24 50  205 50
+svgColour Linen                = sRGB24 250 240 230
+svgColour Magenta              = sRGB24 255 0   255
+svgColour Maroon               = sRGB24 128 0   0
+svgColour MediumAquamarine     = sRGB24 102 205 170
+svgColour MediumBlue           = sRGB24 0   0   205
+svgColour MediumOrchid         = sRGB24 186 85  211
+svgColour MediumPurple         = sRGB24 147 112 219
+svgColour MediumSeaGreen       = sRGB24 60  179 113
+svgColour MediumSlateBlue      = sRGB24 123 104 238
+svgColour MediumSpringGreen    = sRGB24 0   250 154
+svgColour MediumTurquoise      = sRGB24 72  209 204
+svgColour MediumVioletRed      = sRGB24 199 21  133
+svgColour MidnightBlue         = sRGB24 25  25  112
+svgColour MintCream            = sRGB24 245 255 250
+svgColour MistyRose            = sRGB24 255 228 225
+svgColour Moccasin             = sRGB24 255 228 181
+svgColour NavajoWhite          = sRGB24 255 222 173
+svgColour Navy                 = sRGB24 0   0   128
+svgColour OldLace              = sRGB24 253 245 230
+svgColour Olive                = sRGB24 128 128 0
+svgColour OliveDrab            = sRGB24 107 142 35
+svgColour Orange               = sRGB24 255 165 0
+svgColour OrangeRed            = sRGB24 255 69  0
+svgColour Orchid               = sRGB24 218 112 214
+svgColour PaleGoldenrod        = sRGB24 238 232 170
+svgColour PaleGreen            = sRGB24 152 251 152
+svgColour PaleTurquoise        = sRGB24 175 238 238
+svgColour PaleVioletRed        = sRGB24 219 112 147
+svgColour PapayaWhip           = sRGB24 255 239 213
+svgColour PeachPuff            = sRGB24 255 218 185
+svgColour Peru                 = sRGB24 205 133 63
+svgColour Pink                 = sRGB24 255 192 203
+svgColour Plum                 = sRGB24 221 160 221
+svgColour PowderBlue           = sRGB24 176 224 230
+svgColour Purple               = sRGB24 128 0   128
+svgColour Red                  = sRGB24 255 0   0
+svgColour RosyBrown            = sRGB24 188 143 143
+svgColour RoyalBlue            = sRGB24 65  105 225
+svgColour SaddleBrown          = sRGB24 139 69  19
+svgColour Salmon               = sRGB24 250 128 114
+svgColour SandyBrown           = sRGB24 244 164 96
+svgColour SeaGreen             = sRGB24 46  139 87
+svgColour SeaShell             = sRGB24 255 245 238
+svgColour Sienna               = sRGB24 160 82  45
+svgColour Silver               = sRGB24 192 192 192
+svgColour SkyBlue              = sRGB24 135 206 235
+svgColour SlateBlue            = sRGB24 106 90  205
+svgColour SlateGray            = sRGB24 112 128 144
+svgColour Snow                 = sRGB24 255 250 250
+svgColour SpringGreen          = sRGB24 0   255 127
+svgColour SteelBlue            = sRGB24 70  130 180
+svgColour Tan                  = sRGB24 210 180 140
+svgColour Teal                 = sRGB24 0   128 128
+svgColour Thistle              = sRGB24 216 191 216
+svgColour Tomato               = sRGB24 255 99  71
+svgColour Turquoise            = sRGB24 64  224 208
+svgColour Violet               = sRGB24 238 130 238
+svgColour Wheat                = sRGB24 245 222 179
+svgColour White                = sRGB24 255 255 255
+svgColour WhiteSmoke           = sRGB24 245 245 245
+svgColour Yellow               = sRGB24 255 255 0
+svgColour YellowGreen          = sRGB24 154 205 50
diff --git a/Data/GraphViz/Attributes/Colors/X11.hs b/Data/GraphViz/Attributes/Colors/X11.hs
new file mode 100644
--- /dev/null
+++ b/Data/GraphViz/Attributes/Colors/X11.hs
@@ -0,0 +1,2354 @@
+{-# LANGUAGE OverloadedStrings #-}
+
+{- |
+   Module      : Data.GraphViz.Attributes.Colors.X11
+   Description : Specification of X11 colors.
+   Copyright   : (c) Ivan Lazar Miljenovic
+   License     : 3-Clause BSD-style
+   Maintainer  : Ivan.Miljenovic@gmail.com
+
+   Graphviz's definition of X11 colors differs from the \"normal\"
+   list installed on many systems at @/usr/share/X11/rgb.txt@.  For
+   example, @Crimson@ is not a usual X11 color.
+
+   Furthermore, all @Gray*@ colors are duplicated with @Grey*@ names.
+   To simplify this, these duplicates have been removed but /all/
+   'X11Color's with \"@Gray@\" (whether they have the duplicate
+   spelling or not) in their name are also parseable as if they were
+   spelt with \"@grey@\".
+
+   The complete list of X11 colors can be found at
+   <http://www.graphviz.org/doc/info/colors.html#x11>.
+
+ -}
+module Data.GraphViz.Attributes.Colors.X11
+    ( X11Color(..)
+    , x11Colour
+    ) where
+
+import Data.GraphViz.Parsing
+import Data.GraphViz.Printing
+
+import Data.Colour( AlphaColour, opaque, transparent)
+import Data.Colour.SRGB(sRGB24)
+
+-- -----------------------------------------------------------------------------
+
+-- | The X11 colors that Graphviz uses.  Note that these are slightly
+--   different from the \"normal\" X11 colors used (e.g. the inclusion
+--   of @Crimson@).  Graphviz's list of colors also duplicated almost
+--   all @Gray@ colors with @Grey@ ones; parsing of an 'X11Color'
+--   which is specified using \"grey\" will succeed, even for those
+--   that don't have the duplicate spelling (e.g. @DarkSlateGray1@).
+data X11Color = AliceBlue
+              | AntiqueWhite
+              | AntiqueWhite1
+              | AntiqueWhite2
+              | AntiqueWhite3
+              | AntiqueWhite4
+              | Aquamarine
+              | Aquamarine1
+              | Aquamarine2
+              | Aquamarine3
+              | Aquamarine4
+              | Azure
+              | Azure1
+              | Azure2
+              | Azure3
+              | Azure4
+              | Beige
+              | Bisque
+              | Bisque1
+              | Bisque2
+              | Bisque3
+              | Bisque4
+              | Black
+              | BlanchedAlmond
+              | Blue
+              | Blue1
+              | Blue2
+              | Blue3
+              | Blue4
+              | BlueViolet
+              | Brown
+              | Brown1
+              | Brown2
+              | Brown3
+              | Brown4
+              | Burlywood
+              | Burlywood1
+              | Burlywood2
+              | Burlywood3
+              | Burlywood4
+              | CadetBlue
+              | CadetBlue1
+              | CadetBlue2
+              | CadetBlue3
+              | CadetBlue4
+              | Chartreuse
+              | Chartreuse1
+              | Chartreuse2
+              | Chartreuse3
+              | Chartreuse4
+              | Chocolate
+              | Chocolate1
+              | Chocolate2
+              | Chocolate3
+              | Chocolate4
+              | Coral
+              | Coral1
+              | Coral2
+              | Coral3
+              | Coral4
+              | CornFlowerBlue
+              | CornSilk
+              | CornSilk1
+              | CornSilk2
+              | CornSilk3
+              | CornSilk4
+              | Crimson
+              | Cyan
+              | Cyan1
+              | Cyan2
+              | Cyan3
+              | Cyan4
+              | DarkGoldenrod
+              | DarkGoldenrod1
+              | DarkGoldenrod2
+              | DarkGoldenrod3
+              | DarkGoldenrod4
+              | DarkGreen
+              | Darkkhaki
+              | DarkOliveGreen
+              | DarkOliveGreen1
+              | DarkOliveGreen2
+              | DarkOliveGreen3
+              | DarkOliveGreen4
+              | DarkOrange
+              | DarkOrange1
+              | DarkOrange2
+              | DarkOrange3
+              | DarkOrange4
+              | DarkOrchid
+              | DarkOrchid1
+              | DarkOrchid2
+              | DarkOrchid3
+              | DarkOrchid4
+              | DarkSalmon
+              | DarkSeaGreen
+              | DarkSeaGreen1
+              | DarkSeaGreen2
+              | DarkSeaGreen3
+              | DarkSeaGreen4
+              | DarkSlateBlue
+              | DarkSlateGray
+              | DarkSlateGray1
+              | DarkSlateGray2
+              | DarkSlateGray3
+              | DarkSlateGray4
+              | DarkTurquoise
+              | DarkViolet
+              | DeepPink
+              | DeepPink1
+              | DeepPink2
+              | DeepPink3
+              | DeepPink4
+              | DeepSkyBlue
+              | DeepSkyBlue1
+              | DeepSkyBlue2
+              | DeepSkyBlue3
+              | DeepSkyBlue4
+              | DimGray
+              | DodgerBlue
+              | DodgerBlue1
+              | DodgerBlue2
+              | DodgerBlue3
+              | DodgerBlue4
+              | Firebrick
+              | Firebrick1
+              | Firebrick2
+              | Firebrick3
+              | Firebrick4
+              | FloralWhite
+              | ForestGreen
+              | Gainsboro
+              | GhostWhite
+              | Gold
+              | Gold1
+              | Gold2
+              | Gold3
+              | Gold4
+              | Goldenrod
+              | Goldenrod1
+              | Goldenrod2
+              | Goldenrod3
+              | Goldenrod4
+              | Gray
+              | Gray0
+              | Gray1
+              | Gray2
+              | Gray3
+              | Gray4
+              | Gray5
+              | Gray6
+              | Gray7
+              | Gray8
+              | Gray9
+              | Gray10
+              | Gray11
+              | Gray12
+              | Gray13
+              | Gray14
+              | Gray15
+              | Gray16
+              | Gray17
+              | Gray18
+              | Gray19
+              | Gray20
+              | Gray21
+              | Gray22
+              | Gray23
+              | Gray24
+              | Gray25
+              | Gray26
+              | Gray27
+              | Gray28
+              | Gray29
+              | Gray30
+              | Gray31
+              | Gray32
+              | Gray33
+              | Gray34
+              | Gray35
+              | Gray36
+              | Gray37
+              | Gray38
+              | Gray39
+              | Gray40
+              | Gray41
+              | Gray42
+              | Gray43
+              | Gray44
+              | Gray45
+              | Gray46
+              | Gray47
+              | Gray48
+              | Gray49
+              | Gray50
+              | Gray51
+              | Gray52
+              | Gray53
+              | Gray54
+              | Gray55
+              | Gray56
+              | Gray57
+              | Gray58
+              | Gray59
+              | Gray60
+              | Gray61
+              | Gray62
+              | Gray63
+              | Gray64
+              | Gray65
+              | Gray66
+              | Gray67
+              | Gray68
+              | Gray69
+              | Gray70
+              | Gray71
+              | Gray72
+              | Gray73
+              | Gray74
+              | Gray75
+              | Gray76
+              | Gray77
+              | Gray78
+              | Gray79
+              | Gray80
+              | Gray81
+              | Gray82
+              | Gray83
+              | Gray84
+              | Gray85
+              | Gray86
+              | Gray87
+              | Gray88
+              | Gray89
+              | Gray90
+              | Gray91
+              | Gray92
+              | Gray93
+              | Gray94
+              | Gray95
+              | Gray96
+              | Gray97
+              | Gray98
+              | Gray99
+              | Gray100
+              | Green
+              | Green1
+              | Green2
+              | Green3
+              | Green4
+              | GreenYellow
+              | HoneyDew
+              | HoneyDew1
+              | HoneyDew2
+              | HoneyDew3
+              | HoneyDew4
+              | HotPink
+              | HotPink1
+              | HotPink2
+              | HotPink3
+              | HotPink4
+              | IndianRed
+              | IndianRed1
+              | IndianRed2
+              | IndianRed3
+              | IndianRed4
+              | Indigo
+              | Ivory
+              | Ivory1
+              | Ivory2
+              | Ivory3
+              | Ivory4
+              | Khaki
+              | Khaki1
+              | Khaki2
+              | Khaki3
+              | Khaki4
+              | Lavender
+              | LavenderBlush
+              | LavenderBlush1
+              | LavenderBlush2
+              | LavenderBlush3
+              | LavenderBlush4
+              | LawnGreen
+              | LemonChiffon
+              | LemonChiffon1
+              | LemonChiffon2
+              | LemonChiffon3
+              | LemonChiffon4
+              | LightBlue
+              | LightBlue1
+              | LightBlue2
+              | LightBlue3
+              | LightBlue4
+              | LightCoral
+              | LightCyan
+              | LightCyan1
+              | LightCyan2
+              | LightCyan3
+              | LightCyan4
+              | LightGoldenrod
+              | LightGoldenrod1
+              | LightGoldenrod2
+              | LightGoldenrod3
+              | LightGoldenrod4
+              | LightGoldenrodYellow
+              | LightGray
+              | LightPink
+              | LightPink1
+              | LightPink2
+              | LightPink3
+              | LightPink4
+              | LightSalmon
+              | LightSalmon1
+              | LightSalmon2
+              | LightSalmon3
+              | LightSalmon4
+              | LightSeaGreen
+              | LightSkyBlue
+              | LightSkyBlue1
+              | LightSkyBlue2
+              | LightSkyBlue3
+              | LightSkyBlue4
+              | LightSlateBlue
+              | LightSlateGray
+              | LightSteelBlue
+              | LightSteelBlue1
+              | LightSteelBlue2
+              | LightSteelBlue3
+              | LightSteelBlue4
+              | LightYellow
+              | LightYellow1
+              | LightYellow2
+              | LightYellow3
+              | LightYellow4
+              | LimeGreen
+              | Linen
+              | Magenta
+              | Magenta1
+              | Magenta2
+              | Magenta3
+              | Magenta4
+              | Maroon
+              | Maroon1
+              | Maroon2
+              | Maroon3
+              | Maroon4
+              | MediumAquamarine
+              | MediumBlue
+              | MediumOrchid
+              | MediumOrchid1
+              | MediumOrchid2
+              | MediumOrchid3
+              | MediumOrchid4
+              | MediumPurple
+              | MediumPurple1
+              | MediumPurple2
+              | MediumPurple3
+              | MediumPurple4
+              | MediumSeaGreen
+              | MediumSlateBlue
+              | MediumSpringGreen
+              | MediumTurquoise
+              | MediumVioletRed
+              | MidnightBlue
+              | MintCream
+              | MistyRose
+              | MistyRose1
+              | MistyRose2
+              | MistyRose3
+              | MistyRose4
+              | Moccasin
+              | NavajoWhite
+              | NavajoWhite1
+              | NavajoWhite2
+              | NavajoWhite3
+              | NavajoWhite4
+              | Navy
+              | NavyBlue
+              | OldLace
+              | OliveDrab
+              | OliveDrab1
+              | OliveDrab2
+              | OliveDrab3
+              | OliveDrab4
+              | Orange
+              | Orange1
+              | Orange2
+              | Orange3
+              | Orange4
+              | OrangeRed
+              | OrangeRed1
+              | OrangeRed2
+              | OrangeRed3
+              | OrangeRed4
+              | Orchid
+              | Orchid1
+              | Orchid2
+              | Orchid3
+              | Orchid4
+              | PaleGoldenrod
+              | PaleGreen
+              | PaleGreen1
+              | PaleGreen2
+              | PaleGreen3
+              | PaleGreen4
+              | PaleTurquoise
+              | PaleTurquoise1
+              | PaleTurquoise2
+              | PaleTurquoise3
+              | PaleTurquoise4
+              | PaleVioletRed
+              | PaleVioletRed1
+              | PaleVioletRed2
+              | PaleVioletRed3
+              | PaleVioletRed4
+              | PapayaWhip
+              | PeachPuff
+              | PeachPuff1
+              | PeachPuff2
+              | PeachPuff3
+              | PeachPuff4
+              | Peru
+              | Pink
+              | Pink1
+              | Pink2
+              | Pink3
+              | Pink4
+              | Plum
+              | Plum1
+              | Plum2
+              | Plum3
+              | Plum4
+              | PowderBlue
+              | Purple
+              | Purple1
+              | Purple2
+              | Purple3
+              | Purple4
+              | Red
+              | Red1
+              | Red2
+              | Red3
+              | Red4
+              | RosyBrown
+              | RosyBrown1
+              | RosyBrown2
+              | RosyBrown3
+              | RosyBrown4
+              | RoyalBlue
+              | RoyalBlue1
+              | RoyalBlue2
+              | RoyalBlue3
+              | RoyalBlue4
+              | SaddleBrown
+              | Salmon
+              | Salmon1
+              | Salmon2
+              | Salmon3
+              | Salmon4
+              | SandyBrown
+              | SeaGreen
+              | SeaGreen1
+              | SeaGreen2
+              | SeaGreen3
+              | SeaGreen4
+              | SeaShell
+              | SeaShell1
+              | SeaShell2
+              | SeaShell3
+              | SeaShell4
+              | Sienna
+              | Sienna1
+              | Sienna2
+              | Sienna3
+              | Sienna4
+              | SkyBlue
+              | SkyBlue1
+              | SkyBlue2
+              | SkyBlue3
+              | SkyBlue4
+              | SlateBlue
+              | SlateBlue1
+              | SlateBlue2
+              | SlateBlue3
+              | SlateBlue4
+              | SlateGray
+              | SlateGray1
+              | SlateGray2
+              | SlateGray3
+              | SlateGray4
+              | Snow
+              | Snow1
+              | Snow2
+              | Snow3
+              | Snow4
+              | SpringGreen
+              | SpringGreen1
+              | SpringGreen2
+              | SpringGreen3
+              | SpringGreen4
+              | SteelBlue
+              | SteelBlue1
+              | SteelBlue2
+              | SteelBlue3
+              | SteelBlue4
+              | Tan
+              | Tan1
+              | Tan2
+              | Tan3
+              | Tan4
+              | Thistle
+              | Thistle1
+              | Thistle2
+              | Thistle3
+              | Thistle4
+              | Tomato
+              | Tomato1
+              | Tomato2
+              | Tomato3
+              | Tomato4
+              | Transparent -- ^ Equivalent to setting @Style [SItem Invisible []]@.
+              | Turquoise
+              | Turquoise1
+              | Turquoise2
+              | Turquoise3
+              | Turquoise4
+              | Violet
+              | VioletRed
+              | VioletRed1
+              | VioletRed2
+              | VioletRed3
+              | VioletRed4
+              | Wheat
+              | Wheat1
+              | Wheat2
+              | Wheat3
+              | Wheat4
+              | White
+              | WhiteSmoke
+              | Yellow
+              | Yellow1
+              | Yellow2
+              | Yellow3
+              | Yellow4
+              | YellowGreen
+              deriving (Eq, Ord, Bounded, Enum, Show, Read)
+
+instance PrintDot X11Color where
+  unqtDot AliceBlue            = unqtText "aliceblue"
+  unqtDot AntiqueWhite         = unqtText "antiquewhite"
+  unqtDot AntiqueWhite1        = unqtText "antiquewhite1"
+  unqtDot AntiqueWhite2        = unqtText "antiquewhite2"
+  unqtDot AntiqueWhite3        = unqtText "antiquewhite3"
+  unqtDot AntiqueWhite4        = unqtText "antiquewhite4"
+  unqtDot Aquamarine           = unqtText "aquamarine"
+  unqtDot Aquamarine1          = unqtText "aquamarine1"
+  unqtDot Aquamarine2          = unqtText "aquamarine2"
+  unqtDot Aquamarine3          = unqtText "aquamarine3"
+  unqtDot Aquamarine4          = unqtText "aquamarine4"
+  unqtDot Azure                = unqtText "azure"
+  unqtDot Azure1               = unqtText "azure1"
+  unqtDot Azure2               = unqtText "azure2"
+  unqtDot Azure3               = unqtText "azure3"
+  unqtDot Azure4               = unqtText "azure4"
+  unqtDot Beige                = unqtText "beige"
+  unqtDot Bisque               = unqtText "bisque"
+  unqtDot Bisque1              = unqtText "bisque1"
+  unqtDot Bisque2              = unqtText "bisque2"
+  unqtDot Bisque3              = unqtText "bisque3"
+  unqtDot Bisque4              = unqtText "bisque4"
+  unqtDot Black                = unqtText "black"
+  unqtDot BlanchedAlmond       = unqtText "blanchedalmond"
+  unqtDot Blue                 = unqtText "blue"
+  unqtDot Blue1                = unqtText "blue1"
+  unqtDot Blue2                = unqtText "blue2"
+  unqtDot Blue3                = unqtText "blue3"
+  unqtDot Blue4                = unqtText "blue4"
+  unqtDot BlueViolet           = unqtText "blueviolet"
+  unqtDot Brown                = unqtText "brown"
+  unqtDot Brown1               = unqtText "brown1"
+  unqtDot Brown2               = unqtText "brown2"
+  unqtDot Brown3               = unqtText "brown3"
+  unqtDot Brown4               = unqtText "brown4"
+  unqtDot Burlywood            = unqtText "burlywood"
+  unqtDot Burlywood1           = unqtText "burlywood1"
+  unqtDot Burlywood2           = unqtText "burlywood2"
+  unqtDot Burlywood3           = unqtText "burlywood3"
+  unqtDot Burlywood4           = unqtText "burlywood4"
+  unqtDot CadetBlue            = unqtText "cadetblue"
+  unqtDot CadetBlue1           = unqtText "cadetblue1"
+  unqtDot CadetBlue2           = unqtText "cadetblue2"
+  unqtDot CadetBlue3           = unqtText "cadetblue3"
+  unqtDot CadetBlue4           = unqtText "cadetblue4"
+  unqtDot Chartreuse           = unqtText "chartreuse"
+  unqtDot Chartreuse1          = unqtText "chartreuse1"
+  unqtDot Chartreuse2          = unqtText "chartreuse2"
+  unqtDot Chartreuse3          = unqtText "chartreuse3"
+  unqtDot Chartreuse4          = unqtText "chartreuse4"
+  unqtDot Chocolate            = unqtText "chocolate"
+  unqtDot Chocolate1           = unqtText "chocolate1"
+  unqtDot Chocolate2           = unqtText "chocolate2"
+  unqtDot Chocolate3           = unqtText "chocolate3"
+  unqtDot Chocolate4           = unqtText "chocolate4"
+  unqtDot Coral                = unqtText "coral"
+  unqtDot Coral1               = unqtText "coral1"
+  unqtDot Coral2               = unqtText "coral2"
+  unqtDot Coral3               = unqtText "coral3"
+  unqtDot Coral4               = unqtText "coral4"
+  unqtDot CornFlowerBlue       = unqtText "cornflowerblue"
+  unqtDot CornSilk             = unqtText "cornsilk"
+  unqtDot CornSilk1            = unqtText "cornsilk1"
+  unqtDot CornSilk2            = unqtText "cornsilk2"
+  unqtDot CornSilk3            = unqtText "cornsilk3"
+  unqtDot CornSilk4            = unqtText "cornsilk4"
+  unqtDot Crimson              = unqtText "crimson"
+  unqtDot Cyan                 = unqtText "cyan"
+  unqtDot Cyan1                = unqtText "cyan1"
+  unqtDot Cyan2                = unqtText "cyan2"
+  unqtDot Cyan3                = unqtText "cyan3"
+  unqtDot Cyan4                = unqtText "cyan4"
+  unqtDot DarkGoldenrod        = unqtText "darkgoldenrod"
+  unqtDot DarkGoldenrod1       = unqtText "darkgoldenrod1"
+  unqtDot DarkGoldenrod2       = unqtText "darkgoldenrod2"
+  unqtDot DarkGoldenrod3       = unqtText "darkgoldenrod3"
+  unqtDot DarkGoldenrod4       = unqtText "darkgoldenrod4"
+  unqtDot DarkGreen            = unqtText "darkgreen"
+  unqtDot Darkkhaki            = unqtText "darkkhaki"
+  unqtDot DarkOliveGreen       = unqtText "darkolivegreen"
+  unqtDot DarkOliveGreen1      = unqtText "darkolivegreen1"
+  unqtDot DarkOliveGreen2      = unqtText "darkolivegreen2"
+  unqtDot DarkOliveGreen3      = unqtText "darkolivegreen3"
+  unqtDot DarkOliveGreen4      = unqtText "darkolivegreen4"
+  unqtDot DarkOrange           = unqtText "darkorange"
+  unqtDot DarkOrange1          = unqtText "darkorange1"
+  unqtDot DarkOrange2          = unqtText "darkorange2"
+  unqtDot DarkOrange3          = unqtText "darkorange3"
+  unqtDot DarkOrange4          = unqtText "darkorange4"
+  unqtDot DarkOrchid           = unqtText "darkorchid"
+  unqtDot DarkOrchid1          = unqtText "darkorchid1"
+  unqtDot DarkOrchid2          = unqtText "darkorchid2"
+  unqtDot DarkOrchid3          = unqtText "darkorchid3"
+  unqtDot DarkOrchid4          = unqtText "darkorchid4"
+  unqtDot DarkSalmon           = unqtText "darksalmon"
+  unqtDot DarkSeaGreen         = unqtText "darkseagreen"
+  unqtDot DarkSeaGreen1        = unqtText "darkseagreen1"
+  unqtDot DarkSeaGreen2        = unqtText "darkseagreen2"
+  unqtDot DarkSeaGreen3        = unqtText "darkseagreen3"
+  unqtDot DarkSeaGreen4        = unqtText "darkseagreen4"
+  unqtDot DarkSlateBlue        = unqtText "darkslateblue"
+  unqtDot DarkSlateGray        = unqtText "darkslategray"
+  unqtDot DarkSlateGray1       = unqtText "darkslategray1"
+  unqtDot DarkSlateGray2       = unqtText "darkslategray2"
+  unqtDot DarkSlateGray3       = unqtText "darkslategray3"
+  unqtDot DarkSlateGray4       = unqtText "darkslategray4"
+  unqtDot DarkTurquoise        = unqtText "darkturquoise"
+  unqtDot DarkViolet           = unqtText "darkviolet"
+  unqtDot DeepPink             = unqtText "deeppink"
+  unqtDot DeepPink1            = unqtText "deeppink1"
+  unqtDot DeepPink2            = unqtText "deeppink2"
+  unqtDot DeepPink3            = unqtText "deeppink3"
+  unqtDot DeepPink4            = unqtText "deeppink4"
+  unqtDot DeepSkyBlue          = unqtText "deepskyblue"
+  unqtDot DeepSkyBlue1         = unqtText "deepskyblue1"
+  unqtDot DeepSkyBlue2         = unqtText "deepskyblue2"
+  unqtDot DeepSkyBlue3         = unqtText "deepskyblue3"
+  unqtDot DeepSkyBlue4         = unqtText "deepskyblue4"
+  unqtDot DimGray              = unqtText "dimgray"
+  unqtDot DodgerBlue           = unqtText "dodgerblue"
+  unqtDot DodgerBlue1          = unqtText "dodgerblue1"
+  unqtDot DodgerBlue2          = unqtText "dodgerblue2"
+  unqtDot DodgerBlue3          = unqtText "dodgerblue3"
+  unqtDot DodgerBlue4          = unqtText "dodgerblue4"
+  unqtDot Firebrick            = unqtText "firebrick"
+  unqtDot Firebrick1           = unqtText "firebrick1"
+  unqtDot Firebrick2           = unqtText "firebrick2"
+  unqtDot Firebrick3           = unqtText "firebrick3"
+  unqtDot Firebrick4           = unqtText "firebrick4"
+  unqtDot FloralWhite          = unqtText "floralwhite"
+  unqtDot ForestGreen          = unqtText "forestgreen"
+  unqtDot Gainsboro            = unqtText "gainsboro"
+  unqtDot GhostWhite           = unqtText "ghostwhite"
+  unqtDot Gold                 = unqtText "gold"
+  unqtDot Gold1                = unqtText "gold1"
+  unqtDot Gold2                = unqtText "gold2"
+  unqtDot Gold3                = unqtText "gold3"
+  unqtDot Gold4                = unqtText "gold4"
+  unqtDot Goldenrod            = unqtText "goldenrod"
+  unqtDot Goldenrod1           = unqtText "goldenrod1"
+  unqtDot Goldenrod2           = unqtText "goldenrod2"
+  unqtDot Goldenrod3           = unqtText "goldenrod3"
+  unqtDot Goldenrod4           = unqtText "goldenrod4"
+  unqtDot Gray                 = unqtText "gray"
+  unqtDot Gray0                = unqtText "gray0"
+  unqtDot Gray1                = unqtText "gray1"
+  unqtDot Gray2                = unqtText "gray2"
+  unqtDot Gray3                = unqtText "gray3"
+  unqtDot Gray4                = unqtText "gray4"
+  unqtDot Gray5                = unqtText "gray5"
+  unqtDot Gray6                = unqtText "gray6"
+  unqtDot Gray7                = unqtText "gray7"
+  unqtDot Gray8                = unqtText "gray8"
+  unqtDot Gray9                = unqtText "gray9"
+  unqtDot Gray10               = unqtText "gray10"
+  unqtDot Gray11               = unqtText "gray11"
+  unqtDot Gray12               = unqtText "gray12"
+  unqtDot Gray13               = unqtText "gray13"
+  unqtDot Gray14               = unqtText "gray14"
+  unqtDot Gray15               = unqtText "gray15"
+  unqtDot Gray16               = unqtText "gray16"
+  unqtDot Gray17               = unqtText "gray17"
+  unqtDot Gray18               = unqtText "gray18"
+  unqtDot Gray19               = unqtText "gray19"
+  unqtDot Gray20               = unqtText "gray20"
+  unqtDot Gray21               = unqtText "gray21"
+  unqtDot Gray22               = unqtText "gray22"
+  unqtDot Gray23               = unqtText "gray23"
+  unqtDot Gray24               = unqtText "gray24"
+  unqtDot Gray25               = unqtText "gray25"
+  unqtDot Gray26               = unqtText "gray26"
+  unqtDot Gray27               = unqtText "gray27"
+  unqtDot Gray28               = unqtText "gray28"
+  unqtDot Gray29               = unqtText "gray29"
+  unqtDot Gray30               = unqtText "gray30"
+  unqtDot Gray31               = unqtText "gray31"
+  unqtDot Gray32               = unqtText "gray32"
+  unqtDot Gray33               = unqtText "gray33"
+  unqtDot Gray34               = unqtText "gray34"
+  unqtDot Gray35               = unqtText "gray35"
+  unqtDot Gray36               = unqtText "gray36"
+  unqtDot Gray37               = unqtText "gray37"
+  unqtDot Gray38               = unqtText "gray38"
+  unqtDot Gray39               = unqtText "gray39"
+  unqtDot Gray40               = unqtText "gray40"
+  unqtDot Gray41               = unqtText "gray41"
+  unqtDot Gray42               = unqtText "gray42"
+  unqtDot Gray43               = unqtText "gray43"
+  unqtDot Gray44               = unqtText "gray44"
+  unqtDot Gray45               = unqtText "gray45"
+  unqtDot Gray46               = unqtText "gray46"
+  unqtDot Gray47               = unqtText "gray47"
+  unqtDot Gray48               = unqtText "gray48"
+  unqtDot Gray49               = unqtText "gray49"
+  unqtDot Gray50               = unqtText "gray50"
+  unqtDot Gray51               = unqtText "gray51"
+  unqtDot Gray52               = unqtText "gray52"
+  unqtDot Gray53               = unqtText "gray53"
+  unqtDot Gray54               = unqtText "gray54"
+  unqtDot Gray55               = unqtText "gray55"
+  unqtDot Gray56               = unqtText "gray56"
+  unqtDot Gray57               = unqtText "gray57"
+  unqtDot Gray58               = unqtText "gray58"
+  unqtDot Gray59               = unqtText "gray59"
+  unqtDot Gray60               = unqtText "gray60"
+  unqtDot Gray61               = unqtText "gray61"
+  unqtDot Gray62               = unqtText "gray62"
+  unqtDot Gray63               = unqtText "gray63"
+  unqtDot Gray64               = unqtText "gray64"
+  unqtDot Gray65               = unqtText "gray65"
+  unqtDot Gray66               = unqtText "gray66"
+  unqtDot Gray67               = unqtText "gray67"
+  unqtDot Gray68               = unqtText "gray68"
+  unqtDot Gray69               = unqtText "gray69"
+  unqtDot Gray70               = unqtText "gray70"
+  unqtDot Gray71               = unqtText "gray71"
+  unqtDot Gray72               = unqtText "gray72"
+  unqtDot Gray73               = unqtText "gray73"
+  unqtDot Gray74               = unqtText "gray74"
+  unqtDot Gray75               = unqtText "gray75"
+  unqtDot Gray76               = unqtText "gray76"
+  unqtDot Gray77               = unqtText "gray77"
+  unqtDot Gray78               = unqtText "gray78"
+  unqtDot Gray79               = unqtText "gray79"
+  unqtDot Gray80               = unqtText "gray80"
+  unqtDot Gray81               = unqtText "gray81"
+  unqtDot Gray82               = unqtText "gray82"
+  unqtDot Gray83               = unqtText "gray83"
+  unqtDot Gray84               = unqtText "gray84"
+  unqtDot Gray85               = unqtText "gray85"
+  unqtDot Gray86               = unqtText "gray86"
+  unqtDot Gray87               = unqtText "gray87"
+  unqtDot Gray88               = unqtText "gray88"
+  unqtDot Gray89               = unqtText "gray89"
+  unqtDot Gray90               = unqtText "gray90"
+  unqtDot Gray91               = unqtText "gray91"
+  unqtDot Gray92               = unqtText "gray92"
+  unqtDot Gray93               = unqtText "gray93"
+  unqtDot Gray94               = unqtText "gray94"
+  unqtDot Gray95               = unqtText "gray95"
+  unqtDot Gray96               = unqtText "gray96"
+  unqtDot Gray97               = unqtText "gray97"
+  unqtDot Gray98               = unqtText "gray98"
+  unqtDot Gray99               = unqtText "gray99"
+  unqtDot Gray100              = unqtText "gray100"
+  unqtDot Green                = unqtText "green"
+  unqtDot Green1               = unqtText "green1"
+  unqtDot Green2               = unqtText "green2"
+  unqtDot Green3               = unqtText "green3"
+  unqtDot Green4               = unqtText "green4"
+  unqtDot GreenYellow          = unqtText "greenyellow"
+  unqtDot HoneyDew             = unqtText "honeydew"
+  unqtDot HoneyDew1            = unqtText "honeydew1"
+  unqtDot HoneyDew2            = unqtText "honeydew2"
+  unqtDot HoneyDew3            = unqtText "honeydew3"
+  unqtDot HoneyDew4            = unqtText "honeydew4"
+  unqtDot HotPink              = unqtText "hotpink"
+  unqtDot HotPink1             = unqtText "hotpink1"
+  unqtDot HotPink2             = unqtText "hotpink2"
+  unqtDot HotPink3             = unqtText "hotpink3"
+  unqtDot HotPink4             = unqtText "hotpink4"
+  unqtDot IndianRed            = unqtText "indianred"
+  unqtDot IndianRed1           = unqtText "indianred1"
+  unqtDot IndianRed2           = unqtText "indianred2"
+  unqtDot IndianRed3           = unqtText "indianred3"
+  unqtDot IndianRed4           = unqtText "indianred4"
+  unqtDot Indigo               = unqtText "indigo"
+  unqtDot Ivory                = unqtText "ivory"
+  unqtDot Ivory1               = unqtText "ivory1"
+  unqtDot Ivory2               = unqtText "ivory2"
+  unqtDot Ivory3               = unqtText "ivory3"
+  unqtDot Ivory4               = unqtText "ivory4"
+  unqtDot Khaki                = unqtText "khaki"
+  unqtDot Khaki1               = unqtText "khaki1"
+  unqtDot Khaki2               = unqtText "khaki2"
+  unqtDot Khaki3               = unqtText "khaki3"
+  unqtDot Khaki4               = unqtText "khaki4"
+  unqtDot Lavender             = unqtText "lavender"
+  unqtDot LavenderBlush        = unqtText "lavenderblush"
+  unqtDot LavenderBlush1       = unqtText "lavenderblush1"
+  unqtDot LavenderBlush2       = unqtText "lavenderblush2"
+  unqtDot LavenderBlush3       = unqtText "lavenderblush3"
+  unqtDot LavenderBlush4       = unqtText "lavenderblush4"
+  unqtDot LawnGreen            = unqtText "lawngreen"
+  unqtDot LemonChiffon         = unqtText "lemonchiffon"
+  unqtDot LemonChiffon1        = unqtText "lemonchiffon1"
+  unqtDot LemonChiffon2        = unqtText "lemonchiffon2"
+  unqtDot LemonChiffon3        = unqtText "lemonchiffon3"
+  unqtDot LemonChiffon4        = unqtText "lemonchiffon4"
+  unqtDot LightBlue            = unqtText "lightblue"
+  unqtDot LightBlue1           = unqtText "lightblue1"
+  unqtDot LightBlue2           = unqtText "lightblue2"
+  unqtDot LightBlue3           = unqtText "lightblue3"
+  unqtDot LightBlue4           = unqtText "lightblue4"
+  unqtDot LightCoral           = unqtText "lightcoral"
+  unqtDot LightCyan            = unqtText "lightcyan"
+  unqtDot LightCyan1           = unqtText "lightcyan1"
+  unqtDot LightCyan2           = unqtText "lightcyan2"
+  unqtDot LightCyan3           = unqtText "lightcyan3"
+  unqtDot LightCyan4           = unqtText "lightcyan4"
+  unqtDot LightGoldenrod       = unqtText "lightgoldenrod"
+  unqtDot LightGoldenrod1      = unqtText "lightgoldenrod1"
+  unqtDot LightGoldenrod2      = unqtText "lightgoldenrod2"
+  unqtDot LightGoldenrod3      = unqtText "lightgoldenrod3"
+  unqtDot LightGoldenrod4      = unqtText "lightgoldenrod4"
+  unqtDot LightGoldenrodYellow = unqtText "lightgoldenrodyellow"
+  unqtDot LightGray            = unqtText "lightgray"
+  unqtDot LightPink            = unqtText "lightpink"
+  unqtDot LightPink1           = unqtText "lightpink1"
+  unqtDot LightPink2           = unqtText "lightpink2"
+  unqtDot LightPink3           = unqtText "lightpink3"
+  unqtDot LightPink4           = unqtText "lightpink4"
+  unqtDot LightSalmon          = unqtText "lightsalmon"
+  unqtDot LightSalmon1         = unqtText "lightsalmon1"
+  unqtDot LightSalmon2         = unqtText "lightsalmon2"
+  unqtDot LightSalmon3         = unqtText "lightsalmon3"
+  unqtDot LightSalmon4         = unqtText "lightsalmon4"
+  unqtDot LightSeaGreen        = unqtText "lightseagreen"
+  unqtDot LightSkyBlue         = unqtText "lightskyblue"
+  unqtDot LightSkyBlue1        = unqtText "lightskyblue1"
+  unqtDot LightSkyBlue2        = unqtText "lightskyblue2"
+  unqtDot LightSkyBlue3        = unqtText "lightskyblue3"
+  unqtDot LightSkyBlue4        = unqtText "lightskyblue4"
+  unqtDot LightSlateBlue       = unqtText "lightslateblue"
+  unqtDot LightSlateGray       = unqtText "lightslategray"
+  unqtDot LightSteelBlue       = unqtText "lightsteelblue"
+  unqtDot LightSteelBlue1      = unqtText "lightsteelblue1"
+  unqtDot LightSteelBlue2      = unqtText "lightsteelblue2"
+  unqtDot LightSteelBlue3      = unqtText "lightsteelblue3"
+  unqtDot LightSteelBlue4      = unqtText "lightsteelblue4"
+  unqtDot LightYellow          = unqtText "lightyellow"
+  unqtDot LightYellow1         = unqtText "lightyellow1"
+  unqtDot LightYellow2         = unqtText "lightyellow2"
+  unqtDot LightYellow3         = unqtText "lightyellow3"
+  unqtDot LightYellow4         = unqtText "lightyellow4"
+  unqtDot LimeGreen            = unqtText "limegreen"
+  unqtDot Linen                = unqtText "linen"
+  unqtDot Magenta              = unqtText "magenta"
+  unqtDot Magenta1             = unqtText "magenta1"
+  unqtDot Magenta2             = unqtText "magenta2"
+  unqtDot Magenta3             = unqtText "magenta3"
+  unqtDot Magenta4             = unqtText "magenta4"
+  unqtDot Maroon               = unqtText "maroon"
+  unqtDot Maroon1              = unqtText "maroon1"
+  unqtDot Maroon2              = unqtText "maroon2"
+  unqtDot Maroon3              = unqtText "maroon3"
+  unqtDot Maroon4              = unqtText "maroon4"
+  unqtDot MediumAquamarine     = unqtText "mediumaquamarine"
+  unqtDot MediumBlue           = unqtText "mediumblue"
+  unqtDot MediumOrchid         = unqtText "mediumorchid"
+  unqtDot MediumOrchid1        = unqtText "mediumorchid1"
+  unqtDot MediumOrchid2        = unqtText "mediumorchid2"
+  unqtDot MediumOrchid3        = unqtText "mediumorchid3"
+  unqtDot MediumOrchid4        = unqtText "mediumorchid4"
+  unqtDot MediumPurple         = unqtText "mediumpurple"
+  unqtDot MediumPurple1        = unqtText "mediumpurple1"
+  unqtDot MediumPurple2        = unqtText "mediumpurple2"
+  unqtDot MediumPurple3        = unqtText "mediumpurple3"
+  unqtDot MediumPurple4        = unqtText "mediumpurple4"
+  unqtDot MediumSeaGreen       = unqtText "mediumseagreen"
+  unqtDot MediumSlateBlue      = unqtText "mediumslateblue"
+  unqtDot MediumSpringGreen    = unqtText "mediumspringgreen"
+  unqtDot MediumTurquoise      = unqtText "mediumturquoise"
+  unqtDot MediumVioletRed      = unqtText "mediumvioletred"
+  unqtDot MidnightBlue         = unqtText "midnightblue"
+  unqtDot MintCream            = unqtText "mintcream"
+  unqtDot MistyRose            = unqtText "mistyrose"
+  unqtDot MistyRose1           = unqtText "mistyrose1"
+  unqtDot MistyRose2           = unqtText "mistyrose2"
+  unqtDot MistyRose3           = unqtText "mistyrose3"
+  unqtDot MistyRose4           = unqtText "mistyrose4"
+  unqtDot Moccasin             = unqtText "moccasin"
+  unqtDot NavajoWhite          = unqtText "navajowhite"
+  unqtDot NavajoWhite1         = unqtText "navajowhite1"
+  unqtDot NavajoWhite2         = unqtText "navajowhite2"
+  unqtDot NavajoWhite3         = unqtText "navajowhite3"
+  unqtDot NavajoWhite4         = unqtText "navajowhite4"
+  unqtDot Navy                 = unqtText "navy"
+  unqtDot NavyBlue             = unqtText "navyblue"
+  unqtDot OldLace              = unqtText "oldlace"
+  unqtDot OliveDrab            = unqtText "olivedrab"
+  unqtDot OliveDrab1           = unqtText "olivedrab1"
+  unqtDot OliveDrab2           = unqtText "olivedrab2"
+  unqtDot OliveDrab3           = unqtText "olivedrab3"
+  unqtDot OliveDrab4           = unqtText "olivedrab4"
+  unqtDot Orange               = unqtText "orange"
+  unqtDot Orange1              = unqtText "orange1"
+  unqtDot Orange2              = unqtText "orange2"
+  unqtDot Orange3              = unqtText "orange3"
+  unqtDot Orange4              = unqtText "orange4"
+  unqtDot OrangeRed            = unqtText "orangered"
+  unqtDot OrangeRed1           = unqtText "orangered1"
+  unqtDot OrangeRed2           = unqtText "orangered2"
+  unqtDot OrangeRed3           = unqtText "orangered3"
+  unqtDot OrangeRed4           = unqtText "orangered4"
+  unqtDot Orchid               = unqtText "orchid"
+  unqtDot Orchid1              = unqtText "orchid1"
+  unqtDot Orchid2              = unqtText "orchid2"
+  unqtDot Orchid3              = unqtText "orchid3"
+  unqtDot Orchid4              = unqtText "orchid4"
+  unqtDot PaleGoldenrod        = unqtText "palegoldenrod"
+  unqtDot PaleGreen            = unqtText "palegreen"
+  unqtDot PaleGreen1           = unqtText "palegreen1"
+  unqtDot PaleGreen2           = unqtText "palegreen2"
+  unqtDot PaleGreen3           = unqtText "palegreen3"
+  unqtDot PaleGreen4           = unqtText "palegreen4"
+  unqtDot PaleTurquoise        = unqtText "paleturquoise"
+  unqtDot PaleTurquoise1       = unqtText "paleturquoise1"
+  unqtDot PaleTurquoise2       = unqtText "paleturquoise2"
+  unqtDot PaleTurquoise3       = unqtText "paleturquoise3"
+  unqtDot PaleTurquoise4       = unqtText "paleturquoise4"
+  unqtDot PaleVioletRed        = unqtText "palevioletred"
+  unqtDot PaleVioletRed1       = unqtText "palevioletred1"
+  unqtDot PaleVioletRed2       = unqtText "palevioletred2"
+  unqtDot PaleVioletRed3       = unqtText "palevioletred3"
+  unqtDot PaleVioletRed4       = unqtText "palevioletred4"
+  unqtDot PapayaWhip           = unqtText "papayawhip"
+  unqtDot PeachPuff            = unqtText "peachpuff"
+  unqtDot PeachPuff1           = unqtText "peachpuff1"
+  unqtDot PeachPuff2           = unqtText "peachpuff2"
+  unqtDot PeachPuff3           = unqtText "peachpuff3"
+  unqtDot PeachPuff4           = unqtText "peachpuff4"
+  unqtDot Peru                 = unqtText "peru"
+  unqtDot Pink                 = unqtText "pink"
+  unqtDot Pink1                = unqtText "pink1"
+  unqtDot Pink2                = unqtText "pink2"
+  unqtDot Pink3                = unqtText "pink3"
+  unqtDot Pink4                = unqtText "pink4"
+  unqtDot Plum                 = unqtText "plum"
+  unqtDot Plum1                = unqtText "plum1"
+  unqtDot Plum2                = unqtText "plum2"
+  unqtDot Plum3                = unqtText "plum3"
+  unqtDot Plum4                = unqtText "plum4"
+  unqtDot PowderBlue           = unqtText "powderblue"
+  unqtDot Purple               = unqtText "purple"
+  unqtDot Purple1              = unqtText "purple1"
+  unqtDot Purple2              = unqtText "purple2"
+  unqtDot Purple3              = unqtText "purple3"
+  unqtDot Purple4              = unqtText "purple4"
+  unqtDot Red                  = unqtText "red"
+  unqtDot Red1                 = unqtText "red1"
+  unqtDot Red2                 = unqtText "red2"
+  unqtDot Red3                 = unqtText "red3"
+  unqtDot Red4                 = unqtText "red4"
+  unqtDot RosyBrown            = unqtText "rosybrown"
+  unqtDot RosyBrown1           = unqtText "rosybrown1"
+  unqtDot RosyBrown2           = unqtText "rosybrown2"
+  unqtDot RosyBrown3           = unqtText "rosybrown3"
+  unqtDot RosyBrown4           = unqtText "rosybrown4"
+  unqtDot RoyalBlue            = unqtText "royalblue"
+  unqtDot RoyalBlue1           = unqtText "royalblue1"
+  unqtDot RoyalBlue2           = unqtText "royalblue2"
+  unqtDot RoyalBlue3           = unqtText "royalblue3"
+  unqtDot RoyalBlue4           = unqtText "royalblue4"
+  unqtDot SaddleBrown          = unqtText "saddlebrown"
+  unqtDot Salmon               = unqtText "salmon"
+  unqtDot Salmon1              = unqtText "salmon1"
+  unqtDot Salmon2              = unqtText "salmon2"
+  unqtDot Salmon3              = unqtText "salmon3"
+  unqtDot Salmon4              = unqtText "salmon4"
+  unqtDot SandyBrown           = unqtText "sandybrown"
+  unqtDot SeaGreen             = unqtText "seagreen"
+  unqtDot SeaGreen1            = unqtText "seagreen1"
+  unqtDot SeaGreen2            = unqtText "seagreen2"
+  unqtDot SeaGreen3            = unqtText "seagreen3"
+  unqtDot SeaGreen4            = unqtText "seagreen4"
+  unqtDot SeaShell             = unqtText "seashell"
+  unqtDot SeaShell1            = unqtText "seashell1"
+  unqtDot SeaShell2            = unqtText "seashell2"
+  unqtDot SeaShell3            = unqtText "seashell3"
+  unqtDot SeaShell4            = unqtText "seashell4"
+  unqtDot Sienna               = unqtText "sienna"
+  unqtDot Sienna1              = unqtText "sienna1"
+  unqtDot Sienna2              = unqtText "sienna2"
+  unqtDot Sienna3              = unqtText "sienna3"
+  unqtDot Sienna4              = unqtText "sienna4"
+  unqtDot SkyBlue              = unqtText "skyblue"
+  unqtDot SkyBlue1             = unqtText "skyblue1"
+  unqtDot SkyBlue2             = unqtText "skyblue2"
+  unqtDot SkyBlue3             = unqtText "skyblue3"
+  unqtDot SkyBlue4             = unqtText "skyblue4"
+  unqtDot SlateBlue            = unqtText "slateblue"
+  unqtDot SlateBlue1           = unqtText "slateblue1"
+  unqtDot SlateBlue2           = unqtText "slateblue2"
+  unqtDot SlateBlue3           = unqtText "slateblue3"
+  unqtDot SlateBlue4           = unqtText "slateblue4"
+  unqtDot SlateGray            = unqtText "slategray"
+  unqtDot SlateGray1           = unqtText "slategray1"
+  unqtDot SlateGray2           = unqtText "slategray2"
+  unqtDot SlateGray3           = unqtText "slategray3"
+  unqtDot SlateGray4           = unqtText "slategray4"
+  unqtDot Snow                 = unqtText "snow"
+  unqtDot Snow1                = unqtText "snow1"
+  unqtDot Snow2                = unqtText "snow2"
+  unqtDot Snow3                = unqtText "snow3"
+  unqtDot Snow4                = unqtText "snow4"
+  unqtDot SpringGreen          = unqtText "springgreen"
+  unqtDot SpringGreen1         = unqtText "springgreen1"
+  unqtDot SpringGreen2         = unqtText "springgreen2"
+  unqtDot SpringGreen3         = unqtText "springgreen3"
+  unqtDot SpringGreen4         = unqtText "springgreen4"
+  unqtDot SteelBlue            = unqtText "steelblue"
+  unqtDot SteelBlue1           = unqtText "steelblue1"
+  unqtDot SteelBlue2           = unqtText "steelblue2"
+  unqtDot SteelBlue3           = unqtText "steelblue3"
+  unqtDot SteelBlue4           = unqtText "steelblue4"
+  unqtDot Tan                  = unqtText "tan"
+  unqtDot Tan1                 = unqtText "tan1"
+  unqtDot Tan2                 = unqtText "tan2"
+  unqtDot Tan3                 = unqtText "tan3"
+  unqtDot Tan4                 = unqtText "tan4"
+  unqtDot Thistle              = unqtText "thistle"
+  unqtDot Thistle1             = unqtText "thistle1"
+  unqtDot Thistle2             = unqtText "thistle2"
+  unqtDot Thistle3             = unqtText "thistle3"
+  unqtDot Thistle4             = unqtText "thistle4"
+  unqtDot Tomato               = unqtText "tomato"
+  unqtDot Tomato1              = unqtText "tomato1"
+  unqtDot Tomato2              = unqtText "tomato2"
+  unqtDot Tomato3              = unqtText "tomato3"
+  unqtDot Tomato4              = unqtText "tomato4"
+  unqtDot Transparent          = unqtText "transparent"
+  unqtDot Turquoise            = unqtText "turquoise"
+  unqtDot Turquoise1           = unqtText "turquoise1"
+  unqtDot Turquoise2           = unqtText "turquoise2"
+  unqtDot Turquoise3           = unqtText "turquoise3"
+  unqtDot Turquoise4           = unqtText "turquoise4"
+  unqtDot Violet               = unqtText "violet"
+  unqtDot VioletRed            = unqtText "violetred"
+  unqtDot VioletRed1           = unqtText "violetred1"
+  unqtDot VioletRed2           = unqtText "violetred2"
+  unqtDot VioletRed3           = unqtText "violetred3"
+  unqtDot VioletRed4           = unqtText "violetred4"
+  unqtDot Wheat                = unqtText "wheat"
+  unqtDot Wheat1               = unqtText "wheat1"
+  unqtDot Wheat2               = unqtText "wheat2"
+  unqtDot Wheat3               = unqtText "wheat3"
+  unqtDot Wheat4               = unqtText "wheat4"
+  unqtDot White                = unqtText "white"
+  unqtDot WhiteSmoke           = unqtText "whitesmoke"
+  unqtDot Yellow               = unqtText "yellow"
+  unqtDot Yellow1              = unqtText "yellow1"
+  unqtDot Yellow2              = unqtText "yellow2"
+  unqtDot Yellow3              = unqtText "yellow3"
+  unqtDot Yellow4              = unqtText "yellow4"
+  unqtDot YellowGreen          = unqtText "yellowgreen"
+
+instance ParseDot X11Color where
+  parseUnqt = stringValue [ ("aliceblue", AliceBlue)
+                          , ("antiquewhite", AntiqueWhite)
+                          , ("antiquewhite1", AntiqueWhite1)
+                          , ("antiquewhite2", AntiqueWhite2)
+                          , ("antiquewhite3", AntiqueWhite3)
+                          , ("antiquewhite4", AntiqueWhite4)
+                          , ("aquamarine", Aquamarine)
+                          , ("aquamarine1", Aquamarine1)
+                          , ("aquamarine2", Aquamarine2)
+                          , ("aquamarine3", Aquamarine3)
+                          , ("aquamarine4", Aquamarine4)
+                          , ("azure", Azure)
+                          , ("azure1", Azure1)
+                          , ("azure2", Azure2)
+                          , ("azure3", Azure3)
+                          , ("azure4", Azure4)
+                          , ("beige", Beige)
+                          , ("bisque", Bisque)
+                          , ("bisque1", Bisque1)
+                          , ("bisque2", Bisque2)
+                          , ("bisque3", Bisque3)
+                          , ("bisque4", Bisque4)
+                          , ("black", Black)
+                          , ("blanchedalmond", BlanchedAlmond)
+                          , ("blue", Blue)
+                          , ("blue1", Blue1)
+                          , ("blue2", Blue2)
+                          , ("blue3", Blue3)
+                          , ("blue4", Blue4)
+                          , ("blueviolet", BlueViolet)
+                          , ("brown", Brown)
+                          , ("brown1", Brown1)
+                          , ("brown2", Brown2)
+                          , ("brown3", Brown3)
+                          , ("brown4", Brown4)
+                          , ("burlywood", Burlywood)
+                          , ("burlywood1", Burlywood1)
+                          , ("burlywood2", Burlywood2)
+                          , ("burlywood3", Burlywood3)
+                          , ("burlywood4", Burlywood4)
+                          , ("cadetblue", CadetBlue)
+                          , ("cadetblue1", CadetBlue1)
+                          , ("cadetblue2", CadetBlue2)
+                          , ("cadetblue3", CadetBlue3)
+                          , ("cadetblue4", CadetBlue4)
+                          , ("chartreuse", Chartreuse)
+                          , ("chartreuse1", Chartreuse1)
+                          , ("chartreuse2", Chartreuse2)
+                          , ("chartreuse3", Chartreuse3)
+                          , ("chartreuse4", Chartreuse4)
+                          , ("chocolate", Chocolate)
+                          , ("chocolate1", Chocolate1)
+                          , ("chocolate2", Chocolate2)
+                          , ("chocolate3", Chocolate3)
+                          , ("chocolate4", Chocolate4)
+                          , ("coral", Coral)
+                          , ("coral1", Coral1)
+                          , ("coral2", Coral2)
+                          , ("coral3", Coral3)
+                          , ("coral4", Coral4)
+                          , ("cornflowerblue", CornFlowerBlue)
+                          , ("cornsilk", CornSilk)
+                          , ("cornsilk1", CornSilk1)
+                          , ("cornsilk2", CornSilk2)
+                          , ("cornsilk3", CornSilk3)
+                          , ("cornsilk4", CornSilk4)
+                          , ("crimson", Crimson)
+                          , ("cyan", Cyan)
+                          , ("cyan1", Cyan1)
+                          , ("cyan2", Cyan2)
+                          , ("cyan3", Cyan3)
+                          , ("cyan4", Cyan4)
+                          , ("darkgoldenrod", DarkGoldenrod)
+                          , ("darkgoldenrod1", DarkGoldenrod1)
+                          , ("darkgoldenrod2", DarkGoldenrod2)
+                          , ("darkgoldenrod3", DarkGoldenrod3)
+                          , ("darkgoldenrod4", DarkGoldenrod4)
+                          , ("darkgreen", DarkGreen)
+                          , ("darkkhaki", Darkkhaki)
+                          , ("darkolivegreen", DarkOliveGreen)
+                          , ("darkolivegreen1", DarkOliveGreen1)
+                          , ("darkolivegreen2", DarkOliveGreen2)
+                          , ("darkolivegreen3", DarkOliveGreen3)
+                          , ("darkolivegreen4", DarkOliveGreen4)
+                          , ("darkorange", DarkOrange)
+                          , ("darkorange1", DarkOrange1)
+                          , ("darkorange2", DarkOrange2)
+                          , ("darkorange3", DarkOrange3)
+                          , ("darkorange4", DarkOrange4)
+                          , ("darkorchid", DarkOrchid)
+                          , ("darkorchid1", DarkOrchid1)
+                          , ("darkorchid2", DarkOrchid2)
+                          , ("darkorchid3", DarkOrchid3)
+                          , ("darkorchid4", DarkOrchid4)
+                          , ("darksalmon", DarkSalmon)
+                          , ("darkseagreen", DarkSeaGreen)
+                          , ("darkseagreen1", DarkSeaGreen1)
+                          , ("darkseagreen2", DarkSeaGreen2)
+                          , ("darkseagreen3", DarkSeaGreen3)
+                          , ("darkseagreen4", DarkSeaGreen4)
+                          , ("darkslateblue", DarkSlateBlue)
+                          , ("darkslategray", DarkSlateGray)
+                          , ("darkslategrey", DarkSlateGray)
+                          , ("darkslategray1", DarkSlateGray1)
+                          , ("darkslategrey1", DarkSlateGray1)
+                          , ("darkslategray2", DarkSlateGray2)
+                          , ("darkslategrey2", DarkSlateGray2)
+                          , ("darkslategray3", DarkSlateGray3)
+                          , ("darkslategrey3", DarkSlateGray3)
+                          , ("darkslategray4", DarkSlateGray4)
+                          , ("darkslategrey4", DarkSlateGray4)
+                          , ("darkturquoise", DarkTurquoise)
+                          , ("darkviolet", DarkViolet)
+                          , ("deeppink", DeepPink)
+                          , ("deeppink1", DeepPink1)
+                          , ("deeppink2", DeepPink2)
+                          , ("deeppink3", DeepPink3)
+                          , ("deeppink4", DeepPink4)
+                          , ("deepskyblue", DeepSkyBlue)
+                          , ("deepskyblue1", DeepSkyBlue1)
+                          , ("deepskyblue2", DeepSkyBlue2)
+                          , ("deepskyblue3", DeepSkyBlue3)
+                          , ("deepskyblue4", DeepSkyBlue4)
+                          , ("dimgray", DimGray)
+                          , ("dimgrey", DimGray)
+                          , ("dodgerblue", DodgerBlue)
+                          , ("dodgerblue1", DodgerBlue1)
+                          , ("dodgerblue2", DodgerBlue2)
+                          , ("dodgerblue3", DodgerBlue3)
+                          , ("dodgerblue4", DodgerBlue4)
+                          , ("firebrick", Firebrick)
+                          , ("firebrick1", Firebrick1)
+                          , ("firebrick2", Firebrick2)
+                          , ("firebrick3", Firebrick3)
+                          , ("firebrick4", Firebrick4)
+                          , ("floralwhite", FloralWhite)
+                          , ("forestgreen", ForestGreen)
+                          , ("gainsboro", Gainsboro)
+                          , ("ghostwhite", GhostWhite)
+                          , ("gold", Gold)
+                          , ("gold1", Gold1)
+                          , ("gold2", Gold2)
+                          , ("gold3", Gold3)
+                          , ("gold4", Gold4)
+                          , ("goldenrod", Goldenrod)
+                          , ("goldenrod1", Goldenrod1)
+                          , ("goldenrod2", Goldenrod2)
+                          , ("goldenrod3", Goldenrod3)
+                          , ("goldenrod4", Goldenrod4)
+                          , ("gray", Gray)
+                          , ("grey", Gray)
+                          , ("gray0", Gray0)
+                          , ("grey0", Gray0)
+                          , ("gray1", Gray1)
+                          , ("grey1", Gray1)
+                          , ("gray2", Gray2)
+                          , ("grey2", Gray2)
+                          , ("gray3", Gray3)
+                          , ("grey3", Gray3)
+                          , ("gray4", Gray4)
+                          , ("grey4", Gray4)
+                          , ("gray5", Gray5)
+                          , ("grey5", Gray5)
+                          , ("gray6", Gray6)
+                          , ("grey6", Gray6)
+                          , ("gray7", Gray7)
+                          , ("grey7", Gray7)
+                          , ("gray8", Gray8)
+                          , ("grey8", Gray8)
+                          , ("gray9", Gray9)
+                          , ("grey9", Gray9)
+                          , ("gray10", Gray10)
+                          , ("grey10", Gray10)
+                          , ("gray11", Gray11)
+                          , ("grey11", Gray11)
+                          , ("gray12", Gray12)
+                          , ("grey12", Gray12)
+                          , ("gray13", Gray13)
+                          , ("grey13", Gray13)
+                          , ("gray14", Gray14)
+                          , ("grey14", Gray14)
+                          , ("gray15", Gray15)
+                          , ("grey15", Gray15)
+                          , ("gray16", Gray16)
+                          , ("grey16", Gray16)
+                          , ("gray17", Gray17)
+                          , ("grey17", Gray17)
+                          , ("gray18", Gray18)
+                          , ("grey18", Gray18)
+                          , ("gray19", Gray19)
+                          , ("grey19", Gray19)
+                          , ("gray20", Gray20)
+                          , ("grey20", Gray20)
+                          , ("gray21", Gray21)
+                          , ("grey21", Gray21)
+                          , ("gray22", Gray22)
+                          , ("grey22", Gray22)
+                          , ("gray23", Gray23)
+                          , ("grey23", Gray23)
+                          , ("gray24", Gray24)
+                          , ("grey24", Gray24)
+                          , ("gray25", Gray25)
+                          , ("grey25", Gray25)
+                          , ("gray26", Gray26)
+                          , ("grey26", Gray26)
+                          , ("gray27", Gray27)
+                          , ("grey27", Gray27)
+                          , ("gray28", Gray28)
+                          , ("grey28", Gray28)
+                          , ("gray29", Gray29)
+                          , ("grey29", Gray29)
+                          , ("gray30", Gray30)
+                          , ("grey30", Gray30)
+                          , ("gray31", Gray31)
+                          , ("grey31", Gray31)
+                          , ("gray32", Gray32)
+                          , ("grey32", Gray32)
+                          , ("gray33", Gray33)
+                          , ("grey33", Gray33)
+                          , ("gray34", Gray34)
+                          , ("grey34", Gray34)
+                          , ("gray35", Gray35)
+                          , ("grey35", Gray35)
+                          , ("gray36", Gray36)
+                          , ("grey36", Gray36)
+                          , ("gray37", Gray37)
+                          , ("grey37", Gray37)
+                          , ("gray38", Gray38)
+                          , ("grey38", Gray38)
+                          , ("gray39", Gray39)
+                          , ("grey39", Gray39)
+                          , ("gray40", Gray40)
+                          , ("grey40", Gray40)
+                          , ("gray41", Gray41)
+                          , ("grey41", Gray41)
+                          , ("gray42", Gray42)
+                          , ("grey42", Gray42)
+                          , ("gray43", Gray43)
+                          , ("grey43", Gray43)
+                          , ("gray44", Gray44)
+                          , ("grey44", Gray44)
+                          , ("gray45", Gray45)
+                          , ("grey45", Gray45)
+                          , ("gray46", Gray46)
+                          , ("grey46", Gray46)
+                          , ("gray47", Gray47)
+                          , ("grey47", Gray47)
+                          , ("gray48", Gray48)
+                          , ("grey48", Gray48)
+                          , ("gray49", Gray49)
+                          , ("grey49", Gray49)
+                          , ("gray50", Gray50)
+                          , ("grey50", Gray50)
+                          , ("gray51", Gray51)
+                          , ("grey51", Gray51)
+                          , ("gray52", Gray52)
+                          , ("grey52", Gray52)
+                          , ("gray53", Gray53)
+                          , ("grey53", Gray53)
+                          , ("gray54", Gray54)
+                          , ("grey54", Gray54)
+                          , ("gray55", Gray55)
+                          , ("grey55", Gray55)
+                          , ("gray56", Gray56)
+                          , ("grey56", Gray56)
+                          , ("gray57", Gray57)
+                          , ("grey57", Gray57)
+                          , ("gray58", Gray58)
+                          , ("grey58", Gray58)
+                          , ("gray59", Gray59)
+                          , ("grey59", Gray59)
+                          , ("gray60", Gray60)
+                          , ("grey60", Gray60)
+                          , ("gray61", Gray61)
+                          , ("grey61", Gray61)
+                          , ("gray62", Gray62)
+                          , ("grey62", Gray62)
+                          , ("gray63", Gray63)
+                          , ("grey63", Gray63)
+                          , ("gray64", Gray64)
+                          , ("grey64", Gray64)
+                          , ("gray65", Gray65)
+                          , ("grey65", Gray65)
+                          , ("gray66", Gray66)
+                          , ("grey66", Gray66)
+                          , ("gray67", Gray67)
+                          , ("grey67", Gray67)
+                          , ("gray68", Gray68)
+                          , ("grey68", Gray68)
+                          , ("gray69", Gray69)
+                          , ("grey69", Gray69)
+                          , ("gray70", Gray70)
+                          , ("grey70", Gray70)
+                          , ("gray71", Gray71)
+                          , ("grey71", Gray71)
+                          , ("gray72", Gray72)
+                          , ("grey72", Gray72)
+                          , ("gray73", Gray73)
+                          , ("grey73", Gray73)
+                          , ("gray74", Gray74)
+                          , ("grey74", Gray74)
+                          , ("gray75", Gray75)
+                          , ("grey75", Gray75)
+                          , ("gray76", Gray76)
+                          , ("grey76", Gray76)
+                          , ("gray77", Gray77)
+                          , ("grey77", Gray77)
+                          , ("gray78", Gray78)
+                          , ("grey78", Gray78)
+                          , ("gray79", Gray79)
+                          , ("grey79", Gray79)
+                          , ("gray80", Gray80)
+                          , ("grey80", Gray80)
+                          , ("gray81", Gray81)
+                          , ("grey81", Gray81)
+                          , ("gray82", Gray82)
+                          , ("grey82", Gray82)
+                          , ("gray83", Gray83)
+                          , ("grey83", Gray83)
+                          , ("gray84", Gray84)
+                          , ("grey84", Gray84)
+                          , ("gray85", Gray85)
+                          , ("grey85", Gray85)
+                          , ("gray86", Gray86)
+                          , ("grey86", Gray86)
+                          , ("gray87", Gray87)
+                          , ("grey87", Gray87)
+                          , ("gray88", Gray88)
+                          , ("grey88", Gray88)
+                          , ("gray89", Gray89)
+                          , ("grey89", Gray89)
+                          , ("gray90", Gray90)
+                          , ("grey90", Gray90)
+                          , ("gray91", Gray91)
+                          , ("grey91", Gray91)
+                          , ("gray92", Gray92)
+                          , ("grey92", Gray92)
+                          , ("gray93", Gray93)
+                          , ("grey93", Gray93)
+                          , ("gray94", Gray94)
+                          , ("grey94", Gray94)
+                          , ("gray95", Gray95)
+                          , ("grey95", Gray95)
+                          , ("gray96", Gray96)
+                          , ("grey96", Gray96)
+                          , ("gray97", Gray97)
+                          , ("grey97", Gray97)
+                          , ("gray98", Gray98)
+                          , ("grey98", Gray98)
+                          , ("gray99", Gray99)
+                          , ("grey99", Gray99)
+                          , ("gray100", Gray100)
+                          , ("grey100", Gray100)
+                          , ("green", Green)
+                          , ("green1", Green1)
+                          , ("green2", Green2)
+                          , ("green3", Green3)
+                          , ("green4", Green4)
+                          , ("greenyellow", GreenYellow)
+                          , ("honeydew", HoneyDew)
+                          , ("honeydew1", HoneyDew1)
+                          , ("honeydew2", HoneyDew2)
+                          , ("honeydew3", HoneyDew3)
+                          , ("honeydew4", HoneyDew4)
+                          , ("hotpink", HotPink)
+                          , ("hotpink1", HotPink1)
+                          , ("hotpink2", HotPink2)
+                          , ("hotpink3", HotPink3)
+                          , ("hotpink4", HotPink4)
+                          , ("indianred", IndianRed)
+                          , ("indianred1", IndianRed1)
+                          , ("indianred2", IndianRed2)
+                          , ("indianred3", IndianRed3)
+                          , ("indianred4", IndianRed4)
+                          , ("indigo", Indigo)
+                          , ("ivory", Ivory)
+                          , ("ivory1", Ivory1)
+                          , ("ivory2", Ivory2)
+                          , ("ivory3", Ivory3)
+                          , ("ivory4", Ivory4)
+                          , ("khaki", Khaki)
+                          , ("khaki1", Khaki1)
+                          , ("khaki2", Khaki2)
+                          , ("khaki3", Khaki3)
+                          , ("khaki4", Khaki4)
+                          , ("lavender", Lavender)
+                          , ("lavenderblush", LavenderBlush)
+                          , ("lavenderblush1", LavenderBlush1)
+                          , ("lavenderblush2", LavenderBlush2)
+                          , ("lavenderblush3", LavenderBlush3)
+                          , ("lavenderblush4", LavenderBlush4)
+                          , ("lawngreen", LawnGreen)
+                          , ("lemonchiffon", LemonChiffon)
+                          , ("lemonchiffon1", LemonChiffon1)
+                          , ("lemonchiffon2", LemonChiffon2)
+                          , ("lemonchiffon3", LemonChiffon3)
+                          , ("lemonchiffon4", LemonChiffon4)
+                          , ("lightblue", LightBlue)
+                          , ("lightblue1", LightBlue1)
+                          , ("lightblue2", LightBlue2)
+                          , ("lightblue3", LightBlue3)
+                          , ("lightblue4", LightBlue4)
+                          , ("lightcoral", LightCoral)
+                          , ("lightcyan", LightCyan)
+                          , ("lightcyan1", LightCyan1)
+                          , ("lightcyan2", LightCyan2)
+                          , ("lightcyan3", LightCyan3)
+                          , ("lightcyan4", LightCyan4)
+                          , ("lightgoldenrod", LightGoldenrod)
+                          , ("lightgoldenrod1", LightGoldenrod1)
+                          , ("lightgoldenrod2", LightGoldenrod2)
+                          , ("lightgoldenrod3", LightGoldenrod3)
+                          , ("lightgoldenrod4", LightGoldenrod4)
+                          , ("lightgoldenrodyellow", LightGoldenrodYellow)
+                          , ("lightgray", LightGray)
+                          , ("lightgrey", LightGray)
+                          , ("lightpink", LightPink)
+                          , ("lightpink1", LightPink1)
+                          , ("lightpink2", LightPink2)
+                          , ("lightpink3", LightPink3)
+                          , ("lightpink4", LightPink4)
+                          , ("lightsalmon", LightSalmon)
+                          , ("lightsalmon1", LightSalmon1)
+                          , ("lightsalmon2", LightSalmon2)
+                          , ("lightsalmon3", LightSalmon3)
+                          , ("lightsalmon4", LightSalmon4)
+                          , ("lightseagreen", LightSeaGreen)
+                          , ("lightskyblue", LightSkyBlue)
+                          , ("lightskyblue1", LightSkyBlue1)
+                          , ("lightskyblue2", LightSkyBlue2)
+                          , ("lightskyblue3", LightSkyBlue3)
+                          , ("lightskyblue4", LightSkyBlue4)
+                          , ("lightslateblue", LightSlateBlue)
+                          , ("lightslategray", LightSlateGray)
+                          , ("lightslategrey", LightSlateGray)
+                          , ("lightsteelblue", LightSteelBlue)
+                          , ("lightsteelblue1", LightSteelBlue1)
+                          , ("lightsteelblue2", LightSteelBlue2)
+                          , ("lightsteelblue3", LightSteelBlue3)
+                          , ("lightsteelblue4", LightSteelBlue4)
+                          , ("lightyellow", LightYellow)
+                          , ("lightyellow1", LightYellow1)
+                          , ("lightyellow2", LightYellow2)
+                          , ("lightyellow3", LightYellow3)
+                          , ("lightyellow4", LightYellow4)
+                          , ("limegreen", LimeGreen)
+                          , ("linen", Linen)
+                          , ("magenta", Magenta)
+                          , ("magenta1", Magenta1)
+                          , ("magenta2", Magenta2)
+                          , ("magenta3", Magenta3)
+                          , ("magenta4", Magenta4)
+                          , ("maroon", Maroon)
+                          , ("maroon1", Maroon1)
+                          , ("maroon2", Maroon2)
+                          , ("maroon3", Maroon3)
+                          , ("maroon4", Maroon4)
+                          , ("mediumaquamarine", MediumAquamarine)
+                          , ("mediumblue", MediumBlue)
+                          , ("mediumorchid", MediumOrchid)
+                          , ("mediumorchid1", MediumOrchid1)
+                          , ("mediumorchid2", MediumOrchid2)
+                          , ("mediumorchid3", MediumOrchid3)
+                          , ("mediumorchid4", MediumOrchid4)
+                          , ("mediumpurple", MediumPurple)
+                          , ("mediumpurple1", MediumPurple1)
+                          , ("mediumpurple2", MediumPurple2)
+                          , ("mediumpurple3", MediumPurple3)
+                          , ("mediumpurple4", MediumPurple4)
+                          , ("mediumseagreen", MediumSeaGreen)
+                          , ("mediumslateblue", MediumSlateBlue)
+                          , ("mediumspringgreen", MediumSpringGreen)
+                          , ("mediumturquoise", MediumTurquoise)
+                          , ("mediumvioletred", MediumVioletRed)
+                          , ("midnightblue", MidnightBlue)
+                          , ("mintcream", MintCream)
+                          , ("mistyrose", MistyRose)
+                          , ("mistyrose1", MistyRose1)
+                          , ("mistyrose2", MistyRose2)
+                          , ("mistyrose3", MistyRose3)
+                          , ("mistyrose4", MistyRose4)
+                          , ("moccasin", Moccasin)
+                          , ("navajowhite", NavajoWhite)
+                          , ("navajowhite1", NavajoWhite1)
+                          , ("navajowhite2", NavajoWhite2)
+                          , ("navajowhite3", NavajoWhite3)
+                          , ("navajowhite4", NavajoWhite4)
+                          , ("navy", Navy)
+                          , ("navyblue", NavyBlue)
+                          , ("oldlace", OldLace)
+                          , ("olivedrab", OliveDrab)
+                          , ("olivedrab1", OliveDrab1)
+                          , ("olivedrab2", OliveDrab2)
+                          , ("olivedrab3", OliveDrab3)
+                          , ("olivedrab4", OliveDrab4)
+                          , ("orange", Orange)
+                          , ("orange1", Orange1)
+                          , ("orange2", Orange2)
+                          , ("orange3", Orange3)
+                          , ("orange4", Orange4)
+                          , ("orangered", OrangeRed)
+                          , ("orangered1", OrangeRed1)
+                          , ("orangered2", OrangeRed2)
+                          , ("orangered3", OrangeRed3)
+                          , ("orangered4", OrangeRed4)
+                          , ("orchid", Orchid)
+                          , ("orchid1", Orchid1)
+                          , ("orchid2", Orchid2)
+                          , ("orchid3", Orchid3)
+                          , ("orchid4", Orchid4)
+                          , ("palegoldenrod", PaleGoldenrod)
+                          , ("palegreen", PaleGreen)
+                          , ("palegreen1", PaleGreen1)
+                          , ("palegreen2", PaleGreen2)
+                          , ("palegreen3", PaleGreen3)
+                          , ("palegreen4", PaleGreen4)
+                          , ("paleturquoise", PaleTurquoise)
+                          , ("paleturquoise1", PaleTurquoise1)
+                          , ("paleturquoise2", PaleTurquoise2)
+                          , ("paleturquoise3", PaleTurquoise3)
+                          , ("paleturquoise4", PaleTurquoise4)
+                          , ("palevioletred", PaleVioletRed)
+                          , ("palevioletred1", PaleVioletRed1)
+                          , ("palevioletred2", PaleVioletRed2)
+                          , ("palevioletred3", PaleVioletRed3)
+                          , ("palevioletred4", PaleVioletRed4)
+                          , ("papayawhip", PapayaWhip)
+                          , ("peachpuff", PeachPuff)
+                          , ("peachpuff1", PeachPuff1)
+                          , ("peachpuff2", PeachPuff2)
+                          , ("peachpuff3", PeachPuff3)
+                          , ("peachpuff4", PeachPuff4)
+                          , ("peru", Peru)
+                          , ("pink", Pink)
+                          , ("pink1", Pink1)
+                          , ("pink2", Pink2)
+                          , ("pink3", Pink3)
+                          , ("pink4", Pink4)
+                          , ("plum", Plum)
+                          , ("plum1", Plum1)
+                          , ("plum2", Plum2)
+                          , ("plum3", Plum3)
+                          , ("plum4", Plum4)
+                          , ("powderblue", PowderBlue)
+                          , ("purple", Purple)
+                          , ("purple1", Purple1)
+                          , ("purple2", Purple2)
+                          , ("purple3", Purple3)
+                          , ("purple4", Purple4)
+                          , ("red", Red)
+                          , ("red1", Red1)
+                          , ("red2", Red2)
+                          , ("red3", Red3)
+                          , ("red4", Red4)
+                          , ("rosybrown", RosyBrown)
+                          , ("rosybrown1", RosyBrown1)
+                          , ("rosybrown2", RosyBrown2)
+                          , ("rosybrown3", RosyBrown3)
+                          , ("rosybrown4", RosyBrown4)
+                          , ("royalblue", RoyalBlue)
+                          , ("royalblue1", RoyalBlue1)
+                          , ("royalblue2", RoyalBlue2)
+                          , ("royalblue3", RoyalBlue3)
+                          , ("royalblue4", RoyalBlue4)
+                          , ("saddlebrown", SaddleBrown)
+                          , ("salmon", Salmon)
+                          , ("salmon1", Salmon1)
+                          , ("salmon2", Salmon2)
+                          , ("salmon3", Salmon3)
+                          , ("salmon4", Salmon4)
+                          , ("sandybrown", SandyBrown)
+                          , ("seagreen", SeaGreen)
+                          , ("seagreen1", SeaGreen1)
+                          , ("seagreen2", SeaGreen2)
+                          , ("seagreen3", SeaGreen3)
+                          , ("seagreen4", SeaGreen4)
+                          , ("seashell", SeaShell)
+                          , ("seashell1", SeaShell1)
+                          , ("seashell2", SeaShell2)
+                          , ("seashell3", SeaShell3)
+                          , ("seashell4", SeaShell4)
+                          , ("sienna", Sienna)
+                          , ("sienna1", Sienna1)
+                          , ("sienna2", Sienna2)
+                          , ("sienna3", Sienna3)
+                          , ("sienna4", Sienna4)
+                          , ("skyblue", SkyBlue)
+                          , ("skyblue1", SkyBlue1)
+                          , ("skyblue2", SkyBlue2)
+                          , ("skyblue3", SkyBlue3)
+                          , ("skyblue4", SkyBlue4)
+                          , ("slateblue", SlateBlue)
+                          , ("slateblue1", SlateBlue1)
+                          , ("slateblue2", SlateBlue2)
+                          , ("slateblue3", SlateBlue3)
+                          , ("slateblue4", SlateBlue4)
+                          , ("slategray", SlateGray)
+                          , ("slategrey", SlateGray)
+                          , ("slategray1", SlateGray1)
+                          , ("slategrey1", SlateGray1)
+                          , ("slategray2", SlateGray2)
+                          , ("slategrey2", SlateGray2)
+                          , ("slategray3", SlateGray3)
+                          , ("slategrey3", SlateGray3)
+                          , ("slategray4", SlateGray4)
+                          , ("slategrey4", SlateGray4)
+                          , ("snow", Snow)
+                          , ("snow1", Snow1)
+                          , ("snow2", Snow2)
+                          , ("snow3", Snow3)
+                          , ("snow4", Snow4)
+                          , ("springgreen", SpringGreen)
+                          , ("springgreen1", SpringGreen1)
+                          , ("springgreen2", SpringGreen2)
+                          , ("springgreen3", SpringGreen3)
+                          , ("springgreen4", SpringGreen4)
+                          , ("steelblue", SteelBlue)
+                          , ("steelblue1", SteelBlue1)
+                          , ("steelblue2", SteelBlue2)
+                          , ("steelblue3", SteelBlue3)
+                          , ("steelblue4", SteelBlue4)
+                          , ("tan", Tan)
+                          , ("tan1", Tan1)
+                          , ("tan2", Tan2)
+                          , ("tan3", Tan3)
+                          , ("tan4", Tan4)
+                          , ("thistle", Thistle)
+                          , ("thistle1", Thistle1)
+                          , ("thistle2", Thistle2)
+                          , ("thistle3", Thistle3)
+                          , ("thistle4", Thistle4)
+                          , ("tomato", Tomato)
+                          , ("tomato1", Tomato1)
+                          , ("tomato2", Tomato2)
+                          , ("tomato3", Tomato3)
+                          , ("tomato4", Tomato4)
+                          , ("transparent", Transparent)
+                          , ("invis", Transparent)
+                          , ("none", Transparent)
+                          , ("turquoise", Turquoise)
+                          , ("turquoise1", Turquoise1)
+                          , ("turquoise2", Turquoise2)
+                          , ("turquoise3", Turquoise3)
+                          , ("turquoise4", Turquoise4)
+                          , ("violet", Violet)
+                          , ("violetred", VioletRed)
+                          , ("violetred1", VioletRed1)
+                          , ("violetred2", VioletRed2)
+                          , ("violetred3", VioletRed3)
+                          , ("violetred4", VioletRed4)
+                          , ("wheat", Wheat)
+                          , ("wheat1", Wheat1)
+                          , ("wheat2", Wheat2)
+                          , ("wheat3", Wheat3)
+                          , ("wheat4", Wheat4)
+                          , ("white", White)
+                          , ("whitesmoke", WhiteSmoke)
+                          , ("yellow", Yellow)
+                          , ("yellow1", Yellow1)
+                          , ("yellow2", Yellow2)
+                          , ("yellow3", Yellow3)
+                          , ("yellow4", Yellow4)
+                          , ("yellowgreen", YellowGreen)
+                          ]
+
+-- | Convert an 'X11Color' to its equivalent 'Colour' value.  Note
+--   that it uses 'AlphaColour' because of 'Transparent'; all other
+--   'X11Color' values are completely opaque.
+x11Colour                      :: X11Color -> AlphaColour Double
+x11Colour AliceBlue            = opaque $ sRGB24 240 248 255
+x11Colour AntiqueWhite         = opaque $ sRGB24 250 235 215
+x11Colour AntiqueWhite1        = opaque $ sRGB24 255 239 219
+x11Colour AntiqueWhite2        = opaque $ sRGB24 238 223 204
+x11Colour AntiqueWhite3        = opaque $ sRGB24 205 192 176
+x11Colour AntiqueWhite4        = opaque $ sRGB24 139 131 120
+x11Colour Aquamarine           = opaque $ sRGB24 127 255 212
+x11Colour Aquamarine1          = opaque $ sRGB24 127 255 212
+x11Colour Aquamarine2          = opaque $ sRGB24 118 238 198
+x11Colour Aquamarine3          = opaque $ sRGB24 102 205 170
+x11Colour Aquamarine4          = opaque $ sRGB24 69  139 116
+x11Colour Azure                = opaque $ sRGB24 240 255 255
+x11Colour Azure1               = opaque $ sRGB24 240 255 255
+x11Colour Azure2               = opaque $ sRGB24 224 238 238
+x11Colour Azure3               = opaque $ sRGB24 193 205 205
+x11Colour Azure4               = opaque $ sRGB24 131 139 139
+x11Colour Beige                = opaque $ sRGB24 245 245 220
+x11Colour Bisque               = opaque $ sRGB24 255 228 196
+x11Colour Bisque1              = opaque $ sRGB24 255 228 196
+x11Colour Bisque2              = opaque $ sRGB24 238 213 183
+x11Colour Bisque3              = opaque $ sRGB24 205 183 158
+x11Colour Bisque4              = opaque $ sRGB24 139 125 107
+x11Colour Black                = opaque $ sRGB24 0   0   0
+x11Colour BlanchedAlmond       = opaque $ sRGB24 255 235 205
+x11Colour Blue                 = opaque $ sRGB24 0   0   255
+x11Colour Blue1                = opaque $ sRGB24 0   0   255
+x11Colour Blue2                = opaque $ sRGB24 0   0   238
+x11Colour Blue3                = opaque $ sRGB24 0   0   205
+x11Colour Blue4                = opaque $ sRGB24 0   0   139
+x11Colour BlueViolet           = opaque $ sRGB24 138 43  226
+x11Colour Brown                = opaque $ sRGB24 165 42  42
+x11Colour Brown1               = opaque $ sRGB24 255 64  64
+x11Colour Brown2               = opaque $ sRGB24 238 59  59
+x11Colour Brown3               = opaque $ sRGB24 205 51  51
+x11Colour Brown4               = opaque $ sRGB24 139 35  35
+x11Colour Burlywood            = opaque $ sRGB24 222 184 135
+x11Colour Burlywood1           = opaque $ sRGB24 255 211 155
+x11Colour Burlywood2           = opaque $ sRGB24 238 197 145
+x11Colour Burlywood3           = opaque $ sRGB24 205 170 125
+x11Colour Burlywood4           = opaque $ sRGB24 139 115 85
+x11Colour CadetBlue            = opaque $ sRGB24 95  158 160
+x11Colour CadetBlue1           = opaque $ sRGB24 152 245 255
+x11Colour CadetBlue2           = opaque $ sRGB24 142 229 238
+x11Colour CadetBlue3           = opaque $ sRGB24 122 197 205
+x11Colour CadetBlue4           = opaque $ sRGB24 83  134 139
+x11Colour Chartreuse           = opaque $ sRGB24 127 255 0
+x11Colour Chartreuse1          = opaque $ sRGB24 127 255 0
+x11Colour Chartreuse2          = opaque $ sRGB24 118 238 0
+x11Colour Chartreuse3          = opaque $ sRGB24 102 205 0
+x11Colour Chartreuse4          = opaque $ sRGB24 69  139 0
+x11Colour Chocolate            = opaque $ sRGB24 210 105 30
+x11Colour Chocolate1           = opaque $ sRGB24 255 127 36
+x11Colour Chocolate2           = opaque $ sRGB24 238 118 33
+x11Colour Chocolate3           = opaque $ sRGB24 205 102 29
+x11Colour Chocolate4           = opaque $ sRGB24 139 69  19
+x11Colour Coral                = opaque $ sRGB24 255 127 80
+x11Colour Coral1               = opaque $ sRGB24 255 114 86
+x11Colour Coral2               = opaque $ sRGB24 238 106 80
+x11Colour Coral3               = opaque $ sRGB24 205 91  69
+x11Colour Coral4               = opaque $ sRGB24 139 62  47
+x11Colour CornFlowerBlue       = opaque $ sRGB24 100 149 237
+x11Colour CornSilk             = opaque $ sRGB24 255 248 220
+x11Colour CornSilk1            = opaque $ sRGB24 255 248 220
+x11Colour CornSilk2            = opaque $ sRGB24 238 232 205
+x11Colour CornSilk3            = opaque $ sRGB24 205 200 177
+x11Colour CornSilk4            = opaque $ sRGB24 139 136 120
+x11Colour Crimson              = opaque $ sRGB24 220 20  60
+x11Colour Cyan                 = opaque $ sRGB24 0   255 255
+x11Colour Cyan1                = opaque $ sRGB24 0   255 255
+x11Colour Cyan2                = opaque $ sRGB24 0   238 238
+x11Colour Cyan3                = opaque $ sRGB24 0   205 205
+x11Colour Cyan4                = opaque $ sRGB24 0   139 139
+x11Colour DarkGoldenrod        = opaque $ sRGB24 184 134 11
+x11Colour DarkGoldenrod1       = opaque $ sRGB24 255 185 15
+x11Colour DarkGoldenrod2       = opaque $ sRGB24 238 173 14
+x11Colour DarkGoldenrod3       = opaque $ sRGB24 205 149 12
+x11Colour DarkGoldenrod4       = opaque $ sRGB24 139 101 8
+x11Colour DarkGreen            = opaque $ sRGB24 0   100 0
+x11Colour Darkkhaki            = opaque $ sRGB24 189 183 107
+x11Colour DarkOliveGreen       = opaque $ sRGB24 85  107 47
+x11Colour DarkOliveGreen1      = opaque $ sRGB24 202 255 112
+x11Colour DarkOliveGreen2      = opaque $ sRGB24 188 238 104
+x11Colour DarkOliveGreen3      = opaque $ sRGB24 162 205 90
+x11Colour DarkOliveGreen4      = opaque $ sRGB24 110 139 61
+x11Colour DarkOrange           = opaque $ sRGB24 255 140 0
+x11Colour DarkOrange1          = opaque $ sRGB24 255 127 0
+x11Colour DarkOrange2          = opaque $ sRGB24 238 118 0
+x11Colour DarkOrange3          = opaque $ sRGB24 205 102 0
+x11Colour DarkOrange4          = opaque $ sRGB24 139 69  0
+x11Colour DarkOrchid           = opaque $ sRGB24 153 50  204
+x11Colour DarkOrchid1          = opaque $ sRGB24 191 62  255
+x11Colour DarkOrchid2          = opaque $ sRGB24 178 58  238
+x11Colour DarkOrchid3          = opaque $ sRGB24 154 50  205
+x11Colour DarkOrchid4          = opaque $ sRGB24 104 34  139
+x11Colour DarkSalmon           = opaque $ sRGB24 233 150 122
+x11Colour DarkSeaGreen         = opaque $ sRGB24 143 188 143
+x11Colour DarkSeaGreen1        = opaque $ sRGB24 193 255 193
+x11Colour DarkSeaGreen2        = opaque $ sRGB24 180 238 180
+x11Colour DarkSeaGreen3        = opaque $ sRGB24 155 205 155
+x11Colour DarkSeaGreen4        = opaque $ sRGB24 105 139 105
+x11Colour DarkSlateBlue        = opaque $ sRGB24 72  61  139
+x11Colour DarkSlateGray        = opaque $ sRGB24 47  79  79
+x11Colour DarkSlateGray1       = opaque $ sRGB24 151 255 255
+x11Colour DarkSlateGray2       = opaque $ sRGB24 141 238 238
+x11Colour DarkSlateGray3       = opaque $ sRGB24 121 205 205
+x11Colour DarkSlateGray4       = opaque $ sRGB24 82  139 139
+x11Colour DarkTurquoise        = opaque $ sRGB24 0   206 209
+x11Colour DarkViolet           = opaque $ sRGB24 148 0   211
+x11Colour DeepPink             = opaque $ sRGB24 255 20  147
+x11Colour DeepPink1            = opaque $ sRGB24 255 20  147
+x11Colour DeepPink2            = opaque $ sRGB24 238 18  137
+x11Colour DeepPink3            = opaque $ sRGB24 205 16  118
+x11Colour DeepPink4            = opaque $ sRGB24 139 10  80
+x11Colour DeepSkyBlue          = opaque $ sRGB24 0   191 255
+x11Colour DeepSkyBlue1         = opaque $ sRGB24 0   191 255
+x11Colour DeepSkyBlue2         = opaque $ sRGB24 0   178 238
+x11Colour DeepSkyBlue3         = opaque $ sRGB24 0   154 205
+x11Colour DeepSkyBlue4         = opaque $ sRGB24 0   104 139
+x11Colour DimGray              = opaque $ sRGB24 105 105 105
+x11Colour DodgerBlue           = opaque $ sRGB24 30  144 255
+x11Colour DodgerBlue1          = opaque $ sRGB24 30  144 255
+x11Colour DodgerBlue2          = opaque $ sRGB24 28  134 238
+x11Colour DodgerBlue3          = opaque $ sRGB24 24  116 205
+x11Colour DodgerBlue4          = opaque $ sRGB24 16  78  139
+x11Colour Firebrick            = opaque $ sRGB24 178 34  34
+x11Colour Firebrick1           = opaque $ sRGB24 255 48  48
+x11Colour Firebrick2           = opaque $ sRGB24 238 44  44
+x11Colour Firebrick3           = opaque $ sRGB24 205 38  38
+x11Colour Firebrick4           = opaque $ sRGB24 139 26  26
+x11Colour FloralWhite          = opaque $ sRGB24 255 250 240
+x11Colour ForestGreen          = opaque $ sRGB24 34  139 34
+x11Colour Gainsboro            = opaque $ sRGB24 220 220 220
+x11Colour GhostWhite           = opaque $ sRGB24 248 248 255
+x11Colour Gold                 = opaque $ sRGB24 255 215 0
+x11Colour Gold1                = opaque $ sRGB24 255 215 0
+x11Colour Gold2                = opaque $ sRGB24 238 201 0
+x11Colour Gold3                = opaque $ sRGB24 205 173 0
+x11Colour Gold4                = opaque $ sRGB24 139 117 0
+x11Colour Goldenrod            = opaque $ sRGB24 218 165 32
+x11Colour Goldenrod1           = opaque $ sRGB24 255 193 37
+x11Colour Goldenrod2           = opaque $ sRGB24 238 180 34
+x11Colour Goldenrod3           = opaque $ sRGB24 205 155 29
+x11Colour Goldenrod4           = opaque $ sRGB24 139 105 20
+x11Colour Gray                 = opaque $ sRGB24 192 192 192
+x11Colour Gray0                = opaque $ sRGB24 0   0   0
+x11Colour Gray1                = opaque $ sRGB24 3   3   3
+x11Colour Gray2                = opaque $ sRGB24 5   5   5
+x11Colour Gray3                = opaque $ sRGB24 8   8   8
+x11Colour Gray4                = opaque $ sRGB24 10  10  10
+x11Colour Gray5                = opaque $ sRGB24 13  13  13
+x11Colour Gray6                = opaque $ sRGB24 15  15  15
+x11Colour Gray7                = opaque $ sRGB24 18  18  18
+x11Colour Gray8                = opaque $ sRGB24 20  20  20
+x11Colour Gray9                = opaque $ sRGB24 23  23  23
+x11Colour Gray10               = opaque $ sRGB24 26  26  26
+x11Colour Gray11               = opaque $ sRGB24 28  28  28
+x11Colour Gray12               = opaque $ sRGB24 31  31  31
+x11Colour Gray13               = opaque $ sRGB24 33  33  33
+x11Colour Gray14               = opaque $ sRGB24 36  36  36
+x11Colour Gray15               = opaque $ sRGB24 38  38  38
+x11Colour Gray16               = opaque $ sRGB24 41  41  41
+x11Colour Gray17               = opaque $ sRGB24 43  43  43
+x11Colour Gray18               = opaque $ sRGB24 46  46  46
+x11Colour Gray19               = opaque $ sRGB24 48  48  48
+x11Colour Gray20               = opaque $ sRGB24 51  51  51
+x11Colour Gray21               = opaque $ sRGB24 54  54  54
+x11Colour Gray22               = opaque $ sRGB24 56  56  56
+x11Colour Gray23               = opaque $ sRGB24 59  59  59
+x11Colour Gray24               = opaque $ sRGB24 61  61  61
+x11Colour Gray25               = opaque $ sRGB24 64  64  64
+x11Colour Gray26               = opaque $ sRGB24 66  66  66
+x11Colour Gray27               = opaque $ sRGB24 69  69  69
+x11Colour Gray28               = opaque $ sRGB24 71  71  71
+x11Colour Gray29               = opaque $ sRGB24 74  74  74
+x11Colour Gray30               = opaque $ sRGB24 77  77  77
+x11Colour Gray31               = opaque $ sRGB24 79  79  79
+x11Colour Gray32               = opaque $ sRGB24 82  82  82
+x11Colour Gray33               = opaque $ sRGB24 84  84  84
+x11Colour Gray34               = opaque $ sRGB24 87  87  87
+x11Colour Gray35               = opaque $ sRGB24 89  89  89
+x11Colour Gray36               = opaque $ sRGB24 92  92  92
+x11Colour Gray37               = opaque $ sRGB24 94  94  94
+x11Colour Gray38               = opaque $ sRGB24 97  97  97
+x11Colour Gray39               = opaque $ sRGB24 99  99  99
+x11Colour Gray40               = opaque $ sRGB24 102 102 102
+x11Colour Gray41               = opaque $ sRGB24 105 105 105
+x11Colour Gray42               = opaque $ sRGB24 107 107 107
+x11Colour Gray43               = opaque $ sRGB24 110 110 110
+x11Colour Gray44               = opaque $ sRGB24 112 112 112
+x11Colour Gray45               = opaque $ sRGB24 115 115 115
+x11Colour Gray46               = opaque $ sRGB24 117 117 117
+x11Colour Gray47               = opaque $ sRGB24 120 120 120
+x11Colour Gray48               = opaque $ sRGB24 122 122 122
+x11Colour Gray49               = opaque $ sRGB24 125 125 125
+x11Colour Gray50               = opaque $ sRGB24 127 127 127
+x11Colour Gray51               = opaque $ sRGB24 130 130 130
+x11Colour Gray52               = opaque $ sRGB24 133 133 133
+x11Colour Gray53               = opaque $ sRGB24 135 135 135
+x11Colour Gray54               = opaque $ sRGB24 138 138 138
+x11Colour Gray55               = opaque $ sRGB24 140 140 140
+x11Colour Gray56               = opaque $ sRGB24 143 143 143
+x11Colour Gray57               = opaque $ sRGB24 145 145 145
+x11Colour Gray58               = opaque $ sRGB24 148 148 148
+x11Colour Gray59               = opaque $ sRGB24 150 150 150
+x11Colour Gray60               = opaque $ sRGB24 153 153 153
+x11Colour Gray61               = opaque $ sRGB24 156 156 156
+x11Colour Gray62               = opaque $ sRGB24 158 158 158
+x11Colour Gray63               = opaque $ sRGB24 161 161 161
+x11Colour Gray64               = opaque $ sRGB24 163 163 163
+x11Colour Gray65               = opaque $ sRGB24 166 166 166
+x11Colour Gray66               = opaque $ sRGB24 168 168 168
+x11Colour Gray67               = opaque $ sRGB24 171 171 171
+x11Colour Gray68               = opaque $ sRGB24 173 173 173
+x11Colour Gray69               = opaque $ sRGB24 176 176 176
+x11Colour Gray70               = opaque $ sRGB24 179 179 179
+x11Colour Gray71               = opaque $ sRGB24 181 181 181
+x11Colour Gray72               = opaque $ sRGB24 184 184 184
+x11Colour Gray73               = opaque $ sRGB24 186 186 186
+x11Colour Gray74               = opaque $ sRGB24 189 189 189
+x11Colour Gray75               = opaque $ sRGB24 191 191 191
+x11Colour Gray76               = opaque $ sRGB24 194 194 194
+x11Colour Gray77               = opaque $ sRGB24 196 196 196
+x11Colour Gray78               = opaque $ sRGB24 199 199 199
+x11Colour Gray79               = opaque $ sRGB24 201 201 201
+x11Colour Gray80               = opaque $ sRGB24 204 204 204
+x11Colour Gray81               = opaque $ sRGB24 207 207 207
+x11Colour Gray82               = opaque $ sRGB24 209 209 209
+x11Colour Gray83               = opaque $ sRGB24 212 212 212
+x11Colour Gray84               = opaque $ sRGB24 214 214 214
+x11Colour Gray85               = opaque $ sRGB24 217 217 217
+x11Colour Gray86               = opaque $ sRGB24 219 219 219
+x11Colour Gray87               = opaque $ sRGB24 222 222 222
+x11Colour Gray88               = opaque $ sRGB24 224 224 224
+x11Colour Gray89               = opaque $ sRGB24 227 227 227
+x11Colour Gray90               = opaque $ sRGB24 229 229 229
+x11Colour Gray91               = opaque $ sRGB24 232 232 232
+x11Colour Gray92               = opaque $ sRGB24 235 235 235
+x11Colour Gray93               = opaque $ sRGB24 237 237 237
+x11Colour Gray94               = opaque $ sRGB24 240 240 240
+x11Colour Gray95               = opaque $ sRGB24 242 242 242
+x11Colour Gray96               = opaque $ sRGB24 245 245 245
+x11Colour Gray97               = opaque $ sRGB24 247 247 247
+x11Colour Gray98               = opaque $ sRGB24 250 250 250
+x11Colour Gray99               = opaque $ sRGB24 252 252 252
+x11Colour Gray100              = opaque $ sRGB24 255 255 255
+x11Colour Green                = opaque $ sRGB24 0   255 0
+x11Colour Green1               = opaque $ sRGB24 0   255 0
+x11Colour Green2               = opaque $ sRGB24 0   238 0
+x11Colour Green3               = opaque $ sRGB24 0   205 0
+x11Colour Green4               = opaque $ sRGB24 0   139 0
+x11Colour GreenYellow          = opaque $ sRGB24 173 255 47
+x11Colour HoneyDew             = opaque $ sRGB24 240 255 240
+x11Colour HoneyDew1            = opaque $ sRGB24 240 255 240
+x11Colour HoneyDew2            = opaque $ sRGB24 224 238 224
+x11Colour HoneyDew3            = opaque $ sRGB24 193 205 193
+x11Colour HoneyDew4            = opaque $ sRGB24 131 139 131
+x11Colour HotPink              = opaque $ sRGB24 255 105 180
+x11Colour HotPink1             = opaque $ sRGB24 255 110 180
+x11Colour HotPink2             = opaque $ sRGB24 238 106 167
+x11Colour HotPink3             = opaque $ sRGB24 205 96  144
+x11Colour HotPink4             = opaque $ sRGB24 139 58  98
+x11Colour IndianRed            = opaque $ sRGB24 205 92  92
+x11Colour IndianRed1           = opaque $ sRGB24 255 106 106
+x11Colour IndianRed2           = opaque $ sRGB24 238 99  99
+x11Colour IndianRed3           = opaque $ sRGB24 205 85  85
+x11Colour IndianRed4           = opaque $ sRGB24 139 58  58
+x11Colour Indigo               = opaque $ sRGB24 75  0   130
+x11Colour Ivory                = opaque $ sRGB24 255 255 240
+x11Colour Ivory1               = opaque $ sRGB24 255 255 240
+x11Colour Ivory2               = opaque $ sRGB24 238 238 224
+x11Colour Ivory3               = opaque $ sRGB24 205 205 193
+x11Colour Ivory4               = opaque $ sRGB24 139 139 131
+x11Colour Khaki                = opaque $ sRGB24 240 230 140
+x11Colour Khaki1               = opaque $ sRGB24 255 246 143
+x11Colour Khaki2               = opaque $ sRGB24 238 230 133
+x11Colour Khaki3               = opaque $ sRGB24 205 198 115
+x11Colour Khaki4               = opaque $ sRGB24 139 134 78
+x11Colour Lavender             = opaque $ sRGB24 230 230 250
+x11Colour LavenderBlush        = opaque $ sRGB24 255 240 245
+x11Colour LavenderBlush1       = opaque $ sRGB24 255 240 245
+x11Colour LavenderBlush2       = opaque $ sRGB24 238 224 229
+x11Colour LavenderBlush3       = opaque $ sRGB24 205 193 197
+x11Colour LavenderBlush4       = opaque $ sRGB24 139 131 134
+x11Colour LawnGreen            = opaque $ sRGB24 124 252 0
+x11Colour LemonChiffon         = opaque $ sRGB24 255 250 205
+x11Colour LemonChiffon1        = opaque $ sRGB24 255 250 205
+x11Colour LemonChiffon2        = opaque $ sRGB24 238 233 191
+x11Colour LemonChiffon3        = opaque $ sRGB24 205 201 165
+x11Colour LemonChiffon4        = opaque $ sRGB24 139 137 112
+x11Colour LightBlue            = opaque $ sRGB24 173 216 230
+x11Colour LightBlue1           = opaque $ sRGB24 191 239 255
+x11Colour LightBlue2           = opaque $ sRGB24 178 223 238
+x11Colour LightBlue3           = opaque $ sRGB24 154 192 205
+x11Colour LightBlue4           = opaque $ sRGB24 104 131 139
+x11Colour LightCoral           = opaque $ sRGB24 240 128 128
+x11Colour LightCyan            = opaque $ sRGB24 224 255 255
+x11Colour LightCyan1           = opaque $ sRGB24 224 255 255
+x11Colour LightCyan2           = opaque $ sRGB24 209 238 238
+x11Colour LightCyan3           = opaque $ sRGB24 180 205 205
+x11Colour LightCyan4           = opaque $ sRGB24 122 139 139
+x11Colour LightGoldenrod       = opaque $ sRGB24 238 221 130
+x11Colour LightGoldenrod1      = opaque $ sRGB24 255 236 139
+x11Colour LightGoldenrod2      = opaque $ sRGB24 238 220 130
+x11Colour LightGoldenrod3      = opaque $ sRGB24 205 190 112
+x11Colour LightGoldenrod4      = opaque $ sRGB24 139 129 76
+x11Colour LightGoldenrodYellow = opaque $ sRGB24 250 250 210
+x11Colour LightGray            = opaque $ sRGB24 211 211 211
+x11Colour LightPink            = opaque $ sRGB24 255 182 193
+x11Colour LightPink1           = opaque $ sRGB24 255 174 185
+x11Colour LightPink2           = opaque $ sRGB24 238 162 173
+x11Colour LightPink3           = opaque $ sRGB24 205 140 149
+x11Colour LightPink4           = opaque $ sRGB24 139 95  101
+x11Colour LightSalmon          = opaque $ sRGB24 255 160 122
+x11Colour LightSalmon1         = opaque $ sRGB24 255 160 122
+x11Colour LightSalmon2         = opaque $ sRGB24 238 149 114
+x11Colour LightSalmon3         = opaque $ sRGB24 205 129 98
+x11Colour LightSalmon4         = opaque $ sRGB24 139 87  66
+x11Colour LightSeaGreen        = opaque $ sRGB24 32  178 170
+x11Colour LightSkyBlue         = opaque $ sRGB24 135 206 250
+x11Colour LightSkyBlue1        = opaque $ sRGB24 176 226 255
+x11Colour LightSkyBlue2        = opaque $ sRGB24 164 211 238
+x11Colour LightSkyBlue3        = opaque $ sRGB24 141 182 205
+x11Colour LightSkyBlue4        = opaque $ sRGB24 96  123 139
+x11Colour LightSlateBlue       = opaque $ sRGB24 132 112 255
+x11Colour LightSlateGray       = opaque $ sRGB24 119 136 153
+x11Colour LightSteelBlue       = opaque $ sRGB24 176 196 222
+x11Colour LightSteelBlue1      = opaque $ sRGB24 202 225 255
+x11Colour LightSteelBlue2      = opaque $ sRGB24 188 210 238
+x11Colour LightSteelBlue3      = opaque $ sRGB24 162 181 205
+x11Colour LightSteelBlue4      = opaque $ sRGB24 110 123 139
+x11Colour LightYellow          = opaque $ sRGB24 255 255 224
+x11Colour LightYellow1         = opaque $ sRGB24 255 255 224
+x11Colour LightYellow2         = opaque $ sRGB24 238 238 209
+x11Colour LightYellow3         = opaque $ sRGB24 205 205 180
+x11Colour LightYellow4         = opaque $ sRGB24 139 139 122
+x11Colour LimeGreen            = opaque $ sRGB24 50  205 50
+x11Colour Linen                = opaque $ sRGB24 250 240 230
+x11Colour Magenta              = opaque $ sRGB24 255 0   255
+x11Colour Magenta1             = opaque $ sRGB24 255 0   255
+x11Colour Magenta2             = opaque $ sRGB24 238 0   238
+x11Colour Magenta3             = opaque $ sRGB24 205 0   205
+x11Colour Magenta4             = opaque $ sRGB24 139 0   139
+x11Colour Maroon               = opaque $ sRGB24 176 48  96
+x11Colour Maroon1              = opaque $ sRGB24 255 52  179
+x11Colour Maroon2              = opaque $ sRGB24 238 48  167
+x11Colour Maroon3              = opaque $ sRGB24 205 41  144
+x11Colour Maroon4              = opaque $ sRGB24 139 28  98
+x11Colour MediumAquamarine     = opaque $ sRGB24 102 205 170
+x11Colour MediumBlue           = opaque $ sRGB24 0   0   205
+x11Colour MediumOrchid         = opaque $ sRGB24 186 85  211
+x11Colour MediumOrchid1        = opaque $ sRGB24 224 102 255
+x11Colour MediumOrchid2        = opaque $ sRGB24 209 95  238
+x11Colour MediumOrchid3        = opaque $ sRGB24 180 82  205
+x11Colour MediumOrchid4        = opaque $ sRGB24 122 55  139
+x11Colour MediumPurple         = opaque $ sRGB24 147 112 219
+x11Colour MediumPurple1        = opaque $ sRGB24 171 130 255
+x11Colour MediumPurple2        = opaque $ sRGB24 159 121 238
+x11Colour MediumPurple3        = opaque $ sRGB24 137 104 205
+x11Colour MediumPurple4        = opaque $ sRGB24 93  71  139
+x11Colour MediumSeaGreen       = opaque $ sRGB24 60  179 113
+x11Colour MediumSlateBlue      = opaque $ sRGB24 123 104 238
+x11Colour MediumSpringGreen    = opaque $ sRGB24 0   250 154
+x11Colour MediumTurquoise      = opaque $ sRGB24 72  209 204
+x11Colour MediumVioletRed      = opaque $ sRGB24 199 21  133
+x11Colour MidnightBlue         = opaque $ sRGB24 25  25  112
+x11Colour MintCream            = opaque $ sRGB24 245 255 250
+x11Colour MistyRose            = opaque $ sRGB24 255 228 225
+x11Colour MistyRose1           = opaque $ sRGB24 255 228 225
+x11Colour MistyRose2           = opaque $ sRGB24 238 213 210
+x11Colour MistyRose3           = opaque $ sRGB24 205 183 181
+x11Colour MistyRose4           = opaque $ sRGB24 139 125 123
+x11Colour Moccasin             = opaque $ sRGB24 255 228 181
+x11Colour NavajoWhite          = opaque $ sRGB24 255 222 173
+x11Colour NavajoWhite1         = opaque $ sRGB24 255 222 173
+x11Colour NavajoWhite2         = opaque $ sRGB24 238 207 161
+x11Colour NavajoWhite3         = opaque $ sRGB24 205 179 139
+x11Colour NavajoWhite4         = opaque $ sRGB24 139 121 94
+x11Colour Navy                 = opaque $ sRGB24 0   0   128
+x11Colour NavyBlue             = opaque $ sRGB24 0   0   128
+x11Colour OldLace              = opaque $ sRGB24 253 245 230
+x11Colour OliveDrab            = opaque $ sRGB24 107 142 35
+x11Colour OliveDrab1           = opaque $ sRGB24 192 255 62
+x11Colour OliveDrab2           = opaque $ sRGB24 179 238 58
+x11Colour OliveDrab3           = opaque $ sRGB24 154 205 50
+x11Colour OliveDrab4           = opaque $ sRGB24 105 139 34
+x11Colour Orange               = opaque $ sRGB24 255 165 0
+x11Colour Orange1              = opaque $ sRGB24 255 165 0
+x11Colour Orange2              = opaque $ sRGB24 238 154 0
+x11Colour Orange3              = opaque $ sRGB24 205 133 0
+x11Colour Orange4              = opaque $ sRGB24 139 90  0
+x11Colour OrangeRed            = opaque $ sRGB24 255 69  0
+x11Colour OrangeRed1           = opaque $ sRGB24 255 69  0
+x11Colour OrangeRed2           = opaque $ sRGB24 238 64  0
+x11Colour OrangeRed3           = opaque $ sRGB24 205 55  0
+x11Colour OrangeRed4           = opaque $ sRGB24 139 37  0
+x11Colour Orchid               = opaque $ sRGB24 218 112 214
+x11Colour Orchid1              = opaque $ sRGB24 255 131 250
+x11Colour Orchid2              = opaque $ sRGB24 238 122 233
+x11Colour Orchid3              = opaque $ sRGB24 205 105 201
+x11Colour Orchid4              = opaque $ sRGB24 139 71  137
+x11Colour PaleGoldenrod        = opaque $ sRGB24 238 232 170
+x11Colour PaleGreen            = opaque $ sRGB24 152 251 152
+x11Colour PaleGreen1           = opaque $ sRGB24 154 255 154
+x11Colour PaleGreen2           = opaque $ sRGB24 144 238 144
+x11Colour PaleGreen3           = opaque $ sRGB24 124 205 124
+x11Colour PaleGreen4           = opaque $ sRGB24 84  139 84
+x11Colour PaleTurquoise        = opaque $ sRGB24 175 238 238
+x11Colour PaleTurquoise1       = opaque $ sRGB24 187 255 255
+x11Colour PaleTurquoise2       = opaque $ sRGB24 174 238 238
+x11Colour PaleTurquoise3       = opaque $ sRGB24 150 205 205
+x11Colour PaleTurquoise4       = opaque $ sRGB24 102 139 139
+x11Colour PaleVioletRed        = opaque $ sRGB24 219 112 147
+x11Colour PaleVioletRed1       = opaque $ sRGB24 255 130 171
+x11Colour PaleVioletRed2       = opaque $ sRGB24 238 121 159
+x11Colour PaleVioletRed3       = opaque $ sRGB24 205 104 137
+x11Colour PaleVioletRed4       = opaque $ sRGB24 139 71  93
+x11Colour PapayaWhip           = opaque $ sRGB24 255 239 213
+x11Colour PeachPuff            = opaque $ sRGB24 255 218 185
+x11Colour PeachPuff1           = opaque $ sRGB24 255 218 185
+x11Colour PeachPuff2           = opaque $ sRGB24 238 203 173
+x11Colour PeachPuff3           = opaque $ sRGB24 205 175 149
+x11Colour PeachPuff4           = opaque $ sRGB24 139 119 101
+x11Colour Peru                 = opaque $ sRGB24 205 133 63
+x11Colour Pink                 = opaque $ sRGB24 255 192 203
+x11Colour Pink1                = opaque $ sRGB24 255 181 197
+x11Colour Pink2                = opaque $ sRGB24 238 169 184
+x11Colour Pink3                = opaque $ sRGB24 205 145 158
+x11Colour Pink4                = opaque $ sRGB24 139 99  108
+x11Colour Plum                 = opaque $ sRGB24 221 160 221
+x11Colour Plum1                = opaque $ sRGB24 255 187 255
+x11Colour Plum2                = opaque $ sRGB24 238 174 238
+x11Colour Plum3                = opaque $ sRGB24 205 150 205
+x11Colour Plum4                = opaque $ sRGB24 139 102 139
+x11Colour PowderBlue           = opaque $ sRGB24 176 224 230
+x11Colour Purple               = opaque $ sRGB24 160 32  240
+x11Colour Purple1              = opaque $ sRGB24 155 48  255
+x11Colour Purple2              = opaque $ sRGB24 145 44  238
+x11Colour Purple3              = opaque $ sRGB24 125 38  205
+x11Colour Purple4              = opaque $ sRGB24 85  26  139
+x11Colour Red                  = opaque $ sRGB24 255 0   0
+x11Colour Red1                 = opaque $ sRGB24 255 0   0
+x11Colour Red2                 = opaque $ sRGB24 238 0   0
+x11Colour Red3                 = opaque $ sRGB24 205 0   0
+x11Colour Red4                 = opaque $ sRGB24 139 0   0
+x11Colour RosyBrown            = opaque $ sRGB24 188 143 143
+x11Colour RosyBrown1           = opaque $ sRGB24 255 193 193
+x11Colour RosyBrown2           = opaque $ sRGB24 238 180 180
+x11Colour RosyBrown3           = opaque $ sRGB24 205 155 155
+x11Colour RosyBrown4           = opaque $ sRGB24 139 105 105
+x11Colour RoyalBlue            = opaque $ sRGB24 65  105 225
+x11Colour RoyalBlue1           = opaque $ sRGB24 72  118 255
+x11Colour RoyalBlue2           = opaque $ sRGB24 67  110 238
+x11Colour RoyalBlue3           = opaque $ sRGB24 58  95  205
+x11Colour RoyalBlue4           = opaque $ sRGB24 39  64  139
+x11Colour SaddleBrown          = opaque $ sRGB24 139 69  19
+x11Colour Salmon               = opaque $ sRGB24 250 128 114
+x11Colour Salmon1              = opaque $ sRGB24 255 140 105
+x11Colour Salmon2              = opaque $ sRGB24 238 130 98
+x11Colour Salmon3              = opaque $ sRGB24 205 112 84
+x11Colour Salmon4              = opaque $ sRGB24 139 76  57
+x11Colour SandyBrown           = opaque $ sRGB24 244 164 96
+x11Colour SeaGreen             = opaque $ sRGB24 46  139 87
+x11Colour SeaGreen1            = opaque $ sRGB24 84  255 159
+x11Colour SeaGreen2            = opaque $ sRGB24 78  238 148
+x11Colour SeaGreen3            = opaque $ sRGB24 67  205 128
+x11Colour SeaGreen4            = opaque $ sRGB24 46  139 87
+x11Colour SeaShell             = opaque $ sRGB24 255 245 238
+x11Colour SeaShell1            = opaque $ sRGB24 255 245 238
+x11Colour SeaShell2            = opaque $ sRGB24 238 229 222
+x11Colour SeaShell3            = opaque $ sRGB24 205 197 191
+x11Colour SeaShell4            = opaque $ sRGB24 139 134 130
+x11Colour Sienna               = opaque $ sRGB24 160 82  45
+x11Colour Sienna1              = opaque $ sRGB24 255 130 71
+x11Colour Sienna2              = opaque $ sRGB24 238 121 66
+x11Colour Sienna3              = opaque $ sRGB24 205 104 57
+x11Colour Sienna4              = opaque $ sRGB24 139 71  38
+x11Colour SkyBlue              = opaque $ sRGB24 135 206 235
+x11Colour SkyBlue1             = opaque $ sRGB24 135 206 255
+x11Colour SkyBlue2             = opaque $ sRGB24 126 192 238
+x11Colour SkyBlue3             = opaque $ sRGB24 108 166 205
+x11Colour SkyBlue4             = opaque $ sRGB24 74  112 139
+x11Colour SlateBlue            = opaque $ sRGB24 106 90  205
+x11Colour SlateBlue1           = opaque $ sRGB24 131 111 255
+x11Colour SlateBlue2           = opaque $ sRGB24 122 103 238
+x11Colour SlateBlue3           = opaque $ sRGB24 105 89  205
+x11Colour SlateBlue4           = opaque $ sRGB24 71  60  139
+x11Colour SlateGray            = opaque $ sRGB24 112 128 144
+x11Colour SlateGray1           = opaque $ sRGB24 198 226 255
+x11Colour SlateGray2           = opaque $ sRGB24 185 211 238
+x11Colour SlateGray3           = opaque $ sRGB24 159 182 205
+x11Colour SlateGray4           = opaque $ sRGB24 108 123 139
+x11Colour Snow                 = opaque $ sRGB24 255 250 250
+x11Colour Snow1                = opaque $ sRGB24 255 250 250
+x11Colour Snow2                = opaque $ sRGB24 238 233 233
+x11Colour Snow3                = opaque $ sRGB24 205 201 201
+x11Colour Snow4                = opaque $ sRGB24 139 137 137
+x11Colour SpringGreen          = opaque $ sRGB24 0   255 127
+x11Colour SpringGreen1         = opaque $ sRGB24 0   255 127
+x11Colour SpringGreen2         = opaque $ sRGB24 0   238 118
+x11Colour SpringGreen3         = opaque $ sRGB24 0   205 102
+x11Colour SpringGreen4         = opaque $ sRGB24 0   139 69
+x11Colour SteelBlue            = opaque $ sRGB24 70  130 180
+x11Colour SteelBlue1           = opaque $ sRGB24 99  184 255
+x11Colour SteelBlue2           = opaque $ sRGB24 92  172 238
+x11Colour SteelBlue3           = opaque $ sRGB24 79  148 205
+x11Colour SteelBlue4           = opaque $ sRGB24 54  100 139
+x11Colour Tan                  = opaque $ sRGB24 210 180 140
+x11Colour Tan1                 = opaque $ sRGB24 255 165 79
+x11Colour Tan2                 = opaque $ sRGB24 238 154 73
+x11Colour Tan3                 = opaque $ sRGB24 205 133 63
+x11Colour Tan4                 = opaque $ sRGB24 139 90  43
+x11Colour Thistle              = opaque $ sRGB24 216 191 216
+x11Colour Thistle1             = opaque $ sRGB24 255 225 255
+x11Colour Thistle2             = opaque $ sRGB24 238 210 238
+x11Colour Thistle3             = opaque $ sRGB24 205 181 205
+x11Colour Thistle4             = opaque $ sRGB24 139 123 139
+x11Colour Tomato               = opaque $ sRGB24 255 99  71
+x11Colour Tomato1              = opaque $ sRGB24 255 99  71
+x11Colour Tomato2              = opaque $ sRGB24 238 92  66
+x11Colour Tomato3              = opaque $ sRGB24 205 79  57
+x11Colour Tomato4              = opaque $ sRGB24 139 54  38
+x11Colour Transparent          = transparent
+x11Colour Turquoise            = opaque $ sRGB24 64  224 208
+x11Colour Turquoise1           = opaque $ sRGB24 0   245 255
+x11Colour Turquoise2           = opaque $ sRGB24 0   229 238
+x11Colour Turquoise3           = opaque $ sRGB24 0   197 205
+x11Colour Turquoise4           = opaque $ sRGB24 0   134 139
+x11Colour Violet               = opaque $ sRGB24 238 130 238
+x11Colour VioletRed            = opaque $ sRGB24 208 32  144
+x11Colour VioletRed1           = opaque $ sRGB24 255 62  150
+x11Colour VioletRed2           = opaque $ sRGB24 238 58  140
+x11Colour VioletRed3           = opaque $ sRGB24 205 50  120
+x11Colour VioletRed4           = opaque $ sRGB24 139 34  82
+x11Colour Wheat                = opaque $ sRGB24 245 222 179
+x11Colour Wheat1               = opaque $ sRGB24 255 231 186
+x11Colour Wheat2               = opaque $ sRGB24 238 216 174
+x11Colour Wheat3               = opaque $ sRGB24 205 186 150
+x11Colour Wheat4               = opaque $ sRGB24 139 126 102
+x11Colour White                = opaque $ sRGB24 255 255 255
+x11Colour WhiteSmoke           = opaque $ sRGB24 245 245 245
+x11Colour Yellow               = opaque $ sRGB24 255 255 0
+x11Colour Yellow1              = opaque $ sRGB24 255 255 0
+x11Colour Yellow2              = opaque $ sRGB24 238 238 0
+x11Colour Yellow3              = opaque $ sRGB24 205 205 0
+x11Colour Yellow4              = opaque $ sRGB24 139 139 0
+x11Colour YellowGreen          = opaque $ sRGB24 154 205 50
diff --git a/Data/GraphViz/Attributes/Complete.hs b/Data/GraphViz/Attributes/Complete.hs
--- a/Data/GraphViz/Attributes/Complete.hs
+++ b/Data/GraphViz/Attributes/Complete.hs
@@ -26,12 +26,14 @@
 
    * @ColorList@, @DoubleList@ and @PointfList@ are defined as actual
      lists (@'LayerList'@ needs a newtype for other reasons).  All of these
-     are assumed to be non-empty lists.  Note that for the @Color@
-     'Attribute' for node values, only a single Color is valid; edges are
-     allowed multiple colors with one spline/arrow per color in the list
-     (but you must have at least one 'Color' in the list).  This might be
-     changed in future.
+     are assumed to be non-empty lists.
 
+   * For the various @*Color@ attributes that take in a list of
+     'Color' values, usually only one color is used.  The @Color@
+     attribute for edges allows multiple values; for other attributes,
+     two values are supported for gradient fills in Graphviz >=
+     2.29.0.
+
    * Style is implemented as a list of 'StyleItem' values; note that
      empty lists are not allowed.
 
@@ -65,6 +67,12 @@
      supports UTF-8 encoding (as it is not currently feasible nor needed to
      also support Latin1 encoding).
 
+   * In Graphviz, when a node or edge has a list of attributes, the
+     colorscheme which is used to identify a color can be set /after/
+     that color (e.g. @[colorscheme=x11,color=grey,colorscheme=svg]@
+     uses the svg colorscheme's definition of grey, which is different
+     from the x11 one.  Instead, graphviz parses them in order.
+
  -}
 module Data.GraphViz.Attributes.Complete
        ( -- * The actual /Dot/ attributes.
@@ -101,7 +109,7 @@
        , EscString
        , Label(..)
        , VerticalPlacement(..)
-       , module Data.GraphViz.Attributes.HTML
+       , LabelScheme(..)
          -- *** Types representing the Dot grammar for records.
        , RecordFields
        , RecordField(..)
@@ -110,6 +118,7 @@
 
          -- ** Nodes
        , Shape(..)
+       , Paths(..)
        , ScaleType(..)
 
          -- ** Edges
@@ -142,6 +151,7 @@
        , Model(..)
        , Overlap(..)
        , Root(..)
+       , Order(..)
        , OutputMode(..)
        , Pack(..)
        , PackMode(..)
@@ -172,7 +182,8 @@
        ) where
 
 import Data.GraphViz.Attributes.Colors
-import Data.GraphViz.Attributes.HTML
+import Data.GraphViz.Attributes.Colors.X11(X11Color(Transparent, Black))
+import qualified Data.GraphViz.Attributes.HTML as Html
 import Data.GraphViz.Attributes.Internal
 import Data.GraphViz.Util
 import Data.GraphViz.Parsing
@@ -180,13 +191,14 @@
 import Data.GraphViz.State(getLayerSep, setLayerSep)
 import Data.GraphViz.Exception(GraphvizException(NotCustomAttr), throw)
 
-import Data.List(partition)
+import Data.List(partition, intercalate)
 import Data.Maybe(isJust)
 import Data.Word(Word16)
 import qualified Data.Set as S
 import qualified Data.Text.Lazy as T
 import Data.Text.Lazy(Text)
 import Control.Monad(liftM, liftM2)
+import System.FilePath(searchPathSeparator, splitSearchPath)
 
 -- -----------------------------------------------------------------------------
 
@@ -236,20 +248,20 @@
   | ArrowSize Double                    -- ^ /Valid for/: E; /Default/: @1.0@; /Minimum/: @0.0@
   | ArrowTail ArrowType                 -- ^ /Valid for/: E; /Default/: @'normal'@
   | Aspect AspectType                   -- ^ /Valid for/: G; /Notes/: dot only
-  | Bb Rect                             -- ^ /Valid for/: G; /Notes/: write only
-  | BgColor Color                       -- ^ /Valid for/: GC; /Default/: @'X11Color' 'Transparent'@
+  | BoundingBox Rect                    -- ^ /Valid for/: G; /Notes/: write only
+  | ColorScheme ColorScheme             -- ^ /Valid for/: ENCG; /Default/: @'X11'@
+  | BgColor [Color]                     -- ^ /Valid for/: GC; /Default/: @['X11Color' 'Transparent']@
   | Center Bool                         -- ^ /Valid for/: G; /Default/: @'False'@; /Parsing Default/: 'True'
   | ClusterRank ClusterMode             -- ^ /Valid for/: G; /Default/: @'Local'@; /Notes/: dot only
-  | ColorScheme ColorScheme             -- ^ /Valid for/: ENCG; /Default/: @'X11'@
   | Color [Color]                       -- ^ /Valid for/: ENC; /Default/: @['X11Color' 'Black']@
   | Comment Text                        -- ^ /Valid for/: ENG; /Default/: @\"\"@
   | Compound Bool                       -- ^ /Valid for/: G; /Default/: @'False'@; /Parsing Default/: 'True'; /Notes/: dot only
   | Concentrate Bool                    -- ^ /Valid for/: G; /Default/: @'False'@; /Parsing Default/: 'True'
   | Constraint Bool                     -- ^ /Valid for/: E; /Default/: @'True'@; /Parsing Default/: 'True'; /Notes/: dot only
   | Decorate Bool                       -- ^ /Valid for/: E; /Default/: @'False'@; /Parsing Default/: 'True'
-  | DefaultDist Double                  -- ^ /Valid for/: G; /Default/: @1+(avg. len)*sqrt(|V|)@; /Minimum/: @epsilon@; /Notes/: neato only
-  | Dimen Int                           -- ^ /Valid for/: G; /Default/: @2@; /Minimum/: @2@; /Notes/: sfdp, fdp, neato only
+  | DefaultDist Double                  -- ^ /Valid for/: G; /Default/: @1+(avg. len)*sqrt(|V|)@; /Minimum/: @epsilon@; /Notes/: neato only, only if @'Pack' 'DontPack'
   | Dim Int                             -- ^ /Valid for/: G; /Default/: @2@; /Minimum/: @2@; /Notes/: sfdp, fdp, neato only
+  | Dimen Int                           -- ^ /Valid for/: G; /Default/: @2@; /Minimum/: @2@; /Notes/: sfdp, fdp, neato only
   | Dir DirType                         -- ^ /Valid for/: E; /Default/: @'Forward'@ (directed), @'NoDir'@ (undirected)
   | DirEdgeConstraints DEConstraints    -- ^ /Valid for/: G; /Default/: @'NoConstraints'@; /Parsing Default/: 'EdgeConstraints'; /Notes/: neato only
   | Distortion Double                   -- ^ /Valid for/: N; /Default/: @0.0@; /Minimum/: @-100.0@
@@ -259,13 +271,15 @@
   | EdgeTooltip EscString               -- ^ /Valid for/: E; /Default/: @\"\"@; /Notes/: svg, cmap only
   | Epsilon Double                      -- ^ /Valid for/: G; /Default/: @.0001 * # nodes@ (@mode == 'KK'@), @.0001@ (@mode == 'Major'@); /Notes/: neato only
   | ESep DPoint                         -- ^ /Valid for/: G; /Default/: @'DVal' 3@; /Notes/: not dot
-  | FillColor Color                     -- ^ /Valid for/: NC; /Default/: @'X11Color' 'LightGray'@ (nodes), @'X11Color' 'Black'@ (clusters)
+  | FillColor [Color]                   -- ^ /Valid for/: NEC; /Default/: @['X11Color' 'LightGray']@ (nodes), @['X11Color' 'Black']@ (clusters)
   | FixedSize Bool                      -- ^ /Valid for/: N; /Default/: @'False'@; /Parsing Default/: 'True'
   | FontColor Color                     -- ^ /Valid for/: ENGC; /Default/: @'X11Color' 'Black'@
   | FontName Text                       -- ^ /Valid for/: ENGC; /Default/: @\"Times-Roman\"@
   | FontNames Text                      -- ^ /Valid for/: G; /Default/: @\"\"@; /Notes/: svg only
   | FontPath Text                       -- ^ /Valid for/: G; /Default/: system dependent
   | FontSize Double                     -- ^ /Valid for/: ENGC; /Default/: @14.0@; /Minimum/: @1.0@
+  | ForceLabels Bool                    -- ^ /Valid for/: G; /Default/: @'False'@; /Parsing Default/: 'True'; /Notes/: Only for 'XLabel' attributes, requires Graphviz >= 2.29.0
+  | GradientAngle Int                   -- ^ /Valid for/: NCG; /Default/: 0; /Notes/: requires Graphviz >= 2.29.0
   | Group Text                          -- ^ /Valid for/: N; /Default/: @\"\"@; /Notes/: dot only
   | HeadURL EscString                   -- ^ /Valid for/: E; /Default/: @\"\"@; /Notes/: svg, map only
   | HeadClip Bool                       -- ^ /Valid for/: E; /Default/: @'True'@; /Parsing Default/: 'True'
@@ -274,10 +288,13 @@
   | HeadTarget EscString                -- ^ /Valid for/: E; /Default/: none; /Notes/: svg, map only
   | HeadTooltip EscString               -- ^ /Valid for/: E; /Default/: @\"\"@; /Notes/: svg, cmap only
   | Height Double                       -- ^ /Valid for/: N; /Default/: @0.5@; /Minimum/: @0.02@
-  | ID Label                            -- ^ /Valid for/: GNE; /Default/: @'StrLabel' \"\"@; /Notes/: svg, postscript, map only
+  | ID EscString                        -- ^ /Valid for/: GNE; /Default/: @\"\"; /Notes/: svg, postscript, map only
   | Image Text                          -- ^ /Valid for/: N; /Default/: @\"\"@
+  | ImagePath Paths                     -- ^ /Valid for/: G; /Default/: @'Paths' []@; /Notes/: Printing and parsing is OS-specific, requires Graphviz >= 2.29.0
   | ImageScale ScaleType                -- ^ /Valid for/: N; /Default/: @'NoScale'@; /Parsing Default/: 'UniformScale'
+  | Label Label                         -- ^ /Valid for/: ENGC; /Default/: @'StrLabel' \"\\N\"@ (nodes), @'StrLabel' \"\"@ (otherwise)
   | LabelURL EscString                  -- ^ /Valid for/: E; /Default/: @\"\"@; /Notes/: svg, map only
+  | LabelScheme LabelScheme             -- ^ /Valid for/: G; /Default/: @'NotEdgeLabel'@; /Notes/: sfdp only, requires Graphviz >= 2.28.0
   | LabelAngle Double                   -- ^ /Valid for/: E; /Default/: @-25.0@; /Minimum/: @-180.0@
   | LabelDistance Double                -- ^ /Valid for/: E; /Default/: @1.0@; /Minimum/: @0.0@
   | LabelFloat Bool                     -- ^ /Valid for/: E; /Default/: @'False'@; /Parsing Default/: 'True'
@@ -288,41 +305,42 @@
   | LabelLoc VerticalPlacement          -- ^ /Valid for/: GCN; /Default/: @'VTop'@ (clusters), @'VBottom'@ (root graphs), @'VCenter'@ (nodes)
   | LabelTarget EscString               -- ^ /Valid for/: E; /Default/: none; /Notes/: svg, map only
   | LabelTooltip EscString              -- ^ /Valid for/: E; /Default/: @\"\"@; /Notes/: svg, cmap only
-  | Label Label                         -- ^ /Valid for/: ENGC; /Default/: @'StrLabel' \"\\N\"@ (nodes), @'StrLabel' \"\"@ (otherwise)
   | Landscape Bool                      -- ^ /Valid for/: G; /Default/: @'False'@; /Parsing Default/: 'True'
-  | LayerSep LayerSep                   -- ^ /Valid for/: G; /Default/: @'LSep' \" :\t\"@
-  | Layers LayerList                    -- ^ /Valid for/: G; /Default/: @'LL' []@
   | Layer LayerRange                    -- ^ /Valid for/: EN
+  | Layers LayerList                    -- ^ /Valid for/: G; /Default/: @'LL' []@
+  | LayerSep LayerSep                   -- ^ /Valid for/: G; /Default/: @'LSep' \" :\t\"@
   | Layout Text                         -- ^ /Valid for/: G; /Default/: @\"\"@
   | Len Double                          -- ^ /Valid for/: E; /Default/: @1.0@ (neato), @0.3@ (fdp); /Notes/: fdp, neato only
   | LevelsGap Double                    -- ^ /Valid for/: G; /Default/: @0.0@; /Notes/: neato only
   | Levels Int                          -- ^ /Valid for/: G; /Default/: @'maxBound'@; /Minimum/: @0@; /Notes/: sfdp only
   | LHead Text                          -- ^ /Valid for/: E; /Default/: @\"\"@; /Notes/: dot only
+  | LHeight Double                      -- ^ /Valid for/: GC; /Notes/: write only, requires Graphviz >= 2.28.0
   | LPos Point                          -- ^ /Valid for/: EGC; /Notes/: write only
   | LTail Text                          -- ^ /Valid for/: E; /Default/: @\"\"@; /Notes/: dot only
+  | LWidth Double                       -- ^ /Valid for/: GC; /Notes/: write only, requires Graphviz >= 2.28.0
   | Margin DPoint                       -- ^ /Valid for/: NG; /Default/: device dependent
   | MaxIter Int                         -- ^ /Valid for/: G; /Default/: @100 * # nodes@ (@mode == 'KK'@), @200@ (@mode == 'Major'@), @600@ (fdp); /Notes/: fdp, neato only
   | MCLimit Double                      -- ^ /Valid for/: G; /Default/: @1.0@; /Notes/: dot only
   | MinDist Double                      -- ^ /Valid for/: G; /Default/: @1.0@; /Minimum/: @0.0@; /Notes/: circo only
   | MinLen Int                          -- ^ /Valid for/: E; /Default/: @1@; /Minimum/: @0@; /Notes/: dot only
-  | Model Model                         -- ^ /Valid for/: G; /Default/: @'ShortPath'@; /Notes/: neato only
   | Mode ModeType                       -- ^ /Valid for/: G; /Default/: @'Major'@; /Notes/: neato only
+  | Model Model                         -- ^ /Valid for/: G; /Default/: @'ShortPath'@; /Notes/: neato only
   | Mosek Bool                          -- ^ /Valid for/: G; /Default/: @'False'@; /Parsing Default/: 'True'; /Notes/: neato only; requires the Mosek software
   | NodeSep Double                      -- ^ /Valid for/: G; /Default/: @0.25@; /Minimum/: @0.02@; /Notes/: dot only
   | NoJustify Bool                      -- ^ /Valid for/: GCNE; /Default/: @'False'@; /Parsing Default/: 'True'
   | Normalize Bool                      -- ^ /Valid for/: G; /Default/: @'False'@; /Parsing Default/: 'True'; /Notes/: not dot
-  | Nslimit1 Double                     -- ^ /Valid for/: G; /Notes/: dot only
   | Nslimit Double                      -- ^ /Valid for/: G; /Notes/: dot only
-  | Ordering Text                       -- ^ /Valid for/: G; /Default/: @\"\"@; /Notes/: dot only
+  | Nslimit1 Double                     -- ^ /Valid for/: G; /Notes/: dot only
+  | Ordering Order                      -- ^ /Valid for/: GN; /Default/: none; /Notes/: dot only
   | Orientation Double                  -- ^ /Valid for/: N; /Default/: @0.0@; /Minimum/: @360.0@
   | OutputOrder OutputMode              -- ^ /Valid for/: G; /Default/: @'BreadthFirst'@
-  | OverlapScaling Double               -- ^ /Valid for/: G; /Default/: @-4@; /Minimum/: @-1.0e10@; /Notes/: prism only
   | Overlap Overlap                     -- ^ /Valid for/: G; /Default/: @'KeepOverlaps'@; /Parsing Default/: 'KeepOverlaps'; /Notes/: not dot
-  | PackMode PackMode                   -- ^ /Valid for/: G; /Default/: @'PackNode'@; /Notes/: not dot
+  | OverlapScaling Double               -- ^ /Valid for/: G; /Default/: @-4@; /Minimum/: @-1.0e10@; /Notes/: prism only
   | Pack Pack                           -- ^ /Valid for/: G; /Default/: @'DontPack'@; /Parsing Default/: 'DoPack'; /Notes/: not dot
+  | PackMode PackMode                   -- ^ /Valid for/: G; /Default/: @'PackNode'@; /Notes/: not dot
   | Pad DPoint                          -- ^ /Valid for/: G; /Default/: @'DVal' 0.0555@ (4 points)
-  | PageDir PageDir                     -- ^ /Valid for/: G; /Default/: @'Bl'@
   | Page Point                          -- ^ /Valid for/: G
+  | PageDir PageDir                     -- ^ /Valid for/: G; /Default/: @'Bl'@
   | PenColor Color                      -- ^ /Valid for/: C; /Default/: @'X11Color' 'Black'@
   | PenWidth Double                     -- ^ /Valid for/: CNE; /Default/: @1.0@; /Minimum/: @0.0@
   | Peripheries Int                     -- ^ /Valid for/: NC; /Default/: shape default (nodes), @1@ (clusters); /Minimum/: 0
@@ -330,9 +348,9 @@
   | Pos Pos                             -- ^ /Valid for/: EN
   | QuadTree QuadType                   -- ^ /Valid for/: G; /Default/: @'NormalQT'@; /Parsing Default/: 'NormalQT'; /Notes/: sfdp only
   | Quantum Double                      -- ^ /Valid for/: G; /Default/: @0.0@; /Minimum/: @0.0@
+  | Rank RankType                       -- ^ /Valid for/: S; /Notes/: dot only
   | RankDir RankDir                     -- ^ /Valid for/: G; /Default/: @'FromTop'@; /Notes/: dot only
   | RankSep [Double]                    -- ^ /Valid for/: G; /Default/: @[0.5]@ (dot), @[1.0]@ (twopi); /Minimum/: [0.02]; /Notes/: twopi, dot only
-  | Rank RankType                       -- ^ /Valid for/: S; /Notes/: dot only
   | Ratio Ratios                        -- ^ /Valid for/: G
   | Rects [Rect]                        -- ^ /Valid for/: N; /Notes/: write only
   | Regular Bool                        -- ^ /Valid for/: N; /Default/: @'False'@; /Parsing Default/: 'True'
@@ -340,13 +358,15 @@
   | RepulsiveForce Double               -- ^ /Valid for/: G; /Default/: @1.0@; /Minimum/: @0.0@; /Notes/: sfdp only
   | Root Root                           -- ^ /Valid for/: GN; /Default/: @'NodeName' \"\"@ (graphs), @'NotCentral'@ (nodes); /Parsing Default/: 'IsCentral'; /Notes/: circo, twopi only
   | Rotate Int                          -- ^ /Valid for/: G; /Default/: @0@
+  | Rotation Double                     -- ^ /Valid for/: G; /Default/: @0@; /Notes/: sfdp only, requires Graphviz >= 2.28.0
   | SameHead Text                       -- ^ /Valid for/: E; /Default/: @\"\"@; /Notes/: dot only
   | SameTail Text                       -- ^ /Valid for/: E; /Default/: @\"\"@; /Notes/: dot only
   | SamplePoints Int                    -- ^ /Valid for/: N; /Default/: @8@ (output), @20@ (overlap and image maps)
+  | Scale DPoint                        -- ^ /Valid for/: G; /Notes/: twopi only, requires Graphviz >= 2.28.0
   | SearchSize Int                      -- ^ /Valid for/: G; /Default/: @30@; /Notes/: dot only
   | Sep DPoint                          -- ^ /Valid for/: G; /Default/: @'DVal' 4@; /Notes/: not dot
-  | ShapeFile Text                      -- ^ /Valid for/: N; /Default/: @\"\"@
   | Shape Shape                         -- ^ /Valid for/: N; /Default/: @'Ellipse'@
+  | ShapeFile Text                      -- ^ /Valid for/: N; /Default/: @\"\"@
   | ShowBoxes Int                       -- ^ /Valid for/: ENG; /Default/: @0@; /Minimum/: @0@; /Notes/: dot only
   | Sides Int                           -- ^ /Valid for/: N; /Default/: @4@; /Minimum/: @0@
   | Size Point                          -- ^ /Valid for/: G
@@ -355,8 +375,8 @@
   | SortV Word16                        -- ^ /Valid for/: GCN; /Default/: @0@; /Minimum/: @0@
   | Splines EdgeType                    -- ^ /Valid for/: G; /Parsing Default/: 'SplineEdges'
   | Start StartType                     -- ^ /Valid for/: G; /Notes/: fdp, neato only
-  | StyleSheet Text                     -- ^ /Valid for/: G; /Default/: @\"\"@; /Notes/: svg only
   | Style [StyleItem]                   -- ^ /Valid for/: ENC
+  | StyleSheet Text                     -- ^ /Valid for/: G; /Default/: @\"\"@; /Notes/: svg only
   | TailURL EscString                   -- ^ /Valid for/: E; /Default/: @\"\"@; /Notes/: svg, map only
   | TailClip Bool                       -- ^ /Valid for/: E; /Default/: @'True'@; /Parsing Default/: 'True'
   | TailLabel Label                     -- ^ /Valid for/: E; /Default/: @'StrLabel' \"\"@
@@ -371,6 +391,7 @@
   | VoroMargin Double                   -- ^ /Valid for/: G; /Default/: @0.05@; /Minimum/: @0.0@; /Notes/: not dot
   | Weight Double                       -- ^ /Valid for/: E; /Default/: @1.0@; /Minimum/: @0@ (dot), @1@ (neato,fdp,sfdp)
   | Width Double                        -- ^ /Valid for/: N; /Default/: @0.75@; /Minimum/: @0.01@
+  | XLabel Label                        -- ^ /Valid for/: EN; /Default/: @'StrLabel' \"\"@; /Notes/: requires Graphviz >= 2.29.0
   | Z Double                            -- ^ /Valid for/: N; /Default/: @0.0@; /Minimum/: @-MAXFLOAT@, @-1000@
   | UnknownAttribute AttributeName Text -- ^ /Valid for/: Assumed valid for all; the fields are 'Attribute' name and value respectively.
   deriving (Eq, Ord, Show, Read)
@@ -388,11 +409,11 @@
   unqtDot (ArrowSize v)          = printField "arrowsize" v
   unqtDot (ArrowTail v)          = printField "arrowtail" v
   unqtDot (Aspect v)             = printField "aspect" v
-  unqtDot (Bb v)                 = printField "bb" v
+  unqtDot (BoundingBox v)        = printField "bb" v
+  unqtDot (ColorScheme v)        = printField "colorscheme" v
   unqtDot (BgColor v)            = printField "bgcolor" v
   unqtDot (Center v)             = printField "center" v
   unqtDot (ClusterRank v)        = printField "clusterrank" v
-  unqtDot (ColorScheme v)        = printField "colorscheme" v
   unqtDot (Color v)              = printField "color" v
   unqtDot (Comment v)            = printField "comment" v
   unqtDot (Compound v)           = printField "compound" v
@@ -400,8 +421,8 @@
   unqtDot (Constraint v)         = printField "constraint" v
   unqtDot (Decorate v)           = printField "decorate" v
   unqtDot (DefaultDist v)        = printField "defaultdist" v
-  unqtDot (Dimen v)              = printField "dimen" v
   unqtDot (Dim v)                = printField "dim" v
+  unqtDot (Dimen v)              = printField "dimen" v
   unqtDot (Dir v)                = printField "dir" v
   unqtDot (DirEdgeConstraints v) = printField "diredgeconstraints" v
   unqtDot (Distortion v)         = printField "distortion" v
@@ -418,6 +439,8 @@
   unqtDot (FontNames v)          = printField "fontnames" v
   unqtDot (FontPath v)           = printField "fontpath" v
   unqtDot (FontSize v)           = printField "fontsize" v
+  unqtDot (ForceLabels v)        = printField "forcelabels" v
+  unqtDot (GradientAngle v)      = printField "gradientangle" v
   unqtDot (Group v)              = printField "group" v
   unqtDot (HeadURL v)            = printField "headURL" v
   unqtDot (HeadClip v)           = printField "headclip" v
@@ -428,8 +451,11 @@
   unqtDot (Height v)             = printField "height" v
   unqtDot (ID v)                 = printField "id" v
   unqtDot (Image v)              = printField "image" v
+  unqtDot (ImagePath v)          = printField "imagepath" v
   unqtDot (ImageScale v)         = printField "imagescale" v
+  unqtDot (Label v)              = printField "label" v
   unqtDot (LabelURL v)           = printField "labelURL" v
+  unqtDot (LabelScheme v)        = printField "label_scheme" v
   unqtDot (LabelAngle v)         = printField "labelangle" v
   unqtDot (LabelDistance v)      = printField "labeldistance" v
   unqtDot (LabelFloat v)         = printField "labelfloat" v
@@ -440,41 +466,42 @@
   unqtDot (LabelLoc v)           = printField "labelloc" v
   unqtDot (LabelTarget v)        = printField "labeltarget" v
   unqtDot (LabelTooltip v)       = printField "labeltooltip" v
-  unqtDot (Label v)              = printField "label" v
   unqtDot (Landscape v)          = printField "landscape" v
-  unqtDot (LayerSep v)           = printField "layersep" v
-  unqtDot (Layers v)             = printField "layers" v
   unqtDot (Layer v)              = printField "layer" v
+  unqtDot (Layers v)             = printField "layers" v
+  unqtDot (LayerSep v)           = printField "layersep" v
   unqtDot (Layout v)             = printField "layout" v
   unqtDot (Len v)                = printField "len" v
   unqtDot (LevelsGap v)          = printField "levelsgap" v
   unqtDot (Levels v)             = printField "levels" v
   unqtDot (LHead v)              = printField "lhead" v
+  unqtDot (LHeight v)            = printField "LHeight" v
   unqtDot (LPos v)               = printField "lp" v
   unqtDot (LTail v)              = printField "ltail" v
+  unqtDot (LWidth v)             = printField "lwidth" v
   unqtDot (Margin v)             = printField "margin" v
   unqtDot (MaxIter v)            = printField "maxiter" v
   unqtDot (MCLimit v)            = printField "mclimit" v
   unqtDot (MinDist v)            = printField "mindist" v
   unqtDot (MinLen v)             = printField "minlen" v
-  unqtDot (Model v)              = printField "model" v
   unqtDot (Mode v)               = printField "mode" v
+  unqtDot (Model v)              = printField "model" v
   unqtDot (Mosek v)              = printField "mosek" v
   unqtDot (NodeSep v)            = printField "nodesep" v
   unqtDot (NoJustify v)          = printField "nojustify" v
   unqtDot (Normalize v)          = printField "normalize" v
-  unqtDot (Nslimit1 v)           = printField "nslimit1" v
   unqtDot (Nslimit v)            = printField "nslimit" v
+  unqtDot (Nslimit1 v)           = printField "nslimit1" v
   unqtDot (Ordering v)           = printField "ordering" v
   unqtDot (Orientation v)        = printField "orientation" v
   unqtDot (OutputOrder v)        = printField "outputorder" v
-  unqtDot (OverlapScaling v)     = printField "overlap_scaling" v
   unqtDot (Overlap v)            = printField "overlap" v
-  unqtDot (PackMode v)           = printField "packmode" v
+  unqtDot (OverlapScaling v)     = printField "overlap_scaling" v
   unqtDot (Pack v)               = printField "pack" v
+  unqtDot (PackMode v)           = printField "packmode" v
   unqtDot (Pad v)                = printField "pad" v
-  unqtDot (PageDir v)            = printField "pagedir" v
   unqtDot (Page v)               = printField "page" v
+  unqtDot (PageDir v)            = printField "pagedir" v
   unqtDot (PenColor v)           = printField "pencolor" v
   unqtDot (PenWidth v)           = printField "penwidth" v
   unqtDot (Peripheries v)        = printField "peripheries" v
@@ -482,9 +509,9 @@
   unqtDot (Pos v)                = printField "pos" v
   unqtDot (QuadTree v)           = printField "quadtree" v
   unqtDot (Quantum v)            = printField "quantum" v
+  unqtDot (Rank v)               = printField "rank" v
   unqtDot (RankDir v)            = printField "rankdir" v
   unqtDot (RankSep v)            = printField "ranksep" v
-  unqtDot (Rank v)               = printField "rank" v
   unqtDot (Ratio v)              = printField "ratio" v
   unqtDot (Rects v)              = printField "rects" v
   unqtDot (Regular v)            = printField "regular" v
@@ -492,13 +519,15 @@
   unqtDot (RepulsiveForce v)     = printField "repulsiveforce" v
   unqtDot (Root v)               = printField "root" v
   unqtDot (Rotate v)             = printField "rotate" v
+  unqtDot (Rotation v)           = printField "rotation" v
   unqtDot (SameHead v)           = printField "samehead" v
   unqtDot (SameTail v)           = printField "sametail" v
   unqtDot (SamplePoints v)       = printField "samplepoints" v
+  unqtDot (Scale v)              = printField "scale" v
   unqtDot (SearchSize v)         = printField "searchsize" v
   unqtDot (Sep v)                = printField "sep" v
-  unqtDot (ShapeFile v)          = printField "shapefile" v
   unqtDot (Shape v)              = printField "shape" v
+  unqtDot (ShapeFile v)          = printField "shapefile" v
   unqtDot (ShowBoxes v)          = printField "showboxes" v
   unqtDot (Sides v)              = printField "sides" v
   unqtDot (Size v)               = printField "size" v
@@ -507,8 +536,8 @@
   unqtDot (SortV v)              = printField "sortv" v
   unqtDot (Splines v)            = printField "splines" v
   unqtDot (Start v)              = printField "start" v
-  unqtDot (StyleSheet v)         = printField "stylesheet" v
   unqtDot (Style v)              = printField "style" v
+  unqtDot (StyleSheet v)         = printField "stylesheet" v
   unqtDot (TailURL v)            = printField "tailURL" v
   unqtDot (TailClip v)           = printField "tailclip" v
   unqtDot (TailLabel v)          = printField "taillabel" v
@@ -523,6 +552,7 @@
   unqtDot (VoroMargin v)         = printField "voro_margin" v
   unqtDot (Weight v)             = printField "weight" v
   unqtDot (Width v)              = printField "width" v
+  unqtDot (XLabel v)             = printField "xlabel" v
   unqtDot (Z v)                  = printField "z" v
   unqtDot (UnknownAttribute a v) = toDot a <> equals <> toDot v
 
@@ -536,11 +566,11 @@
                                   , parseField ArrowSize "arrowsize"
                                   , parseField ArrowTail "arrowtail"
                                   , parseField Aspect "aspect"
-                                  , parseField Bb "bb"
+                                  , parseField BoundingBox "bb"
+                                  , parseField ColorScheme "colorscheme"
                                   , parseField BgColor "bgcolor"
                                   , parseFieldBool Center "center"
                                   , parseField ClusterRank "clusterrank"
-                                  , parseField ColorScheme "colorscheme"
                                   , parseField Color "color"
                                   , parseField Comment "comment"
                                   , parseFieldBool Compound "compound"
@@ -548,8 +578,8 @@
                                   , parseFieldBool Constraint "constraint"
                                   , parseFieldBool Decorate "decorate"
                                   , parseField DefaultDist "defaultdist"
-                                  , parseField Dimen "dimen"
                                   , parseField Dim "dim"
+                                  , parseField Dimen "dimen"
                                   , parseField Dir "dir"
                                   , parseFieldDef DirEdgeConstraints EdgeConstraints "diredgeconstraints"
                                   , parseField Distortion "distortion"
@@ -566,6 +596,8 @@
                                   , parseField FontNames "fontnames"
                                   , parseField FontPath "fontpath"
                                   , parseField FontSize "fontsize"
+                                  , parseFieldBool ForceLabels "forcelabels"
+                                  , parseField GradientAngle "gradientangle"
                                   , parseField Group "group"
                                   , parseFields HeadURL ["headURL", "headhref"]
                                   , parseFieldBool HeadClip "headclip"
@@ -576,8 +608,11 @@
                                   , parseField Height "height"
                                   , parseField ID "id"
                                   , parseField Image "image"
+                                  , parseField ImagePath "imagepath"
                                   , parseFieldDef ImageScale UniformScale "imagescale"
+                                  , parseField Label "label"
                                   , parseFields LabelURL ["labelURL", "labelhref"]
+                                  , parseField LabelScheme "label_scheme"
                                   , parseField LabelAngle "labelangle"
                                   , parseField LabelDistance "labeldistance"
                                   , parseFieldBool LabelFloat "labelfloat"
@@ -588,41 +623,42 @@
                                   , parseField LabelLoc "labelloc"
                                   , parseField LabelTarget "labeltarget"
                                   , parseField LabelTooltip "labeltooltip"
-                                  , parseField Label "label"
                                   , parseFieldBool Landscape "landscape"
-                                  , parseField LayerSep "layersep"
-                                  , parseField Layers "layers"
                                   , parseField Layer "layer"
+                                  , parseField Layers "layers"
+                                  , parseField LayerSep "layersep"
                                   , parseField Layout "layout"
                                   , parseField Len "len"
                                   , parseField LevelsGap "levelsgap"
                                   , parseField Levels "levels"
                                   , parseField LHead "lhead"
+                                  , parseField LHeight "LHeight"
                                   , parseField LPos "lp"
                                   , parseField LTail "ltail"
+                                  , parseField LWidth "lwidth"
                                   , parseField Margin "margin"
                                   , parseField MaxIter "maxiter"
                                   , parseField MCLimit "mclimit"
                                   , parseField MinDist "mindist"
                                   , parseField MinLen "minlen"
-                                  , parseField Model "model"
                                   , parseField Mode "mode"
+                                  , parseField Model "model"
                                   , parseFieldBool Mosek "mosek"
                                   , parseField NodeSep "nodesep"
                                   , parseFieldBool NoJustify "nojustify"
                                   , parseFieldBool Normalize "normalize"
-                                  , parseField Nslimit1 "nslimit1"
                                   , parseField Nslimit "nslimit"
+                                  , parseField Nslimit1 "nslimit1"
                                   , parseField Ordering "ordering"
                                   , parseField Orientation "orientation"
                                   , parseField OutputOrder "outputorder"
-                                  , parseField OverlapScaling "overlap_scaling"
                                   , parseFieldDef Overlap KeepOverlaps "overlap"
-                                  , parseField PackMode "packmode"
+                                  , parseField OverlapScaling "overlap_scaling"
                                   , parseFieldDef Pack DoPack "pack"
+                                  , parseField PackMode "packmode"
                                   , parseField Pad "pad"
-                                  , parseField PageDir "pagedir"
                                   , parseField Page "page"
+                                  , parseField PageDir "pagedir"
                                   , parseField PenColor "pencolor"
                                   , parseField PenWidth "penwidth"
                                   , parseField Peripheries "peripheries"
@@ -630,9 +666,9 @@
                                   , parseField Pos "pos"
                                   , parseFieldDef QuadTree NormalQT "quadtree"
                                   , parseField Quantum "quantum"
+                                  , parseField Rank "rank"
                                   , parseField RankDir "rankdir"
                                   , parseField RankSep "ranksep"
-                                  , parseField Rank "rank"
                                   , parseField Ratio "ratio"
                                   , parseField Rects "rects"
                                   , parseFieldBool Regular "regular"
@@ -640,13 +676,15 @@
                                   , parseField RepulsiveForce "repulsiveforce"
                                   , parseFieldDef Root IsCentral "root"
                                   , parseField Rotate "rotate"
+                                  , parseField Rotation "rotation"
                                   , parseField SameHead "samehead"
                                   , parseField SameTail "sametail"
                                   , parseField SamplePoints "samplepoints"
+                                  , parseField Scale "scale"
                                   , parseField SearchSize "searchsize"
                                   , parseField Sep "sep"
-                                  , parseField ShapeFile "shapefile"
                                   , parseField Shape "shape"
+                                  , parseField ShapeFile "shapefile"
                                   , parseField ShowBoxes "showboxes"
                                   , parseField Sides "sides"
                                   , parseField Size "size"
@@ -655,8 +693,8 @@
                                   , parseField SortV "sortv"
                                   , parseFieldDef Splines SplineEdges "splines"
                                   , parseField Start "start"
-                                  , parseField StyleSheet "stylesheet"
                                   , parseField Style "style"
+                                  , parseField StyleSheet "stylesheet"
                                   , parseFields TailURL ["tailURL", "tailhref"]
                                   , parseFieldBool TailClip "tailclip"
                                   , parseField TailLabel "taillabel"
@@ -671,6 +709,7 @@
                                   , parseField VoroMargin "voro_margin"
                                   , parseField Weight "weight"
                                   , parseField Width "width"
+                                  , parseField XLabel "xlabel"
                                   , parseField Z "z"
                                   ])
               `onFail`
@@ -686,17 +725,17 @@
 usedByGraphs K{}                  = True
 usedByGraphs URL{}                = True
 usedByGraphs Aspect{}             = True
-usedByGraphs Bb{}                 = True
+usedByGraphs BoundingBox{}        = True
+usedByGraphs ColorScheme{}        = True
 usedByGraphs BgColor{}            = True
 usedByGraphs Center{}             = True
 usedByGraphs ClusterRank{}        = True
-usedByGraphs ColorScheme{}        = True
 usedByGraphs Comment{}            = True
 usedByGraphs Compound{}           = True
 usedByGraphs Concentrate{}        = True
 usedByGraphs DefaultDist{}        = True
-usedByGraphs Dimen{}              = True
 usedByGraphs Dim{}                = True
+usedByGraphs Dimen{}              = True
 usedByGraphs DirEdgeConstraints{} = True
 usedByGraphs DPI{}                = True
 usedByGraphs Epsilon{}            = True
@@ -706,38 +745,44 @@
 usedByGraphs FontNames{}          = True
 usedByGraphs FontPath{}           = True
 usedByGraphs FontSize{}           = True
+usedByGraphs ForceLabels{}        = True
+usedByGraphs GradientAngle{}      = True
 usedByGraphs ID{}                 = True
+usedByGraphs ImagePath{}          = True
+usedByGraphs Label{}              = True
+usedByGraphs LabelScheme{}        = True
 usedByGraphs LabelJust{}          = True
 usedByGraphs LabelLoc{}           = True
-usedByGraphs Label{}              = True
 usedByGraphs Landscape{}          = True
-usedByGraphs LayerSep{}           = True
 usedByGraphs Layers{}             = True
+usedByGraphs LayerSep{}           = True
 usedByGraphs Layout{}             = True
 usedByGraphs LevelsGap{}          = True
 usedByGraphs Levels{}             = True
+usedByGraphs LHeight{}            = True
 usedByGraphs LPos{}               = True
+usedByGraphs LWidth{}             = True
 usedByGraphs Margin{}             = True
 usedByGraphs MaxIter{}            = True
 usedByGraphs MCLimit{}            = True
 usedByGraphs MinDist{}            = True
-usedByGraphs Model{}              = True
 usedByGraphs Mode{}               = True
+usedByGraphs Model{}              = True
 usedByGraphs Mosek{}              = True
 usedByGraphs NodeSep{}            = True
 usedByGraphs NoJustify{}          = True
 usedByGraphs Normalize{}          = True
-usedByGraphs Nslimit1{}           = True
 usedByGraphs Nslimit{}            = True
+usedByGraphs Nslimit1{}           = True
 usedByGraphs Ordering{}           = True
 usedByGraphs OutputOrder{}        = True
-usedByGraphs OverlapScaling{}     = True
 usedByGraphs Overlap{}            = True
-usedByGraphs PackMode{}           = True
+usedByGraphs OverlapScaling{}     = True
 usedByGraphs Pack{}               = True
+usedByGraphs PackMode{}           = True
 usedByGraphs Pad{}                = True
-usedByGraphs PageDir{}            = True
 usedByGraphs Page{}               = True
+usedByGraphs PageDir{}            = True
 usedByGraphs QuadTree{}           = True
 usedByGraphs Quantum{}            = True
 usedByGraphs RankDir{}            = True
@@ -747,6 +792,8 @@
 usedByGraphs RepulsiveForce{}     = True
 usedByGraphs Root{}               = True
 usedByGraphs Rotate{}             = True
+usedByGraphs Rotation{}           = True
+usedByGraphs Scale{}              = True
 usedByGraphs SearchSize{}         = True
 usedByGraphs Sep{}                = True
 usedByGraphs ShowBoxes{}          = True
@@ -767,17 +814,20 @@
 usedByClusters                    :: Attribute -> Bool
 usedByClusters K{}                = True
 usedByClusters URL{}              = True
-usedByClusters BgColor{}          = True
 usedByClusters ColorScheme{}      = True
+usedByClusters BgColor{}          = True
 usedByClusters Color{}            = True
 usedByClusters FillColor{}        = True
 usedByClusters FontColor{}        = True
 usedByClusters FontName{}         = True
 usedByClusters FontSize{}         = True
+usedByClusters GradientAngle{}    = True
+usedByClusters Label{}            = True
 usedByClusters LabelJust{}        = True
 usedByClusters LabelLoc{}         = True
-usedByClusters Label{}            = True
+usedByClusters LHeight{}          = True
 usedByClusters LPos{}             = True
+usedByClusters LWidth{}           = True
 usedByClusters NoJustify{}        = True
 usedByClusters PenColor{}         = True
 usedByClusters PenWidth{}         = True
@@ -808,16 +858,18 @@
 usedByNodes FontColor{}        = True
 usedByNodes FontName{}         = True
 usedByNodes FontSize{}         = True
+usedByNodes GradientAngle{}    = True
 usedByNodes Group{}            = True
 usedByNodes Height{}           = True
 usedByNodes ID{}               = True
 usedByNodes Image{}            = True
 usedByNodes ImageScale{}       = True
-usedByNodes LabelLoc{}         = True
 usedByNodes Label{}            = True
+usedByNodes LabelLoc{}         = True
 usedByNodes Layer{}            = True
 usedByNodes Margin{}           = True
 usedByNodes NoJustify{}        = True
+usedByNodes Ordering{}         = True
 usedByNodes Orientation{}      = True
 usedByNodes PenWidth{}         = True
 usedByNodes Peripheries{}      = True
@@ -827,8 +879,8 @@
 usedByNodes Regular{}          = True
 usedByNodes Root{}             = True
 usedByNodes SamplePoints{}     = True
-usedByNodes ShapeFile{}        = True
 usedByNodes Shape{}            = True
+usedByNodes ShapeFile{}        = True
 usedByNodes ShowBoxes{}        = True
 usedByNodes Sides{}            = True
 usedByNodes Skew{}             = True
@@ -838,6 +890,7 @@
 usedByNodes Tooltip{}          = True
 usedByNodes Vertices{}         = True
 usedByNodes Width{}            = True
+usedByNodes XLabel{}           = True
 usedByNodes Z{}                = True
 usedByNodes UnknownAttribute{} = True
 usedByNodes _                  = False
@@ -857,6 +910,7 @@
 usedByEdges EdgeURL{}          = True
 usedByEdges EdgeTarget{}       = True
 usedByEdges EdgeTooltip{}      = True
+usedByEdges FillColor{}        = True
 usedByEdges FontColor{}        = True
 usedByEdges FontName{}         = True
 usedByEdges FontSize{}         = True
@@ -867,6 +921,7 @@
 usedByEdges HeadTarget{}       = True
 usedByEdges HeadTooltip{}      = True
 usedByEdges ID{}               = True
+usedByEdges Label{}            = True
 usedByEdges LabelURL{}         = True
 usedByEdges LabelAngle{}       = True
 usedByEdges LabelDistance{}    = True
@@ -876,7 +931,6 @@
 usedByEdges LabelFontSize{}    = True
 usedByEdges LabelTarget{}      = True
 usedByEdges LabelTooltip{}     = True
-usedByEdges Label{}            = True
 usedByEdges Layer{}            = True
 usedByEdges Len{}              = True
 usedByEdges LHead{}            = True
@@ -899,6 +953,7 @@
 usedByEdges Target{}           = True
 usedByEdges Tooltip{}          = True
 usedByEdges Weight{}           = True
+usedByEdges XLabel{}           = True
 usedByEdges UnknownAttribute{} = True
 usedByEdges _                  = False
 
@@ -911,11 +966,11 @@
 sameAttribute ArrowSize{}             ArrowSize{}             = True
 sameAttribute ArrowTail{}             ArrowTail{}             = True
 sameAttribute Aspect{}                Aspect{}                = True
-sameAttribute Bb{}                    Bb{}                    = True
+sameAttribute BoundingBox{}           BoundingBox{}           = True
+sameAttribute ColorScheme{}           ColorScheme{}           = True
 sameAttribute BgColor{}               BgColor{}               = True
 sameAttribute Center{}                Center{}                = True
 sameAttribute ClusterRank{}           ClusterRank{}           = True
-sameAttribute ColorScheme{}           ColorScheme{}           = True
 sameAttribute Color{}                 Color{}                 = True
 sameAttribute Comment{}               Comment{}               = True
 sameAttribute Compound{}              Compound{}              = True
@@ -923,8 +978,8 @@
 sameAttribute Constraint{}            Constraint{}            = True
 sameAttribute Decorate{}              Decorate{}              = True
 sameAttribute DefaultDist{}           DefaultDist{}           = True
-sameAttribute Dimen{}                 Dimen{}                 = True
 sameAttribute Dim{}                   Dim{}                   = True
+sameAttribute Dimen{}                 Dimen{}                 = True
 sameAttribute Dir{}                   Dir{}                   = True
 sameAttribute DirEdgeConstraints{}    DirEdgeConstraints{}    = True
 sameAttribute Distortion{}            Distortion{}            = True
@@ -941,6 +996,8 @@
 sameAttribute FontNames{}             FontNames{}             = True
 sameAttribute FontPath{}              FontPath{}              = True
 sameAttribute FontSize{}              FontSize{}              = True
+sameAttribute ForceLabels{}           ForceLabels{}           = True
+sameAttribute GradientAngle{}         GradientAngle{}         = True
 sameAttribute Group{}                 Group{}                 = True
 sameAttribute HeadURL{}               HeadURL{}               = True
 sameAttribute HeadClip{}              HeadClip{}              = True
@@ -951,8 +1008,11 @@
 sameAttribute Height{}                Height{}                = True
 sameAttribute ID{}                    ID{}                    = True
 sameAttribute Image{}                 Image{}                 = True
+sameAttribute ImagePath{}             ImagePath{}             = True
 sameAttribute ImageScale{}            ImageScale{}            = True
+sameAttribute Label{}                 Label{}                 = True
 sameAttribute LabelURL{}              LabelURL{}              = True
+sameAttribute LabelScheme{}           LabelScheme{}           = True
 sameAttribute LabelAngle{}            LabelAngle{}            = True
 sameAttribute LabelDistance{}         LabelDistance{}         = True
 sameAttribute LabelFloat{}            LabelFloat{}            = True
@@ -963,41 +1023,42 @@
 sameAttribute LabelLoc{}              LabelLoc{}              = True
 sameAttribute LabelTarget{}           LabelTarget{}           = True
 sameAttribute LabelTooltip{}          LabelTooltip{}          = True
-sameAttribute Label{}                 Label{}                 = True
 sameAttribute Landscape{}             Landscape{}             = True
-sameAttribute LayerSep{}              LayerSep{}              = True
-sameAttribute Layers{}                Layers{}                = True
 sameAttribute Layer{}                 Layer{}                 = True
+sameAttribute Layers{}                Layers{}                = True
+sameAttribute LayerSep{}              LayerSep{}              = True
 sameAttribute Layout{}                Layout{}                = True
 sameAttribute Len{}                   Len{}                   = True
 sameAttribute LevelsGap{}             LevelsGap{}             = True
 sameAttribute Levels{}                Levels{}                = True
 sameAttribute LHead{}                 LHead{}                 = True
+sameAttribute LHeight{}               LHeight{}               = True
 sameAttribute LPos{}                  LPos{}                  = True
 sameAttribute LTail{}                 LTail{}                 = True
+sameAttribute LWidth{}                LWidth{}                = True
 sameAttribute Margin{}                Margin{}                = True
 sameAttribute MaxIter{}               MaxIter{}               = True
 sameAttribute MCLimit{}               MCLimit{}               = True
 sameAttribute MinDist{}               MinDist{}               = True
 sameAttribute MinLen{}                MinLen{}                = True
-sameAttribute Model{}                 Model{}                 = True
 sameAttribute Mode{}                  Mode{}                  = True
+sameAttribute Model{}                 Model{}                 = True
 sameAttribute Mosek{}                 Mosek{}                 = True
 sameAttribute NodeSep{}               NodeSep{}               = True
 sameAttribute NoJustify{}             NoJustify{}             = True
 sameAttribute Normalize{}             Normalize{}             = True
-sameAttribute Nslimit1{}              Nslimit1{}              = True
 sameAttribute Nslimit{}               Nslimit{}               = True
+sameAttribute Nslimit1{}              Nslimit1{}              = True
 sameAttribute Ordering{}              Ordering{}              = True
 sameAttribute Orientation{}           Orientation{}           = True
 sameAttribute OutputOrder{}           OutputOrder{}           = True
-sameAttribute OverlapScaling{}        OverlapScaling{}        = True
 sameAttribute Overlap{}               Overlap{}               = True
-sameAttribute PackMode{}              PackMode{}              = True
+sameAttribute OverlapScaling{}        OverlapScaling{}        = True
 sameAttribute Pack{}                  Pack{}                  = True
+sameAttribute PackMode{}              PackMode{}              = True
 sameAttribute Pad{}                   Pad{}                   = True
-sameAttribute PageDir{}               PageDir{}               = True
 sameAttribute Page{}                  Page{}                  = True
+sameAttribute PageDir{}               PageDir{}               = True
 sameAttribute PenColor{}              PenColor{}              = True
 sameAttribute PenWidth{}              PenWidth{}              = True
 sameAttribute Peripheries{}           Peripheries{}           = True
@@ -1005,9 +1066,9 @@
 sameAttribute Pos{}                   Pos{}                   = True
 sameAttribute QuadTree{}              QuadTree{}              = True
 sameAttribute Quantum{}               Quantum{}               = True
+sameAttribute Rank{}                  Rank{}                  = True
 sameAttribute RankDir{}               RankDir{}               = True
 sameAttribute RankSep{}               RankSep{}               = True
-sameAttribute Rank{}                  Rank{}                  = True
 sameAttribute Ratio{}                 Ratio{}                 = True
 sameAttribute Rects{}                 Rects{}                 = True
 sameAttribute Regular{}               Regular{}               = True
@@ -1015,13 +1076,15 @@
 sameAttribute RepulsiveForce{}        RepulsiveForce{}        = True
 sameAttribute Root{}                  Root{}                  = True
 sameAttribute Rotate{}                Rotate{}                = True
+sameAttribute Rotation{}              Rotation{}              = True
 sameAttribute SameHead{}              SameHead{}              = True
 sameAttribute SameTail{}              SameTail{}              = True
 sameAttribute SamplePoints{}          SamplePoints{}          = True
+sameAttribute Scale{}                 Scale{}                 = True
 sameAttribute SearchSize{}            SearchSize{}            = True
 sameAttribute Sep{}                   Sep{}                   = True
-sameAttribute ShapeFile{}             ShapeFile{}             = True
 sameAttribute Shape{}                 Shape{}                 = True
+sameAttribute ShapeFile{}             ShapeFile{}             = True
 sameAttribute ShowBoxes{}             ShowBoxes{}             = True
 sameAttribute Sides{}                 Sides{}                 = True
 sameAttribute Size{}                  Size{}                  = True
@@ -1030,8 +1093,8 @@
 sameAttribute SortV{}                 SortV{}                 = True
 sameAttribute Splines{}               Splines{}               = True
 sameAttribute Start{}                 Start{}                 = True
-sameAttribute StyleSheet{}            StyleSheet{}            = True
 sameAttribute Style{}                 Style{}                 = True
+sameAttribute StyleSheet{}            StyleSheet{}            = True
 sameAttribute TailURL{}               TailURL{}               = True
 sameAttribute TailClip{}              TailClip{}              = True
 sameAttribute TailLabel{}             TailLabel{}             = True
@@ -1046,6 +1109,7 @@
 sameAttribute VoroMargin{}            VoroMargin{}            = True
 sameAttribute Weight{}                Weight{}                = True
 sameAttribute Width{}                 Width{}                 = True
+sameAttribute XLabel{}                XLabel{}                = True
 sameAttribute Z{}                     Z{}                     = True
 sameAttribute (UnknownAttribute a1 _) (UnknownAttribute a2 _) = a1 == a2
 sameAttribute _                       _                       = False
@@ -1058,28 +1122,30 @@
 defaultAttributeValue ArrowHead{}          = Just $ ArrowHead normal
 defaultAttributeValue ArrowSize{}          = Just $ ArrowSize 1
 defaultAttributeValue ArrowTail{}          = Just $ ArrowTail normal
-defaultAttributeValue BgColor{}            = Just $ BgColor (X11Color Transparent)
+defaultAttributeValue ColorScheme{}        = Just $ ColorScheme X11
+defaultAttributeValue BgColor{}            = Just $ BgColor [X11Color Transparent]
 defaultAttributeValue Center{}             = Just $ Center False
 defaultAttributeValue ClusterRank{}        = Just $ ClusterRank Local
-defaultAttributeValue ColorScheme{}        = Just $ ColorScheme X11
 defaultAttributeValue Color{}              = Just $ Color [X11Color Black]
 defaultAttributeValue Comment{}            = Just $ Comment ""
 defaultAttributeValue Compound{}           = Just $ Compound False
 defaultAttributeValue Concentrate{}        = Just $ Concentrate False
 defaultAttributeValue Constraint{}         = Just $ Constraint True
 defaultAttributeValue Decorate{}           = Just $ Decorate False
-defaultAttributeValue Dimen{}              = Just $ Dimen 2
 defaultAttributeValue Dim{}                = Just $ Dim 2
+defaultAttributeValue Dimen{}              = Just $ Dimen 2
 defaultAttributeValue DirEdgeConstraints{} = Just $ DirEdgeConstraints NoConstraints
 defaultAttributeValue Distortion{}         = Just $ Distortion 0
 defaultAttributeValue EdgeURL{}            = Just $ EdgeURL ""
 defaultAttributeValue ESep{}               = Just $ ESep (DVal 3)
-defaultAttributeValue FillColor{}          = Just $ FillColor (X11Color Black)
+defaultAttributeValue FillColor{}          = Just $ FillColor [X11Color Black]
 defaultAttributeValue FixedSize{}          = Just $ FixedSize False
 defaultAttributeValue FontColor{}          = Just $ FontColor (X11Color Black)
 defaultAttributeValue FontName{}           = Just $ FontName "Times-Roman"
 defaultAttributeValue FontNames{}          = Just $ FontNames ""
 defaultAttributeValue FontSize{}           = Just $ FontSize 14
+defaultAttributeValue ForceLabels{}        = Just $ ForceLabels False
+defaultAttributeValue GradientAngle{}      = Just $ GradientAngle 0
 defaultAttributeValue Group{}              = Just $ Group ""
 defaultAttributeValue HeadURL{}            = Just $ HeadURL ""
 defaultAttributeValue HeadClip{}           = Just $ HeadClip True
@@ -1088,10 +1154,13 @@
 defaultAttributeValue HeadTarget{}         = Just $ HeadTarget ""
 defaultAttributeValue HeadTooltip{}        = Just $ HeadTooltip ""
 defaultAttributeValue Height{}             = Just $ Height 0.5
-defaultAttributeValue ID{}                 = Just $ ID (StrLabel "")
+defaultAttributeValue ID{}                 = Just $ ID ""
 defaultAttributeValue Image{}              = Just $ Image ""
+defaultAttributeValue ImagePath{}          = Just $ ImagePath (Paths [])
 defaultAttributeValue ImageScale{}         = Just $ ImageScale NoScale
+defaultAttributeValue Label{}              = Just $ Label (StrLabel "")
 defaultAttributeValue LabelURL{}           = Just $ LabelURL ""
+defaultAttributeValue LabelScheme{}        = Just $ LabelScheme NotEdgeLabel
 defaultAttributeValue LabelAngle{}         = Just $ LabelAngle (-25)
 defaultAttributeValue LabelDistance{}      = Just $ LabelDistance 1
 defaultAttributeValue LabelFloat{}         = Just $ LabelFloat False
@@ -1102,10 +1171,9 @@
 defaultAttributeValue LabelLoc{}           = Just $ LabelLoc VTop
 defaultAttributeValue LabelTarget{}        = Just $ LabelTarget ""
 defaultAttributeValue LabelTooltip{}       = Just $ LabelTooltip ""
-defaultAttributeValue Label{}              = Just $ Label (StrLabel "")
 defaultAttributeValue Landscape{}          = Just $ Landscape False
-defaultAttributeValue LayerSep{}           = Just $ LayerSep (LSep " :\t")
 defaultAttributeValue Layers{}             = Just $ Layers (LL [])
+defaultAttributeValue LayerSep{}           = Just $ LayerSep (LSep " :\t")
 defaultAttributeValue Layout{}             = Just $ Layout ""
 defaultAttributeValue LevelsGap{}          = Just $ LevelsGap 0
 defaultAttributeValue Levels{}             = Just $ Levels maxBound
@@ -1114,19 +1182,18 @@
 defaultAttributeValue MCLimit{}            = Just $ MCLimit 1
 defaultAttributeValue MinDist{}            = Just $ MinDist 1
 defaultAttributeValue MinLen{}             = Just $ MinLen 1
-defaultAttributeValue Model{}              = Just $ Model ShortPath
 defaultAttributeValue Mode{}               = Just $ Mode Major
+defaultAttributeValue Model{}              = Just $ Model ShortPath
 defaultAttributeValue Mosek{}              = Just $ Mosek False
 defaultAttributeValue NodeSep{}            = Just $ NodeSep 0.25
 defaultAttributeValue NoJustify{}          = Just $ NoJustify False
 defaultAttributeValue Normalize{}          = Just $ Normalize False
-defaultAttributeValue Ordering{}           = Just $ Ordering ""
 defaultAttributeValue Orientation{}        = Just $ Orientation 0
 defaultAttributeValue OutputOrder{}        = Just $ OutputOrder BreadthFirst
-defaultAttributeValue OverlapScaling{}     = Just $ OverlapScaling (-4)
 defaultAttributeValue Overlap{}            = Just $ Overlap KeepOverlaps
-defaultAttributeValue PackMode{}           = Just $ PackMode PackNode
+defaultAttributeValue OverlapScaling{}     = Just $ OverlapScaling (-4)
 defaultAttributeValue Pack{}               = Just $ Pack DontPack
+defaultAttributeValue PackMode{}           = Just $ PackMode PackNode
 defaultAttributeValue Pad{}                = Just $ Pad (DVal 0.0555)
 defaultAttributeValue PageDir{}            = Just $ PageDir Bl
 defaultAttributeValue PenColor{}           = Just $ PenColor (X11Color Black)
@@ -1141,12 +1208,13 @@
 defaultAttributeValue RepulsiveForce{}     = Just $ RepulsiveForce 1
 defaultAttributeValue Root{}               = Just $ Root (NodeName "")
 defaultAttributeValue Rotate{}             = Just $ Rotate 0
+defaultAttributeValue Rotation{}           = Just $ Rotation 0
 defaultAttributeValue SameHead{}           = Just $ SameHead ""
 defaultAttributeValue SameTail{}           = Just $ SameTail ""
 defaultAttributeValue SearchSize{}         = Just $ SearchSize 30
 defaultAttributeValue Sep{}                = Just $ Sep (DVal 4)
-defaultAttributeValue ShapeFile{}          = Just $ ShapeFile ""
 defaultAttributeValue Shape{}              = Just $ Shape Ellipse
+defaultAttributeValue ShapeFile{}          = Just $ ShapeFile ""
 defaultAttributeValue ShowBoxes{}          = Just $ ShowBoxes 0
 defaultAttributeValue Sides{}              = Just $ Sides 4
 defaultAttributeValue Skew{}               = Just $ Skew 0
@@ -1164,6 +1232,7 @@
 defaultAttributeValue Tooltip{}            = Just $ Tooltip ""
 defaultAttributeValue VoroMargin{}         = Just $ VoroMargin 0.05
 defaultAttributeValue Width{}              = Just $ Width 0.75
+defaultAttributeValue XLabel{}             = Just $ XLabel (StrLabel "")
 defaultAttributeValue Z{}                  = Just $ Z 0
 defaultAttributeValue _                    = Nothing
 
@@ -1182,10 +1251,10 @@
                , "arrowtail"
                , "aspect"
                , "bb"
+               , "colorscheme"
                , "bgcolor"
                , "center"
                , "clusterrank"
-               , "colorscheme"
                , "color"
                , "comment"
                , "compound"
@@ -1193,8 +1262,8 @@
                , "constraint"
                , "decorate"
                , "defaultdist"
-               , "dimen"
                , "dim"
+               , "dimen"
                , "dir"
                , "diredgeconstraints"
                , "distortion"
@@ -1213,6 +1282,8 @@
                , "fontnames"
                , "fontpath"
                , "fontsize"
+               , "forcelabels"
+               , "gradientangle"
                , "group"
                , "headURL"
                , "headhref"
@@ -1224,9 +1295,12 @@
                , "height"
                , "id"
                , "image"
+               , "imagepath"
                , "imagescale"
+               , "label"
                , "labelURL"
                , "labelhref"
+               , "label_scheme"
                , "labelangle"
                , "labeldistance"
                , "labelfloat"
@@ -1237,41 +1311,42 @@
                , "labelloc"
                , "labeltarget"
                , "labeltooltip"
-               , "label"
                , "landscape"
-               , "layersep"
-               , "layers"
                , "layer"
+               , "layers"
+               , "layersep"
                , "layout"
                , "len"
                , "levelsgap"
                , "levels"
                , "lhead"
+               , "LHeight"
                , "lp"
                , "ltail"
+               , "lwidth"
                , "margin"
                , "maxiter"
                , "mclimit"
                , "mindist"
                , "minlen"
-               , "model"
                , "mode"
+               , "model"
                , "mosek"
                , "nodesep"
                , "nojustify"
                , "normalize"
-               , "nslimit1"
                , "nslimit"
+               , "nslimit1"
                , "ordering"
                , "orientation"
                , "outputorder"
-               , "overlap_scaling"
                , "overlap"
-               , "packmode"
+               , "overlap_scaling"
                , "pack"
+               , "packmode"
                , "pad"
-               , "pagedir"
                , "page"
+               , "pagedir"
                , "pencolor"
                , "penwidth"
                , "peripheries"
@@ -1279,9 +1354,9 @@
                , "pos"
                , "quadtree"
                , "quantum"
+               , "rank"
                , "rankdir"
                , "ranksep"
-               , "rank"
                , "ratio"
                , "rects"
                , "regular"
@@ -1289,13 +1364,15 @@
                , "repulsiveforce"
                , "root"
                , "rotate"
+               , "rotation"
                , "samehead"
                , "sametail"
                , "samplepoints"
+               , "scale"
                , "searchsize"
                , "sep"
-               , "shapefile"
                , "shape"
+               , "shapefile"
                , "showboxes"
                , "sides"
                , "size"
@@ -1304,8 +1381,8 @@
                , "sortv"
                , "splines"
                , "start"
-               , "stylesheet"
                , "style"
+               , "stylesheet"
                , "tailURL"
                , "tailhref"
                , "tailclip"
@@ -1321,6 +1398,7 @@
                , "voro_margin"
                , "weight"
                , "width"
+               , "xlabel"
                , "z"
                , "charset" -- Defined upstream, just not used here.
                ])
@@ -1614,7 +1692,7 @@
 
   parse = quotedParse parseUnqt
 
-  parseUnqtList = sepBy1 parseUnqt whitespace
+  parseUnqtList = sepBy1 parseUnqt whitespace1
 
 -- -----------------------------------------------------------------------------
 
@@ -1742,12 +1820,12 @@
 -- -----------------------------------------------------------------------------
 
 data Label = StrLabel EscString
-           | HtmlLabel HtmlLabel -- ^ If 'PlainText' is used, the
-                                 --   'HtmlLabel' value is the entire
-                                 --   \"shape\"; if anything else
-                                 --   except 'PointShape' is used then
-                                 --   the 'HtmlLabel' is embedded
-                                 --   within the shape.
+           | HtmlLabel Html.Label -- ^ If 'PlainText' is used, the
+                                  --   'Html.Label' value is the entire
+                                  --   \"shape\"; if anything else
+                                  --   except 'PointShape' is used then
+                                  --   the 'Html.Label' is embedded
+                                  --   within the shape.
            | RecordLabel RecordFields -- ^ For nodes only; requires
                                       --   either 'Record' or
                                       --   'MRecord' as the shape.
@@ -1811,7 +1889,7 @@
 
 instance ParseDot RecordField where
   parseUnqt = do t <- liftM PN $ parseAngled parseRecord
-                 ml <- optional (whitespace >> parseRecord)
+                 ml <- optional (whitespace1 >> parseRecord)
                  return $ maybe (PortName t)
                                 (LabelledTarget t)
                                 ml
@@ -1850,6 +1928,30 @@
 
 -- -----------------------------------------------------------------------------
 
+-- | How to treat a node whose name is of the form @|edgelabel|*" as a
+--   special node representing an edge label.
+data LabelScheme = NotEdgeLabel        -- ^ No effect
+                 | CloseToCenter       -- ^ Make node close to center of neighbor
+                 | CloseToOldCenter    -- ^ Make node close to old center of neighbor
+                 | RemoveAndStraighten -- ^ Use a two-step process.
+                 deriving (Eq, Ord, Bounded, Enum, Show, Read)
+
+instance PrintDot LabelScheme where
+  unqtDot NotEdgeLabel        = int 0
+  unqtDot CloseToCenter       = int 1
+  unqtDot CloseToOldCenter    = int 2
+  unqtDot RemoveAndStraighten = int 3
+
+instance ParseDot LabelScheme where
+  -- Use string-based parsing rather than parsing an integer just to make it easier
+  parseUnqt = stringValue [ ("0", NotEdgeLabel)
+                          , ("1", CloseToCenter)
+                          , ("2", CloseToOldCenter)
+                          , ("3", RemoveAndStraighten)
+                          ]
+
+-- -----------------------------------------------------------------------------
+
 data Point = Point { xCoord   :: Double
                    , yCoord   :: Double
                       -- | Can only be 'Just' for @'Dim' 3@ or greater.
@@ -1886,12 +1988,11 @@
 
   parse = quotedParse parseUnqt
 
-  parseUnqtList = sepBy1 parseUnqt whitespace
+  parseUnqtList = sepBy1 parseUnqt whitespace1
 
 -- -----------------------------------------------------------------------------
 
 data Overlap = KeepOverlaps
-             | RemoveOverlaps
              | ScaleOverlaps
              | ScaleXYOverlaps
              | PrismOverlap (Maybe Word16) -- ^ Only when sfdp is
@@ -1905,7 +2006,6 @@
 
 instance PrintDot Overlap where
   unqtDot KeepOverlaps     = unqtDot True
-  unqtDot RemoveOverlaps   = unqtDot False
   unqtDot ScaleOverlaps    = text "scale"
   unqtDot ScaleXYOverlaps  = text "scalexy"
   unqtDot (PrismOverlap i) = maybe id (flip (<>) . unqtDot) i $ text "prism"
@@ -1915,10 +2015,10 @@
 
 instance ParseDot Overlap where
   parseUnqt = oneOf [ stringRep KeepOverlaps "true"
-                    , stringRep RemoveOverlaps "false"
                     , stringRep ScaleXYOverlaps "scalexy"
                     , stringRep ScaleOverlaps "scale"
                     , string "prism" >> liftM PrismOverlap (optional parse)
+                    , stringRep (PrismOverlap Nothing) "false"
                     , stringRep CompressOverlap "compress"
                     , stringRep VpscOverlap "vpsc"
                     , stringRep IpsepOverlap "ipsep"
@@ -2049,6 +2149,21 @@
 
 -- -----------------------------------------------------------------------------
 
+data Order = OutEdges -- ^ Draw outgoing edges in order specified.
+           | InEdges  -- ^ Draw incoming edges in order specified.
+           deriving (Eq, Ord, Bounded, Enum, Show, Read)
+
+instance PrintDot Order where
+  unqtDot OutEdges = text "out"
+  unqtDot InEdges  = text "in"
+
+instance ParseDot Order where
+  parseUnqt = oneOf [ stringRep OutEdges "out"
+                    , stringRep InEdges  "in"
+                    ]
+
+-- -----------------------------------------------------------------------------
+
 data OutputMode = BreadthFirst | NodesFirst | EdgesFirst
                 deriving (Eq, Ord, Bounded, Enum, Show, Read)
 
@@ -2237,12 +2352,12 @@
 instance ParseDot Spline where
   parseUnqt = do ms <- parseP 's'
                  me <- parseP 'e'
-                 ps <- sepBy1 parseUnqt whitespace
+                 ps <- sepBy1 parseUnqt whitespace1
                  return $ Spline ms me ps
       where
         parseP t = optional $ do character t
                                  parseComma
-                                 parseUnqt `discard` whitespace
+                                 parseUnqt `discard` whitespace1
 
   parse = quotedParse parseUnqt
 
@@ -2569,6 +2684,11 @@
                | Filled    -- ^ Nodes and Clusters
                | Diagonals -- ^ Nodes only
                | Rounded   -- ^ Nodes and Clusters
+               | Tapered   -- ^ Edges only; requires Graphviz >=
+                           --   2.29.0.
+               | Radial    -- ^ Nodes, Clusters and Graphs, for use
+                           --   with 'GradientAngle'; requires
+                           --   Graphviz >= 2.29.0.
                | DD Text   -- ^ Device Dependent
                deriving (Eq, Ord, Show, Read)
 
@@ -2581,6 +2701,8 @@
   unqtDot Filled    = text "filled"
   unqtDot Diagonals = text "diagonals"
   unqtDot Rounded   = text "rounded"
+  unqtDot Tapered   = text "tapered"
+  unqtDot Radial    = text "radial"
   unqtDot (DD nm)   = unqtDot nm
 
   toDot (DD nm) = toDot nm
@@ -2603,6 +2725,8 @@
                 "filled"    -> Filled
                 "diagonals" -> Diagonals
                 "rounded"   -> Rounded
+                "tapered"   -> Tapered
+                "radial"    -> Radial
                 _           -> DD str
 
 parseStyleName :: Parse Text
@@ -2682,6 +2806,24 @@
                     , stringRep VCenter "c"
                     , stringRep VBottom "b"
                     ]
+
+-- -----------------------------------------------------------------------------
+
+newtype Paths = Paths { paths :: [FilePath] }
+    deriving (Eq, Ord, Show, Read)
+
+instance PrintDot Paths where
+    unqtDot = unqtDot . intercalate [searchPathSeparator] . paths
+
+    toDot (Paths [p]) = toDot p
+    toDot ps          = dquotes $ unqtDot ps
+
+instance ParseDot Paths where
+    parseUnqt = liftM (Paths . splitSearchPath) parseUnqt
+
+    parse = quotedParse parseUnqt
+            `onFail`
+            liftM (Paths . (:[]) . T.unpack) quotelessString
 
 -- -----------------------------------------------------------------------------
 
diff --git a/Data/GraphViz/Attributes/HTML.hs b/Data/GraphViz/Attributes/HTML.hs
--- a/Data/GraphViz/Attributes/HTML.hs
+++ b/Data/GraphViz/Attributes/HTML.hs
@@ -7,11 +7,12 @@
    License     : 3-Clause BSD-style
    Maintainer  : Ivan.Miljenovic@gmail.com
 
-   This module defines the syntax for HTML-like values for use in
-   Graphviz.  Please note that these values are /not/ really HTML, but
-   the term \"HTML\" is used throughout as it is less cumbersome than
-   \"HTML-like\".  To be able to use this, the version of Graphviz must
-   be at least 1.10.  For more information, please see:
+   This module is written to be imported qualified.  It defines the
+   syntax for HTML-like values for use in Graphviz.  Please note that
+   these values are /not/ really HTML, but the term \"HTML\" is used
+   throughout as it is less cumbersome than \"HTML-like\".  To be able
+   to use this, the version of Graphviz must be at least 1.10.  For
+   more information, please see:
        <http://graphviz.org/doc/info/shapes.html#html>
 
    The actual definition of the syntax specifies that these types must
@@ -51,18 +52,19 @@
 
 -}
 module Data.GraphViz.Attributes.HTML
-       ( HtmlLabel(..)
-       , HtmlText
-       , HtmlTextItem(..)
-       , HtmlTable(..)
-       , HtmlRow(..)
-       , HtmlCell(..)
-       , HtmlImg(..)
-       , HtmlAttributes
-       , HtmlAttribute(..)
-       , HtmlAlign(..)
-       , HtmlVAlign(..)
-       , HtmlScale(..)
+       ( Label(..)
+       , Text
+       , TextItem(..)
+       , Format(..)
+       , Table(..)
+       , Row(..)
+       , Cell(..)
+       , Img(..)
+       , Attributes
+       , Attribute(..)
+       , Align(..)
+       , VAlign(..)
+       , Scale(..)
        ) where
 
 import Data.GraphViz.Parsing
@@ -79,293 +81,329 @@
 import Data.Word(Word8, Word16)
 import qualified Data.Map as Map
 import qualified Data.Text.Lazy as T
-import Data.Text.Lazy(Text)
 import Control.Monad(liftM, liftM2)
 
 -- -----------------------------------------------------------------------------
 
 -- | The overall type for HTML-like labels.  Fundamentally, HTML-like
 --   values in Graphviz are either textual (i.e. a single element with
---   formatting) or a table.  Note that 'HtmlLabel' values can be
---   nested via 'HtmlLabelCell'.
-data HtmlLabel = HtmlText HtmlText
-               | HtmlTable HtmlTable
-               deriving (Eq, Ord, Show, Read)
+--   formatting) or a table.  Note that 'Label' values can be
+--   nested via 'LabelCell'.
+data Label = Text  Text
+           | Table Table
+           deriving (Eq, Ord, Show, Read)
 
-instance PrintDot HtmlLabel where
-  unqtDot (HtmlText txt)  = unqtDot txt
-  unqtDot (HtmlTable tbl) = unqtDot tbl
+instance PrintDot Label where
+  unqtDot (Text txt)  = unqtDot txt
+  unqtDot (Table tbl) = unqtDot tbl
 
-instance ParseDot HtmlLabel where
-  -- Try parsing HtmlTable first in case of a FONT tag being used.
-  parseUnqt = liftM HtmlTable parseUnqt
+instance ParseDot Label where
+  -- Try parsing Table first in case of a FONT tag being used.
+  parseUnqt = liftM Table parseUnqt
               `onFail`
-              liftM HtmlText parseUnqt
+              liftM Text parseUnqt
               `adjustErr`
-              ("Can't parse HtmlLabel\n\t"++)
+              ("Can't parse Html.Label\n\t"++)
 
   parse = parseUnqt
 
 -- | Represents a textual component of an HTML-like label.  It is
---   assumed that an 'HtmlText' list is non-empty.  It is preferable
---   to \"group\" 'HtmlStr' values together rather than have
+--   assumed that a 'Text' list is non-empty.  It is preferable
+--   to \"group\" 'Str' values together rather than have
 --   individual ones.  Note that when printing, the individual values
 --   are concatenated together without spaces, and when parsing
---   anything that isn't a tag is assumed to be an 'HtmlStr': that is,
+--   anything that isn't a tag is assumed to be a 'Str': that is,
 --   something like \"@\<BR\/\> \<BR\/\>@\" is parsed as:
 --
---  > [HtmlNewline [], HtmlStr " ", HtmlNewline []]
-type HtmlText = [HtmlTextItem]
+--  > [Newline [], Str " ", Newline []]
+type Text = [TextItem]
 
 -- | Textual items in HTML-like labels.
-data HtmlTextItem = HtmlStr Text
-                    -- | Only accepts an optional 'HtmlAlign'
-                    --   'HtmlAttribute'; defined this way for ease of
-                    --   printing/parsing.
-                  | HtmlNewline HtmlAttributes
-                  | HtmlFont HtmlAttributes HtmlText
-                  deriving (Eq, Ord, Show, Read)
+data TextItem = Str T.Text
+                -- | Only accepts an optional 'Align'
+                --   'Attribute'; defined this way for ease of
+                --   printing/parsing.
+              | Newline Attributes
+              | Font Attributes Text
+                -- | Only available in Graphviz >= 2.28.0.
+              | Format Format Text
+              deriving (Eq, Ord, Show, Read)
 
-instance PrintDot HtmlTextItem where
-  unqtDot (HtmlStr str)     = escapeValue str
-  unqtDot (HtmlNewline as)  = printHtmlEmptyTag (text "BR") as
-  unqtDot (HtmlFont as txt) = printHtmlFontTag as $ unqtDot txt
+instance PrintDot TextItem where
+  unqtDot (Str str)        = escapeValue str
+  unqtDot (Newline as)     = printEmptyTag (text "BR") as
+  unqtDot (Font as txt)    = printFontTag as $ unqtDot txt
+  unqtDot (Format fmt txt) = printTag (unqtDot fmt) [] $ unqtDot txt
 
   unqtListToDot = hcat . mapM unqtDot
 
   listToDot = unqtListToDot
 
-instance ParseDot HtmlTextItem where
-  parseUnqt = oneOf [ liftM HtmlStr unescapeValue
-                    , parseHtmlEmptyTag HtmlNewline "BR"
-                    , parseHtmlFontTag HtmlFont parseUnqt
+instance ParseDot TextItem where
+  parseUnqt = oneOf [ liftM Str unescapeValue
+                    , parseEmptyTag Newline "BR"
+                    , parseFontTag Font parseUnqt
+                    , parseTagRep Format parseUnqt parseUnqt
                     ]
               `adjustErr`
-              ("Can't parse HtmlTextItem\n\t"++)
+              ("Can't parse Html.TextItem\n\t"++)
 
   parse = parseUnqt
 
-  parseUnqtList = many1 parseUnqt -- sepBy1 parseUnqt allWhitespace'
+  parseUnqtList = many1 parseUnqt -- sepBy1 parseUnqt whitespace
 
   parseList = parseUnqtList
 
+data Format = Italics
+                | Bold
+                | Underline
+                | Subscript
+                | Superscript
+                deriving (Eq, Ord, Bounded, Enum, Show, Read)
+
+instance PrintDot Format where
+  unqtDot Italics     = text "I"
+  unqtDot Bold        = text "B"
+  unqtDot Underline   = text "U"
+  unqtDot Subscript   = text "SUB"
+  unqtDot Superscript = text "SUP"
+
+instance ParseDot Format where
+  parseUnqt = stringValue [ ("I", Italics)
+                          , ("B", Bold)
+                          , ("U", Underline)
+                          , ("SUB", Subscript)
+                          , ("SUP", Superscript)
+                          ]
+
 -- | A table in HTML-like labels.  Tables are optionally wrapped in
 --   overall @FONT@ tags.
-data HtmlTable = HTable { -- | Optional @FONT@ attributes.  @'Just'
-                          --   []@ denotes empty @FONT@ tags;
-                          --   @'Nothing'@ denotes no such tags.
-                          tableFontAttrs :: Maybe HtmlAttributes
-                        , tableAttrs     :: HtmlAttributes
-                          -- | This list is assumed to be non-empty.
-                        , tableRows      :: [HtmlRow]
-                        }
+data Table = HTable { -- | Optional @FONT@ attributes.  @'Just'
+                      --   []@ denotes empty @FONT@ tags;
+                      --   @'Nothing'@ denotes no such tags.
+                      tableFontAttrs :: Maybe Attributes
+                    , tableAttrs     :: Attributes
+                      -- | This list is assumed to be non-empty.
+                    , tableRows      :: [Row]
+                    }
                deriving (Eq, Ord, Show, Read)
 
-instance PrintDot HtmlTable where
+instance PrintDot Table where
   unqtDot tbl = case tableFontAttrs tbl of
-                  (Just as) -> printHtmlFontTag as tbl'
+                  (Just as) -> printFontTag as tbl'
                   Nothing   -> tbl'
     where
-      tbl' = printHtmlTag (text "TABLE")
+      tbl' = printTag (text "TABLE")
                           (tableAttrs tbl)
                           (toDot $ tableRows tbl)
 
-instance ParseDot HtmlTable where
-  parseUnqt = wrapWhitespace (parseHtmlFontTag addFontAttrs pTbl)
+instance ParseDot Table where
+  parseUnqt = wrapWhitespace (parseFontTag addFontAttrs pTbl)
               `onFail`
               pTbl
               `adjustErr`
-              ("Can't parse HtmlTable\n\t"++)
+              ("Can't parse Html.Table\n\t"++)
     where
-      pTbl = wrapWhitespace $ parseHtmlTag (HTable Nothing)
-                                           "TABLE"
-                                           (wrapWhitespace parseUnqt)
+      pTbl = wrapWhitespace $ parseTag (HTable Nothing)
+                                       "TABLE"
+                                       (wrapWhitespace parseUnqt)
       addFontAttrs fas tbl = tbl { tableFontAttrs = Just fas }
 
   parse = parseUnqt
 
--- | A row in an 'HtmlTable'.  The list of 'HtmlCell' values is
+-- | A row in a 'Table'.  The list of 'Cell' values is
 --   assumed to be non-empty.
-newtype HtmlRow = HtmlRow [HtmlCell]
-                deriving (Eq, Ord, Show, Read)
+data Row = Cells [Cell]
+         | HorizontalRule -- ^ Should be between 'Cells' values,
+                          --   requires Graphviz >= 2.29.0
+         deriving (Eq, Ord, Show, Read)
 
-instance PrintDot HtmlRow where
-  unqtDot (HtmlRow cs) = printHtmlTag tr [] $ unqtDot cs
-    where
-      tr = text "TR"
+instance PrintDot Row where
+  unqtDot (Cells cs)     = printTag (text "TR") [] $ unqtDot cs
+  unqtDot HorizontalRule = printEmptyTag (text "HR") []
 
   unqtListToDot = align . cat . mapM unqtDot
 
   listToDot = unqtListToDot
 
-instance ParseDot HtmlRow where
-  -- To save doing it manually, use 'parseHtmlTag' and ignore any
-  -- 'HtmlAttributes' that it might accidentally parse.
-  parseUnqt = wrapWhitespace $ parseHtmlTag (const HtmlRow) "TR" parseUnqt
+instance ParseDot Row where
+  -- To save doing it manually, use 'parseTag' and ignore any
+  -- 'Attributes' that it might accidentally parse.
+  parseUnqt = wrapWhitespace $ parseTag (const Cells) "TR" parseUnqt
+              `onFail`
+              parseEmptyTag (const HorizontalRule) "HR"
               `adjustErr`
-              ("Can't parse HtmlRow\n\t"++)
+              ("Can't parse Html.Row\n\t"++)
 
   parse = parseUnqt
 
-  parseUnqtList = wrapWhitespace $ sepBy1 parseUnqt allWhitespace'
+  parseUnqtList = wrapWhitespace $ sepBy1 parseUnqt whitespace
 
   parseList = parseUnqtList
 
--- | Cells either recursively contain another 'HtmlLabel' or else a
+-- | Cells either recursively contain another 'Label' or else a
 --   path to an image file.
-data HtmlCell = HtmlLabelCell HtmlAttributes HtmlLabel
-              | HtmlImgCell HtmlAttributes HtmlImg
-              deriving (Eq, Ord, Show, Read)
+data Cell = LabelCell Attributes Label
+          | ImgCell Attributes Img
+          | VerticalRule -- ^ Should be between 'LabelCell' or
+                         --   'ImgCell' values, requires Graphviz >=
+                         --   2.29.0
+          deriving (Eq, Ord, Show, Read)
 
-instance PrintDot HtmlCell where
-  unqtDot (HtmlLabelCell as l) = printCell as $ unqtDot l
-  unqtDot (HtmlImgCell as img) = printCell as $ unqtDot img
+instance PrintDot Cell where
+  unqtDot (LabelCell as l) = printCell as $ unqtDot l
+  unqtDot (ImgCell as img) = printCell as $ unqtDot img
+  unqtDot VerticalRule     = printEmptyTag (text "VR") []
 
   unqtListToDot = hsep . mapM unqtDot
 
   listToDot = unqtListToDot
 
-printCell :: HtmlAttributes -> DotCode -> DotCode
-printCell = printHtmlTag (text "TD")
+printCell :: Attributes -> DotCode -> DotCode
+printCell = printTag (text "TD")
 
-instance ParseDot HtmlCell where
-  parseUnqt = oneOf [ parseCell HtmlLabelCell parse
-                    , parseCell HtmlImgCell $ wrapWhitespace parseUnqt
+instance ParseDot Cell where
+  parseUnqt = oneOf [ parseCell LabelCell parse
+                    , parseCell ImgCell $ wrapWhitespace parseUnqt
+                    , parseEmptyTag (const VerticalRule) "VR"
                     ]
               `adjustErr`
-              ("Can't parse HtmlCell\n\t"++)
+              ("Can't parse Html.Cell\n\t"++)
     where
-      parseCell = flip parseHtmlTag "TD"
+      parseCell = flip parseTag "TD"
 
   parse = parseUnqt
 
-  parseUnqtList = wrapWhitespace $ sepBy1 parseUnqt allWhitespace'
+  parseUnqtList = wrapWhitespace $ sepBy1 parseUnqt whitespace
 
   parseList = parseUnqtList
 
--- | The path to an image; accepted 'HtmlAttributes' are 'HtmlScale' and 'HtmlSrc'.
-newtype HtmlImg = HtmlImg HtmlAttributes
-             deriving (Eq, Ord, Show, Read)
+-- | The path to an image; accepted 'Attributes' are 'Scale' and 'Src'.
+newtype Img = Img Attributes
+            deriving (Eq, Ord, Show, Read)
 
-instance PrintDot HtmlImg where
-  unqtDot (HtmlImg as) = printHtmlEmptyTag (text "IMG") as
+instance PrintDot Img where
+  unqtDot (Img as) = printEmptyTag (text "IMG") as
 
-instance ParseDot HtmlImg where
-  parseUnqt = wrapWhitespace (parseHtmlEmptyTag HtmlImg "IMG")
+instance ParseDot Img where
+  parseUnqt = wrapWhitespace (parseEmptyTag Img "IMG")
               `adjustErr`
-              ("Can't parse HtmlImg\n\t"++)
+              ("Can't parse Html.Img\n\t"++)
 
   parse = parseUnqt
 
 -- -----------------------------------------------------------------------------
 
 -- | The various HTML-like label-specific attributes being used.
-type HtmlAttributes = [HtmlAttribute]
+type Attributes = [Attribute]
 
--- | Note that not all 'HtmlAttribute' values are valid everywhere:
+-- | Note that not all 'Attribute' values are valid everywhere:
 --   see the comments for each one on where it is valid.
-data HtmlAttribute = HtmlAlign HtmlAlign   -- ^ Valid for:  'HtmlTable', 'HtmlCell', 'HtmlNewline'.
-                   | HtmlBAlign HtmlAlign  -- ^ Valid for: 'HtmlCell'.
-                   | HtmlBGColor Color     -- ^ Valid for: 'HtmlTable' (including 'tableFontAttrs'), 'HtmlCell', 'HtmlFont'.
-                   | HtmlBorder Word8      -- ^ Valid for: 'HtmlTable', 'HtmlCell'.  Default is @1@; @0@ represents no border.
-                   | HtmlCellBorder Word8  -- ^ Valid for: 'HtmlTable'.  Default is @1@; @0@ represents no border.
-                   | HtmlCellPadding Word8 -- ^ Valid for: 'HtmlTable', 'HtmlCell'.  Default is @2@.
-                   | HtmlCellSpacing Word8 -- ^ Valid for: 'HtmlTable', 'HtmlCell'.  Default is @2@; maximum is @127@.
-                   | HtmlColor Color       -- ^ Valid for: 'HtmlTable', 'HtmlCell'.
-                   | HtmlColSpan Word16    -- ^ Valid for: 'HtmlCell'.  Default is @1@.
-                   | HtmlFace Text         -- ^ Valid for: 'tableFontAttrs', 'HtmlFont'.
-                   | HtmlFixedSize Bool    -- ^ Valid for: 'HtmlTable', 'HtmlCell'.  Default is @'False'@.
-                   | HtmlHeight Word16     -- ^ Valid for: 'HtmlTable', 'HtmlCell'.
-                   | HtmlHRef Text         -- ^ Valid for: 'HtmlTable', 'HtmlCell'.
-                   | HtmlPointSize Double  -- ^ Valid for: 'tableFontAttrs', 'HtmlFont'.
-                   | HtmlPort PortName     -- ^ Valid for: 'HtmlTable', 'HtmlCell'.
-                   | HtmlRowSpan Word16    -- ^ Valid for: 'HtmlCell'.
-                   | HtmlScale HtmlScale   -- ^ Valid for: 'HtmlImg'.
-                   | HtmlSrc FilePath      -- ^ Valid for: 'HtmlImg'.
-                   | HtmlTarget Text       -- ^ Valid for: 'HtmlTable', 'HtmlCell'.
-                   | HtmlTitle Text        -- ^ Valid for: 'HtmlTable', 'HtmlCell'.  Has an alias of @TOOLTIP@.
-                   | HtmlVAlign HtmlVAlign -- ^ Valid for: 'HtmlTable', 'HtmlCell'.
-                   | HtmlWidth Word16      -- ^ Valid for: 'HtmlTable', 'HtmlCell'.
-                   deriving (Eq, Ord, Show, Read)
+data Attribute = Align Align       -- ^ Valid for:  'Table', 'Cell', 'Newline'.
+               | BAlign Align      -- ^ Valid for: 'Cell'.
+               | BGColor Color     -- ^ Valid for: 'Table' (including 'tableFontAttrs'), 'Cell', 'Font'.
+               | Border Word8      -- ^ Valid for: 'Table', 'Cell'.  Default is @1@; @0@ represents no border.
+               | CellBorder Word8  -- ^ Valid for: 'Table'.  Default is @1@; @0@ represents no border.
+               | CellPadding Word8 -- ^ Valid for: 'Table', 'Cell'.  Default is @2@.
+               | CellSpacing Word8 -- ^ Valid for: 'Table', 'Cell'.  Default is @2@; maximum is @127@.
+               | Color Color       -- ^ Valid for: 'Table', 'Cell'.
+               | ColSpan Word16    -- ^ Valid for: 'Cell'.  Default is @1@.
+               | Face T.Text       -- ^ Valid for: 'tableFontAttrs', 'Font'.
+               | FixedSize Bool    -- ^ Valid for: 'Table', 'Cell'.  Default is @'False'@.
+               | Height Word16     -- ^ Valid for: 'Table', 'Cell'.
+               | HRef T.Text       -- ^ Valid for: 'Table', 'Cell'.
+               | ID T.Text         -- ^ Valid for: 'Table', 'Cell'.  Requires Graphviz >= 2.29.0
+               | PointSize Double  -- ^ Valid for: 'tableFontAttrs', 'Font'.
+               | Port PortName     -- ^ Valid for: 'Table', 'Cell'.
+               | RowSpan Word16    -- ^ Valid for: 'Cell'.
+               | Scale Scale       -- ^ Valid for: 'Img'.
+               | Src FilePath      -- ^ Valid for: 'Img'.
+               | Target T.Text     -- ^ Valid for: 'Table', 'Cell'.
+               | Title T.Text      -- ^ Valid for: 'Table', 'Cell'.  Has an alias of @TOOLTIP@.
+               | VAlign VAlign     -- ^ Valid for: 'Table', 'Cell'.
+               | Width Word16      -- ^ Valid for: 'Table', 'Cell'.
+               deriving (Eq, Ord, Show, Read)
 
-instance PrintDot HtmlAttribute where
-  unqtDot (HtmlAlign v)       = printHtmlField  "ALIGN" v
-  unqtDot (HtmlBAlign v)      = printHtmlField  "BALIGN" v
-  unqtDot (HtmlBGColor v)     = printHtmlField  "BGCOLOR" v
-  unqtDot (HtmlBorder v)      = printHtmlField  "BORDER" v
-  unqtDot (HtmlCellBorder v)  = printHtmlField  "CELLBORDER" v
-  unqtDot (HtmlCellPadding v) = printHtmlField  "CELLPADDING" v
-  unqtDot (HtmlCellSpacing v) = printHtmlField  "CELLSPACING" v
-  unqtDot (HtmlColor v)       = printHtmlField  "COLOR" v
-  unqtDot (HtmlColSpan v)     = printHtmlField  "COLSPAN" v
-  unqtDot (HtmlFace v)        = printHtmlField' "FACE" $ escapeAttribute v
-  unqtDot (HtmlFixedSize v)   = printHtmlField' "FIXEDSIZE" $ printBoolHtml v
-  unqtDot (HtmlHeight v)      = printHtmlField  "HEIGHT" v
-  unqtDot (HtmlHRef v)        = printHtmlField' "HREF" $ escapeAttribute v
-  unqtDot (HtmlPointSize v)   = printHtmlField  "POINT-SIZE" v
-  unqtDot (HtmlPort v)        = printHtmlField' "PORT" . escapeAttribute $ portName v
-  unqtDot (HtmlRowSpan v)     = printHtmlField  "ROWSPAN" v
-  unqtDot (HtmlScale v)       = printHtmlField  "SCALE" v
-  unqtDot (HtmlSrc v)         = printHtmlField' "SRC" . escapeAttribute $ T.pack v
-  unqtDot (HtmlTarget v)      = printHtmlField' "TARGET" $ escapeAttribute v
-  unqtDot (HtmlTitle v)       = printHtmlField' "TITLE" $ escapeAttribute v
-  unqtDot (HtmlVAlign v)      = printHtmlField  "VALIGN" v
-  unqtDot (HtmlWidth v)       = printHtmlField  "WIDTH" v
+instance PrintDot Attribute where
+  unqtDot (Align v)       = printHtmlField  "ALIGN" v
+  unqtDot (BAlign v)      = printHtmlField  "BALIGN" v
+  unqtDot (BGColor v)     = printHtmlField  "BGCOLOR" v
+  unqtDot (Border v)      = printHtmlField  "BORDER" v
+  unqtDot (CellBorder v)  = printHtmlField  "CELLBORDER" v
+  unqtDot (CellPadding v) = printHtmlField  "CELLPADDING" v
+  unqtDot (CellSpacing v) = printHtmlField  "CELLSPACING" v
+  unqtDot (Color v)       = printHtmlField  "COLOR" v
+  unqtDot (ColSpan v)     = printHtmlField  "COLSPAN" v
+  unqtDot (Face v)        = printHtmlField' "FACE" $ escapeAttribute v
+  unqtDot (FixedSize v)   = printHtmlField' "FIXEDSIZE" $ printBoolHtml v
+  unqtDot (Height v)      = printHtmlField  "HEIGHT" v
+  unqtDot (HRef v)        = printHtmlField' "HREF" $ escapeAttribute v
+  unqtDot (ID v)          = printHtmlField' "ID" $ escapeAttribute v
+  unqtDot (PointSize v)   = printHtmlField  "POINT-SIZE" v
+  unqtDot (Port v)        = printHtmlField' "PORT" . escapeAttribute $ portName v
+  unqtDot (RowSpan v)     = printHtmlField  "ROWSPAN" v
+  unqtDot (Scale v)       = printHtmlField  "SCALE" v
+  unqtDot (Src v)         = printHtmlField' "SRC" . escapeAttribute $ T.pack v
+  unqtDot (Target v)      = printHtmlField' "TARGET" $ escapeAttribute v
+  unqtDot (Title v)       = printHtmlField' "TITLE" $ escapeAttribute v
+  unqtDot (VAlign v)      = printHtmlField  "VALIGN" v
+  unqtDot (Width v)       = printHtmlField  "WIDTH" v
 
   unqtListToDot = hsep . mapM unqtDot
 
   listToDot = unqtListToDot
 
 -- | Only to be used when the 'PrintDot' instance of @a@ matches the
---   HTML syntax (i.e. numbers and @Html*@ values; 'Color' values also
+--   HTML syntax (i.e. numbers and @Html.*@ values; 'Color' values also
 --   seem to work).
-printHtmlField   :: (PrintDot a) => Text -> a -> DotCode
+printHtmlField   :: (PrintDot a) => T.Text -> a -> DotCode
 printHtmlField f = printHtmlField' f . unqtDot
 
-printHtmlField'     :: Text -> DotCode -> DotCode
+printHtmlField'     :: T.Text -> DotCode -> DotCode
 printHtmlField' f v = text f <> equals <> dquotes v
 
-instance ParseDot HtmlAttribute where
-  parseUnqt = oneOf [ parseHtmlField  HtmlAlign "ALIGN"
-                    , parseHtmlField  HtmlBAlign "BALIGN"
-                    , parseHtmlField  HtmlBGColor "BGCOLOR"
-                    , parseHtmlField  HtmlBorder "BORDER"
-                    , parseHtmlField  HtmlCellBorder "CELLBORDER"
-                    , parseHtmlField  HtmlCellPadding "CELLPADDING"
-                    , parseHtmlField  HtmlCellSpacing "CELLSPACING"
-                    , parseHtmlField  HtmlColor "COLOR"
-                    , parseHtmlField  HtmlColSpan "COLSPAN"
-                    , parseHtmlField' HtmlFace "FACE" unescapeAttribute
-                    , parseHtmlField' HtmlFixedSize "FIXEDSIZE" parseBoolHtml
-                    , parseHtmlField  HtmlHeight "HEIGHT"
-                    , parseHtmlField' HtmlHRef "HREF" unescapeAttribute
-                    , parseHtmlField  HtmlPointSize "POINT-SIZE"
-                    , parseHtmlField' (HtmlPort . PN) "PORT" unescapeAttribute
-                    , parseHtmlField  HtmlRowSpan "ROWSPAN"
-                    , parseHtmlField  HtmlScale "SCALE"
-                    , parseHtmlField' HtmlSrc "SRC" $ liftM T.unpack unescapeAttribute
-                    , parseHtmlField' HtmlTarget "TARGET" unescapeAttribute
-                    , parseHtmlField' HtmlTitle "TITLE" unescapeAttribute
+instance ParseDot Attribute where
+  parseUnqt = oneOf [ parseHtmlField  Align "ALIGN"
+                    , parseHtmlField  BAlign "BALIGN"
+                    , parseHtmlField  BGColor "BGCOLOR"
+                    , parseHtmlField  Border "BORDER"
+                    , parseHtmlField  CellBorder "CELLBORDER"
+                    , parseHtmlField  CellPadding "CELLPADDING"
+                    , parseHtmlField  CellSpacing "CELLSPACING"
+                    , parseHtmlField  Color "COLOR"
+                    , parseHtmlField  ColSpan "COLSPAN"
+                    , parseHtmlField' Face "FACE" unescapeAttribute
+                    , parseHtmlField' FixedSize "FIXEDSIZE" parseBoolHtml
+                    , parseHtmlField  Height "HEIGHT"
+                    , parseHtmlField' HRef "HREF" unescapeAttribute
+                    , parseHtmlField' ID "ID" unescapeAttribute
+                    , parseHtmlField  PointSize "POINT-SIZE"
+                    , parseHtmlField' (Port . PN) "PORT" unescapeAttribute
+                    , parseHtmlField  RowSpan "ROWSPAN"
+                    , parseHtmlField  Scale "SCALE"
+                    , parseHtmlField' Src "SRC" $ liftM T.unpack unescapeAttribute
+                    , parseHtmlField' Target "TARGET" unescapeAttribute
+                    , parseHtmlField' Title "TITLE" unescapeAttribute
                       `onFail`
-                      parseHtmlField' HtmlTitle "TOOLTIP" unescapeAttribute
-                    , parseHtmlField  HtmlVAlign "VALIGN"
-                    , parseHtmlField  HtmlWidth "WIDTH"
+                      parseHtmlField' Title "TOOLTIP" unescapeAttribute
+                    , parseHtmlField  VAlign "VALIGN"
+                    , parseHtmlField  Width "WIDTH"
                     ]
 
   parse = parseUnqt
 
-  parseUnqtList = sepBy parseUnqt allWhitespace -- needs at least one whitespace char
+  parseUnqtList = sepBy parseUnqt whitespace1 -- needs at least one whitespace char
 
   parseList = parseUnqtList
 
 
 
-parseHtmlField     :: (ParseDot a) => (a -> HtmlAttribute) -> String
-                      -> Parse HtmlAttribute
+parseHtmlField     :: (ParseDot a) => (a -> Attribute) -> String
+                  -> Parse Attribute
 parseHtmlField c f = parseHtmlField' c f parseUnqt
 
-parseHtmlField'       :: (a -> HtmlAttribute) -> String -> Parse a
-                         -> Parse HtmlAttribute
+parseHtmlField'       :: (a -> Attribute) -> String -> Parse a
+                     -> Parse Attribute
 parseHtmlField' c f p = do string f
                            parseEq
                            liftM c $ quotedParse p
@@ -373,23 +411,22 @@
 -- | Specifies horizontal placement. When an object is allocated more
 --   space than required, this value determines where the extra space
 --   is placed left and right of the object.
-data HtmlAlign = HLeft
-               | HCenter -- ^ Default value.
-               | HRight
-               | HText -- ^ 'HtmlLabelCell' values only; aligns lines
-                       --   of text using the full cell width. The
-                       --   alignment of a line is determined by its
-                       --   (possibly implicit) associated
-                       --   'HtmlNewline' element.
-               deriving (Eq, Ord, Bounded, Enum, Show, Read)
+data Align = HLeft
+           | HCenter -- ^ Default value.
+           | HRight
+           | HText -- ^ 'LabelCell' values only; aligns lines of text
+                   --   using the full cell width. The alignment of a
+                   --   line is determined by its (possibly implicit)
+                   --   associated 'Newline' element.
+           deriving (Eq, Ord, Bounded, Enum, Show, Read)
 
-instance PrintDot HtmlAlign where
+instance PrintDot Align where
   unqtDot HLeft   = text "LEFT"
   unqtDot HCenter = text "CENTER"
   unqtDot HRight  = text "RIGHT"
   unqtDot HText   = text "TEXT"
 
-instance ParseDot HtmlAlign where
+instance ParseDot Align where
   parseUnqt = oneOf [ stringRep HLeft "LEFT"
                     , stringRep HCenter "CENTER"
                     , stringRep HRight "RIGHT"
@@ -401,17 +438,17 @@
 -- | Specifies vertical placement. When an object is allocated more
 --   space than required, this value determines where the extra space
 --   is placed above and below the object.
-data HtmlVAlign = HTop
-                | HMiddle -- ^ Default value.
-                | HBottom
-                deriving (Eq, Ord, Bounded, Enum, Show, Read)
+data VAlign = HTop
+            | HMiddle -- ^ Default value.
+            | HBottom
+            deriving (Eq, Ord, Bounded, Enum, Show, Read)
 
-instance PrintDot HtmlVAlign where
+instance PrintDot VAlign where
   unqtDot HTop    = text "TOP"
   unqtDot HMiddle = text "MIDDLE"
   unqtDot HBottom = text "BOTTOM"
 
-instance ParseDot HtmlVAlign where
+instance ParseDot VAlign where
   parseUnqt = oneOf [ stringRep HTop "TOP"
                     , stringRep HMiddle "MIDDLE"
                     , stringRep HBottom "BOTTOM"
@@ -422,39 +459,39 @@
 -- | Specifies how an image will use any extra space available in its
 --   cell.  If undefined, the image inherits the value of the
 --   @ImageScale@ attribute.
-data HtmlScale = HtmlNaturalSize -- ^ Default value.
-               | HtmlScaleUniformly
-               | HtmlExpandWidth
-               | HtmlExpandHeight
-               | HtmlExpandBoth
+data Scale = NaturalSize -- ^ Default value.
+               | ScaleUniformly
+               | ExpandWidth
+               | ExpandHeight
+               | ExpandBoth
                deriving (Eq, Ord, Bounded, Enum, Show, Read)
 
-instance PrintDot HtmlScale where
-  unqtDot HtmlNaturalSize    = text "FALSE"
-  unqtDot HtmlScaleUniformly = text "TRUE"
-  unqtDot HtmlExpandWidth    = text "WIDTH"
-  unqtDot HtmlExpandHeight   = text "HEIGHT"
-  unqtDot HtmlExpandBoth     = text "BOTH"
+instance PrintDot Scale where
+  unqtDot NaturalSize    = text "FALSE"
+  unqtDot ScaleUniformly = text "TRUE"
+  unqtDot ExpandWidth    = text "WIDTH"
+  unqtDot ExpandHeight   = text "HEIGHT"
+  unqtDot ExpandBoth     = text "BOTH"
 
-instance ParseDot HtmlScale where
-  parseUnqt = oneOf [ stringRep HtmlNaturalSize "FALSE"
-                    , stringRep HtmlScaleUniformly "TRUE"
-                    , stringRep HtmlExpandWidth "WIDTH"
-                    , stringRep HtmlExpandHeight "HEIGHT"
-                    , stringRep HtmlExpandBoth "BOTH"
+instance ParseDot Scale where
+  parseUnqt = oneOf [ stringRep NaturalSize "FALSE"
+                    , stringRep ScaleUniformly "TRUE"
+                    , stringRep ExpandWidth "WIDTH"
+                    , stringRep ExpandHeight "HEIGHT"
+                    , stringRep ExpandBoth "BOTH"
                     ]
 
   parse = parseUnqt
 
 -- -----------------------------------------------------------------------------
 
-escapeAttribute :: Text -> DotCode
+escapeAttribute :: T.Text -> DotCode
 escapeAttribute = escapeHtml False
 
-escapeValue :: Text -> DotCode
+escapeValue :: T.Text -> DotCode
 escapeValue = escapeHtml True
 
-escapeHtml               :: Bool -> Text -> DotCode
+escapeHtml               :: Bool -> T.Text -> DotCode
 escapeHtml quotesAllowed = hcat . liftM concat
                            . mapM (escapeSegment . T.unpack)
                            . T.groupBy ((==) `on` isSpace)
@@ -476,16 +513,16 @@
     escape' e = char '&' <> e <> char ';'
     escape = escape' . text
 
-unescapeAttribute :: Parse Text
+unescapeAttribute :: Parse T.Text
 unescapeAttribute = unescapeHtml False
 
-unescapeValue :: Parse Text
+unescapeValue :: Parse T.Text
 unescapeValue = unescapeHtml True
 
 -- | Parses an HTML-compatible 'String', de-escaping known characters.
 --   Note: this /will/ fail if an unknown non-numeric HTML-escape is
 --   used.
-unescapeHtml               :: Bool -> Parse Text
+unescapeHtml               :: Bool -> Parse T.Text
 unescapeHtml quotesAllowed = liftM (T.pack . catMaybes)
                              . many1 . oneOf $ [ parseEscpd
                                                , validChars
@@ -519,7 +556,7 @@
 
 -- | The characters that need to be escaped and what they need to be
 --   replaced with (sans @'&'@).
-htmlEscapes :: [(Char, Text)]
+htmlEscapes :: [(Char, T.Text)]
 htmlEscapes = [ ('"', "quot")
               , ('<', "lt")
               , ('>', "gt")
@@ -532,7 +569,7 @@
 -- | Flip the order and add extra values that might be escaped.  More
 --   specifically, provide the escape code for spaces (@\"nbsp\"@) and
 --   apostrophes (@\"apos\"@) since they aren't used for escaping.
-htmlUnescapes :: [(Text, Char)]
+htmlUnescapes :: [(T.Text, Char)]
 htmlUnescapes = maybeEscaped
                 ++
                 map (uncurry (flip (,))) htmlEscapes
@@ -550,46 +587,55 @@
 -- -----------------------------------------------------------------------------
 
 -- | Print something like @<FOO ATTR=\"ATTR_VALUE\">value<\/FOO>@
-printHtmlTag        :: DotCode -> HtmlAttributes -> DotCode -> DotCode
-printHtmlTag t as v = angled (t <+> toDot as)
+printTag        :: DotCode -> Attributes -> DotCode -> DotCode
+printTag t as v = angled (t <+> toDot as)
                       <> v
                       <> angled (fslash <> t)
 
-printHtmlFontTag :: HtmlAttributes -> DotCode -> DotCode
-printHtmlFontTag = printHtmlTag (text "FONT")
+printFontTag :: Attributes -> DotCode -> DotCode
+printFontTag = printTag (text "FONT")
 
 -- | Print something like @<FOO ATTR=\"ATTR_VALUE\"\/>@
-printHtmlEmptyTag      :: DotCode -> HtmlAttributes -> DotCode
-printHtmlEmptyTag t as = angled $ t <+> toDot as <> fslash
+printEmptyTag      :: DotCode -> Attributes -> DotCode
+printEmptyTag t as = angled $ t <+> toDot as <> fslash
 
 -- -----------------------------------------------------------------------------
 
 -- Note: can't use bracket here because we're not completely
 -- discarding everything from the opening bracket.
 
+-- Not using parseTagRep for parseTag because open/close case
+-- is different; worth fixing?
+
 -- | Parse something like @<FOO ATTR=\"ATTR_VALUE\">value<\/FOO>@
-parseHtmlTag        :: (HtmlAttributes -> val -> tag) -> String
+parseTag        :: (Attributes -> val -> tag) -> String
                        -> Parse val -> Parse tag
-parseHtmlTag c t pv = do as <- parseAngled openingTag
-                         v <- pv
-                         parseAngled $ character '/' >> t' >> allWhitespace'
-                         return $ c as v
+parseTag c t pv = do as <- parseAngled openingTag
+                     v <- pv
+                     parseAngled $ character '/' >> t' >> whitespace
+                     return $ c as v
   where
     t' = string t
     openingTag = do t'
-                    as <- tryParseList' $ allWhitespace >> parse
-                    allWhitespace'
+                    as <- tryParseList' $ whitespace1 >> parse
+                    whitespace
                     return as
 
-parseHtmlFontTag :: (HtmlAttributes -> val -> tag) -> Parse val -> Parse tag
-parseHtmlFontTag = flip parseHtmlTag "FONT"
+parseTagRep :: (tagName -> val -> tag) -> Parse tagName -> Parse val -> Parse tag
+parseTagRep c pt pv = do tn <- parseAngled (pt `discard` whitespace)
+                         v <- pv
+                         parseAngled $ character '/' >> pt >> whitespace
+                         return $ c tn v
 
+parseFontTag :: (Attributes -> val -> tag) -> Parse val -> Parse tag
+parseFontTag = flip parseTag "FONT"
+
 -- | Parse something like @<FOO ATTR=\"ATTR_VALUE\"\/>@
-parseHtmlEmptyTag     :: (HtmlAttributes -> tag) -> String -> Parse tag
-parseHtmlEmptyTag c t = parseAngled
+parseEmptyTag     :: (Attributes -> tag) -> String -> Parse tag
+parseEmptyTag c t = parseAngled
                         ( do string t
-                             as <- tryParseList' $ allWhitespace >> parse
-                             allWhitespace'
+                             as <- tryParseList' $ whitespace1 >> parse
+                             whitespace
                              character '/'
                              return $ c as
                         )
diff --git a/Data/GraphViz/Commands.hs b/Data/GraphViz/Commands.hs
--- a/Data/GraphViz/Commands.hs
+++ b/Data/GraphViz/Commands.hs
@@ -63,21 +63,27 @@
 --   <http://graphviz.org/pdf/dot.1.pdf>, or if installed on your
 --   system @man graphviz@).  Note that any command can be used on
 --   both directed and undirected graphs.
-data GraphvizCommand = Dot   -- ^ For hierachical graphs (ideal for
-                             --   directed graphs).
-                     | Neato -- ^ For symmetric layouts of graphs
-                             --   (ideal for undirected graphs).
-                     | TwoPi -- ^ For radial layout of graphs.
-                     | Circo -- ^ For circular layout of graphs.
-                     | Fdp   -- ^ For symmetric layout of graphs.
+data GraphvizCommand = Dot       -- ^ For hierachical graphs (ideal for
+                                 --   directed graphs).
+                     | Neato     -- ^ For symmetric layouts of graphs
+                                 --   (ideal for undirected graphs).
+                     | TwoPi     -- ^ For radial layout of graphs.
+                     | Circo     -- ^ For circular layout of graphs.
+                     | Fdp       -- ^ For symmetric layout of graphs.
+                     | Osage     -- ^ Filter for drawing clustered graphs,
+                                 --   requires Graphviz >= 2.28.0.
+                     | Patchwork -- ^ Draw clustered graphs as treemaps,
+                                 --   requires Graphviz >= 2.28.0.
                      deriving (Eq, Ord, Show, Read)
 
-showCmd        :: GraphvizCommand -> String
-showCmd Dot    = "dot"
-showCmd Neato  = "neato"
-showCmd TwoPi  = "twopi"
-showCmd Circo  = "circo"
-showCmd Fdp    = "fdp"
+showCmd           :: GraphvizCommand -> String
+showCmd Dot       = "dot"
+showCmd Neato     = "neato"
+showCmd TwoPi     = "twopi"
+showCmd Circo     = "circo"
+showCmd Fdp       = "fdp"
+showCmd Osage     = "osage"
+showCmd Patchwork = "patchwork"
 
 -- | The default command for directed graphs.
 dirCommand :: GraphvizCommand
@@ -161,6 +167,8 @@
                     | WBmp      -- ^ Wireless BitMap format;
                                 --   monochrome format usually used
                                 --   for mobile computing devices.
+                    | WebP      -- ^ Google's WebP format; requires
+                                --   Graphviz >= 2.29.0.
                     deriving (Eq, Ord, Bounded, Enum, Show, Read)
 
 instance GraphvizResult GraphvizOutput where
@@ -192,6 +200,7 @@
   outputCall VmlZ      = "vmlz"
   outputCall Vrml      = "vrml"
   outputCall WBmp      = "wbmp"
+  outputCall WebP      = "webp"
 
 -- | A default file extension for each 'GraphvizOutput'.
 defaultExtension           :: GraphvizOutput -> String
@@ -223,6 +232,7 @@
 defaultExtension VmlZ      = "vmlz"
 defaultExtension Vrml      = "vrml"
 defaultExtension WBmp      = "wbmp"
+defaultExtension WebP      = "webp"
 
 -- | Unlike 'GraphvizOutput', these items do not produce an output
 --   file; instead, they directly draw a canvas (i.e. a window) with
diff --git a/Data/GraphViz/Commands/IO.hs b/Data/GraphViz/Commands/IO.hs
--- a/Data/GraphViz/Commands/IO.hs
+++ b/Data/GraphViz/Commands/IO.hs
@@ -45,7 +45,7 @@
                 , hClose, hGetContents, hSetBinaryMode)
 import System.Exit(ExitCode(ExitSuccess))
 import System.Process(runInteractiveProcess, waitForProcess)
-import Control.Exception.Extensible(IOException, evaluate)
+import Control.Exception(IOException, evaluate)
 import Control.Concurrent(MVar, forkIO, newEmptyMVar, putMVar, takeMVar)
 
 -- -----------------------------------------------------------------------------
diff --git a/Data/GraphViz/Exception.hs b/Data/GraphViz/Exception.hs
--- a/Data/GraphViz/Exception.hs
+++ b/Data/GraphViz/Exception.hs
@@ -15,7 +15,7 @@
        , bracket
        ) where
 
-import Control.Exception.Extensible
+import Control.Exception
 import Data.Typeable
 
 -- -----------------------------------------------------------------------------
diff --git a/Data/GraphViz/Parsing.hs b/Data/GraphViz/Parsing.hs
--- a/Data/GraphViz/Parsing.hs
+++ b/Data/GraphViz/Parsing.hs
@@ -47,10 +47,8 @@
     , character
     , parseStrictFloat
     , noneOf
+    , whitespace1
     , whitespace
-    , whitespace'
-    , allWhitespace
-    , allWhitespace'
     , wrapWhitespace
     , optionalQuotedString
     , optionalQuoted
@@ -79,6 +77,7 @@
     , stringValue
     , parseAngled
     , parseBraced
+    , parseColorScheme
     ) where
 
 import Data.GraphViz.Util
@@ -123,7 +122,7 @@
 runParser'   :: Parse a -> Text -> a
 runParser' p = checkValidParse . fst . runParser p'
   where
-    p' = p `discard` (allWhitespace' >> eof)
+    p' = p `discard` (whitespace >> eof)
 
 class ParseDot a where
   parseUnqt :: Parse a
@@ -135,9 +134,9 @@
   parseUnqtList = bracketSep (parseAndSpace $ character '[')
                              ( wrapWhitespace parseComma
                                `onFail`
-                               allWhitespace
+                               whitespace1
                              )
-                             (allWhitespace' >> character ']')
+                             (whitespace >> character ']')
                              parseUnqt
 
   parseList :: Parse [a]
@@ -310,7 +309,7 @@
                               `adjustErr` ("Missing closing bracket:\n\t"++))
 
 parseAndSpace   :: Parse a -> Parse a
-parseAndSpace p = p `discard` allWhitespace'
+parseAndSpace p = p `discard` whitespace
 
 string :: String -> Parse ()
 string = mapM_ character
@@ -349,21 +348,17 @@
 noneOf   :: [Char] -> Parse Char
 noneOf t = satisfy (\x -> all (/= x) t)
 
-whitespace :: Parse ()
-whitespace = many1Satisfy isSpace >> return ()
-
-whitespace' :: Parse ()
-whitespace' = manySatisfy isSpace >> return ()
-
-allWhitespace :: Parse ()
-allWhitespace = (whitespace `onFail` newline) >> allWhitespace'
+-- | Parses at least one whitespace character.
+whitespace1 :: Parse ()
+whitespace1 = many1Satisfy isSpace >> return ()
 
-allWhitespace' :: Parse ()
-allWhitespace' = newline' >> whitespace'
+-- | Parses zero or more whitespace characters.
+whitespace :: Parse ()
+whitespace = manySatisfy isSpace >> return ()
 
 -- | Parse and discard optional whitespace.
 wrapWhitespace :: Parse a -> Parse a
-wrapWhitespace = bracket allWhitespace' allWhitespace'
+wrapWhitespace = bracket whitespace whitespace
 
 optionalQuotedString :: String -> Parse ()
 optionalQuotedString = optionalQuoted . string
@@ -406,6 +401,7 @@
               return $ fromMaybe slash mE
     oth = satisfy (`Set.notMember` bndSet)
 
+-- | Parses a newline.
 newline :: Parse ()
 newline = strings ["\r\n", "\n", "\r"]
 
@@ -413,7 +409,7 @@
 --   non-whitespace is reached.  The whitespace on that line is
 --   not consumed.
 newline' :: Parse ()
-newline' = many (whitespace' >> newline) >> return ()
+newline' = many (whitespace >> newline) >> return ()
 
 -- | Parses and returns all characters up till the end of the line,
 --   but does not touch the newline characters.
@@ -458,9 +454,7 @@
 
 commaSep'       :: Parse a -> Parse b -> Parse (a,b)
 commaSep' pa pb = do a <- pa
-                     whitespace'
-                     parseComma
-                     whitespace'
+                     wrapWhitespace parseComma
                      b <- pb
                      return (a,b)
 
@@ -483,11 +477,15 @@
 -- These instances are defined here to avoid cyclic imports and orphan instances
 
 instance ParseDot ColorScheme where
-    parseUnqt = do cs <- stringRep X11 "X11"
-                          `onFail`
-                          liftM Brewer parseUnqt
-                   setColorScheme cs
-                   return cs
+  parseUnqt = parseColorScheme True
+
+parseColorScheme     :: Bool -> Parse ColorScheme
+parseColorScheme scs = do cs <- oneOf [ stringRep X11 "X11"
+                                      , stringRep SVG "svg"
+                                      , liftM Brewer parseUnqt
+                                      ]
+                          when scs $ setColorScheme cs
+                          return cs
 
 instance ParseDot BrewerScheme where
   parseUnqt = liftM2 BScheme parseUnqt parseUnqt
diff --git a/Data/GraphViz/PreProcessing.hs b/Data/GraphViz/PreProcessing.hs
--- a/Data/GraphViz/PreProcessing.hs
+++ b/Data/GraphViz/PreProcessing.hs
@@ -118,7 +118,7 @@
                  `onFail`
                  liftM B.singleton (satisfy (quoteChar /=))
     parseConcat = parseSep >> character '+' >> parseSep
-    parseSep = many $ allWhitespace `onFail` parseUnwanted
+    parseSep = many $ whitespace1 `onFail` parseUnwanted
     wrapQuotes str = qc `mappend` str `mappend` qc
     qc = B.singleton '"'
 
diff --git a/Data/GraphViz/Printing.hs b/Data/GraphViz/Printing.hs
--- a/Data/GraphViz/Printing.hs
+++ b/Data/GraphViz/Printing.hs
@@ -60,6 +60,7 @@
     , printField
     , angled
     , fslash
+    , printColorScheme
     ) where
 
 import Data.GraphViz.Util
@@ -85,7 +86,7 @@
 import Data.Char(toLower)
 import qualified Data.Set as Set
 import Data.Word(Word8, Word16)
-import Control.Monad(ap)
+import Control.Monad(ap, when)
 import Control.Monad.Trans.State
 
 -- -----------------------------------------------------------------------------
@@ -274,11 +275,15 @@
 -- These instances are defined here to avoid cyclic imports and orphan instances
 
 instance PrintDot ColorScheme where
-  unqtDot cs = do setColorScheme cs
-                  case cs of
-                    X11       -> unqtText "X11"
-                    Brewer bs -> unqtDot bs
+  unqtDot = printColorScheme True
 
+printColorScheme        :: Bool -> ColorScheme -> DotCode
+printColorScheme scs cs = do when scs $ setColorScheme cs
+                             case cs of
+                               X11       -> unqtText "X11"
+                               SVG       -> unqtText "svg"
+                               Brewer bs -> unqtDot bs
+
 instance PrintDot BrewerScheme where
   unqtDot (BScheme n l) = unqtDot n <> unqtDot l
 
@@ -318,4 +323,3 @@
   unqtDot Ylgnbu   = unqtText "ylgnbu"
   unqtDot Ylorbr   = unqtText "ylorbr"
   unqtDot Ylorrd   = unqtText "ylorrd"
-
diff --git a/Data/GraphViz/State.hs b/Data/GraphViz/State.hs
--- a/Data/GraphViz/State.hs
+++ b/Data/GraphViz/State.hs
@@ -13,6 +13,9 @@
 module Data.GraphViz.State
        ( GraphvizStateM(..)
        , GraphvizState(..)
+       , AttributeType(..)
+       , setAttributeType
+       , getAttributeType
        , initialState
        , setDirectedness
        , getDirectedness
@@ -44,17 +47,32 @@
 
   getsGS = stQuery
 
+data AttributeType = GraphAttribute
+                   | SubGraphAttribute
+                   | ClusterAttribute
+                   | NodeAttribute
+                   | EdgeAttribute
+                     deriving (Eq, Ord, Show, Read)
+
 -- | Several aspects of Dot code are either global or mutable state.
-data GraphvizState = GS { directedEdges :: Bool
+data GraphvizState = GS { directedEdges :: !Bool
                         , layerSep      :: [Char]
-                        , colorScheme   :: ColorScheme
+                        , attributeType :: !AttributeType
+                        , graphColor    :: !ColorScheme
+                        , clusterColor  :: !ColorScheme
+                        , nodeColor     :: !ColorScheme
+                        , edgeColor     :: !ColorScheme
                         }
                    deriving (Eq, Ord, Show, Read)
 
 initialState :: GraphvizState
 initialState = GS { directedEdges = True
                   , layerSep      = defLayerSep
-                  , colorScheme   = X11
+                  , attributeType = GraphAttribute
+                  , graphColor    = X11
+                  , clusterColor  = X11
+                  , nodeColor     = X11
+                  , edgeColor     = X11
                   }
 
 setDirectedness   :: (GraphvizStateM m) => Bool -> m ()
@@ -63,6 +81,12 @@
 getDirectedness :: (GraphvizStateM m) => m Bool
 getDirectedness = getsGS directedEdges
 
+setAttributeType    :: (GraphvizStateM m) => AttributeType -> m ()
+setAttributeType tp = modifyGS $ \ gs -> gs { attributeType = tp }
+
+getAttributeType :: (GraphvizStateM m) => m AttributeType
+getAttributeType = getsGS attributeType
+
 setLayerSep     :: (GraphvizStateM m) => [Char] -> m ()
 setLayerSep sep = modifyGS (\ gs -> gs { layerSep = sep } )
 
@@ -70,14 +94,25 @@
 getLayerSep = getsGS layerSep
 
 setColorScheme    :: (GraphvizStateM m) => ColorScheme -> m ()
-setColorScheme cs = modifyGS (\ gs -> gs { colorScheme = cs } )
+setColorScheme cs = do tp <- getsGS attributeType
+                       modifyGS $ \gs -> case tp of
+                                           GraphAttribute    -> gs { graphColor   = cs }
+                                            -- subgraphs don't have specified scheme
+                                           SubGraphAttribute -> gs { graphColor   = cs }
+                                           ClusterAttribute  -> gs { clusterColor = cs }
+                                           NodeAttribute     -> gs { nodeColor    = cs }
+                                           EdgeAttribute     -> gs { edgeColor    = cs }
 
 getColorScheme :: (GraphvizStateM m) => m ColorScheme
-getColorScheme = getsGS colorScheme
+getColorScheme = do tp <- getsGS attributeType
+                    getsGS $ case tp of
+                               GraphAttribute    -> graphColor
+                                -- subgraphs don't have specified scheme
+                               SubGraphAttribute -> graphColor
+                               ClusterAttribute  -> clusterColor
+                               NodeAttribute     -> nodeColor
+                               EdgeAttribute     -> edgeColor
 
 -- | The default separators for 'LayerSep'.
 defLayerSep :: [Char]
 defLayerSep = [' ', ':', '\t']
-
-
-
diff --git a/Data/GraphViz/Testing.hs b/Data/GraphViz/Testing.hs
deleted file mode 100644
--- a/Data/GraphViz/Testing.hs
+++ /dev/null
@@ -1,382 +0,0 @@
-{-# LANGUAGE Rank2Types, FlexibleContexts #-}
-
-{- |
-   Module      : Data.GraphViz.Testing
-   Description : Test-suite for graphviz.
-   Copyright   : (c) Ivan Lazar Miljenovic
-   License     : 3-Clause BSD-style
-   Maintainer  : Ivan.Miljenovic@gmail.com
-
-   This defines a test-suite for the graphviz library.
-
-   Limitations of the test suite are as follows:
-
-   * For the most part, this library lets you use arbitrary numbers
-     for String values.  However, this is not tested due to too many
-     corner cases for special parsers that don't take arbitrary
-     Strings.  As the Dot standard is ambiguous over whether you can
-     or can't use numbers as Strings (more specifically, if they
-     should be quoted or not), this is a user beware situation.
-
-   * Same goes for empty Strings; sometimes they're allowed, sometimes
-     they're not.  Thus, to simplify matters they're not generated.
-
-   * The generated Strings are very simple, only composed of lower
-     case letters, digits and some symbols.  This is because too many
-     tests were \"failing\" due to some corner case; e.g. lower-case
-     letters only because the parser parses Strings as lowercase, so
-     if a particular String isn't valid (e.g. @\"all\"@ for 'LayerID',
-     then the 'Arbitrary' instance has to ensure that all possible
-     ways of capitalising that String isn't generated as a random
-     'LRName'.
-
-   * The generated 'DotRepr's are not guaranteed to be valid.
-
-   * To avoid needless endless recursion, sub-graphs do not have their
-     own internal sub-graphs.
-
-   * This test suite isn't perfect: if you deliberately try to stuff
-     something up, you probably can.
--}
-module Data.GraphViz.Testing
-       ( -- * Running the test suite.
-         runChosenTests
-       , runTests
-       , runTest
-         -- ** The tests themselves
-       , Test(..)
-       , defaultTests
-       , test_printParseID_Attributes
-       , test_generalisedSameDot
-       , test_printParseID
-       , test_preProcessingID
-       , test_dotizeAugment
-       , test_dotizeAugmentUniq
-       , test_canonicalise
-       , test_transitive
-        -- * Re-exporting modules for manual testing.
-       , module Data.GraphViz
-       , module Data.GraphViz.Testing.Properties
-         -- * Debugging printing
-       , PrintDot(..)
-       , printIt
-       , renderDot
-         -- * Debugging parsing
-       , ParseDot(..)
-       , parseIt
-       , runParser
-       , preProcess
-       ) where
-
-import Test.QuickCheck
-
-import Data.GraphViz.Testing.Instances()
-import Data.GraphViz.Testing.Properties
-
-import Data.GraphViz
-import Data.GraphViz.Parsing(ParseDot(..), parseIt, runParser)
-import Data.GraphViz.PreProcessing(preProcess)
-import Data.GraphViz.Printing(PrintDot(..), printIt, renderDot)
-import qualified Data.GraphViz.Types.Generalised as G
-import qualified Data.GraphViz.Types.Graph as Gr
--- Can't use PatriciaTree because a Show instance is needed.
-import Data.Graph.Inductive.Tree(Gr)
-
-import System.Exit(ExitCode(..), exitWith)
-import System.IO(hPutStrLn, stderr)
-
--- -----------------------------------------------------------------------------
-
-runChosenTests       :: [Test] -> IO ()
-runChosenTests tsts = do putStrLn msg
-                         blankLn
-                         runTests tsts
-                         spacerLn
-                         putStrLn successMsg
-  where
-    msg = "This is the test suite for the graphviz library.\n\
-           \If any of these tests fail, please inform the maintainer,\n\
-           \including full output of this test suite."
-
-    successMsg = "All tests were successful!"
-
-
--- -----------------------------------------------------------------------------
--- Defining a Test structure and how to run tests.
-
--- | Defines the test structure being used.
-data Test = Test { name       :: String
-                 , lookupName :: String      -- ^ Should be lowercase
-                 , desc       :: String
-                 , tests      :: [IO Result] -- ^ QuickCheck test.
-                 }
-
--- | Run all of the provided tests.
-runTests :: [Test] -> IO ()
-runTests = mapM_ ((>>) spacerLn . runTest)
-
--- | Run the provided test.
-runTest     :: Test -> IO ()
-runTest tst = do putStrLn title
-                 blankLn
-                 putStrLn $ desc tst
-                 blankLn
-                 run $ tests tst
-                 blankLn
-  where
-    nm = '"' : name tst ++ "\""
-    title = "Running test: " ++ nm ++ "."
-    successMsg = "All tests for " ++ nm ++ " were successful!"
-    gaveUpMsg = "Too many sample inputs for " ++ nm ++ " were rejected;\n\
-                 \tentatively marking this as successful."
-    failMsg = "The tests for " ++ nm ++ " failed!\n\
-               \Not attempting any further tests."
-
-    run [] = putStrLn successMsg
-    run (t:ts) = do r <- t
-                    case r of
-                       Success{} -> run ts
-                       GaveUp{}  -> putStrLn gaveUpMsg >> run ts
-                       _         -> die failMsg
-
-spacerLn :: IO ()
-spacerLn = putStrLn (replicate 70 '=') >> blankLn
-
-blankLn :: IO ()
-blankLn = putStrLn ""
-
-die     :: String -> IO a
-die msg = do hPutStrLn stderr msg
-             exitWith (ExitFailure 1)
-
-qCheck :: (Testable prop) => prop -> IO Result
-qCheck = quickCheckWithResult (stdArgs { maxSize = 50, maxSuccess = 200 })
-
--- -----------------------------------------------------------------------------
--- Defining the tests to use.
-
--- | The tests to run by default.
-defaultTests :: [Test]
-defaultTests = [ test_printParseID_Attributes
-               , test_generalisedSameDot
-               , test_printParseID
-               , test_preProcessingID
-               , test_dotizeAugment
-               , test_dotizeHasAugment
-               , test_dotizeAugmentUniq
-               , test_findAllNodes
-               , test_findAllNodesE
-               , test_findAllEdges
-               , test_noGraphInfo
-               , test_canonicalise
-               , test_transitive
-               ]
-
--- | Test that 'Attributes' can be printed and then parsed back.
-test_printParseID_Attributes :: Test
-test_printParseID_Attributes
-  = Test { name       = "Printing and parsing of Attributes"
-         , lookupName = "attributes"
-         , desc       = dsc
-         , tests      = [qCheck prop]
-         }
-  where
-    prop :: Attributes -> Property
-    prop = prop_printParseListID
-
-    dsc = "The most common source of errors in printing and parsing are for\n\
-          \Attributes."
-
-test_generalisedSameDot :: Test
-test_generalisedSameDot
-  = Test { name       = "Printing generalised Dot code"
-         , lookupName = "makegeneralised"
-         , desc       = dsc
-         , tests      = [qCheck prop]
-         }
-    where
-      prop :: DotGraph Int -> Bool
-      prop = prop_generalisedSameDot
-
-      dsc = "When generalising \"DotGraph\" values to other \"DotRepr\" values,\n\
-             \the generated Dot code should be identical."
-
-test_printParseID :: Test
-test_printParseID
-  = Test { name       = "Printing and Parsing DotReprs"
-         , lookupName = "printparseid"
-         , desc       = dsc
-         , tests      = tsts
-         }
-  where
-    tsts :: [IO Result]
-    tsts = [ qCheck (prop_printParseID :: DotGraph    Int -> Bool)
-           , qCheck (prop_printParseID :: G.DotGraph  Int -> Bool)
-           , qCheck (prop_printParseID :: Gr.DotGraph Int -> Bool)
-           ]
-
-    dsc = "The graphviz library should be able to parse back in its own\n\
-           \generated Dot code for any \"DotRepr\" instance"
-
-test_preProcessingID :: Test
-test_preProcessingID
-  = Test { name       = "Pre-processing Dot code"
-         , lookupName = "preprocessing"
-         , desc       = dsc
-         , tests      = [qCheck prop]
-         }
-  where
-    prop :: DotGraph Int -> Bool
-    prop = prop_preProcessingID
-
-    dsc = "When parsing Dot code, some pre-processing is done to remove items\n\
-           \such as comments and to join together multi-line strings.  This\n\
-           \test verifies that this pre-processing doesn't affect actual\n\
-           \Dot code by running the pre-processor on generated Dot code.\n\n\
-           \This test is not run on generalised Dot graphs as if it works for\n\
-           \normal dot graphs then it should also work for generalised ones."
-
-test_dotizeAugment :: Test
-test_dotizeAugment
-  = Test { name       = "Augmenting FGL Graphs"
-         , lookupName = "augment"
-         , desc       = dsc
-         , tests      = [qCheck prop]
-         }
-  where
-    prop :: Gr Char Double -> Bool
-    prop = prop_dotizeAugment
-
-    dsc = "The various Graph to Graph functions in Data.GraphViz should\n\
-           \only _augment_ the graph labels and not change the graphs\n\
-           \themselves.  This test compares the original graphs to these\n\
-           \augmented graphs and verifies that they are the same."
-
-test_dotizeHasAugment :: Test
-test_dotizeHasAugment
-  = Test { name       = "Ensuring augmentation of FGL Graphs"
-         , lookupName = "hasaugment"
-         , desc       = dsc
-         , tests      = [qCheck prop]
-         }
-  where
-    prop :: Gr Char Double -> Bool
-    prop = prop_dotizeHasAugment
-
-    dsc = "The various Graph to Graph functions in Data.GraphViz should\n\
-           \actually agument the graph labels; this ensures that all labels\n\
-           \actually have attached Attributes after augmentation."
-
-test_dotizeAugmentUniq :: Test
-test_dotizeAugmentUniq
-  = Test { name       = "Unique edges in augmented FGL Graphs"
-         , lookupName = "augmentuniq"
-         , desc       = dsc
-         , tests      = [qCheck prop]
-         }
-  where
-    prop :: Gr Char Double -> Bool
-    prop = prop_dotizeAugmentUniq
-
-    dsc = "When augmenting a graph with multiple edges, as long as no\n\
-           \Attributes are provided that override the default settings,\n\
-           \then each edge between two nodes should have a unique position\n\
-           \Attribute, etc."
-
-test_findAllNodes :: Test
-test_findAllNodes
-  = Test { name       = "Ensure all nodes are found in a DotRepr"
-         , lookupName = "findnodes"
-         , desc       = dsc
-         , tests      = map qCheck props
-         }
-  where
-    props :: [Gr () () -> Bool]
-    props = testAllGraphTypes prop_findAllNodes
-
-    dsc = "nodeInformation should find all nodes in a DotRepr;\n\
-           \this is tested by converting an FGL graph and comparing\n\
-           \the nodes it should have to those that are found."
-
-test_findAllNodesE :: Test
-test_findAllNodesE
-  = Test { name       = "Ensure all nodes are found in a node-less DotRepr"
-         , lookupName = "findedgelessnodes"
-         , desc       = dsc
-         , tests      = map qCheck props
-         }
-  where
-    props :: [Gr () () -> Bool]
-    props = testAllGraphTypes prop_findAllNodesE
-
-    dsc = "nodeInformation should find all nodes in a DotRepr,\n\
-           \even if there are no explicit nodes in that graph.\n\
-           \This is tested by converting an FGL graph and comparing\n\
-           \the nodes it should have to those that are found."
-
-test_findAllEdges :: Test
-test_findAllEdges
-  = Test { name       = "Ensure all edges are found in a DotRepr"
-         , lookupName = "findedges"
-         , desc       = dsc
-         , tests      = map qCheck props
-         }
-  where
-    props :: [Gr () () -> Bool]
-    props = testAllGraphTypes prop_findAllEdges
-
-    dsc = "nodeInformation should find all edges in a DotRepr;\n\
-           \this is tested by converting an FGL graph and comparing\n\
-           \the edges it should have to those that are found."
-
-test_noGraphInfo :: Test
-test_noGraphInfo
-  = Test { name       = "Plain DotReprs should have no structural information"
-         , lookupName = "nographinfo"
-         , desc       = dsc
-         , tests      = map qCheck props
-         }
-  where
-    props :: [Gr () () -> Bool]
-    props = testAllGraphTypes prop_noGraphInfo
-
-    dsc = "When converting a Graph to a DotRepr, there should be no\n\
-           \clusters or global attributes."
-
-test_canonicalise :: Test
-test_canonicalise
-  = Test { name       = "Canonicalisation should be idempotent"
-         , lookupName = "canonicalise"
-         , desc       = dsc
-         , tests      = [qCheck prop]
-         }
-  where
-    prop :: DotGraph Int -> Bool
-    prop = prop_canonicalise
-
-    dsc = "Repeated application of canonicalise shouldn't have any further affect."
-
-test_transitive :: Test
-test_transitive
-  = Test { name       = "Transitive reduction should be idempotent"
-         , lookupName = "transitive"
-         , desc       = dsc
-         , tests      = [qCheck prop]
-         }
-  where
-    prop :: DotGraph Int -> Bool
-    prop = prop_transitive
-
-    dsc = "Repeated application of transitiveReduction shouldn't have any further affect."
-
--- -----------------------------------------------------------------------------
-
--- | Used when a property takes in a DotRepr as the first argument to
---   indicate which instance it should test via 'fromCanonical'.
-testAllGraphTypes      :: (Testable prop)
-                          => (forall dg. (Eq (dg Int), DotRepr dg Int) => dg Int -> prop)
-                          -> [prop]
-testAllGraphTypes prop = [ prop (undefined :: DotGraph Int)
-                         , prop (undefined :: G.DotGraph Int)
-                         , prop (undefined :: Gr.DotGraph Int)
-                         ]
diff --git a/Data/GraphViz/Testing/Instances.hs b/Data/GraphViz/Testing/Instances.hs
deleted file mode 100644
--- a/Data/GraphViz/Testing/Instances.hs
+++ /dev/null
@@ -1,27 +0,0 @@
-{-# OPTIONS_GHC -fno-warn-orphans #-}
-{-# LANGUAGE OverloadedStrings #-}
-
-{- |
-   Module      : Data.GraphViz.Testing.Instances
-   Description : 'Arbitrary' instances for graphviz.
-   Copyright   : (c) Ivan Lazar Miljenovic
-   License     : 3-Clause BSD-style
-   Maintainer  : Ivan.Miljenovic@gmail.com
-
-   This module exports the 'Arbitrary' instances for the various types
-   used to represent Graphviz Dot code.
-
-   Note that they do not generally generate /sensible/ values for the
-   various types; in particular, there's no guarantee that the
-   'Attributes' chosen for a particular value type are indeed legal
-   for that type.
- -}
-module Data.GraphViz.Testing.Instances() where
-
-import Data.GraphViz.Testing.Instances.FGL()
-import Data.GraphViz.Testing.Instances.Canonical()
-import Data.GraphViz.Testing.Instances.Generalised()
-import Data.GraphViz.Testing.Instances.Graph()
-
--- -----------------------------------------------------------------------------
-
diff --git a/Data/GraphViz/Testing/Instances/Attributes.hs b/Data/GraphViz/Testing/Instances/Attributes.hs
deleted file mode 100644
--- a/Data/GraphViz/Testing/Instances/Attributes.hs
+++ /dev/null
@@ -1,897 +0,0 @@
-{-# OPTIONS_GHC -fno-warn-orphans #-}
-{-# OPTIONS_HADDOCK hide #-}
-{-# LANGUAGE OverloadedStrings #-}
-
-{- |
-   Module      : Data.GraphViz.Testing.Instances.Attributes
-   Description : Attribute instances for Arbitrary.
-   Copyright   : (c) Ivan Lazar Miljenovic
-   License     : 3-Clause BSD-style
-   Maintainer  : Ivan.Miljenovic@gmail.com
- -}
-module Data.GraphViz.Testing.Instances.Attributes
-       ( arbGraphAttrs
-       , arbSubGraphAttrs
-       , arbClusterAttrs
-       , arbNodeAttrs
-       , arbEdgeAttrs
-       ) where
-
-import Data.GraphViz.Testing.Instances.Helpers
-
-import Data.GraphViz.Attributes.Complete
-import Data.GraphViz.Attributes.Internal(compassLookup)
-import Data.GraphViz.State(initialState, layerSep)
-import Data.GraphViz.Util(bool)
-
-import Test.QuickCheck
-
-import Data.List(nub, delete, groupBy)
-import qualified Data.Map as Map
-import qualified Data.Text.Lazy as T
-import Data.Text.Lazy(Text)
-import Control.Monad(liftM, liftM2, liftM3, liftM4)
-
--- -----------------------------------------------------------------------------
--- Defining Arbitrary instances for Attributes
-
-arbGraphAttrs :: Gen Attributes
-arbGraphAttrs = arbAttrs usedByGraphs
-
-arbSubGraphAttrs :: Gen Attributes
-arbSubGraphAttrs = arbAttrs usedBySubGraphs
-
-arbClusterAttrs :: Gen Attributes
-arbClusterAttrs = arbAttrs usedByClusters
-
-arbNodeAttrs :: Gen Attributes
-arbNodeAttrs = arbAttrs usedByNodes
-
-arbEdgeAttrs :: Gen Attributes
-arbEdgeAttrs = arbAttrs usedByEdges
-
-arbAttrs   :: (Attribute -> Bool) -> Gen Attributes
-arbAttrs p = liftM (filter p) arbList
-
-instance Arbitrary Attribute where
-  arbitrary = oneof [ liftM Damping arbitrary
-                    , liftM K arbitrary
-                    , liftM URL arbitrary
-                    , liftM ArrowHead arbitrary
-                    , liftM ArrowSize arbitrary
-                    , liftM ArrowTail arbitrary
-                    , liftM Aspect arbitrary
-                    , liftM Bb arbitrary
-                    , liftM BgColor arbitrary
-                    , liftM Center arbitrary
-                    , liftM ClusterRank arbitrary
-                    , liftM ColorScheme arbitrary
-                    , liftM Color arbList
-                    , liftM Comment arbitrary
-                    , liftM Compound arbitrary
-                    , liftM Concentrate arbitrary
-                    , liftM Constraint arbitrary
-                    , liftM Decorate arbitrary
-                    , liftM DefaultDist arbitrary
-                    , liftM Dimen arbitrary
-                    , liftM Dim arbitrary
-                    , liftM Dir arbitrary
-                    , liftM DirEdgeConstraints arbitrary
-                    , liftM Distortion arbitrary
-                    , liftM DPI arbitrary
-                    , liftM EdgeURL arbitrary
-                    , liftM EdgeTarget arbitrary
-                    , liftM EdgeTooltip arbitrary
-                    , liftM Epsilon arbitrary
-                    , liftM ESep arbitrary
-                    , liftM FillColor arbitrary
-                    , liftM FixedSize arbitrary
-                    , liftM FontColor arbitrary
-                    , liftM FontName arbitrary
-                    , liftM FontNames arbitrary
-                    , liftM FontPath arbitrary
-                    , liftM FontSize arbitrary
-                    , liftM Group arbitrary
-                    , liftM HeadURL arbitrary
-                    , liftM HeadClip arbitrary
-                    , liftM HeadLabel arbitrary
-                    , liftM HeadPort arbitrary
-                    , liftM HeadTarget arbitrary
-                    , liftM HeadTooltip arbitrary
-                    , liftM Height arbitrary
-                    , liftM ID arbitrary
-                    , liftM Image arbitrary
-                    , liftM ImageScale arbitrary
-                    , liftM LabelURL arbitrary
-                    , liftM LabelAngle arbitrary
-                    , liftM LabelDistance arbitrary
-                    , liftM LabelFloat arbitrary
-                    , liftM LabelFontColor arbitrary
-                    , liftM LabelFontName arbitrary
-                    , liftM LabelFontSize arbitrary
-                    , liftM LabelJust arbitrary
-                    , liftM LabelLoc arbitrary
-                    , liftM LabelTarget arbitrary
-                    , liftM LabelTooltip arbitrary
-                    , liftM Label arbitrary
-                    , liftM Landscape arbitrary
-                    , liftM LayerSep arbitrary
-                    , liftM Layers arbitrary
-                    , liftM Layer arbitrary
-                    , liftM Layout arbitrary
-                    , liftM Len arbitrary
-                    , liftM LevelsGap arbitrary
-                    , liftM Levels arbitrary
-                    , liftM LHead arbitrary
-                    , liftM LPos arbitrary
-                    , liftM LTail arbitrary
-                    , liftM Margin arbitrary
-                    , liftM MaxIter arbitrary
-                    , liftM MCLimit arbitrary
-                    , liftM MinDist arbitrary
-                    , liftM MinLen arbitrary
-                    , liftM Model arbitrary
-                    , liftM Mode arbitrary
-                    , liftM Mosek arbitrary
-                    , liftM NodeSep arbitrary
-                    , liftM NoJustify arbitrary
-                    , liftM Normalize arbitrary
-                    , liftM Nslimit1 arbitrary
-                    , liftM Nslimit arbitrary
-                    , liftM Ordering arbitrary
-                    , liftM Orientation arbitrary
-                    , liftM OutputOrder arbitrary
-                    , liftM OverlapScaling arbitrary
-                    , liftM Overlap arbitrary
-                    , liftM PackMode arbitrary
-                    , liftM Pack arbitrary
-                    , liftM Pad arbitrary
-                    , liftM PageDir arbitrary
-                    , liftM Page arbitrary
-                    , liftM PenColor arbitrary
-                    , liftM PenWidth arbitrary
-                    , liftM Peripheries arbitrary
-                    , liftM Pin arbitrary
-                    , liftM Pos arbitrary
-                    , liftM QuadTree arbitrary
-                    , liftM Quantum arbitrary
-                    , liftM RankDir arbitrary
-                    , liftM RankSep arbList
-                    , liftM Rank arbitrary
-                    , liftM Ratio arbitrary
-                    , liftM Rects arbList
-                    , liftM Regular arbitrary
-                    , liftM ReMinCross arbitrary
-                    , liftM RepulsiveForce arbitrary
-                    , liftM Root arbitrary
-                    , liftM Rotate arbitrary
-                    , liftM SameHead arbitrary
-                    , liftM SameTail arbitrary
-                    , liftM SamplePoints arbitrary
-                    , liftM SearchSize arbitrary
-                    , liftM Sep arbitrary
-                    , liftM ShapeFile arbitrary
-                    , liftM Shape arbitrary
-                    , liftM ShowBoxes arbitrary
-                    , liftM Sides arbitrary
-                    , liftM Size arbitrary
-                    , liftM Skew arbitrary
-                    , liftM Smoothing arbitrary
-                    , liftM SortV arbitrary
-                    , liftM Splines arbitrary
-                    , liftM Start arbitrary
-                    , liftM StyleSheet arbitrary
-                    , liftM Style arbList
-                    , liftM TailURL arbitrary
-                    , liftM TailClip arbitrary
-                    , liftM TailLabel arbitrary
-                    , liftM TailPort arbitrary
-                    , liftM TailTarget arbitrary
-                    , liftM TailTooltip arbitrary
-                    , liftM Target arbitrary
-                    , liftM Tooltip arbitrary
-                    , liftM TrueColor arbitrary
-                    , liftM Vertices arbList
-                    , liftM ViewPort arbitrary
-                    , liftM VoroMargin arbitrary
-                    , liftM Weight arbitrary
-                    , liftM Width arbitrary
-                    , liftM Z arbitrary
-                    , liftM2 UnknownAttribute (suchThat arbIDString validUnknown) arbitrary
-                    ]
-
-  shrink (Damping v)            = map Damping             $ shrink v
-  shrink (K v)                  = map K                   $ shrink v
-  shrink (URL v)                = map URL                 $ shrink v
-  shrink (ArrowHead v)          = map ArrowHead           $ shrink v
-  shrink (ArrowSize v)          = map ArrowSize           $ shrink v
-  shrink (ArrowTail v)          = map ArrowTail           $ shrink v
-  shrink (Aspect v)             = map Aspect              $ shrink v
-  shrink (Bb v)                 = map Bb                  $ shrink v
-  shrink (BgColor v)            = map BgColor             $ shrink v
-  shrink (Center v)             = map Center              $ shrink v
-  shrink (ClusterRank v)        = map ClusterRank         $ shrink v
-  shrink (ColorScheme v)        = map ColorScheme         $ shrink v
-  shrink (Color v)              = map Color               $ nonEmptyShrinks v
-  shrink (Comment v)            = map Comment             $ shrink v
-  shrink (Compound v)           = map Compound            $ shrink v
-  shrink (Concentrate v)        = map Concentrate         $ shrink v
-  shrink (Constraint v)         = map Constraint          $ shrink v
-  shrink (Decorate v)           = map Decorate            $ shrink v
-  shrink (DefaultDist v)        = map DefaultDist         $ shrink v
-  shrink (Dimen v)              = map Dimen               $ shrink v
-  shrink (Dim v)                = map Dim                 $ shrink v
-  shrink (Dir v)                = map Dir                 $ shrink v
-  shrink (DirEdgeConstraints v) = map DirEdgeConstraints  $ shrink v
-  shrink (Distortion v)         = map Distortion          $ shrink v
-  shrink (DPI v)                = map DPI                 $ shrink v
-  shrink (EdgeURL v)            = map EdgeURL             $ shrink v
-  shrink (EdgeTarget v)         = map EdgeTarget          $ shrink v
-  shrink (EdgeTooltip v)        = map EdgeTooltip         $ shrink v
-  shrink (Epsilon v)            = map Epsilon             $ shrink v
-  shrink (ESep v)               = map ESep                $ shrink v
-  shrink (FillColor v)          = map FillColor           $ shrink v
-  shrink (FixedSize v)          = map FixedSize           $ shrink v
-  shrink (FontColor v)          = map FontColor           $ shrink v
-  shrink (FontName v)           = map FontName            $ shrink v
-  shrink (FontNames v)          = map FontNames           $ shrink v
-  shrink (FontPath v)           = map FontPath            $ shrink v
-  shrink (FontSize v)           = map FontSize            $ shrink v
-  shrink (Group v)              = map Group               $ shrink v
-  shrink (HeadURL v)            = map HeadURL             $ shrink v
-  shrink (HeadClip v)           = map HeadClip            $ shrink v
-  shrink (HeadLabel v)          = map HeadLabel           $ shrink v
-  shrink (HeadPort v)           = map HeadPort            $ shrink v
-  shrink (HeadTarget v)         = map HeadTarget          $ shrink v
-  shrink (HeadTooltip v)        = map HeadTooltip         $ shrink v
-  shrink (Height v)             = map Height              $ shrink v
-  shrink (ID v)                 = map ID                  $ shrink v
-  shrink (Image v)              = map Image               $ shrink v
-  shrink (ImageScale v)         = map ImageScale          $ shrink v
-  shrink (LabelURL v)           = map LabelURL            $ shrink v
-  shrink (LabelAngle v)         = map LabelAngle          $ shrink v
-  shrink (LabelDistance v)      = map LabelDistance       $ shrink v
-  shrink (LabelFloat v)         = map LabelFloat          $ shrink v
-  shrink (LabelFontColor v)     = map LabelFontColor      $ shrink v
-  shrink (LabelFontName v)      = map LabelFontName       $ shrink v
-  shrink (LabelFontSize v)      = map LabelFontSize       $ shrink v
-  shrink (LabelJust v)          = map LabelJust           $ shrink v
-  shrink (LabelLoc v)           = map LabelLoc            $ shrink v
-  shrink (LabelTarget v)        = map LabelTarget         $ shrink v
-  shrink (LabelTooltip v)       = map LabelTooltip        $ shrink v
-  shrink (Label v)              = map Label               $ shrink v
-  shrink (Landscape v)          = map Landscape           $ shrink v
-  shrink (LayerSep v)           = map LayerSep            $ shrink v
-  shrink (Layers v)             = map Layers              $ shrink v
-  shrink (Layer v)              = map Layer               $ shrink v
-  shrink (Layout v)             = map Layout              $ shrink v
-  shrink (Len v)                = map Len                 $ shrink v
-  shrink (LevelsGap v)          = map LevelsGap           $ shrink v
-  shrink (Levels v)             = map Levels              $ shrink v
-  shrink (LHead v)              = map LHead               $ shrink v
-  shrink (LPos v)               = map LPos                $ shrink v
-  shrink (LTail v)              = map LTail               $ shrink v
-  shrink (Margin v)             = map Margin              $ shrink v
-  shrink (MaxIter v)            = map MaxIter             $ shrink v
-  shrink (MCLimit v)            = map MCLimit             $ shrink v
-  shrink (MinDist v)            = map MinDist             $ shrink v
-  shrink (MinLen v)             = map MinLen              $ shrink v
-  shrink (Model v)              = map Model               $ shrink v
-  shrink (Mode v)               = map Mode                $ shrink v
-  shrink (Mosek v)              = map Mosek               $ shrink v
-  shrink (NodeSep v)            = map NodeSep             $ shrink v
-  shrink (NoJustify v)          = map NoJustify           $ shrink v
-  shrink (Normalize v)          = map Normalize           $ shrink v
-  shrink (Nslimit1 v)           = map Nslimit1            $ shrink v
-  shrink (Nslimit v)            = map Nslimit             $ shrink v
-  shrink (Ordering v)           = map Ordering            $ shrink v
-  shrink (Orientation v)        = map Orientation         $ shrink v
-  shrink (OutputOrder v)        = map OutputOrder         $ shrink v
-  shrink (OverlapScaling v)     = map OverlapScaling      $ shrink v
-  shrink (Overlap v)            = map Overlap             $ shrink v
-  shrink (PackMode v)           = map PackMode            $ shrink v
-  shrink (Pack v)               = map Pack                $ shrink v
-  shrink (Pad v)                = map Pad                 $ shrink v
-  shrink (PageDir v)            = map PageDir             $ shrink v
-  shrink (Page v)               = map Page                $ shrink v
-  shrink (PenColor v)           = map PenColor            $ shrink v
-  shrink (PenWidth v)           = map PenWidth            $ shrink v
-  shrink (Peripheries v)        = map Peripheries         $ shrink v
-  shrink (Pin v)                = map Pin                 $ shrink v
-  shrink (Pos v)                = map Pos                 $ shrink v
-  shrink (QuadTree v)           = map QuadTree            $ shrink v
-  shrink (Quantum v)            = map Quantum             $ shrink v
-  shrink (RankDir v)            = map RankDir             $ shrink v
-  shrink (RankSep v)            = map RankSep             $ nonEmptyShrinks v
-  shrink (Rank v)               = map Rank                $ shrink v
-  shrink (Ratio v)              = map Ratio               $ shrink v
-  shrink (Rects v)              = map Rects               $ nonEmptyShrinks v
-  shrink (Regular v)            = map Regular             $ shrink v
-  shrink (ReMinCross v)         = map ReMinCross          $ shrink v
-  shrink (RepulsiveForce v)     = map RepulsiveForce      $ shrink v
-  shrink (Root v)               = map Root                $ shrink v
-  shrink (Rotate v)             = map Rotate              $ shrink v
-  shrink (SameHead v)           = map SameHead            $ shrink v
-  shrink (SameTail v)           = map SameTail            $ shrink v
-  shrink (SamplePoints v)       = map SamplePoints        $ shrink v
-  shrink (SearchSize v)         = map SearchSize          $ shrink v
-  shrink (Sep v)                = map Sep                 $ shrink v
-  shrink (ShapeFile v)          = map ShapeFile           $ shrink v
-  shrink (Shape v)              = map Shape               $ shrink v
-  shrink (ShowBoxes v)          = map ShowBoxes           $ shrink v
-  shrink (Sides v)              = map Sides               $ shrink v
-  shrink (Size v)               = map Size                $ shrink v
-  shrink (Skew v)               = map Skew                $ shrink v
-  shrink (Smoothing v)          = map Smoothing           $ shrink v
-  shrink (SortV v)              = map SortV               $ shrink v
-  shrink (Splines v)            = map Splines             $ shrink v
-  shrink (Start v)              = map Start               $ shrink v
-  shrink (StyleSheet v)         = map StyleSheet          $ shrink v
-  shrink (Style v)              = map Style               $ nonEmptyShrinks v
-  shrink (TailURL v)            = map TailURL             $ shrink v
-  shrink (TailClip v)           = map TailClip            $ shrink v
-  shrink (TailLabel v)          = map TailLabel           $ shrink v
-  shrink (TailPort v)           = map TailPort            $ shrink v
-  shrink (TailTarget v)         = map TailTarget          $ shrink v
-  shrink (TailTooltip v)        = map TailTooltip         $ shrink v
-  shrink (Target v)             = map Target              $ shrink v
-  shrink (Tooltip v)            = map Tooltip             $ shrink v
-  shrink (TrueColor v)          = map TrueColor           $ shrink v
-  shrink (Vertices v)           = map Vertices            $ nonEmptyShrinks v
-  shrink (ViewPort v)           = map ViewPort            $ shrink v
-  shrink (VoroMargin v)         = map VoroMargin          $ shrink v
-  shrink (Weight v)             = map Weight              $ shrink v
-  shrink (Width v)              = map Width               $ shrink v
-  shrink (Z v)                  = map Z                   $ shrink v
-  shrink (UnknownAttribute a v) = liftM2 UnknownAttribute (liftM (filter validUnknown) shrink a) (shrink v)
-{- delete to here -}
-
-instance Arbitrary ArrowType where
-  arbitrary = liftM AType
-              -- Arrow specifications have between 1 and 4 elements.
-              $ sized (\ s -> resize (min s 4) arbList)
-
-  shrink (AType as) = map AType $ nonEmptyShrinks as
-
-instance Arbitrary ArrowShape where
-  arbitrary = arbBounded
-
-instance Arbitrary ArrowModifier where
-  arbitrary = liftM2 ArrMod arbitrary arbitrary
-
-instance Arbitrary ArrowFill where
-  arbitrary = arbBounded
-
-instance Arbitrary ArrowSide where
-  arbitrary = arbBounded
-
-instance Arbitrary AspectType where
-  arbitrary = oneof [ liftM  RatioOnly arbitrary
-                    , liftM2 RatioPassCount arbitrary posArbitrary
-                    ]
-
-  shrink (RatioOnly d) = map RatioOnly $ shrink d
-  shrink (RatioPassCount d i) = do ds <- shrink d
-                                   is <- shrink i
-                                   return $ RatioPassCount ds is
-
-instance Arbitrary Rect where
-  arbitrary = liftM2 Rect point2D point2D
-
-  shrink (Rect p1 p2) = do p1s <- shrink p1
-                           p2s <- shrink p2
-                           return $ Rect p1s p2s
-
-instance Arbitrary Point where
-  -- Pretty sure points have to be positive...
-  arbitrary = liftM4 Point posArbitrary posArbitrary posZ arbitrary
-    where
-      posZ = frequency [(1, return Nothing), (3, liftM Just posArbitrary)]
-
-  shrink p = do x' <- shrink $ xCoord p
-                y' <- shrink $ yCoord p
-                z' <- shrinkM $ zCoord p
-                return $ Point x' y' z' False
-
-point2D :: Gen Point
-point2D = liftM2 createPoint posArbitrary posArbitrary
-
-instance Arbitrary ClusterMode where
-  arbitrary = arbBounded
-
-instance Arbitrary DirType where
-  arbitrary = arbBounded
-
-instance Arbitrary DEConstraints where
-  arbitrary = arbBounded
-
-instance Arbitrary DPoint where
-  arbitrary = oneof [ liftM DVal arbitrary
-                    , liftM PVal point2D
-                    ]
-
-  shrink (DVal d) = map DVal $ shrink d
-  shrink (PVal p) = map PVal $ shrink p
-
-instance Arbitrary ModeType where
-  arbitrary = arbBounded
-
-instance Arbitrary Model where
-  arbitrary = arbBounded
-
-instance Arbitrary Label where
-  arbitrary = oneof [ liftM StrLabel arbitrary
-                    , liftM HtmlLabel arbitrary
-                    , liftM RecordLabel $ suchThat arbList notStr
-                    ]
-
-  shrink (StrLabel str)   = map StrLabel $ shrink str
-  shrink (HtmlLabel html) = map HtmlLabel $ shrink html
-  shrink (RecordLabel fs) = map RecordLabel . filter notStr $ shrinkList fs
-
-notStr                :: RecordFields -> Bool
-notStr [FieldLabel{}] = False -- Just in case
-notStr _              = True
-
-arbField     :: Bool -> Int -> Gen RecordField
-arbField b s = resize s'
-               . oneof
-               . bool id ((:) genFlipped) b
-               $ [ liftM2 LabelledTarget arbitrary arbitrary
-                 , liftM PortName arbitrary
-                 , liftM FieldLabel arbitrary
-                 ]
-  where
-    genFlipped = liftM FlipFields
-                 $ listOf1 (sized $ arbField False)
-    s' = min 3 s
-
-instance Arbitrary RecordField where
-  arbitrary = sized (arbField True)
-
-  shrink (LabelledTarget f l) = [PortName f, FieldLabel l]
-  shrink (PortName f)         = map PortName $ shrink f
-  shrink (FieldLabel l)       = map FieldLabel $ shrink l
-  shrink (FlipFields fs)      = map FlipFields $ shrinkList fs
-
-instance Arbitrary Overlap where
-  arbitrary = oneof [ simpleOverlap
-                    , liftM PrismOverlap arbitrary
-                    ]
-    where
-      -- Have to do this by hand since Overlap can't have Bounded and
-      -- Enum instances
-      simpleOverlap = elements [ KeepOverlaps
-                               , RemoveOverlaps
-                               , ScaleOverlaps
-                               , ScaleXYOverlaps
-                               , CompressOverlap
-                               , VpscOverlap
-                               , IpsepOverlap
-                               ]
-
-  shrink (PrismOverlap mi) = map PrismOverlap $ shrink mi
-  shrink _                 = []
-
-instance Arbitrary LayerSep where
-  -- Since Arbitrary isn't stateful, we can't generate an arbitrary
-  -- one because of arbLayerName
-  arbitrary = return . LSep . T.pack $ layerSep initialState
-
-instance Arbitrary LayerList where
-  arbitrary = liftM LL $ listOf1 arbName
-    where
-      arbName = suchThat arbitrary isLayerName
-
-      isLayerName LRName{} = True
-      isLayerName _        = False
-
-  shrink (LL ll) = map LL $ nonEmptyShrinks ll
-
-instance Arbitrary LayerRange where
-  arbitrary = oneof [ liftM LRID arbitrary
-                    , liftM2 LRS arbitrary arbitrary
-                    ]
-
-  shrink (LRID nm)   = map LRID $ shrink nm
-  shrink (LRS l1 l2) = [LRID l1, LRID l2]
-
-instance Arbitrary LayerID where
-  arbitrary = oneof [ return AllLayers
-                    , liftM LRInt arbitrary
-                    , liftM LRName $ suchThat arbLayerName lrnameCheck
-                    ]
-
-  shrink AllLayers   = []
-  shrink (LRInt i)   = map LRInt $ shrink i
-  shrink (LRName nm) = map LRName
-                       . filter lrnameCheck
-                       $ shrink nm
-
-lrnameCheck :: Text -> Bool
-lrnameCheck = (/=) "all"
-
-instance Arbitrary OutputMode where
-  arbitrary = arbBounded
-
-instance Arbitrary Pack where
-  arbitrary = oneof [ return DoPack
-                    , return DontPack
-                    , liftM PackMargin arbitrary
-                    ]
-
-  shrink (PackMargin m) = map PackMargin $ shrink m
-  shrink _              = []
-
-instance Arbitrary PackMode where
-  arbitrary = oneof [ return PackNode
-                    , return PackClust
-                    , return PackGraph
-                    , liftM3 PackArray arbitrary arbitrary arbitrary
-                    ]
-
-  shrink (PackArray c u mi) = map (PackArray c u) $ shrink mi
-  shrink _                  = []
-
-instance Arbitrary Pos where
-  arbitrary = oneof [ liftM PointPos arbitrary
-                      -- A single spline with only one point overall
-                      -- is just a point...
-                    , liftM SplinePos $ suchThat arbList validSplineList
-                    ]
-
-  shrink (PointPos p)   = map PointPos $ shrink p
-  shrink (SplinePos ss) = map SplinePos . filter validSplineList
-                          $ nonEmptyShrinks ss
-
-validSplineList                              :: [Spline] -> Bool
-validSplineList [Spline Nothing Nothing [_]] = False
-validSplineList _                            = True
-
-instance Arbitrary Spline where
-  arbitrary = liftM3 Spline arbitrary arbitrary
-              -- list of points must have length of 1 mod 3
-              $ suchThat arbitrary ((==) 1 . flip mod 3 . length)
-
-  shrink (Spline Nothing Nothing [p]) = map (Spline Nothing Nothing . return)
-                                        $ shrink p
-  -- We're not going to be shrinking the points in the list; just
-  -- making sure that its length is === 1 mod 3
-  shrink (Spline ms me ps) = do mss <- shrinkM ms
-                                mes <- shrinkM me
-                                pss <- rem2 ps
-                                return $ Spline mss mes pss
-    where
-
-      rem1 []     = []
-      rem1 (a:as) = as : map (a:) (rem1 as)
-
-      rem2 = nub . concatMap rem1 . rem1
-
-instance Arbitrary EdgeType where
-  arbitrary = arbBounded
-
-instance Arbitrary PageDir where
-  arbitrary = arbBounded
-
-instance Arbitrary QuadType where
-  arbitrary = arbBounded
-
-instance Arbitrary Root where
-  arbitrary = oneof [ return IsCentral
-                    , return NotCentral
-                    , liftM NodeName arbitrary
-                    ]
-
-  shrink (NodeName nm) = map NodeName $ shrink nm
-  shrink _             = []
-
-instance Arbitrary RankType where
-  arbitrary = arbBounded
-
-instance Arbitrary RankDir where
-  arbitrary = arbBounded
-
-instance Arbitrary Shape where
-  arbitrary = arbBounded
-
-instance Arbitrary SmoothType where
-  arbitrary = arbBounded
-
-instance Arbitrary StartType where
-  arbitrary = oneof [ liftM  StartStyle arbitrary
-                    , liftM  StartSeed arbitrary
-                    , liftM2 StartStyleSeed arbitrary arbitrary
-                    ]
-
-  shrink StartStyle{} = [] -- No shrinks for STStyle
-  shrink (StartSeed ss) = map StartSeed $ shrink ss
-  shrink (StartStyleSeed st ss) = map (StartStyleSeed st) $ shrink ss
-
-instance Arbitrary STStyle where
-  arbitrary = arbBounded
-
-instance Arbitrary StyleItem where
-  arbitrary = liftM2 SItem arbitrary (listOf arbStyleName)
-
-  -- Can't use this because of what shrink on the individual strings
-  -- might do.
-  -- shrink (SItem sn opts) = map (SItem sn) $ shrink opts
-
-instance Arbitrary StyleName where
-  arbitrary = oneof [ defaultStyles
-                    , liftM DD $ suchThat arbStyleName notDefault
-                    ]
-    where
-      defaultStyles = elements [ Dashed
-                               , Dotted
-                               , Bold
-                               , Invisible
-                               , Filled
-                               , Diagonals
-                               , Rounded
-                               ]
-      notDefault = flip notElem [ "dashed"
-                                , "dotted"
-                                , "solid"
-                                , "bold"
-                                , "invis"
-                                , "filled"
-                                , "diagonals"
-                                , "rounded"
-                                ]
-
-instance Arbitrary PortPos where
-  arbitrary = oneof [ liftM2 LabelledPort arbitrary arbitrary
-                    , liftM CompassPoint arbitrary
-                    ]
-
-  shrink (LabelledPort pn mc) = map (flip LabelledPort mc) $ shrink pn
-  shrink _                    = []
-
-instance Arbitrary CompassPoint where
-  arbitrary = arbBounded
-
-instance Arbitrary ViewPort where
-  arbitrary = liftM4 VP arbitrary arbitrary arbitrary arbitrary
-
-  shrink (VP w h z f) = case sVPs of
-                          [_] -> []
-                          _   -> sVPs
-    where
-      sVPs = do ws <- shrink w
-                hs <- shrink h
-                zs <- shrink z
-                fs <- shrinkM f
-                return $ VP ws hs zs fs
-
-instance Arbitrary FocusType where
-  arbitrary = oneof [ liftM XY arbitrary
-                    , liftM NodeFocus $ suchThat arbitrary (T.all ((/=) ','))
-                    ]
-
-  shrink (XY p)          = map XY $ shrink p
-  shrink (NodeFocus str) = map NodeFocus $ shrink str
-
-instance Arbitrary VerticalPlacement where
-  arbitrary = arbBounded
-
-instance Arbitrary ScaleType where
-  arbitrary = arbBounded
-
-instance Arbitrary Justification where
-  arbitrary = arbBounded
-
-instance Arbitrary Ratios where
-  arbitrary = oneof [ liftM AspectRatio posArbitrary
-                    , namedRats
-                    ]
-    where
-      namedRats = elements [ FillRatio
-                           , CompressRatio
-                           , ExpandRatio
-                           , AutoRatio
-                           ]
-
-  shrink (AspectRatio r) = map (AspectRatio . fromPositive)
-                           . shrink $ Positive r
-  shrink _               = []
-
-instance Arbitrary ColorScheme where
-  arbitrary = oneof [ return X11
-                    , liftM Brewer arbitrary
-                    ]
-
-  shrink (Brewer bs) = map Brewer $ shrink bs
-  shrink _           = []
-
-instance Arbitrary BrewerScheme where
-  arbitrary = liftM2 BScheme arbitrary arbitrary -- Not /quite/ right, but close enough
-
-  shrink (BScheme nm l) = map (BScheme nm) $ shrink l
-
-instance Arbitrary BrewerName where
-  arbitrary = arbBounded
-
-instance Arbitrary Color where
-  arbitrary = oneof [ liftM3 RGB  arbitrary arbitrary arbitrary
-                    , liftM4 RGBA arbitrary arbitrary arbitrary arbitrary
-                    , liftM3 HSV  zeroOne zeroOne zeroOne
-                    , liftM X11Color arbitrary
-                      -- Not quite right as the values can get too
-                      -- high/low, but should suffice for
-                      -- printing/parsing purposes.
-                    , liftM2 BrewerColor arbitrary arbitrary
-                    ]
-    where
-      zeroOne = choose (0,1)
-
-  shrink (RGB r g b)       = do rs <- shrink r
-                                gs <- shrink g
-                                bs <- shrink b
-                                return $ RGB rs gs bs
-  shrink (RGBA r g b a)    = RGB r g b
-                             : do rs <- shrink r
-                                  gs <- shrink g
-                                  bs <- shrink b
-                                  as <- shrink a
-                                  return $ RGBA rs gs bs as
-  shrink (BrewerColor s c) = map (BrewerColor s) $ shrink c
-  shrink _                 = [] -- Shrinking 0<=h,s,v<=1 does nothing
-
-instance Arbitrary X11Color where
-  arbitrary = arbBounded
-
-instance Arbitrary HtmlLabel where
-  arbitrary = sized $ arbHtml True
-
-  shrink ht@(HtmlText txts) = delete ht . map HtmlText $ shrinkL txts
-  shrink (HtmlTable tbl)    = map HtmlTable $ shrink tbl
-
--- Note: for the most part, HtmlLabel values are very repetitive (and
--- furthermore, they end up chewing a large amount of memory).  As
--- such, use resize to limit how large the actual HtmlLabel values
--- become.
-arbHtml         :: Bool -> Int -> Gen HtmlLabel
-arbHtml table s = resize' $ frequency options
-  where
-    s' = min 2 s
-    resize' = if not table
-              then resize s'
-              else id
-    allowTable = if table
-                 then (:) (1, arbTbl)
-                 else id
-    arbTbl = liftM HtmlTable arbitrary
-    options = allowTable [ (20, liftM HtmlText . sized $ arbHtmlTexts table) ]
-
-arbHtmlTexts       :: Bool -> Int -> Gen HtmlText
-arbHtmlTexts fnt s = liftM simplifyHtmlText
-                     . resize s'
-                     . listOf1
-                     . sized
-                     $ arbHtmlText fnt
-  where
-    s' = min s 10
-
--- When parsing, all textual characters are parsed together; thus,
--- make sure we generate them like that.
-simplifyHtmlText :: HtmlText -> HtmlText
-simplifyHtmlText = map head . groupBy sameType
-  where
-    sameType HtmlStr{}     HtmlStr{}     = True
-    sameType HtmlNewline{} HtmlNewline{} = True
-    sameType HtmlFont{}    HtmlFont{}    = True
-    sameType _             _             = False
-
-instance Arbitrary HtmlTextItem where
-  arbitrary = sized $ arbHtmlText True
-
-  shrink (HtmlStr str) = map HtmlStr $ shrink str
-  shrink (HtmlNewline as) = map HtmlNewline $ shrink as
-  shrink hf@(HtmlFont as txt) = do as' <- shrink as
-                                   txt' <- shrinkL txt
-                                   returnCheck hf $ HtmlFont as' txt'
-
-arbHtmlText        :: Bool -> Int -> Gen HtmlTextItem
-arbHtmlText font s = frequency options
-  where
-    allowFonts = if font
-                 then (:) (1, arbFont)
-                 else id
-    s' = min 2 s
-    arbFont = liftM2 HtmlFont arbitrary . resize s' . sized $ arbHtmlTexts False
-    options = allowFonts [ (10, liftM HtmlStr arbitrary)
-                         , (10, liftM HtmlNewline arbitrary)
-                         ]
-
-instance Arbitrary HtmlTable where
-  arbitrary = liftM3 HTable arbitrary arbitrary (sized arbRows)
-    where
-      arbRows s = resize (min s 10) arbList
-
-  shrink (HTable fas as rs) = map (HTable fas as) $ shrinkL rs
-
-instance Arbitrary HtmlRow where
-  arbitrary = liftM HtmlRow arbList
-
-  shrink hr@(HtmlRow cs) = delete hr . map HtmlRow $ shrinkL cs
-
-instance Arbitrary HtmlCell where
-  arbitrary = oneof [ liftM2 HtmlLabelCell arbitrary . sized $ arbHtml False
-                    , liftM2 HtmlImgCell arbitrary arbitrary
-                    ]
-
-  shrink lc@(HtmlLabelCell as h) = do as' <- shrink as
-                                      h' <- shrink h
-                                      returnCheck lc $ HtmlLabelCell as' h'
-  shrink (HtmlImgCell as ic) = map (HtmlImgCell as) $ shrink ic
-
-instance Arbitrary HtmlImg where
-  arbitrary = liftM HtmlImg arbitrary
-
-instance Arbitrary HtmlAttribute where
-  arbitrary = oneof [ liftM HtmlAlign arbitrary
-                    , liftM HtmlBAlign arbitrary
-                    , liftM HtmlBGColor arbitrary
-                    , liftM HtmlBorder arbitrary
-                    , liftM HtmlCellBorder arbitrary
-                    , liftM HtmlCellPadding arbitrary
-                    , liftM HtmlCellSpacing arbitrary
-                    , liftM HtmlColor arbitrary
-                    , liftM HtmlColSpan arbitrary
-                    , liftM HtmlFace arbitrary
-                    , liftM HtmlFixedSize arbitrary
-                    , liftM HtmlHeight arbitrary
-                    , liftM HtmlHRef arbitrary
-                    , liftM HtmlPointSize arbitrary
-                    , liftM HtmlPort arbitrary
-                    , liftM HtmlRowSpan arbitrary
-                    , liftM HtmlScale arbitrary
-                    , liftM HtmlSrc arbString
-                    , liftM HtmlTarget arbitrary
-                    , liftM HtmlTitle arbitrary
-                    , liftM HtmlVAlign arbitrary
-                    , liftM HtmlWidth arbitrary
-                    ]
-
-  shrink (HtmlAlign v)       = map HtmlAlign       $ shrink v
-  shrink (HtmlBAlign v)      = map HtmlBAlign      $ shrink v
-  shrink (HtmlBGColor v)     = map HtmlBGColor     $ shrink v
-  shrink (HtmlBorder v)      = map HtmlBorder      $ shrink v
-  shrink (HtmlCellBorder v)  = map HtmlCellBorder  $ shrink v
-  shrink (HtmlCellPadding v) = map HtmlCellPadding $ shrink v
-  shrink (HtmlCellSpacing v) = map HtmlCellSpacing $ shrink v
-  shrink (HtmlColor v)       = map HtmlColor       $ shrink v
-  shrink (HtmlColSpan v)     = map HtmlColSpan     $ shrink v
-  shrink (HtmlFace v)        = map HtmlFace        $ shrink v
-  shrink (HtmlFixedSize v)   = map HtmlFixedSize   $ shrink v
-  shrink (HtmlHeight v)      = map HtmlHeight      $ shrink v
-  shrink (HtmlHRef v)        = map HtmlHRef        $ shrink v
-  shrink (HtmlPointSize v)   = map HtmlPointSize   $ shrink v
-  shrink (HtmlPort v)        = map HtmlPort        $ shrink v
-  shrink (HtmlRowSpan v)     = map HtmlRowSpan     $ shrink v
-  shrink (HtmlScale v)       = map HtmlScale       $ shrink v
-  shrink (HtmlSrc v)         = map HtmlSrc         $ shrinkString v
-  shrink (HtmlTarget v)      = map HtmlTarget      $ shrink v
-  shrink (HtmlTitle v)       = map HtmlTitle       $ shrink v
-  shrink (HtmlVAlign v)      = map HtmlVAlign      $ shrink v
-  shrink (HtmlWidth v)       = map HtmlWidth       $ shrink v
-
-instance Arbitrary HtmlScale where
-  arbitrary = arbBounded
-
-instance Arbitrary HtmlAlign where
-  arbitrary = arbBounded
-
-instance Arbitrary HtmlVAlign where
-  arbitrary = arbBounded
-
-instance Arbitrary PortName where
-  arbitrary = liftM PN
-              $ suchThat arbitrary (liftM2 (&&) (T.all (/=':')) notCP)
-
-  shrink = map PN . filter notCP . shrink . portName
-
-notCP :: Text -> Bool
-notCP = flip Map.notMember compassLookup
diff --git a/Data/GraphViz/Testing/Instances/Canonical.hs b/Data/GraphViz/Testing/Instances/Canonical.hs
deleted file mode 100644
--- a/Data/GraphViz/Testing/Instances/Canonical.hs
+++ /dev/null
@@ -1,57 +0,0 @@
-{-# OPTIONS_GHC -fno-warn-orphans #-}
-{-# OPTIONS_HADDOCK hide #-}
-
-{- |
-   Module      : Data.GraphViz.Testing.Instances.Canonical
-   Description : Canonical dot graph instances for Arbitrary.
-   Copyright   : (c) Ivan Lazar Miljenovic
-   License     : 3-Clause BSD-style
-   Maintainer  : Ivan.Miljenovic@gmail.com
- -}
-module Data.GraphViz.Testing.Instances.Canonical where
-
-import Data.GraphViz.Testing.Instances.Common
-import Data.GraphViz.Testing.Instances.Helpers
-
-import Data.GraphViz.Types.Canonical
-import Data.GraphViz.Util(bool)
-
-import Test.QuickCheck
-
-import Control.Monad(liftM2, liftM4)
-
--- -----------------------------------------------------------------------------
--- Defining Arbitrary instances for the overall types
-
-instance (Eq n, Arbitrary n) => Arbitrary (DotGraph n) where
-  arbitrary = liftM4 DotGraph arbitrary arbitrary arbitrary arbitrary
-
-  shrink (DotGraph str dir gid stmts) = map (DotGraph str dir gid)
-                                        $ shrink stmts
-
-instance (Eq n, Arbitrary n) => Arbitrary (DotStatements n) where
-  arbitrary = sized (arbDS gaGraph True)
-
-  shrink ds@(DotStmts gas sgs ns es) = do gas' <- shrinkL gas
-                                          sgs' <- shrinkL sgs
-                                          ns' <- shrinkL ns
-                                          es' <- shrinkL es
-                                          returnCheck ds
-                                            $ DotStmts gas' sgs' ns' es'
-
--- | If 'True', generate 'DotSubGraph's; otherwise don't.
-arbDS              :: (Arbitrary n, Eq n) => Gen GlobalAttributes -> Bool
-                      -> Int -> Gen (DotStatements n)
-arbDS ga haveSGs s = liftM4 DotStmts (listOf ga) genSGs arbitrary arbitrary
-  where
-    s' = min s 2
-    genSGs = if haveSGs
-             then resize s' arbitrary
-             else return []
-
-instance (Eq n, Arbitrary n) => Arbitrary (DotSubGraph n) where
-  arbitrary = do isClust <- arbitrary
-                 let ga = bool gaSubGraph gaClusters isClust
-                 liftM2 (DotSG isClust) arbitrary (sized $ arbDS ga False)
-
-  shrink (DotSG isCl mid stmts) = map (DotSG isCl mid) $ shrink stmts
diff --git a/Data/GraphViz/Testing/Instances/Common.hs b/Data/GraphViz/Testing/Instances/Common.hs
deleted file mode 100644
--- a/Data/GraphViz/Testing/Instances/Common.hs
+++ /dev/null
@@ -1,71 +0,0 @@
-{-# OPTIONS_GHC -fno-warn-orphans #-}
-{-# OPTIONS_HADDOCK hide #-}
-
-{- |
-   Module      : Data.GraphViz.Testing.Instances.Common()
-   Description : Attribute instances for Arbitrary.
-   Copyright   : (c) Ivan Lazar Miljenovic
-   License     : 3-Clause BSD-style
-   Maintainer  : Ivan.Miljenovic@gmail.com
- -}
-module Data.GraphViz.Testing.Instances.Common
-       ( gaGraph
-       , gaSubGraph
-       , gaClusters
-       ) where
-
-import Data.GraphViz.Testing.Instances.Attributes
-import Data.GraphViz.Testing.Instances.Helpers
-
-import Data.GraphViz.Attributes(Attributes)
-import Data.GraphViz.Types.Common( DotNode(..), DotEdge(..)
-                                 , GlobalAttributes(..), GraphID(..))
-
-import Test.QuickCheck
-
-import Control.Monad(liftM, liftM2, liftM3)
-
--- -----------------------------------------------------------------------------
--- Common values
-
-instance Arbitrary GraphID where
-  arbitrary = oneof [ liftM Str arbitrary
-                    , liftM Int arbitrary
-                    , liftM Dbl $ suchThat arbitrary notInt
-                    ]
-
-  shrink (Str s) = map Str $ shrink s
-  shrink (Int i) = map Int $ shrink i
-  shrink (Dbl d) = map Dbl $ filter notInt $ shrink d
-
-instance (Arbitrary n) => Arbitrary (DotNode n) where
-  arbitrary = liftM2 DotNode arbitrary arbNodeAttrs
-
-  shrink (DotNode n as) = map (DotNode n) $ shrinkList as
-
-instance (Arbitrary n) => Arbitrary (DotEdge n) where
-  arbitrary = liftM3 DotEdge arbitrary arbitrary arbEdgeAttrs
-
-  shrink (DotEdge f t as) = map (DotEdge f t) $ shrinkList as
-
-instance Arbitrary GlobalAttributes where
-  arbitrary = gaGraph
-
-  shrink (GraphAttrs atts) = map GraphAttrs $ nonEmptyShrinks atts
-  shrink (NodeAttrs  atts) = map NodeAttrs  $ nonEmptyShrinks atts
-  shrink (EdgeAttrs  atts) = map EdgeAttrs  $ nonEmptyShrinks atts
-
-gaGraph :: Gen GlobalAttributes
-gaGraph = gaFor arbGraphAttrs
-
-gaSubGraph :: Gen GlobalAttributes
-gaSubGraph = gaFor arbSubGraphAttrs
-
-gaClusters :: Gen GlobalAttributes
-gaClusters = gaFor arbClusterAttrs
-
-gaFor   :: Gen Attributes -> Gen GlobalAttributes
-gaFor g = oneof [ liftM GraphAttrs g
-                , liftM NodeAttrs  arbNodeAttrs
-                , liftM EdgeAttrs  arbEdgeAttrs
-                ]
diff --git a/Data/GraphViz/Testing/Instances/FGL.hs b/Data/GraphViz/Testing/Instances/FGL.hs
deleted file mode 100644
--- a/Data/GraphViz/Testing/Instances/FGL.hs
+++ /dev/null
@@ -1,47 +0,0 @@
-{-# OPTIONS_GHC -fno-warn-orphans #-}
-{-# LANGUAGE FlexibleInstances #-}
-
-{- |
-   Module      : Data.GraphViz.Testing.Instances.FGL
-   Description : 'Arbitrary' instances for FGL graphs.
-   Copyright   : (c) Ivan Lazar Miljenovic
-   License     : 3-Clause BSD-style
-   Maintainer  : Ivan.Miljenovic@gmail.com
-
-   This module defines the 'Arbitrary' instances for FGL 'DynGraph'
-   graphs.  Note that this instance cannot be in
-   "Data.GraphViz.Testing.Instances", as this instance requires the
-   FlexibleInstances extension, which makes some of the other
-   'Arbitrary' instances fail to type-check.
--}
-module Data.GraphViz.Testing.Instances.FGL() where
-
-import Test.QuickCheck
-
-import Data.GraphViz.Util(uniq)
-
-import Data.Graph.Inductive.Graph(Graph, mkGraph, nodes, delNode)
-import Data.List(sortBy)
-import Data.Function(on)
-import Control.Monad(liftM, liftM3)
-
--- -----------------------------------------------------------------------------
--- Arbitrary instance for FGL graphs.
-
-instance (Graph g, Arbitrary n, Arbitrary e) => Arbitrary (g n e) where
-  arbitrary = do ns <- suchThat genNs (not . null)
-                 let nGen = elements ns
-                 lns <- mapM makeLNode ns
-                 les <- liftM (sortBy (compare `on` toE)) . listOf
-                        $ makeLEdge nGen
-                 return $ mkGraph lns les
-    where
-      genNs = liftM uniq arbitrary
-      toE (f,t,_) = (f,t)
-      makeLNode n = liftM ((,) n) arbitrary
-      makeLEdge nGen = liftM3 (,,) nGen nGen arbitrary
-
-  shrink gr = case nodes gr of
-                   -- Need to have at least 2 nodes before we delete one!
-                   ns@(_:_:_) -> map (`delNode` gr) ns
-                   _          -> []
diff --git a/Data/GraphViz/Testing/Instances/Generalised.hs b/Data/GraphViz/Testing/Instances/Generalised.hs
deleted file mode 100644
--- a/Data/GraphViz/Testing/Instances/Generalised.hs
+++ /dev/null
@@ -1,77 +0,0 @@
-{-# OPTIONS_GHC -fno-warn-orphans #-}
-{-# OPTIONS_HADDOCK hide #-}
-
-{- |
-   Module      : Data.GraphViz.Testing.Instances.Generalised
-   Description : Generalised dot graph instances for Arbitrary.
-   Copyright   : (c) Ivan Lazar Miljenovic
-   License     : 3-Clause BSD-style
-   Maintainer  : Ivan.Miljenovic@gmail.com
- -}
-module Data.GraphViz.Testing.Instances.Generalised where
-
-import Data.GraphViz.Testing.Instances.Attributes()
-import Data.GraphViz.Testing.Instances.Common
-import Data.GraphViz.Testing.Instances.Helpers()
-
-import Data.GraphViz.Types.Generalised
-import Data.GraphViz.Util(bool)
-
-import Test.QuickCheck
-
-import qualified Data.Sequence as Seq
-import Control.Monad(liftM, liftM2, liftM4)
-
--- -----------------------------------------------------------------------------
--- Defining Arbitrary instances for the generalised types
-
-instance (Arbitrary n) => Arbitrary (DotGraph n) where
-  arbitrary = liftM4 DotGraph arbitrary arbitrary arbitrary genDStmts
-
-  shrink (DotGraph str dir gid stmts) = map (DotGraph str dir gid)
-                                          $ shrinkDStmts stmts
-
-genDStmts :: (Arbitrary n) => Gen (DotStatements n)
-genDStmts = sized (arbDS gaGraph True)
-
-genDStmt :: (Arbitrary n) => Gen GlobalAttributes -> Bool
-            -> Gen (DotStatement n)
-genDStmt ga haveSGs = frequency
-                      . bool id ((1,genSG):) haveSGs
-                      $ [ (3, liftM GA ga)
-                        , (5, liftM DN arbitrary)
-                        , (7, liftM DE arbitrary)
-                        ]
-  where
-    genSG = liftM SG arbitrary
-
-shrinkDStmts :: (Arbitrary n) => DotStatements n -> [DotStatements n]
-shrinkDStmts gds
-  | len == 1  = map Seq.singleton . shrink $ Seq.index gds 0
-  | otherwise = [gds1, gds2]
-    where
-      len = Seq.length gds
-      -- Halve the sequence
-      (gds1, gds2) = (len `div` 2) `Seq.splitAt` gds
-
-instance (Arbitrary n) => Arbitrary (DotStatement n) where
-  arbitrary = genDStmt gaGraph True
-
-  shrink (GA ga) = map GA $ shrink ga
-  shrink (SG sg) = map SG $ shrink sg
-  shrink (DN dn) = map DN $ shrink dn
-  shrink (DE de) = map DE $ shrink de
-
--- | If 'True', generate 'GDotSubGraph's; otherwise don't.
-arbDS              :: (Arbitrary n) => Gen GlobalAttributes -> Bool -> Int -> Gen (DotStatements n)
-arbDS ga haveSGs s = liftM Seq.fromList . resize s' . listOf $ genDStmt ga haveSGs
-  where
-    s' = min s 10
-
-
-instance (Arbitrary n) => Arbitrary (DotSubGraph n) where
-  arbitrary = do isClust <- arbitrary
-                 let ga = bool gaSubGraph gaClusters isClust
-                 liftM2 (DotSG isClust) arbitrary (sized $ arbDS ga False)
-
-  shrink (DotSG isCl mid stmts) = map (DotSG isCl mid) $ shrinkDStmts stmts
diff --git a/Data/GraphViz/Testing/Instances/Graph.hs b/Data/GraphViz/Testing/Instances/Graph.hs
deleted file mode 100644
--- a/Data/GraphViz/Testing/Instances/Graph.hs
+++ /dev/null
@@ -1,31 +0,0 @@
-{-# OPTIONS_GHC -fno-warn-orphans #-}
-{-# OPTIONS_HADDOCK hide #-}
-{-# LANGUAGE FlexibleInstances #-}
-
-{- |
-   Module      : Data.GraphViz.Testing.Instances.Graph
-   Description : Graph dot graph instances for Arbitrary.
-   Copyright   : (c) Ivan Lazar Miljenovic
-   License     : 3-Clause BSD-style
-   Maintainer  : Ivan.Miljenovic@gmail.com
- -}
-module Data.GraphViz.Testing.Instances.Graph where
-
-import Data.GraphViz.Testing.Instances.Canonical()
-
-import Data.GraphViz.Types.Graph
-import Data.GraphViz.Types(fromCanonical)
-
-import Test.QuickCheck
-
-import Control.Monad(liftM)
-
--- -----------------------------------------------------------------------------
-
--- | Can't directly create one of these as it might not match the
---   internal format directly; as such, have to use the inefficient
---   'fromCanonical' route.
-instance (Arbitrary n, Ord n) => Arbitrary (DotGraph n) where
-  arbitrary = liftM fromCanonical arbitrary
-
-  shrink = map fromCanonical . shrink . toCanonical
diff --git a/Data/GraphViz/Testing/Instances/Helpers.hs b/Data/GraphViz/Testing/Instances/Helpers.hs
deleted file mode 100644
--- a/Data/GraphViz/Testing/Instances/Helpers.hs
+++ /dev/null
@@ -1,138 +0,0 @@
-{-# OPTIONS_GHC -fno-warn-orphans #-}
-{-# OPTIONS_HADDOCK hide #-}
-{-# LANGUAGE OverloadedStrings #-}
-
-{- |
-   Module      : Data.GraphViz.Testing.Instances.Helpers
-   Description : Helper functions for graphviz Arbitrary instances.
-   Copyright   : (c) Ivan Lazar Miljenovic
-   License     : 3-Clause BSD-style
-   Maintainer  : Ivan.Miljenovic@gmail.com
- -}
-module Data.GraphViz.Testing.Instances.Helpers where
-
-import Data.GraphViz.Parsing(isNumString)
-import Data.GraphViz.State(initialState, layerSep)
-
-import Test.QuickCheck
-
-import qualified Data.Text.Lazy as T
-import Data.Text.Lazy(Text)
-import Control.Monad(liftM, liftM2)
-
--- -----------------------------------------------------------------------------
--- Helper Functions
-
-instance Arbitrary Text where
-  arbitrary = arbText
-
-  shrink = filter validString
-           . map T.pack . nonEmptyShrinks' . T.unpack
-
-arbText :: Gen Text
-arbText = suchThat genStr notBool
-    where
-      genStr = liftM2 T.cons (elements notDigits)
-                             (liftM T.concat . listOf $ elements strChr)
-      notDigits = ['a'..'z'] ++ ['\'', '"', ' ', '(', ')', ',', ':', '\\']
-      strChr = map T.singleton $ notDigits ++ '.' : ['0'..'9']
-
-arbString :: Gen String
-arbString = liftM T.unpack arbitrary
-
-fromPositive              :: Positive a -> a
-fromPositive (Positive a) = a
-
-posArbitrary :: (Arbitrary a, Num a, Ord a) => Gen a
-posArbitrary = liftM fromPositive arbitrary
-
-arbIDString :: Gen Text
-arbIDString = suchThat genStr notBool
-  where
-    genStr = liftM2 T.cons (elements frst)
-                           (liftM T.pack . listOf $ elements rest)
-    frst = ['a'..'z'] ++ ['_']
-    rest = frst ++ ['0'.. '9']
-
-validString :: Text -> Bool
-validString = liftM2 (&&) notBool notNumStr
-
-notBool         :: Text -> Bool
-notBool "true"  = False
-notBool "false" = False
-notBool _       = True
-
-shrinkString :: String -> [String]
-shrinkString = map T.unpack . shrink . T.pack
-
-notNumStr :: Text -> Bool
-notNumStr = not . isNumString
-
-arbBounded :: (Bounded a, Enum a) => Gen a
-arbBounded = elements [minBound .. maxBound]
-
-arbLayerName :: Gen Text
-arbLayerName = suchThat arbitrary (T.all notLayerSep)
-  where
-    defLayerSep = layerSep initialState
-    notLayerSep = (`notElem` defLayerSep)
-
-arbStyleName :: Gen Text
-arbStyleName = suchThat arbitrary (T.all notBrackCom)
-  where
-    notBrackCom = flip notElem ['(', ')', ',', ' ']
-
-arbList :: (Arbitrary a) => Gen [a]
-arbList = listOf1 arbitrary
-
-nonEmptyShrinks :: (Arbitrary a) => [a] -> [[a]]
-nonEmptyShrinks = filter (not . null) . shrinkList
-
-nonEmptyShrinks' :: [a] -> [[a]]
-nonEmptyShrinks' = filter (not . null) . shrinkList'
-
--- Shrink lists with more than one value only by removing values, not
--- by shrinking individual items.
-shrinkList     :: (Arbitrary a) => [a] -> [[a]]
-shrinkList [a] = map return $ shrink a
-shrinkList as  = shrinkList' as
-
--- Just shrink the size.
-shrinkList'     :: [a] -> [[a]]
-shrinkList' as  = rm (length as) as
-  where
-    rm 0 _  = []
-    rm 1 _  = [[]]
-    rm n xs = xs1
-            : xs2
-            : ( [ xs1' ++ xs2 | xs1' <- rm n1 xs1, not (null xs1') ]
-                `ilv` [ xs1 ++ xs2' | xs2' <- rm n2 xs2, not (null xs2') ]
-              )
-     where
-      n1  = n `div` 2
-      xs1 = take n1 xs
-      n2  = n - n1
-      xs2 = drop n1 xs
-
-    []     `ilv` ys     = ys
-    xs     `ilv` []     = xs
-    (x:xs) `ilv` (y:ys) = x : y : (xs `ilv` ys)
-
--- When a Maybe value is a sub-component, and we need shrink to return
--- a value.
-shrinkM         :: (Arbitrary a) => Maybe a -> [Maybe a]
-shrinkM Nothing = [Nothing]
-shrinkM j       = shrink j
-
-shrinkL    :: (Arbitrary a) => [a] -> [[a]]
-shrinkL xs = case shrinkList xs of
-               []  -> [xs]
-               xs' -> xs'
-
-notInt   :: Double -> Bool
-notInt d = fromIntegral (round d :: Int) /= d
-
-returnCheck     :: (Eq a) => a -> a -> [a]
-returnCheck o n = if o == n
-                  then []
-                  else [n]
diff --git a/Data/GraphViz/Testing/Properties.hs b/Data/GraphViz/Testing/Properties.hs
deleted file mode 100644
--- a/Data/GraphViz/Testing/Properties.hs
+++ /dev/null
@@ -1,181 +0,0 @@
-{-# LANGUAGE FlexibleContexts, ScopedTypeVariables #-}
-
-{- |
-   Module      : Data.GraphViz.Testing.Properties
-   Description : Properties for testing.
-   Copyright   : (c) Ivan Lazar Miljenovic
-   License     : 3-Clause BSD-style
-   Maintainer  : Ivan.Miljenovic@gmail.com
-
-   Various properties that should hold true for the graphviz library.
--}
-module Data.GraphViz.Testing.Properties where
-
-import Data.GraphViz( dotizeGraph, graphToDot
-                    , setDirectedness, nonClusteredParams)
-import Data.GraphViz.Types( DotRepr(..), PrintDotRepr
-                          , DotNode(..), DotEdge(..), GlobalAttributes(..)
-                          , printDotGraph, graphNodes, graphEdges
-                          , graphStructureInformation)
-import Data.GraphViz.Types.Canonical(DotGraph(..), DotStatements(..))
-import qualified Data.GraphViz.Types.Generalised as G
-import Data.GraphViz.Printing(PrintDot(..), printIt)
-import Data.GraphViz.Parsing(ParseDot(..), parseIt, parseIt')
-import Data.GraphViz.PreProcessing(preProcess)
-import Data.GraphViz.Util(groupSortBy, isSingle)
-import Data.GraphViz.Algorithms
-
-import Test.QuickCheck
-
-import Data.Graph.Inductive( Graph, DynGraph
-                           , equal, nmap, emap, labNodes, labEdges, nodes, edges)
-import Data.List(nub, sort)
-import Data.Function(on)
-import qualified Data.Map as Map
-import qualified Data.Set as Set
-import Data.Text.Lazy(Text)
-import Control.Arrow((&&&))
-
--- -----------------------------------------------------------------------------
--- The properties to test for
-
--- | Checking that @parse . print == id@; that is, graphviz can parse
---   its own output.
-prop_printParseID   :: (ParseDot a, PrintDot a, Eq a) => a -> Bool
-prop_printParseID a = tryParse' a == a
-
--- | A version of 'prop_printParse' specifically for lists; it ensures
---   that the list is not empty (as most list-based parsers fail on
---   empty lists).
-prop_printParseListID    :: (ParseDot a, PrintDot a, Eq a) => [a] -> Property
-prop_printParseListID as =  not (null as) ==> prop_printParseID as
-
--- | When converting a canonical 'DotGraph' value to any other one,
---   they should generate the same Dot code.
-prop_generalisedSameDot    :: (Ord n, PrintDot n, ParseDot n) => DotGraph n -> Bool
-prop_generalisedSameDot dg = printDotGraph dg == printDotGraph gdg
-  where
-    gdg = canonicalToType (undefined :: G.DotGraph n) dg
-
--- | Pre-processing shouldn't change the output of printed Dot code.
---   This should work for all 'PrintDot' instances, but is more
---   specific to 'DotGraph' values.
-prop_preProcessingID    :: (PrintDotRepr dg n) => dg n -> Bool
-prop_preProcessingID dg = preProcess dotCode == dotCode
-  where
-    dotCode = printDotGraph dg
-
--- | This property verifies that 'dotizeGraph', etc. only /augment/ the
---   original graph; that is, the actual nodes, edges and labels for
---   each remain unchanged.  Whilst 'dotize', etc. only require
---   'Graph' instances, this property requires 'DynGraph' (which is a
---   sub-class of 'Graph') instances to be able to strip off the
---   'Attributes' augmentations.
-prop_dotizeAugment   :: (DynGraph g, Eq n, Ord e) => g n e -> Bool
-prop_dotizeAugment g = equal g (unAugment g')
-  where
-    g' = setDirectedness dotizeGraph nonClusteredParams g
-    unAugment = nmap snd . emap snd
-
--- | After augmentation, each node and edge should have a non-empty
--- | list of 'Attributes'.
-prop_dotizeHasAugment   :: (DynGraph g, Ord e) => g n e -> Bool
-prop_dotizeHasAugment g = all (not . null) nodeAugments
-                          && all (not . null) edgeAugments
-  where
-    g' = setDirectedness dotizeGraph nonClusteredParams g
-    nodeAugments = map (fst . snd) $ labNodes g'
-    edgeAugments = map (fst . \(_,_,l) -> l) $ labEdges g'
-
--- | When a graph with multiple edges is augmented, then all edges
---   should have unique 'Attributes' (namely the positions).  Note
---   that this may not hold true with custom supplied 'Attributes'
---   (i.e. not using one of the @dotize@ functions).
-prop_dotizeAugmentUniq   :: (DynGraph g, Eq n, Ord e) => g n e -> Bool
-prop_dotizeAugmentUniq g = all uniqLs lss
-  where
-    g' = setDirectedness dotizeGraph nonClusteredParams g
-    les = map (\(f,t,l) -> ((f,t),l)) $ labEdges g'
-    lss = map (map snd) . filter (not . isSingle)
-          $ groupSortBy fst les
-    uniqLs [] = False -- Needs to have at least /one/ Attribute!
-    uniqLs ls = ls == nub ls
-
--- | Ensure that the definition of 'nodeInformation' for a DotRepr
---   finds all the nodes.
-prop_findAllNodes       :: (DotRepr dg Int, Ord el, Graph g)
-                           => dg Int -> g nl el -> Bool
-prop_findAllNodes dg' g = ((==) `on` sort) gns dgns
-  where
-    gns = nodes g
-    dg = canonicalToType dg' $ setDirectedness graphToDot nonClusteredParams g
-    dgns = map nodeID $ graphNodes dg
-
--- | Ensure that the definition of 'nodeInformation' for DotReprs
---   finds all the nodes when the explicit 'DotNode' definitions are
---   removed.
-prop_findAllNodesE       :: (DotRepr dg Int, Ord el, Graph g)
-                            => dg Int -> g nl el -> Bool
-prop_findAllNodesE dg' g = ((==) `on` sort) gns dgns
-  where
-    gns = nodes g
-    dg = canonicalToType dg' . removeNodes $ setDirectedness graphToDot nonClusteredParams g
-    dgns = map nodeID $ graphNodes dg
-    removeNodes dot@DotGraph{graphStatements = stmts}
-      = dot { graphStatements
-               = stmts {nodeStmts = filter notInEdge $ nodeStmts stmts}
-            }
-    gnes = Set.fromList . concatMap (\(f,t) -> [f,t]) $ edges g
-    notInEdge dn = nodeID dn `Set.notMember` gnes
-
--- | Ensure that the definition of 'edgeInformation' for DotReprs
---   finds all the nodes.
-prop_findAllEdges       :: (DotRepr dg Int, Ord el, Graph g) => dg Int -> g nl el -> Bool
-prop_findAllEdges dg' g = ((==) `on` sort) ges dges
-  where
-    ges = edges g
-    dg = canonicalToType dg' $ graphToDot nonClusteredParams g
-    dges = map (fromNode &&& toNode) $ graphEdges dg
-
--- | There should be no clusters or global attributes when converting
---   a 'Graph' to a DotRepr (via fromCanonical) without any formatting
---   or clustering.
-prop_noGraphInfo       :: (DotRepr dg Int, Ord el, Graph g)
-                          => dg Int -> g nl el -> Bool
-prop_noGraphInfo dg' g = info == (GraphAttrs [], Map.empty)
-  where
-    dg = canonicalToType dg'
-         $ setDirectedness graphToDot nonClusteredParams g
-    info = graphStructureInformation dg
-
--- | Canonicalisation should be idempotent.
-prop_canonicalise   :: (ParseDot n, PrintDot n, DotRepr dg n) => dg n -> Bool
-prop_canonicalise g = cdg == canonicalise cdg
-  where
-    cdg = canonicalise g
-
--- | Removing transitive edges should be idempotent.
-prop_transitive   :: (DotRepr dg n) => dg n -> Bool
-prop_transitive g = tdg == transitiveReduction tdg
-  where
-    tdg = transitiveReduction g
-
--- -----------------------------------------------------------------------------
--- Helper utility functions
-
--- | A utility function to use for debugging purposes for trying to
---   find how graphviz /is/ parsing something.  This is easier than
---   using @'parseIt' . 'printIt'@ directly, since it avoids having to
---   enter and explicit type signature.
-tryParse :: (ParseDot a, PrintDot a) => a -> (a, Text)
-tryParse = parseIt . printIt
-
--- | Equivalent to 'tryParse' except that it is assumed that the
---   entire 'String' *is* fully consumed.
-tryParse' :: (ParseDot a, PrintDot a) => a -> a
-tryParse' = parseIt' . printIt
-
--- | A wrapper around 'fromCanonical' that lets you specify up-front
---   what type to create (it need not be a sensible value).
-canonicalToType   :: (DotRepr dg n) => dg n -> DotGraph n -> dg n
-canonicalToType _ = fromCanonical
diff --git a/Data/GraphViz/Types.hs b/Data/GraphViz/Types.hs
--- a/Data/GraphViz/Types.hs
+++ b/Data/GraphViz/Types.hs
@@ -87,11 +87,15 @@
 -}
 module Data.GraphViz.Types
        ( DotRepr(..)
+       , PrintDot(..)
+       , ParseDot(..)
        , PrintDotRepr
        , ParseDotRepr
        , PPDotRepr
          -- * Common sub-types
        , GraphID(..)
+       , ToGraphID(..)
+       , textGraphID
        , GlobalAttributes(..)
        , DotNode(..)
        , DotEdge(..)
@@ -115,10 +119,11 @@
                                  , DotNode(..), DotEdge(..), numericValue)
 import Data.GraphViz.Types.State
 import Data.GraphViz.Util(bool)
-import Data.GraphViz.Parsing(ParseDot, runParser, checkValidParse, parse, adjustErr)
+import Data.GraphViz.Parsing(ParseDot(..), runParser, checkValidParse, parse, adjustErr)
 import Data.GraphViz.PreProcessing(preProcess)
-import Data.GraphViz.Printing(PrintDot, printIt)
+import Data.GraphViz.Printing(PrintDot(..), printIt)
 
+import qualified Data.Text.Lazy as T
 import Data.Text.Lazy(Text)
 import Control.Arrow(first)
 import Control.Monad.Trans.State(get, put, modify, execState, evalState)
@@ -322,6 +327,40 @@
 
 -- -----------------------------------------------------------------------------
 
+-- | A convenience class to make it easier to convert data types to
+--   'GraphID' values, e.g. for cluster identifiers.
+--
+--   In most cases, conversion would be via the 'Text' or 'String'
+--   instances (e.g. using 'show').
+class ToGraphID a where
+  toGraphID :: a -> GraphID
+
+-- | An alias for 'toGraphID' for use with the @OverloadedStrings@
+--   extension.
+textGraphID :: Text -> GraphID
+textGraphID = toGraphID
+
+instance ToGraphID Text where
+  toGraphID = Str
+
+instance ToGraphID String where
+  toGraphID = toGraphID . T.pack
+
+instance ToGraphID Char where
+  toGraphID = toGraphID . T.singleton
+
+instance ToGraphID Int where
+  toGraphID = Int
+
+-- | This instance loses precision by going via 'Int'.
+instance ToGraphID Integer where
+  toGraphID = Int . fromInteger
+
+instance ToGraphID Double where
+  toGraphID = Dbl
+
+-- -----------------------------------------------------------------------------
+
 {- $limitations
 
    Printing of /Dot/ code is done as strictly as possible, whilst
@@ -381,5 +420,5 @@
      'graphNodes' will return both \"definitions\").  @canonicalise@ from
      "Data.GraphViz.Algorithms" can be used to fix this.
 
-   See "Data.GraphViz.Attributes" for more limitations.
+   See "Data.GraphViz.Attributes.Complete" for more limitations.
  -}
diff --git a/Data/GraphViz/Types/Canonical.hs b/Data/GraphViz/Types/Canonical.hs
--- a/Data/GraphViz/Types/Canonical.hs
+++ b/Data/GraphViz/Types/Canonical.hs
@@ -87,6 +87,8 @@
 import Data.GraphViz.Types.Common
 import Data.GraphViz.Parsing
 import Data.GraphViz.Printing
+import Data.GraphViz.State(AttributeType(..))
+import Data.GraphViz.Util(bool)
 
 import Control.Arrow((&&&))
 import Control.Monad(liftM)
@@ -102,12 +104,14 @@
                 deriving (Eq, Ord, Show, Read)
 
 instance (PrintDot n) => PrintDot (DotGraph n) where
-  unqtDot = printStmtBased printGraphID' graphStatements toDot
+  unqtDot = printStmtBased printGraphID' (const GraphAttribute)
+                           graphStatements toDot
     where
       printGraphID' = printGraphID strictGraph directedGraph graphID
 
 instance (ParseDot n) => ParseDot (DotGraph n) where
-  parseUnqt = parseStmtBased parse (parseGraphID DotGraph)
+  parseUnqt = parseGraphID DotGraph
+              <*> parseBracesBased GraphAttribute parseUnqt
 
   parse = parseUnqt -- Don't want the option of quoting
 
@@ -160,26 +164,32 @@
                    deriving (Eq, Ord, Show, Read)
 
 instance (PrintDot n) => PrintDot (DotSubGraph n) where
-  unqtDot = printStmtBased printSubGraphID' subGraphStmts toDot
+  unqtDot = printStmtBased printSubGraphID' subGraphAttrType
+                           subGraphStmts toDot
 
-  unqtListToDot = printStmtBasedList printSubGraphID' subGraphStmts toDot
+  unqtListToDot = printStmtBasedList printSubGraphID' subGraphAttrType
+                                     subGraphStmts toDot
 
   listToDot = unqtListToDot
 
+subGraphAttrType :: DotSubGraph n -> AttributeType
+subGraphAttrType = bool SubGraphAttribute ClusterAttribute . isCluster
+
 printSubGraphID' :: DotSubGraph n -> DotCode
 printSubGraphID' = printSubGraphID (isCluster &&& subGraphID)
 
 instance (ParseDot n) => ParseDot (DotSubGraph n) where
-  parseUnqt = parseStmtBased parseUnqt (parseSubGraphID DotSG)
+  parseUnqt = parseSubGraph DotSG parseUnqt
               `onFail`
               -- Take "anonymous" DotSubGraphs into account.
-              liftM (DotSG False Nothing) (parseBracesBased parseUnqt)
+              liftM (DotSG False Nothing)
+                    (parseBracesBased SubGraphAttribute parseUnqt)
 
   parse = parseUnqt -- Don't want the option of quoting
           `adjustErr`
           ("Not a valid Sub Graph\n\t"++)
 
-  parseUnqtList = sepBy (whitespace' >> parseUnqt) newline'
+  parseUnqtList = sepBy (whitespace >> parseUnqt) newline'
 
   parseList = parseUnqtList
 
diff --git a/Data/GraphViz/Types/Common.hs b/Data/GraphViz/Types/Common.hs
--- a/Data/GraphViz/Types/Common.hs
+++ b/Data/GraphViz/Types/Common.hs
@@ -15,12 +15,12 @@
 
 import Data.GraphViz.Parsing
 import Data.GraphViz.Printing
+import Data.GraphViz.State
 import Data.GraphViz.Util
 import Data.GraphViz.Attributes.Complete( Attributes, Attribute(HeadPort, TailPort)
                                         , usedByGraphs, usedByClusters
                                         , usedByNodes)
 import Data.GraphViz.Attributes.Internal(PortPos, parseEdgeBasedPP)
-import Data.GraphViz.State(setDirectedness, getDirectedness, getsGS, modifyGS)
 
 import Data.Maybe(isJust)
 import qualified Data.Text.Lazy as T
@@ -76,7 +76,7 @@
 --   entire graph/sub-graph.  Note that 'GraphAttrs' also applies to
 --   'DotSubGraph's.
 --
---   Note that Dot allows a single 'Attribute' to be listen on a line;
+--   Note that Dot allows a single 'Attribute' to be listed on a line;
 --   if this is the case then when parsing, the type of 'Attribute' it
 --   is determined and that type of 'GlobalAttribute' is created.
 data GlobalAttributes = GraphAttrs { attrs :: Attributes }
@@ -85,9 +85,9 @@
                       deriving (Eq, Ord, Show, Read)
 
 instance PrintDot GlobalAttributes where
-  unqtDot = printAttrBased True printGlobAttrType attrs
+  unqtDot = printAttrBased True printGlobAttrType globAttrType attrs
 
-  unqtListToDot = printAttrBasedList True printGlobAttrType attrs
+  unqtListToDot = printAttrBasedList True printGlobAttrType globAttrType attrs
 
   listToDot = unqtListToDot
 
@@ -109,7 +109,16 @@
   -- Not using parseAttrBased here because we want to force usage of
   -- Attributes.
   parseUnqt = do gat <- parseGlobAttrType
-                 as <- whitespace' >> parse
+
+                 -- Determine if we need to set the attribute type.
+                 let mtp = globAttrType $ gat [] -- Only need the constructor
+                 oldTp <- getAttributeType
+                 maybe (return ()) setAttributeType mtp
+
+                 as <- whitespace >> parse
+
+                 -- Safe to set back even if not changed.
+                 setAttributeType oldTp
                  return $ gat as
               `onFail`
               liftM determineType parse
@@ -119,10 +128,17 @@
           ("Not a valid listing of global attributes\n\t"++)
 
   -- Have to do this manually because of the special case
-  parseUnqtList = parseStatements parse
+  parseUnqtList = parseStatements parseUnqt
 
   parseList = parseUnqtList
 
+-- Cheat: rather than determine whether it's a graph, cluster or
+-- sub-graph just don't set it.
+globAttrType :: GlobalAttributes -> Maybe AttributeType
+globAttrType NodeAttrs{} = Just NodeAttribute
+globAttrType EdgeAttrs{} = Just EdgeAttribute
+globAttrType _           = Nothing
+
 parseGlobAttrType :: Parse (Attributes -> GlobalAttributes)
 parseGlobAttrType = oneOf [ stringRep GraphAttrs "graph"
                           , stringRep NodeAttrs "node"
@@ -147,9 +163,11 @@
                deriving (Eq, Ord, Show, Read)
 
 instance (PrintDot n) => PrintDot (DotNode n) where
-  unqtDot = printAttrBased False printNodeID nodeAttributes
+  unqtDot = printAttrBased False printNodeID
+                           (const $ Just NodeAttribute) nodeAttributes
 
-  unqtListToDot = printAttrBasedList False printNodeID nodeAttributes
+  unqtListToDot = printAttrBasedList False printNodeID
+                                     (const $ Just NodeAttribute) nodeAttributes
 
   listToDot = unqtListToDot
 
@@ -157,11 +175,11 @@
 printNodeID = toDot . nodeID
 
 instance (ParseDot n) => ParseDot (DotNode n) where
-  parseUnqt = parseAttrBased parseNodeID
+  parseUnqt = parseAttrBased NodeAttribute False parseNodeID
 
   parse = parseUnqt -- Don't want the option of quoting
 
-  parseUnqtList = parseAttrBasedList parseNodeID
+  parseUnqtList = parseAttrBasedList NodeAttribute False parseNodeID
 
   parseList = parseUnqtList
 
@@ -193,9 +211,11 @@
                deriving (Eq, Ord, Show, Read)
 
 instance (PrintDot n) => PrintDot (DotEdge n) where
-  unqtDot = printAttrBased False printEdgeID edgeAttributes
+  unqtDot = printAttrBased False printEdgeID
+                           (const $ Just EdgeAttribute) edgeAttributes
 
-  unqtListToDot = printAttrBasedList False printEdgeID edgeAttributes
+  unqtListToDot = printAttrBasedList False printEdgeID
+                                     (const $ Just EdgeAttribute) edgeAttributes
 
   listToDot = unqtListToDot
 
@@ -207,7 +227,7 @@
 
 
 instance (ParseDot n) => ParseDot (DotEdge n) where
-  parseUnqt = parseAttrBased parseEdgeID
+  parseUnqt = parseAttrBased EdgeAttribute True parseEdgeID
 
   parse = parseUnqt -- Don't want the option of quoting
 
@@ -265,7 +285,7 @@
                    let ens' = n1 : ens
                        efs = zipWith mkEdges ens' (tail ens')
                        ef = return $ \ as -> concatMap ($as) efs
-                   parseAttrBased ef
+                   parseAttrBased EdgeAttribute True ef
 
 instance Functor DotEdge where
   fmap f e = e { fromNode = f $ fromNode e
@@ -330,7 +350,7 @@
     isDir' = isDir g
 
 parseGraphID   :: (Bool -> Bool -> Maybe GraphID -> a) -> Parse a
-parseGraphID f = do allWhitespace'
+parseGraphID f = do whitespace
                     str <- liftM isJust
                            $ optional (parseAndSpace $ string strGraph)
                     dir <- parseAndSpace ( stringRep True dirGraph
@@ -341,19 +361,19 @@
                     gID <- optional $ parseAndSpace parse
                     return $ f str dir gID
 
-printStmtBased          :: (a -> DotCode) -> (a -> b) -> (b -> DotCode)
-                           -> a -> DotCode
-printStmtBased f r dr a = do gs <- getsGS id
-                             dc <- printBracesBased (f a) (dr $ r a)
-                             modifyGS (const gs)
-                             return dc
-
-printStmtBasedList        :: (a -> DotCode) -> (a -> b) -> (b -> DotCode)
-                             -> [a] -> DotCode
-printStmtBasedList f r dr = vcat . mapM (printStmtBased f r dr)
+printStmtBased              :: (a -> DotCode) -> (a -> AttributeType)
+                               -> (a -> stmts) -> (stmts -> DotCode)
+                               -> a -> DotCode
+printStmtBased f ftp r dr a = do gs <- getsGS id
+                                 setAttributeType $ ftp a
+                                 dc <- printBracesBased (f a) (dr $ r a)
+                                 modifyGS (const gs)
+                                 return dc
 
-parseStmtBased :: Parse stmt -> Parse (stmt -> a) -> Parse a
-parseStmtBased = flip apply . parseBracesBased
+printStmtBasedList            :: (a -> DotCode) -> (a -> AttributeType)
+                                 -> (a -> stmts) -> (stmts -> DotCode)
+                                 -> [a] -> DotCode
+printStmtBasedList f ftp r dr = vcat . mapM (printStmtBased f ftp r dr)
 
 -- Can't use the 'braces' combinator here because we want the closing
 -- brace lined up with the h value, which due to indentation might not
@@ -367,13 +387,14 @@
     ind = indent 4
 
 -- | This /must/ only be used for sub-graphs, etc.
-parseBracesBased   :: Parse a -> Parse a
-parseBracesBased p = do gs <- getsGS id
-                        a <- whitespace' >> parseBraced (wrapWhitespace p)
-                        modifyGS (const gs)
-                        return a
-                     `adjustErr`
-                     ("Not a valid value wrapped in braces.\n\t"++)
+parseBracesBased      :: AttributeType -> Parse a -> Parse a
+parseBracesBased tp p = do gs <- getsGS id
+                           setAttributeType tp
+                           a <- whitespace >> parseBraced (wrapWhitespace p)
+                           modifyGS (const gs)
+                           return a
+                        `adjustErr`
+                        ("Not a valid value wrapped in braces.\n\t"++)
 
 printSubGraphID     :: (a -> (Bool, Maybe GraphID)) -> a -> DotCode
 printSubGraphID f a = sGraph'
@@ -394,10 +415,16 @@
     mkDot (Str str) = text str -- Quotes will be escaped later
     mkDot gid       = unqtDot gid
 
-parseSubGraphID   :: (Bool -> Maybe GraphID -> c) -> Parse c
+parseSubGraph         :: (Bool -> Maybe GraphID -> stmt -> c) -> Parse stmt -> Parse c
+parseSubGraph pid pst = do (isC, fID) <- parseSubGraphID pid
+                           let tp = bool SubGraphAttribute ClusterAttribute isC
+                           liftM fID $ parseBracesBased tp pst
+
+parseSubGraphID   :: (Bool -> Maybe GraphID -> c) -> Parse (Bool,c)
 parseSubGraphID f = do string sGraph
-                       whitespace
-                       liftM (uncurry f) parseSGID
+                       whitespace1
+                       (isC,mid) <- parseSGID
+                       return (isC, f isC mid)
 
 parseSGID :: Parse (Bool, Maybe GraphID)
 parseSGID = oneOf [ liftM getClustFrom $ parseAndSpace parse
@@ -437,47 +464,59 @@
                sID <- optional $ do when isCl
                                       $ optional (character '_') >> return ()
                                     parseUnqt
-               when (isCl || isJust sID) $ whitespace >> return ()
+               when (isCl || isJust sID) $ whitespace1 >> return ()
                return (isCl, sID)
 -}
 
--- The Bool indicates whether or not to print empty lists
-printAttrBased                :: Bool -> (a -> DotCode) -> (a -> Attributes)
-                                 -> a -> DotCode
-printAttrBased prEmp ff fas a = dc <> semi
+-- The Bool is True for global, False for local.
+printAttrBased                    :: Bool -> (a -> DotCode) -> (a -> Maybe AttributeType)
+                                     -> (a -> Attributes) -> a -> DotCode
+printAttrBased prEmp ff ftp fas a = do oldType <- getAttributeType
+                                       maybe (return ()) setAttributeType mtp
+                                       oldCS <- getColorScheme
+                                       (dc <> semi) <* setAttributeType oldType
+                                                    <* when prEmp (setColorScheme oldCS)
   where
+    mtp = ftp a
     f = ff a
     dc = case fas a of
            [] | not prEmp -> f
            as -> f <+> toDot as
 
--- The Bool indicates whether or not to print empty lists
-printAttrBasedList              :: Bool -> (a -> DotCode) -> (a -> Attributes)
-                                   -> [a] -> DotCode
-printAttrBasedList prEmp ff fas = vcat . mapM (printAttrBased prEmp ff fas)
+-- The Bool is True for global, False for local.
+printAttrBasedList                    :: Bool -> (a -> DotCode) -> (a -> Maybe AttributeType)
+                                         -> (a -> Attributes) -> [a] -> DotCode
+printAttrBasedList prEmp ff ftp fas = vcat . mapM (printAttrBased prEmp ff ftp fas)
 
-parseAttrBased   :: Parse (Attributes -> a) -> Parse a
-parseAttrBased p = do f <- p
-                      atts <- tryParseList' (whitespace' >> parse)
-                      return $ f atts
-                   `adjustErr`
-                   ("Not a valid attribute-based structure\n\t"++)
+-- The Bool is True for global, False for local.
+parseAttrBased         :: AttributeType -> Bool -> Parse (Attributes -> a) -> Parse a
+parseAttrBased tp lc p = do oldType <- getAttributeType
+                            setAttributeType tp
+                            oldCS <- getColorScheme
+                            f <- p
+                            atts <- tryParseList' (whitespace >> parse)
+                            when lc $ setColorScheme oldCS
+                            when (tp /= oldType) $ setAttributeType oldType
+                            return $ f atts
+                         `adjustErr`
+                         ("Not a valid attribute-based structure\n\t"++)
 
-parseAttrBasedList :: Parse (Attributes -> a) -> Parse [a]
-parseAttrBasedList = parseStatements . parseAttrBased
+-- The Bool is True for global, False for local.
+parseAttrBasedList       :: AttributeType -> Bool -> Parse (Attributes -> a) -> Parse [a]
+parseAttrBasedList tp lc = parseStatements . parseAttrBased tp lc
 
--- | Parse the separator (and any other whitespace present) between statements.
+-- | Parse the separator (and any other whitespace1 present) between statements.
 statementEnd :: Parse ()
 statementEnd = parseSplit >> newline'
   where
-    parseSplit = (whitespace' >> oneOf [ character ';' >> return ()
+    parseSplit = (whitespace >> oneOf [ character ';' >> return ()
                                        , newline
                                        ]
                  )
                  `onFail`
-                 whitespace
+                 whitespace1
 
 parseStatements   :: Parse a -> Parse [a]
-parseStatements p = sepBy (whitespace' >> p) statementEnd
+parseStatements p = sepBy (whitespace >> p) statementEnd
                     `discard`
                     optional statementEnd
diff --git a/Data/GraphViz/Types/Generalised.hs b/Data/GraphViz/Types/Generalised.hs
--- a/Data/GraphViz/Types/Generalised.hs
+++ b/Data/GraphViz/Types/Generalised.hs
@@ -66,6 +66,7 @@
 import Data.GraphViz.Types.State
 import Data.GraphViz.Parsing
 import Data.GraphViz.Printing
+import Data.GraphViz.State(AttributeType(..))
 import Data.GraphViz.Util(bool)
 
 import qualified Data.Sequence as Seq
@@ -120,12 +121,14 @@
 instance (Ord n, PrintDot n, ParseDot n) => PPDotRepr DotGraph n
 
 instance (PrintDot n) => PrintDot (DotGraph n) where
-  unqtDot = printStmtBased printGraphID' graphStatements printGStmts
+  unqtDot = printStmtBased printGraphID' (const GraphAttribute)
+                           graphStatements printGStmts
     where
       printGraphID' = printGraphID strictGraph directedGraph graphID
 
 instance (ParseDot n) => ParseDot (DotGraph n) where
-  parseUnqt = parseStmtBased parseGStmts (parseGraphID DotGraph)
+  parseUnqt = parseGraphID DotGraph
+              <*> parseBracesBased GraphAttribute parseGStmts
 
   parse = parseUnqt -- Don't want the option of quoting
 
@@ -241,26 +244,32 @@
                    deriving (Eq, Ord, Show, Read)
 
 instance (PrintDot n) => PrintDot (DotSubGraph n) where
-  unqtDot = printStmtBased printSubGraphID' subGraphStmts printGStmts
+  unqtDot = printStmtBased printSubGraphID' subGraphAttrType
+                           subGraphStmts printGStmts
 
-  unqtListToDot = printStmtBasedList printSubGraphID' subGraphStmts printGStmts
+  unqtListToDot = printStmtBasedList printSubGraphID' subGraphAttrType
+                                     subGraphStmts printGStmts
 
   listToDot = unqtListToDot
 
+subGraphAttrType :: DotSubGraph n -> AttributeType
+subGraphAttrType = bool SubGraphAttribute ClusterAttribute . isCluster
+
 printSubGraphID' :: DotSubGraph n -> DotCode
 printSubGraphID' = printSubGraphID (isCluster &&& subGraphID)
 
 instance (ParseDot n) => ParseDot (DotSubGraph n) where
-  parseUnqt = parseStmtBased parseGStmts (parseSubGraphID DotSG)
+  parseUnqt = parseSubGraph DotSG parseGStmts
               `onFail`
               -- Take anonymous DotSubGraphs into account
-              liftM (DotSG False Nothing) (parseBracesBased parseGStmts)
+              liftM (DotSG False Nothing)
+                    (parseBracesBased SubGraphAttribute parseGStmts)
 
   parse = parseUnqt -- Don't want the option of quoting
           `adjustErr`
           (++ "\n\nNot a valid Sub Graph")
 
-  parseUnqtList = sepBy (whitespace' >> parseUnqt) newline'
+  parseUnqtList = sepBy (whitespace >> parseUnqt) newline'
 
   parseList = parseUnqtList
 
diff --git a/Data/GraphViz/Types/Graph.hs b/Data/GraphViz/Types/Graph.hs
--- a/Data/GraphViz/Types/Graph.hs
+++ b/Data/GraphViz/Types/Graph.hs
@@ -106,8 +106,6 @@
 import Data.GraphViz.Util(groupSortBy, groupSortCollectBy)
 import Data.GraphViz.Algorithms(CanonicaliseOptions(..), canonicaliseOptions)
 import Data.GraphViz.Algorithms.Clustering
-import Data.GraphViz.Printing(PrintDot(..))
-import Data.GraphViz.Parsing(ParseDot(..))
 
 import Data.List(foldl', delete, unfoldr)
 import qualified Data.Foldable as F
@@ -582,6 +580,8 @@
       -- fromGDot :: G.DotGraph n -> DotGraph n
       fromGDot = fromDotRepr . flip asTypeOf (undefined :: G.DotGraph n)
 
+  parse = parseUnqt -- Don't want the option of quoting
+
 cOptions :: CanonicaliseOptions
 cOptions = COpts { edgesInClusters = False
                  , groupAttributes = True
@@ -599,15 +599,17 @@
 --     be used to make sure all clusters /have/ an identifier, but it
 --     doesn't ensure uniqueness).
 --
---   * All nodes are assumed to be explicitly listed precisely once
+--   * All nodes are assumed to be explicitly listed precisely once.
 --
 --   * Only edges found in the root graph are considered.
 --
 --   If this isn't the case, use 'fromCanonical' instead.
 --
---   The 'graphToDot' and 'graphElemsToDot' functions from
---   "Data.GraphViz" produces output suitable for this function
---   (assuming all clusters are provided with a unique identifier).
+--   The 'graphToDot' function from "Data.GraphViz" produces output
+--   suitable for this function (assuming all clusters are provided
+--   with a unique identifier); 'graphElemsToDot' is suitable if all
+--   nodes are specified in the input list (rather than just the
+--   edges).
 unsafeFromCanonical :: (Ord n) => C.DotGraph n -> DotGraph n
 unsafeFromCanonical dg = DG { strictGraph   = C.strictGraph dg
                             , directedGraph = dirGraph
diff --git a/FAQ b/FAQ
--- a/FAQ
+++ b/FAQ
@@ -1,4 +1,4 @@
-% graphviz - FAQ
+% FAQ
 % Ivan Lazar Miljenovic
 
 Fortuitously Anticipated Queries (FAQ)
@@ -35,14 +35,14 @@
 
 * There are [four different representations] of Dot graphs:
 
-    1. Canonical, which matches the layout of `dot -Tcanon`.
-    2. Generalised, which allows statements to be in any order.
-    3. A graph-based one that allows manipulation of the Dot graph.
-    4. A monadic interface for embedding graphs in Haskell.
+       1. Canonical, which matches the layout of `dot -Tcanon`.
+       2. Generalised, which allows statements to be in any order.
+       3. A graph-based one that allows manipulation of the Dot graph.
+       4. A monadic interface for embedding graphs in Haskell.
 
-  There are also conversion functions between them.
+    There are also conversion functions between them.
 
-  [four different representations](#whats-the-difference-between-the-different-dotgraph-types)
+ [four different representations]: #whats-the-difference-between-the-different-dotgraph-types
 
 * The ability to parse and generate most aspects of Dot [syntax] and
   [attributes].  This includes taking into account escaping and
@@ -131,6 +131,22 @@
   graphs need to be parsed then you shall need to do all I/O for them
   by hand.
 
+* `colorscheme` attributes _are_ parsed, but the behaviour is not
+  quite the same: consider the following minimal Dot graph:
+
+    ~~~~~ {.dot}
+    digraph {
+        a [ style=filled, fillcolor=gray, colorscheme=svg ]
+    }
+    ~~~~~
+
+    Despite the fact that the color is specified before the colorscheme,
+    Graphviz will use that colorscheme to parse the color (as an SVG
+    gray differs from the X11 gray); _graphviz_, however, will use the
+    default colorscheme of `x11` to parse the color, and **then** set
+    the colorscheme to be `svg` (despite it not being used after it is
+    set).
+
 #### Available items of note ####
 
 There are a few items of note that are available that are worthy of
@@ -191,7 +207,7 @@
 ### How is _graphviz_ licensed? ###
 
 _graphviz_ is licensed under a [3-Clause BSD License] (note that the
-ColorBrewer Color Schemes found in `Data.GraphViz.Attributes.Colors`
+ColorBrewer Color Schemes found in `Data.GraphViz.Attributes.Colors.Brewer`
 are covered under
 [their own license](http://graphviz.org/doc/info/colors.html#brewer_license)).
 
@@ -214,10 +230,9 @@
 
 ### Are there any tutorials on how to use _graphviz_? ###
 
-There will be soon.  The current stumbling block is that each time I
-sit down to write a tutorial, I find that it would be even better if
-_graphviz_ had some extra features in it first, so the tutorial has to
-wait until I have finished that feature...
+A basic tutorial on
+[how to visualise graph-like data](http://ivanmiljenovic.wordpress.com/2011/10/16/graphviz-in-vacuum/)
+is available; more will come if people ask for it.
 
 ### What other packages use _graphviz_? ###
 
@@ -263,7 +278,7 @@
 ### Do I need to have Graphviz installed to use _graphviz_? ###
 
 Technically, no if you're only dealing with the Dot language aspects.
-However, usage of the functions in the Commands module, or the
+However, usage of the functions in the `Commands` module, or the
 augmentation of pretty-printing functions in the GraphViz module _do_
 require Graphviz to be installed.
 
@@ -286,30 +301,30 @@
 
 **Canonical:**
 
-: matches the output of `dot -Tcanon`.  Recommended for use when
-  converting existing data into Dot (especially with the
-  `graphElemsToDot` function in `Data.GraphViz`).
+:   matches the output of `dot -Tcanon`.  Recommended for use when
+    converting existing data into Dot (especially with the
+    `graphElemsToDot` function in `Data.GraphViz`).
 
 **Generalised:**
 
-: most closely matches the layout of actual Dot code, as such this is
-  preferred when parsing in arbitrary Dot graphs.  Also useful in
-  cases where you want to use the common Graphviz "hack" of specifying
-  global attributes that don't apply to sub-graphs _after_ the
-  sub-graphs in question.
+:   most closely matches the layout of actual Dot code, as such this is
+    preferred when parsing in arbitrary Dot graphs.  Also useful in
+    cases where you want to use the common Graphviz "hack" of specifying
+    global attributes that don't apply to sub-graphs _after_ the
+    sub-graphs in question.
 
 **Graph:**
 
-: provides common graph operations on Dot graphs, based upon those
-  found in the [FGL].
+:   provides common graph operations on Dot graphs, based upon those
+    found in the [FGL].
 
 **Monadic:**
 
-: a nicer way of defining relatively static Dot graphs to embed within
-  Haskell code, etc.  Loosely based (with permission!) upon Andy
-  Gill's [dotgen] library.
+:   a nicer way of defining relatively static Dot graphs to embed within
+    Haskell code, etc.  Loosely based (with permission!) upon Andy
+    Gill's [dotgen] library.
 
-  [dotgen]: http://hackage.haskell.org/package/dotgen
+[dotgen]: http://hackage.haskell.org/package/dotgen
 
 ### What's the best way to parse Dot code? ###
 
@@ -331,63 +346,20 @@
 
 ### There are too many attributes!!! Which ones should I use? ###
 
-The following attributes are easy to use and recommended:
-
-* `ArrowHead` and `ArrowTail` (for directed graphs) to set the styles
-  of the ends of edges: note that in Graphviz parlance, "Head" refers
-  to the end node and "Tail" refers to the start node of the edge (see
-  below).
-
-* When wanting to use different colours, use the following criteria to
-  pick the correct attribute.  Note: for the first two, you should
-  also have `SItem Filled []` set as one of the `Style` values for
-  that item.
-
-    - `BgColor` to set the background colour of a graph/cluster.
-
-    - `FillColor` to set the background colour for a node.
-
-    - `Color` to set the colour of an edge; if you supply more than
-      one value then the edge is drawn using parallel splines/lines
-      (one per colour in the list).  This can also be used to set the
-      border colour for a node, but if a filled style is used and
-      `FillColor` isn't set then this will also set the background
-      colour.
-
-    - `PenColor` to set the colour of the bounding box for a cluster.
-
-        When choosing a `Color` value for one of the above, it is
-        better to use one of the `X11Color` values (note: these
-        colours slightly differ from the standard X11 colours) or - if
-        you have to - one of the manual colours over a `BrewerColor`,
-        as they come under a different license and have no real
-        standard on what the values are.
-
-* For labels, use the `Labellable` class to more easily construct
-  labels.  In most cases, a `String`-based label will suffice; for
-  more fine-grained control over layout, colours, etc. use either a
-  `RecordFields` or an `HtmlLabel`.
-
-* `Rank`: this lets you control relative placement of sub-graphs and
-  clusters.
-
-* `Shape`: Use `Record` and `MRecord` for `RecordFields`-based labels;
-  feel free to use any other ones at any time (though you probably
-  want to use `PlainText` for `HtmlLabel` labels).
-
-* `Style`: use this to set line types, etc. for nodes and edges.  You
-  should **not** use a `DD` (device-dependent) value.
+The `Data.GraphViz.Attributes` module contains a cut-down list of
+recommended and commonly used attributes.
 
-The following attributes are **not** recommended for use:
+The entire list of attributes can be found in
+`Data.GraphViz.Attributes.Complete`.  In particular, the following
+attributes are **not** recommended for use:
 
-* `Color` for anything except edge colours (and if you must, the
-  border colour for a node).
+* `Color` for anything except edge colours or gradients for nodes,
+  clusters and graphs when using Graphviz >= 2.29.0 (and if you must,
+  the border colour for a node).
 
 * `ColorScheme`: just stick with X11 colours.
 
-* `Comment`: pretty useless, but will interfere with the augmentation
-  functions (since they use the `Comment` attribute to distinguish
-  between multiple edges).
+* `Comment`: pretty useless.  Enough said.
 
 ### Can I use any attribute wherever I want? ###
 
@@ -398,11 +370,9 @@
 
 ### How can I use _graphviz_ to visualise non-FGL graphs? ###
 
-At the moment, you unfortunately have to write your own manual
-conversion functions (see `graphToDot`, etc. in the GraphViz module
-for ideas on how to do this).  In future, it should be possible to
-convert any graph-like datatype into a `DotGraph` (this requires me to
-go write another library first...).
+The `graphElemsToDot` function allows you to visualise any graph for
+which you can specify a list of labelled nodes and a list of labelled
+edges.
 
 ### How can I use/process multiple graphs like Graphviz does? ###
 
@@ -433,7 +403,7 @@
 instance ParseDot MyType where
   parseUnqt = do i <- parseUnqt
                  character ':'
-                 whitespace
+                 whitespace1
                  s <- parseUnqt
                  return $ MyType s i
 
@@ -456,11 +426,9 @@
 
 * Be as liberal as you can when parsing, especially with whitespace:
   when printing only one space is used, yet when parsing we use the
-  `whitespace` parsing combinator that will parse all whitespace
+  `whitespace1` parsing combinator that will parse all whitespace
   characters (but it must consume _at least_ one; there is a variant
-  that does not need to parse any).  However, we're not being so
-  liberal as to allow parsing of newline characters (for which there
-  is a separate parsing combinator).
+  that does not need to parse any).
 
 ### When parsing Dot code, do I have to worry about the case? ###
 
@@ -472,11 +440,11 @@
 
 Graphviz allows you to specify edges such as `from:a -> to:b` where
 the nodes "from" and "to" are defined with either `RecordLabel` or
-`HtmlLabel` labels and have different sections; the edge is then drawn
+`Html.Label` labels and have different sections; the edge is then drawn
 from the "a" section of the "from" node to the "b" section of the "to"
 node.
 
-Whilst _graphviz_ can parse this, you can't define this yourself:
+Whilst _graphviz_ can parse this, you can't define this yourself;
 instead, do it the manual way:
 
 ~~~~~~~~~~~~~~~~~~~~ {.haskell}
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-% graphviz - License
+% License
 % Ivan Lazar Miljenovic
 
 Licensing Information
diff --git a/README b/README
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-% graphviz - Haskell bindings to the Graphviz toolkit
+% Haskell bindings to the Graphviz toolkit
 % Ivan Lazar Miljenovic
 
 The graphviz Library
@@ -62,4 +62,3 @@
      mode:markdown
      End:
   -->
-
diff --git a/RunTests.hs b/RunTests.hs
deleted file mode 100644
--- a/RunTests.hs
+++ /dev/null
@@ -1,83 +0,0 @@
-{- |
-   Module      : RunTests
-   Description : Run the graphviz test suite.
-   Copyright   : (c) Ivan Lazar Miljenovic
-   License     : 3-Clause BSD-style
-   Maintainer  : Ivan.Miljenovic@gmail.com
-
-   This module exists solely to make a Main module to build and run
-   the test suite.
--}
-module Main where
-
-import Data.GraphViz.Testing( Test(name, lookupName)
-                            , defaultTests, runChosenTests)
-
-import Data.Char(toLower)
-import Data.Maybe(mapMaybe)
-import qualified Data.Map as Map
-import Data.Map(Map)
-import Control.Arrow((&&&))
-import Control.Monad(when)
-import System.Environment(getArgs, getProgName)
-import System.Exit(ExitCode(ExitSuccess), exitWith)
-
--- -----------------------------------------------------------------------------
-
-main :: IO ()
-main = do opts <- getArgs
-          let opts' = map (map toLower) opts
-              hasArg arg = any (arg==) opts'
-          when (hasArg "help") helpMsg
-          let tests = if hasArg "all"
-                      then defaultTests
-                      else mapMaybe getTest opts'
-              tests' = if null tests
-                       then defaultTests
-                       else tests
-          runChosenTests tests'
-
-testLookup :: Map String Test
-testLookup = Map.fromList
-             $ map (lookupName &&& id) defaultTests
-
-getTest :: String -> Maybe Test
-getTest = (`Map.lookup` testLookup)
-
-helpMsg :: IO ()
-helpMsg = getProgName >>= (putStr . msg) >> exitWith ExitSuccess
-  where
-    msg nm = unlines
-      [ "This utility is the test-suite for the graphviz library for Haskell."
-      , "Various tests are available; see the table below for a complete list."
-      , "There are several ways of running this program:"
-      , ""
-      , "    " ++ nm ++ "               Run all of the tests"
-      , "    " ++ nm ++ " all           Run all of the tests"
-      , "    " ++ nm ++ " help          Get this help message"
-      , "    " ++ nm ++ " <key>         Run the test associated with each key,"
-      , "        (where <key> denotes a space-separated list of keys"
-      , "         from the table below)."
-      , ""
-      , helpTable
-      ]
-
-helpTable :: String
-helpTable = unlines $ fmtName ((lnHeader,lnHeaderLen),(nHeader,nHeaderLen))
-                      : line
-                      : map fmtName testNames
-  where
-    andLen = ((id &&& length) .)
-    testNames = map (andLen lookupName &&& andLen name) defaultTests
-    fmtName ((ln,lnl),(n,_)) = concat [ ln
-                                      , replicate (maxLN-lnl+spacerLen) ' '
-                                      , n
-                                      ]
-    line = replicate (maxLN + spacerLen + maxN) '-'
-    maxLN = maximum $ map (snd . fst) testNames
-    maxN = maximum $ map (snd . snd) testNames
-    spacerLen = 3
-    lnHeader = "Key"
-    lnHeaderLen = length lnHeader
-    nHeader = "Description"
-    nHeaderLen = length nHeader
diff --git a/TODO b/TODO
--- a/TODO
+++ b/TODO
@@ -1,4 +1,4 @@
-% graphviz - TODO
+% TODO
 % Ivan Lazar Miljenovic
 
 Future Plans for graphviz
@@ -6,7 +6,8 @@
 
 This is a list of planned feature improvements to graphviz along with
 an indication of when it's likely to be implemented (note that these
-time scales are in relation to releases, not actual time).
+time scales are in relation to releases, not actual time; however, it
+is quite possible that the order will not be adhered to).
 
 Short term
 ----------
@@ -17,10 +18,6 @@
 * Add nicer syntax for record labels, and specifying ports in Monadic
   Dot graphs.
 
-* Add convenience functions for creating GraphIDs (ala Labellable).
-
-* Add support for SVG colors.
-
 * Define new classes to distinguish between printing/parsing Attribute
   values and other values (as only the former requires quoted
   variants).
@@ -55,4 +52,3 @@
      mode:markdown
      End:
   -->
-
diff --git a/graphviz.cabal b/graphviz.cabal
--- a/graphviz.cabal
+++ b/graphviz.cabal
@@ -1,5 +1,5 @@
 Name:               graphviz
-Version:            2999.12.0.4
+Version:            2999.13.0.0
 Stability:          Beta
 Synopsis:           Bindings to Graphviz for graph visualisation.
 Description: {
@@ -38,7 +38,7 @@
 Author:             Matthew Sackman, Ivan Lazar Miljenovic
 Maintainer:         Ivan.Miljenovic+graphviz@gmail.com
 Build-Type:         Simple
-Cabal-Version:      >= 1.6
+Cabal-Version:      >= 1.14
 Extra-Source-Files: TODO
                     Changelog
                     README
@@ -50,18 +50,15 @@
     Type:         darcs
     Location:     http://code.haskell.org/graphviz
 
-Flag test
-     Description: Build the test suite, including an executable to run it.
-     Default: False
-
 Library {
-        Build-Depends:     base >= 3 && < 5,
-                           extensible-exceptions,
+        Default-Language:  Haskell98
+
+        Build-Depends:     base == 4.*,
                            containers,
                            process,
                            fgl == 5.4.*,
                            filepath,
-                           polyparse == 1.7.*,
+                           polyparse >= 1.7 && < 1.9,
                            bytestring == 0.9.*,
                            colour == 2.3.*,
                            transformers == 0.2.*,
@@ -77,12 +74,14 @@
                            Data.GraphViz.Types.Monadic
                            Data.GraphViz.Parsing
                            Data.GraphViz.Printing
-                           Data.GraphViz.State
                            Data.GraphViz.Commands
                            Data.GraphViz.Commands.IO
                            Data.GraphViz.Attributes
                            Data.GraphViz.Attributes.Complete
                            Data.GraphViz.Attributes.Colors
+                           Data.GraphViz.Attributes.Colors.X11
+                           Data.GraphViz.Attributes.Colors.Brewer
+                           Data.GraphViz.Attributes.Colors.SVG
                            Data.GraphViz.Attributes.HTML
                            Data.GraphViz.PreProcessing
                            Data.GraphViz.Exception
@@ -95,20 +94,7 @@
                            Data.GraphViz.Types.Common
                            Data.GraphViz.Types.State
                            Data.GraphViz.Util
-        if flag(test)
-           Build-Depends:       QuickCheck >= 2.3 && < 2.5
-
-           Exposed-Modules:     Data.GraphViz.Testing
-                                Data.GraphViz.Testing.Instances
-                                Data.GraphViz.Testing.Properties
-
-           Other-Modules:       Data.GraphViz.Testing.Instances.FGL
-                                Data.GraphViz.Testing.Instances.Helpers
-                                Data.GraphViz.Testing.Instances.Attributes
-                                Data.GraphViz.Testing.Instances.Common
-                                Data.GraphViz.Testing.Instances.Canonical
-                                Data.GraphViz.Testing.Instances.Generalised
-                                Data.GraphViz.Testing.Instances.Graph
+                           Data.GraphViz.State
 
         if True
            Ghc-Options: -Wall
@@ -119,14 +105,65 @@
         Ghc-Prof-Options:  -prof -auto-all
 }
 
-Executable graphviz-testsuite {
+Test-Suite graphviz-testsuite {
+        Default-Language:  Haskell98
 
-        if flag(test)
-           Buildable: True
-        else
-           Buildable: False
+        Type:              exitcode-stdio-1.0
 
+        -- Versions controlled by library section
+        Build-Depends:     base,
+                           containers,
+                           process,
+                           fgl,
+                           filepath,
+                           polyparse,
+                           bytestring,
+                           colour,
+                           transformers,
+                           text,
+                           wl-pprint-text,
+                           dlist,
+                           QuickCheck >= 2.3 && < 2.5
+
+        hs-Source-Dirs:    . tests
+
         Main-Is:           RunTests.hs
+
+
+        Other-Modules:       Data.GraphViz.Testing
+                             Data.GraphViz.Testing.Instances
+                             Data.GraphViz.Testing.Properties
+                             Data.GraphViz.Testing.Instances.FGL
+                             Data.GraphViz.Testing.Instances.Helpers
+                             Data.GraphViz.Testing.Instances.Attributes
+                             Data.GraphViz.Testing.Instances.Common
+                             Data.GraphViz.Testing.Instances.Canonical
+                             Data.GraphViz.Testing.Instances.Generalised
+                             Data.GraphViz.Testing.Instances.Graph
+
+        if True
+           Ghc-Options: -O -Wall
+
+        if impl(ghc >= 6.12.1)
+           Ghc-Options: -fno-warn-unused-do-bind
+
+        GHC-Prof-Options: -auto-all -caf-all -rtsopts
+}
+
+Benchmark graphviz-printparse {
+        Default-Language: Haskell98
+
+        Type:             exitcode-stdio-1.0
+
+        Build-Depends:    base,
+                          deepseq,
+                          text,
+                          graphviz,
+                          criterion >= 0.5 && < 0.7
+
+        hs-Source-Dirs:   utils
+
+        Main-Is:          Benchmark.hs
 
         if True
            Ghc-Options: -O -Wall
diff --git a/tests/Data/GraphViz/Testing.hs b/tests/Data/GraphViz/Testing.hs
new file mode 100644
--- /dev/null
+++ b/tests/Data/GraphViz/Testing.hs
@@ -0,0 +1,383 @@
+{-# LANGUAGE Rank2Types, FlexibleContexts #-}
+
+{- |
+   Module      : Data.GraphViz.Testing
+   Description : Test-suite for graphviz.
+   Copyright   : (c) Ivan Lazar Miljenovic
+   License     : 3-Clause BSD-style
+   Maintainer  : Ivan.Miljenovic@gmail.com
+
+   This defines a test-suite for the graphviz library.
+
+   Limitations of the test suite are as follows:
+
+   * For the most part, this library lets you use arbitrary numbers
+     for String values.  However, this is not tested due to too many
+     corner cases for special parsers that don't take arbitrary
+     Strings.  As the Dot standard is ambiguous over whether you can
+     or can't use numbers as Strings (more specifically, if they
+     should be quoted or not), this is a user beware situation.
+
+   * Same goes for empty Strings; sometimes they're allowed, sometimes
+     they're not.  Thus, to simplify matters they're not generated.
+
+   * The generated Strings are very simple, only composed of lower
+     case letters, digits and some symbols.  This is because too many
+     tests were \"failing\" due to some corner case; e.g. lower-case
+     letters only because the parser parses Strings as lowercase, so
+     if a particular String isn't valid (e.g. @\"all\"@ for 'LayerID',
+     then the 'Arbitrary' instance has to ensure that all possible
+     ways of capitalising that String isn't generated as a random
+     'LRName'.
+
+   * The generated 'DotRepr's are not guaranteed to be valid.
+
+   * To avoid needless endless recursion, sub-graphs do not have their
+     own internal sub-graphs.
+
+   * This test suite isn't perfect: if you deliberately try to stuff
+     something up, you probably can.
+-}
+module Data.GraphViz.Testing
+       ( -- * Running the test suite.
+         runChosenTests
+       , runTests
+       , runTest
+         -- ** The tests themselves
+       , Test(..)
+       , defaultTests
+       , test_printParseID_Attributes
+       , test_generalisedSameDot
+       , test_printParseID
+       , test_preProcessingID
+       , test_dotizeAugment
+       , test_dotizeAugmentUniq
+       , test_canonicalise
+       , test_transitive
+        -- * Re-exporting modules for manual testing.
+       , module Data.GraphViz
+       , module Data.GraphViz.Testing.Properties
+         -- * Debugging printing
+       , PrintDot(..)
+       , printIt
+       , renderDot
+         -- * Debugging parsing
+       , ParseDot(..)
+       , parseIt
+       , parseIt'
+       , runParser
+       , preProcess
+       ) where
+
+import Test.QuickCheck
+
+import Data.GraphViz.Testing.Instances()
+import Data.GraphViz.Testing.Properties
+
+import Data.GraphViz
+import Data.GraphViz.Parsing(parseIt, parseIt', runParser)
+import Data.GraphViz.PreProcessing(preProcess)
+import Data.GraphViz.Printing(printIt, renderDot)
+import qualified Data.GraphViz.Types.Generalised as G
+import qualified Data.GraphViz.Types.Graph as Gr
+-- Can't use PatriciaTree because a Show instance is needed.
+import Data.Graph.Inductive.Tree(Gr)
+
+import System.Exit(ExitCode(..), exitWith)
+import System.IO(hPutStrLn, stderr)
+
+-- -----------------------------------------------------------------------------
+
+runChosenTests       :: [Test] -> IO ()
+runChosenTests tsts = do putStrLn msg
+                         blankLn
+                         runTests tsts
+                         spacerLn
+                         putStrLn successMsg
+  where
+    msg = "This is the test suite for the graphviz library.\n\
+           \If any of these tests fail, please inform the maintainer,\n\
+           \including full output of this test suite."
+
+    successMsg = "All tests were successful!"
+
+
+-- -----------------------------------------------------------------------------
+-- Defining a Test structure and how to run tests.
+
+-- | Defines the test structure being used.
+data Test = Test { name       :: String
+                 , lookupName :: String      -- ^ Should be lowercase
+                 , desc       :: String
+                 , tests      :: [IO Result] -- ^ QuickCheck test.
+                 }
+
+-- | Run all of the provided tests.
+runTests :: [Test] -> IO ()
+runTests = mapM_ ((>>) spacerLn . runTest)
+
+-- | Run the provided test.
+runTest     :: Test -> IO ()
+runTest tst = do putStrLn title
+                 blankLn
+                 putStrLn $ desc tst
+                 blankLn
+                 run $ tests tst
+                 blankLn
+  where
+    nm = '"' : name tst ++ "\""
+    title = "Running test: " ++ nm ++ "."
+    successMsg = "All tests for " ++ nm ++ " were successful!"
+    gaveUpMsg = "Too many sample inputs for " ++ nm ++ " were rejected;\n\
+                 \tentatively marking this as successful."
+    failMsg = "The tests for " ++ nm ++ " failed!\n\
+               \Not attempting any further tests."
+
+    run [] = putStrLn successMsg
+    run (t:ts) = do r <- t
+                    case r of
+                       Success{} -> run ts
+                       GaveUp{}  -> putStrLn gaveUpMsg >> run ts
+                       _         -> die failMsg
+
+spacerLn :: IO ()
+spacerLn = putStrLn (replicate 70 '=') >> blankLn
+
+blankLn :: IO ()
+blankLn = putStrLn ""
+
+die     :: String -> IO a
+die msg = do hPutStrLn stderr msg
+             exitWith (ExitFailure 1)
+
+qCheck :: (Testable prop) => prop -> IO Result
+qCheck = quickCheckWithResult (stdArgs { maxSize = 50, maxSuccess = 200 })
+
+-- -----------------------------------------------------------------------------
+-- Defining the tests to use.
+
+-- | The tests to run by default.
+defaultTests :: [Test]
+defaultTests = [ test_printParseID_Attributes
+               , test_generalisedSameDot
+               , test_printParseID
+               , test_preProcessingID
+               , test_dotizeAugment
+               , test_dotizeHasAugment
+               , test_dotizeAugmentUniq
+               , test_findAllNodes
+               , test_findAllNodesE
+               , test_findAllEdges
+               , test_noGraphInfo
+               , test_canonicalise
+               , test_transitive
+               ]
+
+-- | Test that 'Attributes' can be printed and then parsed back.
+test_printParseID_Attributes :: Test
+test_printParseID_Attributes
+  = Test { name       = "Printing and parsing of Attributes"
+         , lookupName = "attributes"
+         , desc       = dsc
+         , tests      = [qCheck prop]
+         }
+  where
+    prop :: Attributes -> Property
+    prop = prop_printParseListID
+
+    dsc = "The most common source of errors in printing and parsing are for\n\
+          \Attributes."
+
+test_generalisedSameDot :: Test
+test_generalisedSameDot
+  = Test { name       = "Printing generalised Dot code"
+         , lookupName = "makegeneralised"
+         , desc       = dsc
+         , tests      = [qCheck prop]
+         }
+    where
+      prop :: DotGraph Int -> Bool
+      prop = prop_generalisedSameDot
+
+      dsc = "When generalising \"DotGraph\" values to other \"DotRepr\" values,\n\
+             \the generated Dot code should be identical."
+
+test_printParseID :: Test
+test_printParseID
+  = Test { name       = "Printing and Parsing DotReprs"
+         , lookupName = "printparseid"
+         , desc       = dsc
+         , tests      = tsts
+         }
+  where
+    tsts :: [IO Result]
+    tsts = [ qCheck (prop_printParseID :: DotGraph    Int -> Bool)
+           , qCheck (prop_printParseID :: G.DotGraph  Int -> Bool)
+           , qCheck (prop_printParseID :: Gr.DotGraph Int -> Bool)
+           ]
+
+    dsc = "The graphviz library should be able to parse back in its own\n\
+           \generated Dot code for any \"DotRepr\" instance"
+
+test_preProcessingID :: Test
+test_preProcessingID
+  = Test { name       = "Pre-processing Dot code"
+         , lookupName = "preprocessing"
+         , desc       = dsc
+         , tests      = [qCheck prop]
+         }
+  where
+    prop :: DotGraph Int -> Bool
+    prop = prop_preProcessingID
+
+    dsc = "When parsing Dot code, some pre-processing is done to remove items\n\
+           \such as comments and to join together multi-line strings.  This\n\
+           \test verifies that this pre-processing doesn't affect actual\n\
+           \Dot code by running the pre-processor on generated Dot code.\n\n\
+           \This test is not run on generalised Dot graphs as if it works for\n\
+           \normal dot graphs then it should also work for generalised ones."
+
+test_dotizeAugment :: Test
+test_dotizeAugment
+  = Test { name       = "Augmenting FGL Graphs"
+         , lookupName = "augment"
+         , desc       = dsc
+         , tests      = [qCheck prop]
+         }
+  where
+    prop :: Gr Char Double -> Bool
+    prop = prop_dotizeAugment
+
+    dsc = "The various Graph to Graph functions in Data.GraphViz should\n\
+           \only _augment_ the graph labels and not change the graphs\n\
+           \themselves.  This test compares the original graphs to these\n\
+           \augmented graphs and verifies that they are the same."
+
+test_dotizeHasAugment :: Test
+test_dotizeHasAugment
+  = Test { name       = "Ensuring augmentation of FGL Graphs"
+         , lookupName = "hasaugment"
+         , desc       = dsc
+         , tests      = [qCheck prop]
+         }
+  where
+    prop :: Gr Char Double -> Bool
+    prop = prop_dotizeHasAugment
+
+    dsc = "The various Graph to Graph functions in Data.GraphViz should\n\
+           \actually agument the graph labels; this ensures that all labels\n\
+           \actually have attached Attributes after augmentation."
+
+test_dotizeAugmentUniq :: Test
+test_dotizeAugmentUniq
+  = Test { name       = "Unique edges in augmented FGL Graphs"
+         , lookupName = "augmentuniq"
+         , desc       = dsc
+         , tests      = [qCheck prop]
+         }
+  where
+    prop :: Gr Char Double -> Bool
+    prop = prop_dotizeAugmentUniq
+
+    dsc = "When augmenting a graph with multiple edges, as long as no\n\
+           \Attributes are provided that override the default settings,\n\
+           \then each edge between two nodes should have a unique position\n\
+           \Attribute, etc."
+
+test_findAllNodes :: Test
+test_findAllNodes
+  = Test { name       = "Ensure all nodes are found in a DotRepr"
+         , lookupName = "findnodes"
+         , desc       = dsc
+         , tests      = map qCheck props
+         }
+  where
+    props :: [Gr () () -> Bool]
+    props = testAllGraphTypes prop_findAllNodes
+
+    dsc = "nodeInformation should find all nodes in a DotRepr;\n\
+           \this is tested by converting an FGL graph and comparing\n\
+           \the nodes it should have to those that are found."
+
+test_findAllNodesE :: Test
+test_findAllNodesE
+  = Test { name       = "Ensure all nodes are found in a node-less DotRepr"
+         , lookupName = "findedgelessnodes"
+         , desc       = dsc
+         , tests      = map qCheck props
+         }
+  where
+    props :: [Gr () () -> Bool]
+    props = testAllGraphTypes prop_findAllNodesE
+
+    dsc = "nodeInformation should find all nodes in a DotRepr,\n\
+           \even if there are no explicit nodes in that graph.\n\
+           \This is tested by converting an FGL graph and comparing\n\
+           \the nodes it should have to those that are found."
+
+test_findAllEdges :: Test
+test_findAllEdges
+  = Test { name       = "Ensure all edges are found in a DotRepr"
+         , lookupName = "findedges"
+         , desc       = dsc
+         , tests      = map qCheck props
+         }
+  where
+    props :: [Gr () () -> Bool]
+    props = testAllGraphTypes prop_findAllEdges
+
+    dsc = "nodeInformation should find all edges in a DotRepr;\n\
+           \this is tested by converting an FGL graph and comparing\n\
+           \the edges it should have to those that are found."
+
+test_noGraphInfo :: Test
+test_noGraphInfo
+  = Test { name       = "Plain DotReprs should have no structural information"
+         , lookupName = "nographinfo"
+         , desc       = dsc
+         , tests      = map qCheck props
+         }
+  where
+    props :: [Gr () () -> Bool]
+    props = testAllGraphTypes prop_noGraphInfo
+
+    dsc = "When converting a Graph to a DotRepr, there should be no\n\
+           \clusters or global attributes."
+
+test_canonicalise :: Test
+test_canonicalise
+  = Test { name       = "Canonicalisation should be idempotent"
+         , lookupName = "canonicalise"
+         , desc       = dsc
+         , tests      = [qCheck prop]
+         }
+  where
+    prop :: DotGraph Int -> Bool
+    prop = prop_canonicalise
+
+    dsc = "Repeated application of canonicalise shouldn't have any further affect."
+
+test_transitive :: Test
+test_transitive
+  = Test { name       = "Transitive reduction should be idempotent"
+         , lookupName = "transitive"
+         , desc       = dsc
+         , tests      = [qCheck prop]
+         }
+  where
+    prop :: DotGraph Int -> Bool
+    prop = prop_transitive
+
+    dsc = "Repeated application of transitiveReduction shouldn't have any further affect."
+
+-- -----------------------------------------------------------------------------
+
+-- | Used when a property takes in a DotRepr as the first argument to
+--   indicate which instance it should test via 'fromCanonical'.
+testAllGraphTypes      :: (Testable prop)
+                          => (forall dg. (Eq (dg Int), DotRepr dg Int) => dg Int -> prop)
+                          -> [prop]
+testAllGraphTypes prop = [ prop (undefined :: DotGraph Int)
+                         , prop (undefined :: G.DotGraph Int)
+                         , prop (undefined :: Gr.DotGraph Int)
+                         ]
diff --git a/tests/Data/GraphViz/Testing/Instances.hs b/tests/Data/GraphViz/Testing/Instances.hs
new file mode 100644
--- /dev/null
+++ b/tests/Data/GraphViz/Testing/Instances.hs
@@ -0,0 +1,27 @@
+{-# OPTIONS_GHC -fno-warn-orphans #-}
+{-# LANGUAGE OverloadedStrings #-}
+
+{- |
+   Module      : Data.GraphViz.Testing.Instances
+   Description : 'Arbitrary' instances for graphviz.
+   Copyright   : (c) Ivan Lazar Miljenovic
+   License     : 3-Clause BSD-style
+   Maintainer  : Ivan.Miljenovic@gmail.com
+
+   This module exports the 'Arbitrary' instances for the various types
+   used to represent Graphviz Dot code.
+
+   Note that they do not generally generate /sensible/ values for the
+   various types; in particular, there's no guarantee that the
+   'Attributes' chosen for a particular value type are indeed legal
+   for that type.
+ -}
+module Data.GraphViz.Testing.Instances() where
+
+import Data.GraphViz.Testing.Instances.FGL()
+import Data.GraphViz.Testing.Instances.Canonical()
+import Data.GraphViz.Testing.Instances.Generalised()
+import Data.GraphViz.Testing.Instances.Graph()
+
+-- -----------------------------------------------------------------------------
+
diff --git a/tests/Data/GraphViz/Testing/Instances/Attributes.hs b/tests/Data/GraphViz/Testing/Instances/Attributes.hs
new file mode 100644
--- /dev/null
+++ b/tests/Data/GraphViz/Testing/Instances/Attributes.hs
@@ -0,0 +1,960 @@
+{-# OPTIONS_GHC -fno-warn-orphans #-}
+{-# OPTIONS_HADDOCK hide #-}
+{-# LANGUAGE OverloadedStrings #-}
+
+{- |
+   Module      : Data.GraphViz.Testing.Instances.Attributes
+   Description : Attribute instances for Arbitrary.
+   Copyright   : (c) Ivan Lazar Miljenovic
+   License     : 3-Clause BSD-style
+   Maintainer  : Ivan.Miljenovic@gmail.com
+ -}
+module Data.GraphViz.Testing.Instances.Attributes
+       ( arbGraphAttrs
+       , arbSubGraphAttrs
+       , arbClusterAttrs
+       , arbNodeAttrs
+       , arbEdgeAttrs
+       ) where
+
+import Data.GraphViz.Testing.Instances.Helpers
+
+import Data.GraphViz.Attributes.Complete
+import qualified Data.GraphViz.Attributes.HTML as Html
+import Data.GraphViz.Attributes.Colors.Brewer
+import Data.GraphViz.Attributes.Colors.X11(X11Color)
+import Data.GraphViz.Attributes.Colors.SVG(SVGColor)
+import Data.GraphViz.Attributes.Internal(compassLookup)
+import Data.GraphViz.State(initialState, layerSep)
+import Data.GraphViz.Util(bool)
+
+import Test.QuickCheck
+
+import Data.List(nub, delete, groupBy)
+import qualified Data.Map as Map
+import qualified Data.Text.Lazy as T
+import Data.Text.Lazy(Text)
+import Control.Monad(liftM, liftM2, liftM3, liftM4)
+import System.FilePath(searchPathSeparator)
+
+-- -----------------------------------------------------------------------------
+-- Defining Arbitrary instances for Attributes
+
+arbGraphAttrs :: Gen Attributes
+arbGraphAttrs = arbAttrs usedByGraphs
+
+arbSubGraphAttrs :: Gen Attributes
+arbSubGraphAttrs = arbAttrs usedBySubGraphs
+
+arbClusterAttrs :: Gen Attributes
+arbClusterAttrs = arbAttrs usedByClusters
+
+arbNodeAttrs :: Gen Attributes
+arbNodeAttrs = arbAttrs usedByNodes
+
+arbEdgeAttrs :: Gen Attributes
+arbEdgeAttrs = arbAttrs usedByEdges
+
+arbAttrs   :: (Attribute -> Bool) -> Gen Attributes
+arbAttrs p = liftM (filter p) arbList
+
+instance Arbitrary Attribute where
+  arbitrary = oneof [ liftM Damping arbitrary
+                    , liftM K arbitrary
+                    , liftM URL arbitrary
+                    , liftM ArrowHead arbitrary
+                    , liftM ArrowSize arbitrary
+                    , liftM ArrowTail arbitrary
+                    , liftM Aspect arbitrary
+                    , liftM BoundingBox arbitrary
+                    , liftM ColorScheme arbitrary
+                    , liftM BgColor arbList
+                    , liftM Center arbitrary
+                    , liftM ClusterRank arbitrary
+                    , liftM Color arbList
+                    , liftM Comment arbitrary
+                    , liftM Compound arbitrary
+                    , liftM Concentrate arbitrary
+                    , liftM Constraint arbitrary
+                    , liftM Decorate arbitrary
+                    , liftM DefaultDist arbitrary
+                    , liftM Dim arbitrary
+                    , liftM Dimen arbitrary
+                    , liftM Dir arbitrary
+                    , liftM DirEdgeConstraints arbitrary
+                    , liftM Distortion arbitrary
+                    , liftM DPI arbitrary
+                    , liftM EdgeURL arbitrary
+                    , liftM EdgeTarget arbitrary
+                    , liftM EdgeTooltip arbitrary
+                    , liftM Epsilon arbitrary
+                    , liftM ESep arbitrary
+                    , liftM FillColor arbList
+                    , liftM FixedSize arbitrary
+                    , liftM FontColor arbitrary
+                    , liftM FontName arbitrary
+                    , liftM FontNames arbitrary
+                    , liftM FontPath arbitrary
+                    , liftM FontSize arbitrary
+                    , liftM ForceLabels arbitrary
+                    , liftM GradientAngle arbitrary
+                    , liftM Group arbitrary
+                    , liftM HeadURL arbitrary
+                    , liftM HeadClip arbitrary
+                    , liftM HeadLabel arbitrary
+                    , liftM HeadPort arbitrary
+                    , liftM HeadTarget arbitrary
+                    , liftM HeadTooltip arbitrary
+                    , liftM Height arbitrary
+                    , liftM ID arbitrary
+                    , liftM Image arbitrary
+                    , liftM ImagePath arbitrary
+                    , liftM ImageScale arbitrary
+                    , liftM Label arbitrary
+                    , liftM LabelURL arbitrary
+                    , liftM LabelScheme arbitrary
+                    , liftM LabelAngle arbitrary
+                    , liftM LabelDistance arbitrary
+                    , liftM LabelFloat arbitrary
+                    , liftM LabelFontColor arbitrary
+                    , liftM LabelFontName arbitrary
+                    , liftM LabelFontSize arbitrary
+                    , liftM LabelJust arbitrary
+                    , liftM LabelLoc arbitrary
+                    , liftM LabelTarget arbitrary
+                    , liftM LabelTooltip arbitrary
+                    , liftM Landscape arbitrary
+                    , liftM Layer arbitrary
+                    , liftM Layers arbitrary
+                    , liftM LayerSep arbitrary
+                    , liftM Layout arbitrary
+                    , liftM Len arbitrary
+                    , liftM LevelsGap arbitrary
+                    , liftM Levels arbitrary
+                    , liftM LHead arbitrary
+                    , liftM LHeight arbitrary
+                    , liftM LPos arbitrary
+                    , liftM LTail arbitrary
+                    , liftM LWidth arbitrary
+                    , liftM Margin arbitrary
+                    , liftM MaxIter arbitrary
+                    , liftM MCLimit arbitrary
+                    , liftM MinDist arbitrary
+                    , liftM MinLen arbitrary
+                    , liftM Mode arbitrary
+                    , liftM Model arbitrary
+                    , liftM Mosek arbitrary
+                    , liftM NodeSep arbitrary
+                    , liftM NoJustify arbitrary
+                    , liftM Normalize arbitrary
+                    , liftM Nslimit arbitrary
+                    , liftM Nslimit1 arbitrary
+                    , liftM Ordering arbitrary
+                    , liftM Orientation arbitrary
+                    , liftM OutputOrder arbitrary
+                    , liftM Overlap arbitrary
+                    , liftM OverlapScaling arbitrary
+                    , liftM Pack arbitrary
+                    , liftM PackMode arbitrary
+                    , liftM Pad arbitrary
+                    , liftM Page arbitrary
+                    , liftM PageDir arbitrary
+                    , liftM PenColor arbitrary
+                    , liftM PenWidth arbitrary
+                    , liftM Peripheries arbitrary
+                    , liftM Pin arbitrary
+                    , liftM Pos arbitrary
+                    , liftM QuadTree arbitrary
+                    , liftM Quantum arbitrary
+                    , liftM Rank arbitrary
+                    , liftM RankDir arbitrary
+                    , liftM RankSep arbList
+                    , liftM Ratio arbitrary
+                    , liftM Rects arbList
+                    , liftM Regular arbitrary
+                    , liftM ReMinCross arbitrary
+                    , liftM RepulsiveForce arbitrary
+                    , liftM Root arbitrary
+                    , liftM Rotate arbitrary
+                    , liftM Rotation arbitrary
+                    , liftM SameHead arbitrary
+                    , liftM SameTail arbitrary
+                    , liftM SamplePoints arbitrary
+                    , liftM Scale arbitrary
+                    , liftM SearchSize arbitrary
+                    , liftM Sep arbitrary
+                    , liftM Shape arbitrary
+                    , liftM ShapeFile arbitrary
+                    , liftM ShowBoxes arbitrary
+                    , liftM Sides arbitrary
+                    , liftM Size arbitrary
+                    , liftM Skew arbitrary
+                    , liftM Smoothing arbitrary
+                    , liftM SortV arbitrary
+                    , liftM Splines arbitrary
+                    , liftM Start arbitrary
+                    , liftM Style arbList
+                    , liftM StyleSheet arbitrary
+                    , liftM TailURL arbitrary
+                    , liftM TailClip arbitrary
+                    , liftM TailLabel arbitrary
+                    , liftM TailPort arbitrary
+                    , liftM TailTarget arbitrary
+                    , liftM TailTooltip arbitrary
+                    , liftM Target arbitrary
+                    , liftM Tooltip arbitrary
+                    , liftM TrueColor arbitrary
+                    , liftM Vertices arbList
+                    , liftM ViewPort arbitrary
+                    , liftM VoroMargin arbitrary
+                    , liftM Weight arbitrary
+                    , liftM Width arbitrary
+                    , liftM XLabel arbitrary
+                    , liftM Z arbitrary
+                    , liftM2 UnknownAttribute (suchThat arbIDString validUnknown) arbitrary
+                    ]
+
+  shrink (Damping v)            = map Damping             $ shrink v
+  shrink (K v)                  = map K                   $ shrink v
+  shrink (URL v)                = map URL                 $ shrink v
+  shrink (ArrowHead v)          = map ArrowHead           $ shrink v
+  shrink (ArrowSize v)          = map ArrowSize           $ shrink v
+  shrink (ArrowTail v)          = map ArrowTail           $ shrink v
+  shrink (Aspect v)             = map Aspect              $ shrink v
+  shrink (BoundingBox v)        = map BoundingBox         $ shrink v
+  shrink (ColorScheme v)        = map ColorScheme         $ shrink v
+  shrink (BgColor v)            = map BgColor             $ nonEmptyShrinks v
+  shrink (Center v)             = map Center              $ shrink v
+  shrink (ClusterRank v)        = map ClusterRank         $ shrink v
+  shrink (Color v)              = map Color               $ nonEmptyShrinks v
+  shrink (Comment v)            = map Comment             $ shrink v
+  shrink (Compound v)           = map Compound            $ shrink v
+  shrink (Concentrate v)        = map Concentrate         $ shrink v
+  shrink (Constraint v)         = map Constraint          $ shrink v
+  shrink (Decorate v)           = map Decorate            $ shrink v
+  shrink (DefaultDist v)        = map DefaultDist         $ shrink v
+  shrink (Dim v)                = map Dim                 $ shrink v
+  shrink (Dimen v)              = map Dimen               $ shrink v
+  shrink (Dir v)                = map Dir                 $ shrink v
+  shrink (DirEdgeConstraints v) = map DirEdgeConstraints  $ shrink v
+  shrink (Distortion v)         = map Distortion          $ shrink v
+  shrink (DPI v)                = map DPI                 $ shrink v
+  shrink (EdgeURL v)            = map EdgeURL             $ shrink v
+  shrink (EdgeTarget v)         = map EdgeTarget          $ shrink v
+  shrink (EdgeTooltip v)        = map EdgeTooltip         $ shrink v
+  shrink (Epsilon v)            = map Epsilon             $ shrink v
+  shrink (ESep v)               = map ESep                $ shrink v
+  shrink (FillColor v)          = map FillColor           $ nonEmptyShrinks v
+  shrink (FixedSize v)          = map FixedSize           $ shrink v
+  shrink (FontColor v)          = map FontColor           $ shrink v
+  shrink (FontName v)           = map FontName            $ shrink v
+  shrink (FontNames v)          = map FontNames           $ shrink v
+  shrink (FontPath v)           = map FontPath            $ shrink v
+  shrink (FontSize v)           = map FontSize            $ shrink v
+  shrink (ForceLabels v)        = map ForceLabels         $ shrink v
+  shrink (GradientAngle v)      = map GradientAngle       $ shrink v
+  shrink (Group v)              = map Group               $ shrink v
+  shrink (HeadURL v)            = map HeadURL             $ shrink v
+  shrink (HeadClip v)           = map HeadClip            $ shrink v
+  shrink (HeadLabel v)          = map HeadLabel           $ shrink v
+  shrink (HeadPort v)           = map HeadPort            $ shrink v
+  shrink (HeadTarget v)         = map HeadTarget          $ shrink v
+  shrink (HeadTooltip v)        = map HeadTooltip         $ shrink v
+  shrink (Height v)             = map Height              $ shrink v
+  shrink (ID v)                 = map ID                  $ shrink v
+  shrink (Image v)              = map Image               $ shrink v
+  shrink (ImagePath v)          = map ImagePath           $ shrink v
+  shrink (ImageScale v)         = map ImageScale          $ shrink v
+  shrink (Label v)              = map Label               $ shrink v
+  shrink (LabelURL v)           = map LabelURL            $ shrink v
+  shrink (LabelScheme v)        = map LabelScheme         $ shrink v
+  shrink (LabelAngle v)         = map LabelAngle          $ shrink v
+  shrink (LabelDistance v)      = map LabelDistance       $ shrink v
+  shrink (LabelFloat v)         = map LabelFloat          $ shrink v
+  shrink (LabelFontColor v)     = map LabelFontColor      $ shrink v
+  shrink (LabelFontName v)      = map LabelFontName       $ shrink v
+  shrink (LabelFontSize v)      = map LabelFontSize       $ shrink v
+  shrink (LabelJust v)          = map LabelJust           $ shrink v
+  shrink (LabelLoc v)           = map LabelLoc            $ shrink v
+  shrink (LabelTarget v)        = map LabelTarget         $ shrink v
+  shrink (LabelTooltip v)       = map LabelTooltip        $ shrink v
+  shrink (Landscape v)          = map Landscape           $ shrink v
+  shrink (Layer v)              = map Layer               $ shrink v
+  shrink (Layers v)             = map Layers              $ shrink v
+  shrink (LayerSep v)           = map LayerSep            $ shrink v
+  shrink (Layout v)             = map Layout              $ shrink v
+  shrink (Len v)                = map Len                 $ shrink v
+  shrink (LevelsGap v)          = map LevelsGap           $ shrink v
+  shrink (Levels v)             = map Levels              $ shrink v
+  shrink (LHead v)              = map LHead               $ shrink v
+  shrink (LHeight v)            = map LHeight             $ shrink v
+  shrink (LPos v)               = map LPos                $ shrink v
+  shrink (LTail v)              = map LTail               $ shrink v
+  shrink (LWidth v)             = map LWidth              $ shrink v
+  shrink (Margin v)             = map Margin              $ shrink v
+  shrink (MaxIter v)            = map MaxIter             $ shrink v
+  shrink (MCLimit v)            = map MCLimit             $ shrink v
+  shrink (MinDist v)            = map MinDist             $ shrink v
+  shrink (MinLen v)             = map MinLen              $ shrink v
+  shrink (Mode v)               = map Mode                $ shrink v
+  shrink (Model v)              = map Model               $ shrink v
+  shrink (Mosek v)              = map Mosek               $ shrink v
+  shrink (NodeSep v)            = map NodeSep             $ shrink v
+  shrink (NoJustify v)          = map NoJustify           $ shrink v
+  shrink (Normalize v)          = map Normalize           $ shrink v
+  shrink (Nslimit v)            = map Nslimit             $ shrink v
+  shrink (Nslimit1 v)           = map Nslimit1            $ shrink v
+  shrink (Ordering v)           = map Ordering            $ shrink v
+  shrink (Orientation v)        = map Orientation         $ shrink v
+  shrink (OutputOrder v)        = map OutputOrder         $ shrink v
+  shrink (Overlap v)            = map Overlap             $ shrink v
+  shrink (OverlapScaling v)     = map OverlapScaling      $ shrink v
+  shrink (Pack v)               = map Pack                $ shrink v
+  shrink (PackMode v)           = map PackMode            $ shrink v
+  shrink (Pad v)                = map Pad                 $ shrink v
+  shrink (Page v)               = map Page                $ shrink v
+  shrink (PageDir v)            = map PageDir             $ shrink v
+  shrink (PenColor v)           = map PenColor            $ shrink v
+  shrink (PenWidth v)           = map PenWidth            $ shrink v
+  shrink (Peripheries v)        = map Peripheries         $ shrink v
+  shrink (Pin v)                = map Pin                 $ shrink v
+  shrink (Pos v)                = map Pos                 $ shrink v
+  shrink (QuadTree v)           = map QuadTree            $ shrink v
+  shrink (Quantum v)            = map Quantum             $ shrink v
+  shrink (Rank v)               = map Rank                $ shrink v
+  shrink (RankDir v)            = map RankDir             $ shrink v
+  shrink (RankSep v)            = map RankSep             $ nonEmptyShrinks v
+  shrink (Ratio v)              = map Ratio               $ shrink v
+  shrink (Rects v)              = map Rects               $ nonEmptyShrinks v
+  shrink (Regular v)            = map Regular             $ shrink v
+  shrink (ReMinCross v)         = map ReMinCross          $ shrink v
+  shrink (RepulsiveForce v)     = map RepulsiveForce      $ shrink v
+  shrink (Root v)               = map Root                $ shrink v
+  shrink (Rotate v)             = map Rotate              $ shrink v
+  shrink (Rotation v)           = map Rotation            $ shrink v
+  shrink (SameHead v)           = map SameHead            $ shrink v
+  shrink (SameTail v)           = map SameTail            $ shrink v
+  shrink (SamplePoints v)       = map SamplePoints        $ shrink v
+  shrink (Scale v)              = map Scale               $ shrink v
+  shrink (SearchSize v)         = map SearchSize          $ shrink v
+  shrink (Sep v)                = map Sep                 $ shrink v
+  shrink (Shape v)              = map Shape               $ shrink v
+  shrink (ShapeFile v)          = map ShapeFile           $ shrink v
+  shrink (ShowBoxes v)          = map ShowBoxes           $ shrink v
+  shrink (Sides v)              = map Sides               $ shrink v
+  shrink (Size v)               = map Size                $ shrink v
+  shrink (Skew v)               = map Skew                $ shrink v
+  shrink (Smoothing v)          = map Smoothing           $ shrink v
+  shrink (SortV v)              = map SortV               $ shrink v
+  shrink (Splines v)            = map Splines             $ shrink v
+  shrink (Start v)              = map Start               $ shrink v
+  shrink (Style v)              = map Style               $ nonEmptyShrinks v
+  shrink (StyleSheet v)         = map StyleSheet          $ shrink v
+  shrink (TailURL v)            = map TailURL             $ shrink v
+  shrink (TailClip v)           = map TailClip            $ shrink v
+  shrink (TailLabel v)          = map TailLabel           $ shrink v
+  shrink (TailPort v)           = map TailPort            $ shrink v
+  shrink (TailTarget v)         = map TailTarget          $ shrink v
+  shrink (TailTooltip v)        = map TailTooltip         $ shrink v
+  shrink (Target v)             = map Target              $ shrink v
+  shrink (Tooltip v)            = map Tooltip             $ shrink v
+  shrink (TrueColor v)          = map TrueColor           $ shrink v
+  shrink (Vertices v)           = map Vertices            $ nonEmptyShrinks v
+  shrink (ViewPort v)           = map ViewPort            $ shrink v
+  shrink (VoroMargin v)         = map VoroMargin          $ shrink v
+  shrink (Weight v)             = map Weight              $ shrink v
+  shrink (Width v)              = map Width               $ shrink v
+  shrink (XLabel v)             = map XLabel              $ shrink v
+  shrink (Z v)                  = map Z                   $ shrink v
+  shrink (UnknownAttribute a v) = liftM2 UnknownAttribute (liftM (filter validUnknown) shrink a) (shrink v)
+{- delete to here -}
+
+instance Arbitrary ArrowType where
+  arbitrary = liftM AType
+              -- Arrow specifications have between 1 and 4 elements.
+              $ sized (\ s -> resize (min s 4) arbList)
+
+  shrink (AType as) = map AType $ nonEmptyShrinks as
+
+instance Arbitrary ArrowShape where
+  arbitrary = arbBounded
+
+instance Arbitrary ArrowModifier where
+  arbitrary = liftM2 ArrMod arbitrary arbitrary
+
+instance Arbitrary ArrowFill where
+  arbitrary = arbBounded
+
+instance Arbitrary ArrowSide where
+  arbitrary = arbBounded
+
+instance Arbitrary AspectType where
+  arbitrary = oneof [ liftM  RatioOnly arbitrary
+                    , liftM2 RatioPassCount arbitrary posArbitrary
+                    ]
+
+  shrink (RatioOnly d) = map RatioOnly $ shrink d
+  shrink (RatioPassCount d i) = do ds <- shrink d
+                                   is <- shrink i
+                                   return $ RatioPassCount ds is
+
+instance Arbitrary LabelScheme where
+  arbitrary = arbBounded
+
+instance Arbitrary Rect where
+  arbitrary = liftM2 Rect point2D point2D
+
+  shrink (Rect p1 p2) = do p1s <- shrink p1
+                           p2s <- shrink p2
+                           return $ Rect p1s p2s
+
+instance Arbitrary Point where
+  -- Pretty sure points have to be positive...
+  arbitrary = liftM4 Point posArbitrary posArbitrary posZ arbitrary
+    where
+      posZ = frequency [(1, return Nothing), (3, liftM Just posArbitrary)]
+
+  shrink p = do x' <- shrink $ xCoord p
+                y' <- shrink $ yCoord p
+                z' <- shrinkM $ zCoord p
+                return $ Point x' y' z' False
+
+point2D :: Gen Point
+point2D = liftM2 createPoint posArbitrary posArbitrary
+
+instance Arbitrary ClusterMode where
+  arbitrary = arbBounded
+
+instance Arbitrary DirType where
+  arbitrary = arbBounded
+
+instance Arbitrary DEConstraints where
+  arbitrary = arbBounded
+
+instance Arbitrary DPoint where
+  arbitrary = oneof [ liftM DVal arbitrary
+                    , liftM PVal point2D
+                    ]
+
+  shrink (DVal d) = map DVal $ shrink d
+  shrink (PVal p) = map PVal $ shrink p
+
+instance Arbitrary ModeType where
+  arbitrary = arbBounded
+
+instance Arbitrary Model where
+  arbitrary = arbBounded
+
+instance Arbitrary Label where
+  arbitrary = oneof [ liftM StrLabel arbitrary
+                    , liftM HtmlLabel arbitrary
+                    , liftM RecordLabel $ suchThat arbList notStr
+                    ]
+
+  shrink (StrLabel str)   = map StrLabel $ shrink str
+  shrink (HtmlLabel html) = map HtmlLabel $ shrink html
+  shrink (RecordLabel fs) = map RecordLabel . filter notStr $ shrinkList fs
+
+notStr                :: RecordFields -> Bool
+notStr [FieldLabel{}] = False -- Just in case
+notStr _              = True
+
+arbField     :: Bool -> Int -> Gen RecordField
+arbField b s = resize s'
+               . oneof
+               . bool id ((:) genFlipped) b
+               $ [ liftM2 LabelledTarget arbitrary arbitrary
+                 , liftM PortName arbitrary
+                 , liftM FieldLabel arbitrary
+                 ]
+  where
+    genFlipped = liftM FlipFields
+                 $ listOf1 (sized $ arbField False)
+    s' = min 3 s
+
+instance Arbitrary RecordField where
+  arbitrary = sized (arbField True)
+
+  shrink (LabelledTarget f l) = [PortName f, FieldLabel l]
+  shrink (PortName f)         = map PortName $ shrink f
+  shrink (FieldLabel l)       = map FieldLabel $ shrink l
+  shrink (FlipFields fs)      = map FlipFields $ shrinkList fs
+
+instance Arbitrary Overlap where
+  arbitrary = oneof [ simpleOverlap
+                    , liftM PrismOverlap arbitrary
+                    ]
+    where
+      -- Have to do this by hand since Overlap can't have Bounded and
+      -- Enum instances
+      simpleOverlap = elements [ KeepOverlaps
+                               , ScaleOverlaps
+                               , ScaleXYOverlaps
+                               , CompressOverlap
+                               , VpscOverlap
+                               , IpsepOverlap
+                               ]
+
+  shrink (PrismOverlap mi) = map PrismOverlap $ shrink mi
+  shrink _                 = []
+
+instance Arbitrary LayerSep where
+  -- Since Arbitrary isn't stateful, we can't generate an arbitrary
+  -- one because of arbLayerName
+  arbitrary = return . LSep . T.pack $ layerSep initialState
+
+instance Arbitrary LayerList where
+  arbitrary = liftM LL $ listOf1 arbName
+    where
+      arbName = suchThat arbitrary isLayerName
+
+      isLayerName LRName{} = True
+      isLayerName _        = False
+
+  shrink (LL ll) = map LL $ nonEmptyShrinks ll
+
+instance Arbitrary LayerRange where
+  arbitrary = oneof [ liftM LRID arbitrary
+                    , liftM2 LRS arbitrary arbitrary
+                    ]
+
+  shrink (LRID nm)   = map LRID $ shrink nm
+  shrink (LRS l1 l2) = [LRID l1, LRID l2]
+
+instance Arbitrary LayerID where
+  arbitrary = oneof [ return AllLayers
+                    , liftM LRInt arbitrary
+                    , liftM LRName $ suchThat arbLayerName lrnameCheck
+                    ]
+
+  shrink AllLayers   = []
+  shrink (LRInt i)   = map LRInt $ shrink i
+  shrink (LRName nm) = map LRName
+                       . filter lrnameCheck
+                       $ shrink nm
+
+lrnameCheck :: Text -> Bool
+lrnameCheck = (/=) "all"
+
+instance Arbitrary Order where
+  arbitrary = arbBounded
+
+instance Arbitrary OutputMode where
+  arbitrary = arbBounded
+
+instance Arbitrary Pack where
+  arbitrary = oneof [ return DoPack
+                    , return DontPack
+                    , liftM PackMargin arbitrary
+                    ]
+
+  shrink (PackMargin m) = map PackMargin $ shrink m
+  shrink _              = []
+
+instance Arbitrary PackMode where
+  arbitrary = oneof [ return PackNode
+                    , return PackClust
+                    , return PackGraph
+                    , liftM3 PackArray arbitrary arbitrary arbitrary
+                    ]
+
+  shrink (PackArray c u mi) = map (PackArray c u) $ shrink mi
+  shrink _                  = []
+
+instance Arbitrary Pos where
+  arbitrary = oneof [ liftM PointPos arbitrary
+                      -- A single spline with only one point overall
+                      -- is just a point...
+                    , liftM SplinePos $ suchThat arbList validSplineList
+                    ]
+
+  shrink (PointPos p)   = map PointPos $ shrink p
+  shrink (SplinePos ss) = map SplinePos . filter validSplineList
+                          $ nonEmptyShrinks ss
+
+validSplineList                              :: [Spline] -> Bool
+validSplineList [Spline Nothing Nothing [_]] = False
+validSplineList _                            = True
+
+instance Arbitrary Spline where
+  arbitrary = liftM3 Spline arbitrary arbitrary
+              -- list of points must have length of 1 mod 3
+              $ suchThat arbitrary ((==) 1 . flip mod 3 . length)
+
+  shrink (Spline Nothing Nothing [p]) = map (Spline Nothing Nothing . return)
+                                        $ shrink p
+  -- We're not going to be shrinking the points in the list; just
+  -- making sure that its length is === 1 mod 3
+  shrink (Spline ms me ps) = do mss <- shrinkM ms
+                                mes <- shrinkM me
+                                pss <- rem2 ps
+                                return $ Spline mss mes pss
+    where
+
+      rem1 []     = []
+      rem1 (a:as) = as : map (a:) (rem1 as)
+
+      rem2 = nub . concatMap rem1 . rem1
+
+instance Arbitrary EdgeType where
+  arbitrary = arbBounded
+
+instance Arbitrary PageDir where
+  arbitrary = arbBounded
+
+instance Arbitrary QuadType where
+  arbitrary = arbBounded
+
+instance Arbitrary Root where
+  arbitrary = oneof [ return IsCentral
+                    , return NotCentral
+                    , liftM NodeName arbitrary
+                    ]
+
+  shrink (NodeName nm) = map NodeName $ shrink nm
+  shrink _             = []
+
+instance Arbitrary RankType where
+  arbitrary = arbBounded
+
+instance Arbitrary RankDir where
+  arbitrary = arbBounded
+
+instance Arbitrary Shape where
+  arbitrary = arbBounded
+
+instance Arbitrary SmoothType where
+  arbitrary = arbBounded
+
+instance Arbitrary StartType where
+  arbitrary = oneof [ liftM  StartStyle arbitrary
+                    , liftM  StartSeed arbitrary
+                    , liftM2 StartStyleSeed arbitrary arbitrary
+                    ]
+
+  shrink StartStyle{} = [] -- No shrinks for STStyle
+  shrink (StartSeed ss) = map StartSeed $ shrink ss
+  shrink (StartStyleSeed st ss) = map (StartStyleSeed st) $ shrink ss
+
+instance Arbitrary STStyle where
+  arbitrary = arbBounded
+
+instance Arbitrary StyleItem where
+  arbitrary = liftM2 SItem arbitrary (listOf arbStyleName)
+
+  -- Can't use this because of what shrink on the individual strings
+  -- might do.
+  -- shrink (SItem sn opts) = map (SItem sn) $ shrink opts
+
+instance Arbitrary StyleName where
+  arbitrary = oneof [ defaultStyles
+                    , liftM DD $ suchThat arbStyleName notDefault
+                    ]
+    where
+      defaultStyles = elements [ Dashed
+                               , Dotted
+                               , Bold
+                               , Invisible
+                               , Filled
+                               , Diagonals
+                               , Rounded
+                               , Tapered
+                               , Radial
+                               ]
+      notDefault = flip notElem [ "dashed"
+                                , "dotted"
+                                , "solid"
+                                , "bold"
+                                , "invis"
+                                , "filled"
+                                , "diagonals"
+                                , "rounded"
+                                , "tapered"
+                                , "radial"
+                                ]
+
+instance Arbitrary PortPos where
+  arbitrary = oneof [ liftM2 LabelledPort arbitrary arbitrary
+                    , liftM CompassPoint arbitrary
+                    ]
+
+  shrink (LabelledPort pn mc) = map (flip LabelledPort mc) $ shrink pn
+  shrink _                    = []
+
+instance Arbitrary CompassPoint where
+  arbitrary = arbBounded
+
+instance Arbitrary ViewPort where
+  arbitrary = liftM4 VP arbitrary arbitrary arbitrary arbitrary
+
+  shrink (VP w h z f) = case sVPs of
+                          [_] -> []
+                          _   -> sVPs
+    where
+      sVPs = do ws <- shrink w
+                hs <- shrink h
+                zs <- shrink z
+                fs <- shrinkM f
+                return $ VP ws hs zs fs
+
+instance Arbitrary FocusType where
+  arbitrary = oneof [ liftM XY arbitrary
+                    , liftM NodeFocus $ suchThat arbitrary (T.all ((/=) ','))
+                    ]
+
+  shrink (XY p)          = map XY $ shrink p
+  shrink (NodeFocus str) = map NodeFocus $ shrink str
+
+instance Arbitrary VerticalPlacement where
+  arbitrary = arbBounded
+
+instance Arbitrary Paths where
+  arbitrary = liftM Paths $ listOf1 arbFilePath
+
+  shrink (Paths ps) = map Paths $ nonEmptyShrinks' ps
+
+arbFilePath :: Gen FilePath
+arbFilePath = suchThat arbString (searchPathSeparator `notElem`)
+
+instance Arbitrary ScaleType where
+  arbitrary = arbBounded
+
+instance Arbitrary Justification where
+  arbitrary = arbBounded
+
+instance Arbitrary Ratios where
+  arbitrary = oneof [ liftM AspectRatio posArbitrary
+                    , namedRats
+                    ]
+    where
+      namedRats = elements [ FillRatio
+                           , CompressRatio
+                           , ExpandRatio
+                           , AutoRatio
+                           ]
+
+  shrink (AspectRatio r) = map (AspectRatio . fromPositive)
+                           . shrink $ Positive r
+  shrink _               = []
+
+instance Arbitrary ColorScheme where
+  arbitrary = oneof [ return X11
+                    , liftM Brewer arbitrary
+                    ]
+
+  shrink (Brewer bs) = map Brewer $ shrink bs
+  shrink _           = []
+
+instance Arbitrary BrewerScheme where
+  arbitrary = liftM2 BScheme arbitrary arbitrary -- Not /quite/ right, but close enough
+
+  shrink (BScheme nm l) = map (BScheme nm) $ shrink l
+
+instance Arbitrary BrewerName where
+  arbitrary = arbBounded
+
+instance Arbitrary Color where
+  arbitrary = oneof [ liftM3 RGB  arbitrary arbitrary arbitrary
+                    , liftM4 RGBA arbitrary arbitrary arbitrary arbitrary
+                    , liftM3 HSV  zeroOne zeroOne zeroOne
+                    , liftM X11Color arbitrary
+                    , liftM SVGColor arbitrary
+                    , liftM BrewerColor arbitrary
+                    ]
+    where
+      zeroOne = choose (0,1)
+
+  shrink (RGB r g b)     = do rs <- shrink r
+                              gs <- shrink g
+                              bs <- shrink b
+                              return $ RGB rs gs bs
+  shrink (RGBA r g b a)  = RGB r g b
+                           : do rs <- shrink r
+                                gs <- shrink g
+                                bs <- shrink b
+                                as <- shrink a
+                                return $ RGBA rs gs bs as
+  shrink (BrewerColor c) = map BrewerColor $ shrink c
+  shrink _               = [] -- Shrinking 0<=h,s,v<=1 does nothing
+
+instance Arbitrary X11Color where
+  arbitrary = arbBounded
+
+instance Arbitrary SVGColor where
+  arbitrary = arbBounded
+
+-- | Not quite right as the values can get too high/low, but should
+--   suffice for printing/parsing purposes.
+instance Arbitrary BrewerColor where
+  arbitrary = liftM2 BC arbitrary arbitrary
+
+  shrink (BC s c) = map (BC s) $ shrink c
+
+instance Arbitrary Html.Label where
+  arbitrary = sized $ arbHtml True
+
+  shrink ht@(Html.Text txts) = delete ht . map Html.Text $ shrinkL txts
+  shrink (Html.Table tbl)    = map Html.Table $ shrink tbl
+
+-- Note: for the most part, Html.Label values are very repetitive (and
+-- furthermore, they end up chewing a large amount of memory).  As
+-- such, use resize to limit how large the actual Html.Label values
+-- become.
+arbHtml         :: Bool -> Int -> Gen Html.Label
+arbHtml table s = resize' $ frequency options
+  where
+    s' = min 2 s
+    resize' = if not table
+              then resize s'
+              else id
+    allowTable = if table
+                 then (:) (1, arbTbl)
+                 else id
+    arbTbl = liftM Html.Table arbitrary
+    options = allowTable [ (20, liftM Html.Text . sized $ arbHtmlTexts table) ]
+
+arbHtmlTexts       :: Bool -> Int -> Gen Html.Text
+arbHtmlTexts fnt s = liftM simplifyHtmlText
+                     . resize s'
+                     . listOf1
+                     . sized
+                     $ arbHtmlText fnt
+  where
+    s' = min s 10
+
+-- When parsing, all textual characters are parsed together; thus,
+-- make sure we generate them like that.
+simplifyHtmlText :: Html.Text -> Html.Text
+simplifyHtmlText = map head . groupBy sameType
+  where
+    sameType Html.Str{}           Html.Str{}           = True
+    sameType Html.Newline{}       Html.Newline{}       = True
+    sameType Html.Font{}          Html.Font{}          = True
+    sameType (Html.Format fmt1 _) (Html.Format fmt2 _) = fmt1 == fmt2
+    sameType _                    _                    = False
+
+instance Arbitrary Html.TextItem where
+  arbitrary = sized $ arbHtmlText True
+
+  shrink (Html.Str str)        = map Html.Str $ shrink str
+  shrink (Html.Newline as)     = map Html.Newline $ shrink as
+  shrink hf@(Html.Font as txt) = do as' <- shrink as
+                                    txt' <- shrinkL txt
+                                    returnCheck hf $ Html.Font as' txt'
+  shrink (Html.Format _ txt)   = txt
+
+arbHtmlText        :: Bool -> Int -> Gen Html.TextItem
+arbHtmlText font s = frequency options
+  where
+    allowFonts = if font
+                 then (++) recHtmlText
+                 else id
+    s' = min 2 s
+    arbRec = resize s' . sized $ arbHtmlTexts False
+    recHtmlText = [ (1, liftM2 Html.Font arbitrary arbRec)
+                  , (3, liftM2 Html.Format arbitrary arbRec)
+                  ]
+    options = allowFonts [ (10, liftM Html.Str arbitrary)
+                         , (10, liftM Html.Newline arbitrary)
+                         ]
+
+instance Arbitrary Html.Format where
+  arbitrary = arbBounded
+
+instance Arbitrary Html.Table where
+  arbitrary = liftM3 Html.HTable arbitrary arbitrary (sized arbRows)
+    where
+      arbRows s = resize (min s 10) arbList
+
+  shrink (Html.HTable fas as rs) = map (Html.HTable fas as) $ shrinkL rs
+
+instance Arbitrary Html.Row where
+  arbitrary = frequency [ (5, liftM Html.Cells arbList)
+                        , (1, return Html.HorizontalRule)
+                        ]
+
+  shrink hr@(Html.Cells cs) = delete hr . map Html.Cells $ shrinkL cs
+  shrink _                  = []
+
+instance Arbitrary Html.Cell where
+  arbitrary = frequency [ (5, liftM2 Html.LabelCell arbitrary . sized $ arbHtml False)
+                        , (3, liftM2 Html.ImgCell arbitrary arbitrary)
+                        , (1, return Html.VerticalRule)
+                        ]
+
+  shrink lc@(Html.LabelCell as h) = do as' <- shrink as
+                                       h' <- shrink h
+                                       returnCheck lc $ Html.LabelCell as' h'
+  shrink (Html.ImgCell as ic) = map (Html.ImgCell as) $ shrink ic
+  shrink _                    = []
+
+instance Arbitrary Html.Img where
+  arbitrary = liftM Html.Img arbitrary
+
+instance Arbitrary Html.Attribute where
+  arbitrary = oneof [ liftM Html.Align arbitrary
+                    , liftM Html.BAlign arbitrary
+                    , liftM Html.BGColor arbitrary
+                    , liftM Html.Border arbitrary
+                    , liftM Html.CellBorder arbitrary
+                    , liftM Html.CellPadding arbitrary
+                    , liftM Html.CellSpacing arbitrary
+                    , liftM Html.Color arbitrary
+                    , liftM Html.ColSpan arbitrary
+                    , liftM Html.Face arbitrary
+                    , liftM Html.FixedSize arbitrary
+                    , liftM Html.Height arbitrary
+                    , liftM Html.HRef arbitrary
+                    , liftM Html.ID arbitrary
+                    , liftM Html.PointSize arbitrary
+                    , liftM Html.Port arbitrary
+                    , liftM Html.RowSpan arbitrary
+                    , liftM Html.Scale arbitrary
+                    , liftM Html.Src arbString
+                    , liftM Html.Target arbitrary
+                    , liftM Html.Title arbitrary
+                    , liftM Html.VAlign arbitrary
+                    , liftM Html.Width arbitrary
+                    ]
+
+  shrink (Html.Align v)       = map Html.Align       $ shrink v
+  shrink (Html.BAlign v)      = map Html.BAlign      $ shrink v
+  shrink (Html.BGColor v)     = map Html.BGColor     $ shrink v
+  shrink (Html.Border v)      = map Html.Border      $ shrink v
+  shrink (Html.CellBorder v)  = map Html.CellBorder  $ shrink v
+  shrink (Html.CellPadding v) = map Html.CellPadding $ shrink v
+  shrink (Html.CellSpacing v) = map Html.CellSpacing $ shrink v
+  shrink (Html.Color v)       = map Html.Color       $ shrink v
+  shrink (Html.ColSpan v)     = map Html.ColSpan     $ shrink v
+  shrink (Html.Face v)        = map Html.Face        $ shrink v
+  shrink (Html.FixedSize v)   = map Html.FixedSize   $ shrink v
+  shrink (Html.Height v)      = map Html.Height      $ shrink v
+  shrink (Html.HRef v)        = map Html.HRef        $ shrink v
+  shrink (Html.ID v)          = map Html.ID          $ shrink v
+  shrink (Html.PointSize v)   = map Html.PointSize   $ shrink v
+  shrink (Html.Port v)        = map Html.Port        $ shrink v
+  shrink (Html.RowSpan v)     = map Html.RowSpan     $ shrink v
+  shrink (Html.Scale v)       = map Html.Scale       $ shrink v
+  shrink (Html.Src v)         = map Html.Src         $ shrinkString v
+  shrink (Html.Target v)      = map Html.Target      $ shrink v
+  shrink (Html.Title v)       = map Html.Title       $ shrink v
+  shrink (Html.VAlign v)      = map Html.VAlign      $ shrink v
+  shrink (Html.Width v)       = map Html.Width       $ shrink v
+
+instance Arbitrary Html.Scale where
+  arbitrary = arbBounded
+
+instance Arbitrary Html.Align where
+  arbitrary = arbBounded
+
+instance Arbitrary Html.VAlign where
+  arbitrary = arbBounded
+
+instance Arbitrary PortName where
+  arbitrary = liftM PN
+              $ suchThat arbitrary (liftM2 (&&) (T.all (/=':')) notCP)
+
+  shrink = map PN . filter notCP . shrink . portName
+
+notCP :: Text -> Bool
+notCP = flip Map.notMember compassLookup
diff --git a/tests/Data/GraphViz/Testing/Instances/Canonical.hs b/tests/Data/GraphViz/Testing/Instances/Canonical.hs
new file mode 100644
--- /dev/null
+++ b/tests/Data/GraphViz/Testing/Instances/Canonical.hs
@@ -0,0 +1,57 @@
+{-# OPTIONS_GHC -fno-warn-orphans #-}
+{-# OPTIONS_HADDOCK hide #-}
+
+{- |
+   Module      : Data.GraphViz.Testing.Instances.Canonical
+   Description : Canonical dot graph instances for Arbitrary.
+   Copyright   : (c) Ivan Lazar Miljenovic
+   License     : 3-Clause BSD-style
+   Maintainer  : Ivan.Miljenovic@gmail.com
+ -}
+module Data.GraphViz.Testing.Instances.Canonical where
+
+import Data.GraphViz.Testing.Instances.Common
+import Data.GraphViz.Testing.Instances.Helpers
+
+import Data.GraphViz.Types.Canonical
+import Data.GraphViz.Util(bool)
+
+import Test.QuickCheck
+
+import Control.Monad(liftM2, liftM4)
+
+-- -----------------------------------------------------------------------------
+-- Defining Arbitrary instances for the overall types
+
+instance (Eq n, Arbitrary n) => Arbitrary (DotGraph n) where
+  arbitrary = liftM4 DotGraph arbitrary arbitrary arbitrary arbitrary
+
+  shrink (DotGraph str dir gid stmts) = map (DotGraph str dir gid)
+                                        $ shrink stmts
+
+instance (Eq n, Arbitrary n) => Arbitrary (DotStatements n) where
+  arbitrary = sized (arbDS gaGraph True)
+
+  shrink ds@(DotStmts gas sgs ns es) = do gas' <- shrinkL gas
+                                          sgs' <- shrinkL sgs
+                                          ns' <- shrinkL ns
+                                          es' <- shrinkL es
+                                          returnCheck ds
+                                            $ DotStmts gas' sgs' ns' es'
+
+-- | If 'True', generate 'DotSubGraph's; otherwise don't.
+arbDS              :: (Arbitrary n, Eq n) => Gen GlobalAttributes -> Bool
+                      -> Int -> Gen (DotStatements n)
+arbDS ga haveSGs s = liftM4 DotStmts (listOf ga) genSGs arbitrary arbitrary
+  where
+    s' = min s 2
+    genSGs = if haveSGs
+             then resize s' arbitrary
+             else return []
+
+instance (Eq n, Arbitrary n) => Arbitrary (DotSubGraph n) where
+  arbitrary = do isClust <- arbitrary
+                 let ga = bool gaSubGraph gaClusters isClust
+                 liftM2 (DotSG isClust) arbitrary (sized $ arbDS ga False)
+
+  shrink (DotSG isCl mid stmts) = map (DotSG isCl mid) $ shrink stmts
diff --git a/tests/Data/GraphViz/Testing/Instances/Common.hs b/tests/Data/GraphViz/Testing/Instances/Common.hs
new file mode 100644
--- /dev/null
+++ b/tests/Data/GraphViz/Testing/Instances/Common.hs
@@ -0,0 +1,71 @@
+{-# OPTIONS_GHC -fno-warn-orphans #-}
+{-# OPTIONS_HADDOCK hide #-}
+
+{- |
+   Module      : Data.GraphViz.Testing.Instances.Common()
+   Description : Attribute instances for Arbitrary.
+   Copyright   : (c) Ivan Lazar Miljenovic
+   License     : 3-Clause BSD-style
+   Maintainer  : Ivan.Miljenovic@gmail.com
+ -}
+module Data.GraphViz.Testing.Instances.Common
+       ( gaGraph
+       , gaSubGraph
+       , gaClusters
+       ) where
+
+import Data.GraphViz.Testing.Instances.Attributes
+import Data.GraphViz.Testing.Instances.Helpers
+
+import Data.GraphViz.Attributes(Attributes)
+import Data.GraphViz.Types.Common( DotNode(..), DotEdge(..)
+                                 , GlobalAttributes(..), GraphID(..))
+
+import Test.QuickCheck
+
+import Control.Monad(liftM, liftM2, liftM3)
+
+-- -----------------------------------------------------------------------------
+-- Common values
+
+instance Arbitrary GraphID where
+  arbitrary = oneof [ liftM Str arbitrary
+                    , liftM Int arbitrary
+                    , liftM Dbl $ suchThat arbitrary notInt
+                    ]
+
+  shrink (Str s) = map Str $ shrink s
+  shrink (Int i) = map Int $ shrink i
+  shrink (Dbl d) = map Dbl $ filter notInt $ shrink d
+
+instance (Arbitrary n) => Arbitrary (DotNode n) where
+  arbitrary = liftM2 DotNode arbitrary arbNodeAttrs
+
+  shrink (DotNode n as) = map (DotNode n) $ shrinkList as
+
+instance (Arbitrary n) => Arbitrary (DotEdge n) where
+  arbitrary = liftM3 DotEdge arbitrary arbitrary arbEdgeAttrs
+
+  shrink (DotEdge f t as) = map (DotEdge f t) $ shrinkList as
+
+instance Arbitrary GlobalAttributes where
+  arbitrary = gaGraph
+
+  shrink (GraphAttrs atts) = map GraphAttrs $ nonEmptyShrinks atts
+  shrink (NodeAttrs  atts) = map NodeAttrs  $ nonEmptyShrinks atts
+  shrink (EdgeAttrs  atts) = map EdgeAttrs  $ nonEmptyShrinks atts
+
+gaGraph :: Gen GlobalAttributes
+gaGraph = gaFor arbGraphAttrs
+
+gaSubGraph :: Gen GlobalAttributes
+gaSubGraph = gaFor arbSubGraphAttrs
+
+gaClusters :: Gen GlobalAttributes
+gaClusters = gaFor arbClusterAttrs
+
+gaFor   :: Gen Attributes -> Gen GlobalAttributes
+gaFor g = oneof [ liftM GraphAttrs g
+                , liftM NodeAttrs  arbNodeAttrs
+                , liftM EdgeAttrs  arbEdgeAttrs
+                ]
diff --git a/tests/Data/GraphViz/Testing/Instances/FGL.hs b/tests/Data/GraphViz/Testing/Instances/FGL.hs
new file mode 100644
--- /dev/null
+++ b/tests/Data/GraphViz/Testing/Instances/FGL.hs
@@ -0,0 +1,47 @@
+{-# OPTIONS_GHC -fno-warn-orphans #-}
+{-# LANGUAGE FlexibleInstances #-}
+
+{- |
+   Module      : Data.GraphViz.Testing.Instances.FGL
+   Description : 'Arbitrary' instances for FGL graphs.
+   Copyright   : (c) Ivan Lazar Miljenovic
+   License     : 3-Clause BSD-style
+   Maintainer  : Ivan.Miljenovic@gmail.com
+
+   This module defines the 'Arbitrary' instances for FGL 'DynGraph'
+   graphs.  Note that this instance cannot be in
+   "Data.GraphViz.Testing.Instances", as this instance requires the
+   FlexibleInstances extension, which makes some of the other
+   'Arbitrary' instances fail to type-check.
+-}
+module Data.GraphViz.Testing.Instances.FGL() where
+
+import Test.QuickCheck
+
+import Data.GraphViz.Util(uniq)
+
+import Data.Graph.Inductive.Graph(Graph, mkGraph, nodes, delNode)
+import Data.List(sortBy)
+import Data.Function(on)
+import Control.Monad(liftM, liftM3)
+
+-- -----------------------------------------------------------------------------
+-- Arbitrary instance for FGL graphs.
+
+instance (Graph g, Arbitrary n, Arbitrary e) => Arbitrary (g n e) where
+  arbitrary = do ns <- suchThat genNs (not . null)
+                 let nGen = elements ns
+                 lns <- mapM makeLNode ns
+                 les <- liftM (sortBy (compare `on` toE)) . listOf
+                        $ makeLEdge nGen
+                 return $ mkGraph lns les
+    where
+      genNs = liftM uniq arbitrary
+      toE (f,t,_) = (f,t)
+      makeLNode n = liftM ((,) n) arbitrary
+      makeLEdge nGen = liftM3 (,,) nGen nGen arbitrary
+
+  shrink gr = case nodes gr of
+                   -- Need to have at least 2 nodes before we delete one!
+                   ns@(_:_:_) -> map (`delNode` gr) ns
+                   _          -> []
diff --git a/tests/Data/GraphViz/Testing/Instances/Generalised.hs b/tests/Data/GraphViz/Testing/Instances/Generalised.hs
new file mode 100644
--- /dev/null
+++ b/tests/Data/GraphViz/Testing/Instances/Generalised.hs
@@ -0,0 +1,77 @@
+{-# OPTIONS_GHC -fno-warn-orphans #-}
+{-# OPTIONS_HADDOCK hide #-}
+
+{- |
+   Module      : Data.GraphViz.Testing.Instances.Generalised
+   Description : Generalised dot graph instances for Arbitrary.
+   Copyright   : (c) Ivan Lazar Miljenovic
+   License     : 3-Clause BSD-style
+   Maintainer  : Ivan.Miljenovic@gmail.com
+ -}
+module Data.GraphViz.Testing.Instances.Generalised where
+
+import Data.GraphViz.Testing.Instances.Attributes()
+import Data.GraphViz.Testing.Instances.Common
+import Data.GraphViz.Testing.Instances.Helpers()
+
+import Data.GraphViz.Types.Generalised
+import Data.GraphViz.Util(bool)
+
+import Test.QuickCheck
+
+import qualified Data.Sequence as Seq
+import Control.Monad(liftM, liftM2, liftM4)
+
+-- -----------------------------------------------------------------------------
+-- Defining Arbitrary instances for the generalised types
+
+instance (Arbitrary n) => Arbitrary (DotGraph n) where
+  arbitrary = liftM4 DotGraph arbitrary arbitrary arbitrary genDStmts
+
+  shrink (DotGraph str dir gid stmts) = map (DotGraph str dir gid)
+                                          $ shrinkDStmts stmts
+
+genDStmts :: (Arbitrary n) => Gen (DotStatements n)
+genDStmts = sized (arbDS gaGraph True)
+
+genDStmt :: (Arbitrary n) => Gen GlobalAttributes -> Bool
+            -> Gen (DotStatement n)
+genDStmt ga haveSGs = frequency
+                      . bool id ((1,genSG):) haveSGs
+                      $ [ (3, liftM GA ga)
+                        , (5, liftM DN arbitrary)
+                        , (7, liftM DE arbitrary)
+                        ]
+  where
+    genSG = liftM SG arbitrary
+
+shrinkDStmts :: (Arbitrary n) => DotStatements n -> [DotStatements n]
+shrinkDStmts gds
+  | len == 1  = map Seq.singleton . shrink $ Seq.index gds 0
+  | otherwise = [gds1, gds2]
+    where
+      len = Seq.length gds
+      -- Halve the sequence
+      (gds1, gds2) = (len `div` 2) `Seq.splitAt` gds
+
+instance (Arbitrary n) => Arbitrary (DotStatement n) where
+  arbitrary = genDStmt gaGraph True
+
+  shrink (GA ga) = map GA $ shrink ga
+  shrink (SG sg) = map SG $ shrink sg
+  shrink (DN dn) = map DN $ shrink dn
+  shrink (DE de) = map DE $ shrink de
+
+-- | If 'True', generate 'GDotSubGraph's; otherwise don't.
+arbDS              :: (Arbitrary n) => Gen GlobalAttributes -> Bool -> Int -> Gen (DotStatements n)
+arbDS ga haveSGs s = liftM Seq.fromList . resize s' . listOf $ genDStmt ga haveSGs
+  where
+    s' = min s 10
+
+
+instance (Arbitrary n) => Arbitrary (DotSubGraph n) where
+  arbitrary = do isClust <- arbitrary
+                 let ga = bool gaSubGraph gaClusters isClust
+                 liftM2 (DotSG isClust) arbitrary (sized $ arbDS ga False)
+
+  shrink (DotSG isCl mid stmts) = map (DotSG isCl mid) $ shrinkDStmts stmts
diff --git a/tests/Data/GraphViz/Testing/Instances/Graph.hs b/tests/Data/GraphViz/Testing/Instances/Graph.hs
new file mode 100644
--- /dev/null
+++ b/tests/Data/GraphViz/Testing/Instances/Graph.hs
@@ -0,0 +1,31 @@
+{-# OPTIONS_GHC -fno-warn-orphans #-}
+{-# OPTIONS_HADDOCK hide #-}
+{-# LANGUAGE FlexibleInstances #-}
+
+{- |
+   Module      : Data.GraphViz.Testing.Instances.Graph
+   Description : Graph dot graph instances for Arbitrary.
+   Copyright   : (c) Ivan Lazar Miljenovic
+   License     : 3-Clause BSD-style
+   Maintainer  : Ivan.Miljenovic@gmail.com
+ -}
+module Data.GraphViz.Testing.Instances.Graph where
+
+import Data.GraphViz.Testing.Instances.Canonical()
+
+import Data.GraphViz.Types.Graph
+import Data.GraphViz.Types(fromCanonical)
+
+import Test.QuickCheck
+
+import Control.Monad(liftM)
+
+-- -----------------------------------------------------------------------------
+
+-- | Can't directly create one of these as it might not match the
+--   internal format directly; as such, have to use the inefficient
+--   'fromCanonical' route.
+instance (Arbitrary n, Ord n) => Arbitrary (DotGraph n) where
+  arbitrary = liftM fromCanonical arbitrary
+
+  shrink = map fromCanonical . shrink . toCanonical
diff --git a/tests/Data/GraphViz/Testing/Instances/Helpers.hs b/tests/Data/GraphViz/Testing/Instances/Helpers.hs
new file mode 100644
--- /dev/null
+++ b/tests/Data/GraphViz/Testing/Instances/Helpers.hs
@@ -0,0 +1,138 @@
+{-# OPTIONS_GHC -fno-warn-orphans #-}
+{-# OPTIONS_HADDOCK hide #-}
+{-# LANGUAGE OverloadedStrings #-}
+
+{- |
+   Module      : Data.GraphViz.Testing.Instances.Helpers
+   Description : Helper functions for graphviz Arbitrary instances.
+   Copyright   : (c) Ivan Lazar Miljenovic
+   License     : 3-Clause BSD-style
+   Maintainer  : Ivan.Miljenovic@gmail.com
+ -}
+module Data.GraphViz.Testing.Instances.Helpers where
+
+import Data.GraphViz.Parsing(isNumString)
+import Data.GraphViz.State(initialState, layerSep)
+
+import Test.QuickCheck
+
+import qualified Data.Text.Lazy as T
+import Data.Text.Lazy(Text)
+import Control.Monad(liftM, liftM2)
+
+-- -----------------------------------------------------------------------------
+-- Helper Functions
+
+instance Arbitrary Text where
+  arbitrary = arbText
+
+  shrink = filter validString
+           . map T.pack . nonEmptyShrinks' . T.unpack
+
+arbText :: Gen Text
+arbText = suchThat genStr notBool
+    where
+      genStr = liftM2 T.cons (elements notDigits)
+                             (liftM T.concat . listOf $ elements strChr)
+      notDigits = ['a'..'z'] ++ ['\'', '"', ' ', '(', ')', ',', ':', '\\']
+      strChr = map T.singleton $ notDigits ++ '.' : ['0'..'9']
+
+arbString :: Gen String
+arbString = liftM T.unpack arbitrary
+
+fromPositive              :: Positive a -> a
+fromPositive (Positive a) = a
+
+posArbitrary :: (Arbitrary a, Num a, Ord a) => Gen a
+posArbitrary = liftM fromPositive arbitrary
+
+arbIDString :: Gen Text
+arbIDString = suchThat genStr notBool
+  where
+    genStr = liftM2 T.cons (elements frst)
+                           (liftM T.pack . listOf $ elements rest)
+    frst = ['a'..'z'] ++ ['_']
+    rest = frst ++ ['0'.. '9']
+
+validString :: Text -> Bool
+validString = liftM2 (&&) notBool notNumStr
+
+notBool         :: Text -> Bool
+notBool "true"  = False
+notBool "false" = False
+notBool _       = True
+
+shrinkString :: String -> [String]
+shrinkString = map T.unpack . shrink . T.pack
+
+notNumStr :: Text -> Bool
+notNumStr = not . isNumString
+
+arbBounded :: (Bounded a, Enum a) => Gen a
+arbBounded = elements [minBound .. maxBound]
+
+arbLayerName :: Gen Text
+arbLayerName = suchThat arbitrary (T.all notLayerSep)
+  where
+    defLayerSep = layerSep initialState
+    notLayerSep = (`notElem` defLayerSep)
+
+arbStyleName :: Gen Text
+arbStyleName = suchThat arbitrary (T.all notBrackCom)
+  where
+    notBrackCom = flip notElem ['(', ')', ',', ' ']
+
+arbList :: (Arbitrary a) => Gen [a]
+arbList = listOf1 arbitrary
+
+nonEmptyShrinks :: (Arbitrary a) => [a] -> [[a]]
+nonEmptyShrinks = filter (not . null) . shrinkList
+
+nonEmptyShrinks' :: [a] -> [[a]]
+nonEmptyShrinks' = filter (not . null) . shrinkList'
+
+-- Shrink lists with more than one value only by removing values, not
+-- by shrinking individual items.
+shrinkList     :: (Arbitrary a) => [a] -> [[a]]
+shrinkList [a] = map return $ shrink a
+shrinkList as  = shrinkList' as
+
+-- Just shrink the size.
+shrinkList'     :: [a] -> [[a]]
+shrinkList' as  = rm (length as) as
+  where
+    rm 0 _  = []
+    rm 1 _  = [[]]
+    rm n xs = xs1
+            : xs2
+            : ( [ xs1' ++ xs2 | xs1' <- rm n1 xs1, not (null xs1') ]
+                `ilv` [ xs1 ++ xs2' | xs2' <- rm n2 xs2, not (null xs2') ]
+              )
+     where
+      n1  = n `div` 2
+      xs1 = take n1 xs
+      n2  = n - n1
+      xs2 = drop n1 xs
+
+    []     `ilv` ys     = ys
+    xs     `ilv` []     = xs
+    (x:xs) `ilv` (y:ys) = x : y : (xs `ilv` ys)
+
+-- When a Maybe value is a sub-component, and we need shrink to return
+-- a value.
+shrinkM         :: (Arbitrary a) => Maybe a -> [Maybe a]
+shrinkM Nothing = [Nothing]
+shrinkM j       = shrink j
+
+shrinkL    :: (Arbitrary a) => [a] -> [[a]]
+shrinkL xs = case shrinkList xs of
+               []  -> [xs]
+               xs' -> xs'
+
+notInt   :: Double -> Bool
+notInt d = fromIntegral (round d :: Int) /= d
+
+returnCheck     :: (Eq a) => a -> a -> [a]
+returnCheck o n = if o == n
+                  then []
+                  else [n]
diff --git a/tests/Data/GraphViz/Testing/Properties.hs b/tests/Data/GraphViz/Testing/Properties.hs
new file mode 100644
--- /dev/null
+++ b/tests/Data/GraphViz/Testing/Properties.hs
@@ -0,0 +1,181 @@
+{-# LANGUAGE FlexibleContexts, ScopedTypeVariables #-}
+
+{- |
+   Module      : Data.GraphViz.Testing.Properties
+   Description : Properties for testing.
+   Copyright   : (c) Ivan Lazar Miljenovic
+   License     : 3-Clause BSD-style
+   Maintainer  : Ivan.Miljenovic@gmail.com
+
+   Various properties that should hold true for the graphviz library.
+-}
+module Data.GraphViz.Testing.Properties where
+
+import Data.GraphViz( dotizeGraph, graphToDot
+                    , setDirectedness, nonClusteredParams)
+import Data.GraphViz.Types( DotRepr(..), PrintDotRepr
+                          , DotNode(..), DotEdge(..), GlobalAttributes(..)
+                          , printDotGraph, graphNodes, graphEdges
+                          , graphStructureInformation)
+import Data.GraphViz.Types.Canonical(DotGraph(..), DotStatements(..))
+import qualified Data.GraphViz.Types.Generalised as G
+import Data.GraphViz.Printing(PrintDot(..), printIt)
+import Data.GraphViz.Parsing(ParseDot(..), parseIt, parseIt')
+import Data.GraphViz.PreProcessing(preProcess)
+import Data.GraphViz.Util(groupSortBy, isSingle)
+import Data.GraphViz.Algorithms
+
+import Test.QuickCheck
+
+import Data.Graph.Inductive( Graph, DynGraph
+                           , equal, nmap, emap, labNodes, labEdges, nodes, edges)
+import Data.List(nub, sort)
+import Data.Function(on)
+import qualified Data.Map as Map
+import qualified Data.Set as Set
+import Data.Text.Lazy(Text)
+import Control.Arrow((&&&))
+
+-- -----------------------------------------------------------------------------
+-- The properties to test for
+
+-- | Checking that @parse . print == id@; that is, graphviz can parse
+--   its own output.
+prop_printParseID   :: (ParseDot a, PrintDot a, Eq a) => a -> Bool
+prop_printParseID a = tryParse' a == a
+
+-- | A version of 'prop_printParse' specifically for lists; it ensures
+--   that the list is not empty (as most list-based parsers fail on
+--   empty lists).
+prop_printParseListID    :: (ParseDot a, PrintDot a, Eq a) => [a] -> Property
+prop_printParseListID as =  not (null as) ==> prop_printParseID as
+
+-- | When converting a canonical 'DotGraph' value to any other one,
+--   they should generate the same Dot code.
+prop_generalisedSameDot    :: (Ord n, PrintDot n, ParseDot n) => DotGraph n -> Bool
+prop_generalisedSameDot dg = printDotGraph dg == printDotGraph gdg
+  where
+    gdg = canonicalToType (undefined :: G.DotGraph n) dg
+
+-- | Pre-processing shouldn't change the output of printed Dot code.
+--   This should work for all 'PrintDot' instances, but is more
+--   specific to 'DotGraph' values.
+prop_preProcessingID    :: (PrintDotRepr dg n) => dg n -> Bool
+prop_preProcessingID dg = preProcess dotCode == dotCode
+  where
+    dotCode = printDotGraph dg
+
+-- | This property verifies that 'dotizeGraph', etc. only /augment/ the
+--   original graph; that is, the actual nodes, edges and labels for
+--   each remain unchanged.  Whilst 'dotize', etc. only require
+--   'Graph' instances, this property requires 'DynGraph' (which is a
+--   sub-class of 'Graph') instances to be able to strip off the
+--   'Attributes' augmentations.
+prop_dotizeAugment   :: (DynGraph g, Eq n, Ord e) => g n e -> Bool
+prop_dotizeAugment g = equal g (unAugment g')
+  where
+    g' = setDirectedness dotizeGraph nonClusteredParams g
+    unAugment = nmap snd . emap snd
+
+-- | After augmentation, each node and edge should have a non-empty
+-- | list of 'Attributes'.
+prop_dotizeHasAugment   :: (DynGraph g, Ord e) => g n e -> Bool
+prop_dotizeHasAugment g = all (not . null) nodeAugments
+                          && all (not . null) edgeAugments
+  where
+    g' = setDirectedness dotizeGraph nonClusteredParams g
+    nodeAugments = map (fst . snd) $ labNodes g'
+    edgeAugments = map (fst . \(_,_,l) -> l) $ labEdges g'
+
+-- | When a graph with multiple edges is augmented, then all edges
+--   should have unique 'Attributes' (namely the positions).  Note
+--   that this may not hold true with custom supplied 'Attributes'
+--   (i.e. not using one of the @dotize@ functions).
+prop_dotizeAugmentUniq   :: (DynGraph g, Eq n, Ord e) => g n e -> Bool
+prop_dotizeAugmentUniq g = all uniqLs lss
+  where
+    g' = setDirectedness dotizeGraph nonClusteredParams g
+    les = map (\(f,t,l) -> ((f,t),l)) $ labEdges g'
+    lss = map (map snd) . filter (not . isSingle)
+          $ groupSortBy fst les
+    uniqLs [] = False -- Needs to have at least /one/ Attribute!
+    uniqLs ls = ls == nub ls
+
+-- | Ensure that the definition of 'nodeInformation' for a DotRepr
+--   finds all the nodes.
+prop_findAllNodes       :: (DotRepr dg Int, Ord el, Graph g)
+                           => dg Int -> g nl el -> Bool
+prop_findAllNodes dg' g = ((==) `on` sort) gns dgns
+  where
+    gns = nodes g
+    dg = canonicalToType dg' $ setDirectedness graphToDot nonClusteredParams g
+    dgns = map nodeID $ graphNodes dg
+
+-- | Ensure that the definition of 'nodeInformation' for DotReprs
+--   finds all the nodes when the explicit 'DotNode' definitions are
+--   removed.
+prop_findAllNodesE       :: (DotRepr dg Int, Ord el, Graph g)
+                            => dg Int -> g nl el -> Bool
+prop_findAllNodesE dg' g = ((==) `on` sort) gns dgns
+  where
+    gns = nodes g
+    dg = canonicalToType dg' . removeNodes $ setDirectedness graphToDot nonClusteredParams g
+    dgns = map nodeID $ graphNodes dg
+    removeNodes dot@DotGraph{graphStatements = stmts}
+      = dot { graphStatements
+               = stmts {nodeStmts = filter notInEdge $ nodeStmts stmts}
+            }
+    gnes = Set.fromList . concatMap (\(f,t) -> [f,t]) $ edges g
+    notInEdge dn = nodeID dn `Set.notMember` gnes
+
+-- | Ensure that the definition of 'edgeInformation' for DotReprs
+--   finds all the nodes.
+prop_findAllEdges       :: (DotRepr dg Int, Ord el, Graph g) => dg Int -> g nl el -> Bool
+prop_findAllEdges dg' g = ((==) `on` sort) ges dges
+  where
+    ges = edges g
+    dg = canonicalToType dg' $ graphToDot nonClusteredParams g
+    dges = map (fromNode &&& toNode) $ graphEdges dg
+
+-- | There should be no clusters or global attributes when converting
+--   a 'Graph' to a DotRepr (via fromCanonical) without any formatting
+--   or clustering.
+prop_noGraphInfo       :: (DotRepr dg Int, Ord el, Graph g)
+                          => dg Int -> g nl el -> Bool
+prop_noGraphInfo dg' g = info == (GraphAttrs [], Map.empty)
+  where
+    dg = canonicalToType dg'
+         $ setDirectedness graphToDot nonClusteredParams g
+    info = graphStructureInformation dg
+
+-- | Canonicalisation should be idempotent.
+prop_canonicalise   :: (ParseDot n, PrintDot n, DotRepr dg n) => dg n -> Bool
+prop_canonicalise g = cdg == canonicalise cdg
+  where
+    cdg = canonicalise g
+
+-- | Removing transitive edges should be idempotent.
+prop_transitive   :: (DotRepr dg n) => dg n -> Bool
+prop_transitive g = tdg == transitiveReduction tdg
+  where
+    tdg = transitiveReduction g
+
+-- -----------------------------------------------------------------------------
+-- Helper utility functions
+
+-- | A utility function to use for debugging purposes for trying to
+--   find how graphviz /is/ parsing something.  This is easier than
+--   using @'parseIt' . 'printIt'@ directly, since it avoids having to
+--   enter and explicit type signature.
+tryParse :: (ParseDot a, PrintDot a) => a -> (a, Text)
+tryParse = parseIt . printIt
+
+-- | Equivalent to 'tryParse' except that it is assumed that the
+--   entire 'String' *is* fully consumed.
+tryParse' :: (ParseDot a, PrintDot a) => a -> a
+tryParse' = parseIt' . printIt
+
+-- | A wrapper around 'fromCanonical' that lets you specify up-front
+--   what type to create (it need not be a sensible value).
+canonicalToType   :: (DotRepr dg n) => dg n -> DotGraph n -> dg n
+canonicalToType _ = fromCanonical
diff --git a/tests/RunTests.hs b/tests/RunTests.hs
new file mode 100644
--- /dev/null
+++ b/tests/RunTests.hs
@@ -0,0 +1,83 @@
+{- |
+   Module      : RunTests
+   Description : Run the graphviz test suite.
+   Copyright   : (c) Ivan Lazar Miljenovic
+   License     : 3-Clause BSD-style
+   Maintainer  : Ivan.Miljenovic@gmail.com
+
+   This module exists solely to make a Main module to build and run
+   the test suite.
+-}
+module Main where
+
+import Data.GraphViz.Testing( Test(name, lookupName)
+                            , defaultTests, runChosenTests)
+
+import Data.Char(toLower)
+import Data.Maybe(mapMaybe)
+import qualified Data.Map as Map
+import Data.Map(Map)
+import Control.Arrow((&&&))
+import Control.Monad(when)
+import System.Environment(getArgs, getProgName)
+import System.Exit(ExitCode(ExitSuccess), exitWith)
+
+-- -----------------------------------------------------------------------------
+
+main :: IO ()
+main = do opts <- getArgs
+          let opts' = map (map toLower) opts
+              hasArg arg = any (arg==) opts'
+          when (hasArg "help") helpMsg
+          let tests = if hasArg "all"
+                      then defaultTests
+                      else mapMaybe getTest opts'
+              tests' = if null tests
+                       then defaultTests
+                       else tests
+          runChosenTests tests'
+
+testLookup :: Map String Test
+testLookup = Map.fromList
+             $ map (lookupName &&& id) defaultTests
+
+getTest :: String -> Maybe Test
+getTest = (`Map.lookup` testLookup)
+
+helpMsg :: IO ()
+helpMsg = getProgName >>= (putStr . msg) >> exitWith ExitSuccess
+  where
+    msg nm = unlines
+      [ "This utility is the test-suite for the graphviz library for Haskell."
+      , "Various tests are available; see the table below for a complete list."
+      , "There are several ways of running this program:"
+      , ""
+      , "    " ++ nm ++ "               Run all of the tests"
+      , "    " ++ nm ++ " all           Run all of the tests"
+      , "    " ++ nm ++ " help          Get this help message"
+      , "    " ++ nm ++ " <key>         Run the test associated with each key,"
+      , "        (where <key> denotes a space-separated list of keys"
+      , "         from the table below)."
+      , ""
+      , helpTable
+      ]
+
+helpTable :: String
+helpTable = unlines $ fmtName ((lnHeader,lnHeaderLen),(nHeader,nHeaderLen))
+                      : line
+                      : map fmtName testNames
+  where
+    andLen = ((id &&& length) .)
+    testNames = map (andLen lookupName &&& andLen name) defaultTests
+    fmtName ((ln,lnl),(n,_)) = concat [ ln
+                                      , replicate (maxLN-lnl+spacerLen) ' '
+                                      , n
+                                      ]
+    line = replicate (maxLN + spacerLen + maxN) '-'
+    maxLN = maximum $ map (snd . fst) testNames
+    maxN = maximum $ map (snd . snd) testNames
+    spacerLen = 3
+    lnHeader = "Key"
+    lnHeaderLen = length lnHeader
+    nHeader = "Description"
+    nHeaderLen = length nHeader
diff --git a/utils/AttributeGenerator.hs b/utils/AttributeGenerator.hs
--- a/utils/AttributeGenerator.hs
+++ b/utils/AttributeGenerator.hs
@@ -448,6 +448,8 @@
 
 -- The actual attributes
 
+-- ColorScheme is put earlier so that when sorting, it comes before the various *Color attributes.
+
 attributes :: [Attribute]
 attributes = [ makeAttr "Damping" ["Damping"] "G" Dbl Nothing (Just "0.99") (Just "@0.99@") (Just "@0.0@") (Just "neato only")
              , makeAttr "K" ["K"] "GC" Dbl Nothing (Just "0.3") (Just "@0.3@") (Just "@0@") (Just "sfdp, fdp only")
@@ -456,20 +458,20 @@
              , makeAttr "ArrowSize" ["arrowsize"] "E" Dbl Nothing (Just "1") (Just "@1.0@") (Just "@0.0@") Nothing
              , makeAttr "ArrowTail" ["arrowtail"] "E" (Cust "ArrowType") Nothing (Just "normal") (Just "@'normal'@") Nothing Nothing
              , makeAttr "Aspect" ["aspect"] "G" (Cust "AspectType") Nothing Nothing Nothing Nothing (Just "dot only")
-             , makeAttr "Bb" ["bb"] "G" (Cust "Rect") Nothing Nothing Nothing Nothing (Just "write only")
-             , makeAttr "BgColor" ["bgcolor"] "GC" (Cust "Color") Nothing (Just "(X11Color Transparent)") (Just "@'X11Color' 'Transparent'@") Nothing Nothing
+             , makeAttr "BoundingBox" ["bb"] "G" (Cust "Rect") Nothing Nothing Nothing Nothing (Just "write only")
+             , makeAttr "ColorScheme" ["colorscheme"] "ENCG" (Cust "ColorScheme") Nothing (Just "X11") (Just "@'X11'@") Nothing Nothing
+             , makeAttr "BgColor" ["bgcolor"] "GC" (Cust "[Color]") Nothing (Just "[X11Color Transparent]") (Just "@['X11Color' 'Transparent']@") Nothing Nothing
              , makeAttr "Center" ["center"] "G" Bl (Just "True") (Just "False") (Just "@'False'@") Nothing Nothing
              , makeAttr "ClusterRank" ["clusterrank"] "G" (Cust "ClusterMode") Nothing (Just "Local") (Just "@'Local'@") Nothing (Just "dot only")
-             , makeAttr "ColorScheme" ["colorscheme"] "ENCG" (Cust "ColorScheme") Nothing (Just "X11") (Just "@'X11'@") Nothing Nothing
              , makeAttr "Color" ["color"] "ENC" (Cust "[Color]") Nothing (Just "[X11Color Black]") (Just "@['X11Color' 'Black']@") Nothing Nothing
              , makeAttr "Comment" ["comment"] "ENG" Strng Nothing (Just "\"\"") (Just "@\\\"\\\"@") Nothing Nothing
              , makeAttr "Compound" ["compound"] "G" Bl (Just "True") (Just "False")(Just "@'False'@") Nothing (Just "dot only")
              , makeAttr "Concentrate" ["concentrate"] "G" Bl (Just "True") (Just "False") (Just "@'False'@") Nothing Nothing
              , makeAttr "Constraint" ["constraint"] "E" Bl (Just "True") (Just "True") (Just "@'True'@") Nothing (Just "dot only")
              , makeAttr "Decorate" ["decorate"] "E" Bl (Just "True") (Just "False") (Just "@'False'@") Nothing Nothing
-             , makeAttr "DefaultDist" ["defaultdist"] "G" Dbl Nothing Nothing (Just "@1+(avg. len)*sqrt(|V|)@") (Just "@epsilon@") (Just "neato only")
-             , makeAttr "Dimen" ["dimen"] "G" Integ Nothing (Just "2") (Just "@2@") (Just "@2@") (Just "sfdp, fdp, neato only")
+             , makeAttr "DefaultDist" ["defaultdist"] "G" Dbl Nothing Nothing (Just "@1+(avg. len)*sqrt(|V|)@") (Just "@epsilon@") (Just "neato only, only if @'Pack' 'DontPack'")
              , makeAttr "Dim" ["dim"] "G" Integ Nothing (Just "2") (Just "@2@") (Just "@2@") (Just "sfdp, fdp, neato only")
+             , makeAttr "Dimen" ["dimen"] "G" Integ Nothing (Just "2") (Just "@2@") (Just "@2@") (Just "sfdp, fdp, neato only")
              , makeAttr "Dir" ["dir"] "E" (Cust "DirType") Nothing Nothing (Just "@'Forward'@ (directed), @'NoDir'@ (undirected)") Nothing Nothing
              , makeAttr "DirEdgeConstraints" ["diredgeconstraints"] "G" (Cust "DEConstraints") (Just "EdgeConstraints") (Just "NoConstraints") (Just "@'NoConstraints'@") Nothing (Just "neato only")
              , makeAttr "Distortion" ["distortion"] "N" Dbl Nothing (Just "0") (Just "@0.0@") (Just "@-100.0@") Nothing
@@ -479,13 +481,15 @@
              , makeAttr "EdgeTooltip" ["edgetooltip"] "E" EStrng Nothing Nothing (Just "@\\\"\\\"@") Nothing (Just "svg, cmap only")
              , makeAttr "Epsilon" ["epsilon"] "G" Dbl Nothing Nothing (Just "@.0001 * # nodes@ (@mode == 'KK'@), @.0001@ (@mode == 'Major'@)") Nothing (Just "neato only")
              , makeAttr "ESep" ["esep"] "G" (Cust "DPoint") Nothing (Just "(DVal 3)") (Just "@'DVal' 3@") Nothing (Just "not dot")
-             , makeAttr "FillColor" ["fillcolor"] "NC" (Cust "Color") Nothing (Just "(X11Color Black)")(Just "@'X11Color' 'LightGray'@ (nodes), @'X11Color' 'Black'@ (clusters)") Nothing Nothing
+             , makeAttr "FillColor" ["fillcolor"] "NEC" (Cust "[Color]") Nothing (Just "[X11Color Black]")(Just "@['X11Color' 'LightGray']@ (nodes), @['X11Color' 'Black']@ (clusters)") Nothing Nothing
              , makeAttr "FixedSize" ["fixedsize"] "N" Bl (Just "True") (Just "False") (Just "@'False'@") Nothing Nothing
              , makeAttr "FontColor" ["fontcolor"] "ENGC" (Cust "Color") Nothing (Just "(X11Color Black)") (Just "@'X11Color' 'Black'@") Nothing Nothing
              , makeAttr "FontName" ["fontname"] "ENGC" Strng Nothing (Just "\"Times-Roman\"") (Just "@\\\"Times-Roman\\\"@") Nothing Nothing
              , makeAttr "FontNames" ["fontnames"] "G" Strng Nothing (Just "\"\"") (Just "@\\\"\\\"@") Nothing (Just "svg only")
              , makeAttr "FontPath" ["fontpath"] "G" Strng Nothing Nothing (Just "system dependent") Nothing Nothing
              , makeAttr "FontSize" ["fontsize"] "ENGC" Dbl Nothing (Just "14") (Just "@14.0@") (Just "@1.0@") Nothing
+             , makeAttr "ForceLabels" ["forcelabels"] "G" Bl (Just "True") (Just "False") (Just "@'False'@") Nothing (Just "Only for 'XLabel' attributes, requires Graphviz >= 2.29.0")
+             , makeAttr "GradientAngle" ["gradientangle"] "NCG" Integ Nothing (Just "0") (Just "0") Nothing (Just "requires Graphviz >= 2.29.0")
              , makeAttr "Group" ["group"] "N" Strng Nothing (Just "\"\"") (Just "@\\\"\\\"@") Nothing (Just "dot only")
              , makeAttr "HeadURL" ["headURL", "headhref"] "E" EStrng Nothing (Just "\"\"") (Just "@\\\"\\\"@") Nothing (Just "svg, map only")
              , makeAttr "HeadClip" ["headclip"] "E" Bl (Just "True") (Just "True") (Just "@'True'@") Nothing Nothing
@@ -494,10 +498,13 @@
              , makeAttr "HeadTarget" ["headtarget"] "E" EStrng Nothing (Just "\"\"") (Just "none") Nothing (Just "svg, map only")
              , makeAttr "HeadTooltip" ["headtooltip"] "E" EStrng Nothing (Just "\"\"") (Just "@\\\"\\\"@") Nothing (Just "svg, cmap only")
              , makeAttr "Height" ["height"] "N" Dbl Nothing (Just "0.5") (Just "@0.5@") (Just "@0.02@") Nothing
-             , makeAttr "ID" ["id"] "GNE" (Cust "Label") Nothing (Just "(StrLabel \"\")") (Just "@'StrLabel' \\\"\\\"@") Nothing (Just "svg, postscript, map only")
+             , makeAttr "ID" ["id"] "GNE" EStrng Nothing (Just "\"\"") (Just "@\\\"\\\"") Nothing (Just "svg, postscript, map only")
              , makeAttr "Image" ["image"] "N" Strng Nothing (Just "\"\"") (Just "@\\\"\\\"@") Nothing Nothing
+             , makeAttr "ImagePath" ["imagepath"] "G" (Cust "Paths") Nothing (Just "(Paths [])") (Just "@'Paths' []@") Nothing (Just "Printing and parsing is OS-specific, requires Graphviz >= 2.29.0")
              , makeAttr "ImageScale" ["imagescale"] "N" (Cust "ScaleType") (Just "UniformScale") (Just "NoScale") (Just "@'NoScale'@") Nothing Nothing
+             , makeAttr "Label" ["label"] "ENGC" (Cust "Label") Nothing (Just "(StrLabel \"\")") (Just "@'StrLabel' \\\"\\\\N\\\"@ (nodes), @'StrLabel' \\\"\\\"@ (otherwise)") Nothing Nothing
              , makeAttr "LabelURL" ["labelURL", "labelhref"] "E" EStrng Nothing (Just "\"\"") (Just "@\\\"\\\"@") Nothing (Just "svg, map only")
+             , makeAttr "LabelScheme" ["label_scheme"] "G" (Cust "LabelScheme") Nothing (Just "NotEdgeLabel") (Just "@'NotEdgeLabel'@") Nothing (Just "sfdp only, requires Graphviz >= 2.28.0")
              , makeAttr "LabelAngle" ["labelangle"] "E" Dbl Nothing (Just "(-25)") (Just "@-25.0@") (Just "@-180.0@") Nothing
              , makeAttr "LabelDistance" ["labeldistance"] "E" Dbl Nothing (Just "1") (Just "@1.0@") (Just "@0.0@") Nothing
              , makeAttr "LabelFloat" ["labelfloat"] "E" Bl (Just "True") (Just "False") (Just "@'False'@") Nothing Nothing
@@ -508,41 +515,42 @@
              , makeAttr "LabelLoc" ["labelloc"] "GCN" (Cust "VerticalPlacement") Nothing (Just "VTop") (Just "@'VTop'@ (clusters), @'VBottom'@ (root graphs), @'VCenter'@ (nodes)") Nothing Nothing
              , makeAttr "LabelTarget" ["labeltarget"] "E" EStrng Nothing (Just "\"\"") (Just "none") Nothing (Just "svg, map only")
              , makeAttr "LabelTooltip" ["labeltooltip"] "E" EStrng Nothing (Just "\"\"") (Just "@\\\"\\\"@") Nothing (Just "svg, cmap only")
-             , makeAttr "Label" ["label"] "ENGC" (Cust "Label") Nothing (Just "(StrLabel \"\")") (Just "@'StrLabel' \\\"\\\\N\\\"@ (nodes), @'StrLabel' \\\"\\\"@ (otherwise)") Nothing Nothing
              , makeAttr "Landscape" ["landscape"] "G" Bl (Just "True") (Just "False") (Just "@'False'@") Nothing Nothing
-             , makeAttr "LayerSep" ["layersep"] "G" (Cust "LayerSep") Nothing (Just "(LSep \" :\\t\")") (Just "@'LSep' \\\" :\\t\\\"@") Nothing Nothing
-             , makeAttr "Layers" ["layers"] "G" (Cust "LayerList") Nothing (Just "(LL [])")  (Just "@'LL' []@") Nothing Nothing
              , makeAttr "Layer" ["layer"] "EN" (Cust "LayerRange") Nothing Nothing Nothing Nothing Nothing
+             , makeAttr "Layers" ["layers"] "G" (Cust "LayerList") Nothing (Just "(LL [])")  (Just "@'LL' []@") Nothing Nothing
+             , makeAttr "LayerSep" ["layersep"] "G" (Cust "LayerSep") Nothing (Just "(LSep \" :\\t\")") (Just "@'LSep' \\\" :\\t\\\"@") Nothing Nothing
              , makeAttr "Layout" ["layout"] "G" Strng Nothing (Just "\"\"") (Just "@\\\"\\\"@") Nothing Nothing
              , makeAttr "Len" ["len"] "E" Dbl Nothing Nothing (Just "@1.0@ (neato), @0.3@ (fdp)") Nothing (Just "fdp, neato only")
              , makeAttr "LevelsGap" ["levelsgap"] "G" Dbl Nothing (Just "0") (Just "@0.0@") Nothing (Just "neato only")
              , makeAttr "Levels" ["levels"] "G" Integ Nothing (Just "maxBound") (Just "@'maxBound'@") (Just "@0@") (Just "sfdp only")
              , makeAttr "LHead" ["lhead"] "E" Strng Nothing (Just "\"\"") (Just "@\\\"\\\"@") Nothing (Just "dot only")
+             , makeAttr "LHeight" ["LHeight"] "GC" Dbl Nothing Nothing Nothing Nothing (Just "write only, requires Graphviz >= 2.28.0")
              , makeAttr "LPos" ["lp"] "EGC" (Cust "Point") Nothing Nothing Nothing Nothing (Just "write only")
              , makeAttr "LTail" ["ltail"] "E" Strng Nothing (Just "\"\"") (Just "@\\\"\\\"@") Nothing (Just "dot only")
+             , makeAttr "LWidth" ["lwidth"] "GC" Dbl Nothing Nothing Nothing Nothing (Just "write only, requires Graphviz >= 2.28.0")
              , makeAttr "Margin" ["margin"] "NG" (Cust "DPoint") Nothing Nothing (Just "device dependent") Nothing Nothing
              , makeAttr "MaxIter" ["maxiter"] "G" Integ Nothing Nothing (Just "@100 * # nodes@ (@mode == 'KK'@), @200@ (@mode == 'Major'@), @600@ (fdp)") Nothing (Just "fdp, neato only")
              , makeAttr "MCLimit" ["mclimit"] "G" Dbl Nothing (Just "1") (Just "@1.0@") Nothing (Just "dot only")
              , makeAttr "MinDist" ["mindist"] "G" Dbl Nothing (Just "1") (Just "@1.0@") (Just "@0.0@") (Just "circo only")
              , makeAttr "MinLen" ["minlen"] "E" Integ Nothing (Just "1") (Just "@1@") (Just "@0@") (Just "dot only")
-             , makeAttr "Model" ["model"] "G" (Cust "Model") Nothing (Just "ShortPath") (Just "@'ShortPath'@") Nothing (Just "neato only")
              , makeAttr "Mode" ["mode"] "G" (Cust "ModeType") Nothing (Just "Major") (Just "@'Major'@") Nothing (Just "neato only")
+             , makeAttr "Model" ["model"] "G" (Cust "Model") Nothing (Just "ShortPath") (Just "@'ShortPath'@") Nothing (Just "neato only")
              , makeAttr "Mosek" ["mosek"] "G" Bl (Just "True") (Just "False") (Just "@'False'@") Nothing (Just "neato only; requires the Mosek software")
              , makeAttr "NodeSep" ["nodesep"] "G" Dbl Nothing (Just "0.25") (Just "@0.25@") (Just "@0.02@") (Just "dot only")
              , makeAttr "NoJustify" ["nojustify"] "GCNE" Bl (Just "True") (Just "False") (Just "@'False'@") Nothing Nothing
              , makeAttr "Normalize" ["normalize"] "G" Bl (Just "True") (Just "False") (Just "@'False'@") Nothing (Just "not dot")
-             , makeAttr "Nslimit1" ["nslimit1"] "G" Dbl Nothing Nothing Nothing Nothing (Just "dot only")
              , makeAttr "Nslimit" ["nslimit"] "G" Dbl Nothing Nothing Nothing Nothing (Just "dot only")
-             , makeAttr "Ordering" ["ordering"] "G" Strng Nothing (Just "\"\"") (Just "@\\\"\\\"@") Nothing (Just "dot only")
+             , makeAttr "Nslimit1" ["nslimit1"] "G" Dbl Nothing Nothing Nothing Nothing (Just "dot only")
+             , makeAttr "Ordering" ["ordering"] "GN" (Cust "Order") Nothing Nothing (Just "none") Nothing (Just "dot only")
              , makeAttr "Orientation" ["orientation"] "N" Dbl Nothing (Just "0") (Just "@0.0@") (Just "@360.0@") Nothing
              , makeAttr "OutputOrder" ["outputorder"] "G" (Cust "OutputMode") Nothing (Just "BreadthFirst") (Just "@'BreadthFirst'@") Nothing Nothing
-             , makeAttr "OverlapScaling" ["overlap_scaling"] "G" Dbl Nothing (Just "(-4)") (Just "@-4@") (Just "@-1.0e10@") (Just "prism only")
              , makeAttr "Overlap" ["overlap"] "G" (Cust "Overlap") (Just "KeepOverlaps") (Just "KeepOverlaps") (Just "@'KeepOverlaps'@") Nothing (Just "not dot")
-             , makeAttr "PackMode" ["packmode"] "G" (Cust "PackMode") Nothing (Just "PackNode") (Just "@'PackNode'@") Nothing (Just "not dot")
+             , makeAttr "OverlapScaling" ["overlap_scaling"] "G" Dbl Nothing (Just "(-4)") (Just "@-4@") (Just "@-1.0e10@") (Just "prism only")
              , makeAttr "Pack" ["pack"] "G" (Cust "Pack") (Just "DoPack") (Just "DontPack") (Just "@'DontPack'@") Nothing (Just "not dot")
+             , makeAttr "PackMode" ["packmode"] "G" (Cust "PackMode") Nothing (Just "PackNode") (Just "@'PackNode'@") Nothing (Just "not dot")
              , makeAttr "Pad" ["pad"] "G" (Cust "DPoint") Nothing (Just "(DVal 0.0555)") (Just "@'DVal' 0.0555@ (4 points)") Nothing Nothing
-             , makeAttr "PageDir" ["pagedir"] "G" (Cust "PageDir") Nothing (Just "Bl") (Just "@'Bl'@") Nothing Nothing
              , makeAttr "Page" ["page"] "G" (Cust "Point") Nothing Nothing Nothing Nothing Nothing
+             , makeAttr "PageDir" ["pagedir"] "G" (Cust "PageDir") Nothing (Just "Bl") (Just "@'Bl'@") Nothing Nothing
              , makeAttr "PenColor" ["pencolor"] "C" (Cust "Color") Nothing (Just "(X11Color Black)") (Just "@'X11Color' 'Black'@") Nothing Nothing
              , makeAttr "PenWidth" ["penwidth"] "CNE" Dbl Nothing (Just "1") (Just "@1.0@") (Just "@0.0@") Nothing
              , makeAttr "Peripheries" ["peripheries"] "NC" Integ Nothing (Just "1") (Just "shape default (nodes), @1@ (clusters)") (Just "0") Nothing
@@ -550,9 +558,9 @@
              , makeAttr "Pos" ["pos"] "EN" (Cust "Pos") Nothing Nothing Nothing Nothing Nothing
              , makeAttr "QuadTree" ["quadtree"] "G" (Cust "QuadType") (Just "NormalQT") (Just "NormalQT") (Just "@'NormalQT'@") Nothing (Just "sfdp only")
              , makeAttr "Quantum" ["quantum"] "G" Dbl Nothing (Just "0") (Just "@0.0@") (Just "@0.0@") Nothing
+             , makeAttr "Rank" ["rank"] "S" (Cust "RankType") Nothing Nothing Nothing Nothing (Just "dot only")
              , makeAttr "RankDir" ["rankdir"] "G" (Cust "RankDir") Nothing (Just "FromTop") (Just "@'FromTop'@") Nothing (Just "dot only")
              , makeAttr "RankSep" ["ranksep"] "G" (Cust "[Double]") Nothing Nothing (Just "@[0.5]@ (dot), @[1.0]@ (twopi)") (Just "[0.02]") (Just "twopi, dot only")
-             , makeAttr "Rank" ["rank"] "S" (Cust "RankType") Nothing Nothing Nothing Nothing (Just "dot only")
              , makeAttr "Ratio" ["ratio"] "G" (Cust "Ratios") Nothing Nothing Nothing Nothing Nothing
              , makeAttr "Rects" ["rects"] "N" (Cust "[Rect]") Nothing Nothing Nothing Nothing (Just "write only")
              , makeAttr "Regular" ["regular"] "N" Bl (Just "True") (Just "False") (Just "@'False'@") Nothing Nothing
@@ -560,13 +568,15 @@
              , makeAttr "RepulsiveForce" ["repulsiveforce"] "G" Dbl Nothing (Just "1") (Just "@1.0@") (Just "@0.0@") (Just "sfdp only")
              , makeAttr "Root" ["root"] "GN" (Cust "Root") (Just "IsCentral") (Just "(NodeName \"\")") (Just "@'NodeName' \\\"\\\"@ (graphs), @'NotCentral'@ (nodes)") Nothing (Just "circo, twopi only")
              , makeAttr "Rotate" ["rotate"] "G" Integ Nothing (Just "0") (Just "@0@") Nothing Nothing
+             , makeAttr "Rotation" ["rotation"] "G" Dbl Nothing (Just "0") (Just "@0@") Nothing (Just "sfdp only, requires Graphviz >= 2.28.0")
              , makeAttr "SameHead" ["samehead"] "E" Strng Nothing (Just "\"\"") (Just "@\\\"\\\"@") Nothing (Just "dot only")
              , makeAttr "SameTail" ["sametail"] "E" Strng Nothing (Just "\"\"") (Just "@\\\"\\\"@") Nothing (Just "dot only")
              , makeAttr "SamplePoints" ["samplepoints"] "N" Integ Nothing Nothing (Just "@8@ (output), @20@ (overlap and image maps)") Nothing Nothing
+             , makeAttr "Scale" ["scale"] "G" (Cust "DPoint") Nothing Nothing Nothing Nothing (Just "twopi only, requires Graphviz >= 2.28.0")
              , makeAttr "SearchSize" ["searchsize"] "G" Integ Nothing (Just "30") (Just "@30@") Nothing (Just "dot only")
              , makeAttr "Sep" ["sep"] "G" (Cust "DPoint") Nothing (Just "(DVal 4)") (Just "@'DVal' 4@") Nothing (Just "not dot")
-             , makeAttr "ShapeFile" ["shapefile"] "N" Strng Nothing (Just "\"\"") (Just "@\\\"\\\"@") Nothing Nothing
              , makeAttr "Shape" ["shape"] "N" (Cust "Shape") Nothing (Just "Ellipse") (Just "@'Ellipse'@") Nothing Nothing
+             , makeAttr "ShapeFile" ["shapefile"] "N" Strng Nothing (Just "\"\"") (Just "@\\\"\\\"@") Nothing Nothing
              , makeAttr "ShowBoxes" ["showboxes"] "ENG" Integ Nothing (Just "0") (Just "@0@") (Just "@0@") (Just "dot only")
              , makeAttr "Sides" ["sides"] "N" Integ Nothing (Just "4") (Just "@4@") (Just "@0@") Nothing
              , makeAttr "Size" ["size"] "G" (Cust "Point") Nothing Nothing Nothing Nothing Nothing
@@ -575,8 +585,8 @@
              , makeAttr "SortV" ["sortv"] "GCN" (Cust "Word16") Nothing (Just "0") (Just "@0@") (Just "@0@") Nothing
              , makeAttr "Splines" ["splines"] "G" (Cust "EdgeType") (Just "SplineEdges") (Just "SplineEdges") Nothing Nothing Nothing
              , makeAttr "Start" ["start"] "G" (Cust "StartType") Nothing Nothing Nothing Nothing (Just "fdp, neato only")
-             , makeAttr "StyleSheet" ["stylesheet"] "G" Strng Nothing (Just "\"\"") (Just "@\\\"\\\"@") Nothing (Just "svg only")
              , makeAttr "Style" ["style"] "ENC" (Cust "[StyleItem]") Nothing Nothing Nothing Nothing Nothing
+             , makeAttr "StyleSheet" ["stylesheet"] "G" Strng Nothing (Just "\"\"") (Just "@\\\"\\\"@") Nothing (Just "svg only")
              , makeAttr "TailURL" ["tailURL", "tailhref"] "E" EStrng Nothing (Just "\"\"") (Just "@\\\"\\\"@") Nothing (Just "svg, map only")
              , makeAttr "TailClip" ["tailclip"] "E" Bl (Just "True") (Just "True") (Just "@'True'@") Nothing Nothing
              , makeAttr "TailLabel" ["taillabel"] "E" (Cust "Label") Nothing (Just "(StrLabel \"\")") (Just "@'StrLabel' \\\"\\\"@") Nothing Nothing
@@ -591,6 +601,7 @@
              , makeAttr "VoroMargin" ["voro_margin"] "G" Dbl Nothing (Just "0.05") (Just "@0.05@") (Just "@0.0@") (Just "not dot")
              , makeAttr "Weight" ["weight"] "E" Dbl Nothing Nothing (Just "@1.0@") (Just "@0@ (dot), @1@ (neato,fdp,sfdp)") Nothing
              , makeAttr "Width" ["width"] "N" Dbl Nothing (Just "0.75") (Just "@0.75@") (Just "@0.01@") Nothing
+             , makeAttr "XLabel" ["xlabel"] "EN" (Cust "Label") Nothing (Just "(StrLabel \"\")")  (Just "@'StrLabel' \\\"\\\"@") Nothing (Just "requires Graphviz >= 2.29.0")
              , makeAttr "Z" ["z"] "N" Dbl Nothing (Just "0") (Just "@0.0@") (Just "@-MAXFLOAT@, @-1000@") Nothing
              ]
 
diff --git a/utils/Benchmark.hs b/utils/Benchmark.hs
new file mode 100644
--- /dev/null
+++ b/utils/Benchmark.hs
@@ -0,0 +1,38 @@
+{-# LANGUAGE OverloadedStrings #-}
+
+{- |
+   Module      : Benchmark
+   Description : Benchmarking utilities for graphviz
+   Copyright   : (c) Ivan Lazar Miljenovic
+   License     : 3-Clause BSD-style
+   Maintainer  : Ivan.Miljenovic@gmail.com
+
+-}
+module Main where
+
+import Data.GraphViz hiding (DotGraph)
+import Data.GraphViz.Types.Generalised
+
+import Criterion.Main
+
+import Control.DeepSeq
+import Data.Text.Lazy(Text)
+
+-- -----------------------------------------------------------------------------
+
+main :: IO ()
+main = defaultMain [ bench "Parsing in-memory GDotGraph" $ nf parseGDG largeDefined
+                   , bench "Printing GDotGraph" $ nf printDotGraph largeGraph
+                   ]
+
+parseGDG :: Text -> DotGraph Int
+parseGDG = parseDotGraph
+
+instance (Show a) => NFData  (DotGraph a) where
+  rnf = rnf . show
+
+largeGraph :: DotGraph Int
+largeGraph = parseGDG largeDefined
+
+largeDefined :: Text
+largeDefined = "digraph \"Entire Codebase\" {\n\tnode [label=\"\\N\", margin=\"0.4,0.1\", style=filled];\n\tsubgraph cluster_Class_Arbitrary {\n\t\tgraph [label=\"Class: Arbitrary\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=rosybrown1];\n\t\tsubgraph cluster_Class_Arbitrary_Data_DotEdgea {\n\t\t\tgraph [label=\"Instance for: (DotEdge a)\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1530 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1614 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_DotGrapha {\n\t\t\tgraph [label=\"Instance for: (DotGraph a)\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1531 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1615 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_DotNodea {\n\t\t\tgraph [label=\"Instance for: (DotNode a)\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1532 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1616 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_DotStatementsa {\n\t\t\tgraph [label=\"Instance for: (DotStatements a)\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1533 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1617 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_DotSubGrapha {\n\t\t\tgraph [label=\"Instance for: (DotSubGraph a)\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1534 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1618 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_GDotGrapha {\n\t\t\tgraph [label=\"Instance for: (GDotGraph a)\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1535 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1619 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_GDotStatementa {\n\t\t\tgraph [label=\"Instance for: (GDotStatement a)\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1536 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1620 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_GDotSubGrapha {\n\t\t\tgraph [label=\"Instance for: (GDotSubGraph a)\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1537 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1621 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_gne {\n\t\t\tgraph [label=\"Instance for: (g n e)\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1665 [label=\"Data.GraphViz.Testing.Instances.FGL\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1666 [label=\"Data.GraphViz.Testing.Instances.FGL\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=cyan];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_ArrowFill {\n\t\t\tgraph [label=\"Instance for: ArrowFill\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1538 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_ArrowModifier {\n\t\t\tgraph [label=\"Instance for: ArrowModifier\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1539 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_ArrowShape {\n\t\t\tgraph [label=\"Instance for: ArrowShape\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1540 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_ArrowSide {\n\t\t\tgraph [label=\"Instance for: ArrowSide\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1541 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_ArrowType {\n\t\t\tgraph [label=\"Instance for: ArrowType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1542 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1622 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_AspectType {\n\t\t\tgraph [label=\"Instance for: AspectType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1543 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1623 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_Attribute {\n\t\t\tgraph [label=\"Instance for: Attribute\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1544 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1624 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_BrewerName {\n\t\t\tgraph [label=\"Instance for: BrewerName\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1545 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_ClusterMode {\n\t\t\tgraph [label=\"Instance for: ClusterMode\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1546 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_Color {\n\t\t\tgraph [label=\"Instance for: Color\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1547 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1625 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_ColorScheme {\n\t\t\tgraph [label=\"Instance for: ColorScheme\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1548 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1626 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_CompassPoint {\n\t\t\tgraph [label=\"Instance for: CompassPoint\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1549 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_DEConstraints {\n\t\t\tgraph [label=\"Instance for: DEConstraints\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1550 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_DPoint {\n\t\t\tgraph [label=\"Instance for: DPoint\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1551 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1627 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_DirType {\n\t\t\tgraph [label=\"Instance for: DirType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1552 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_EdgeType {\n\t\t\tgraph [label=\"Instance for: EdgeType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1553 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_FocusType {\n\t\t\tgraph [label=\"Instance for: FocusType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1554 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1628 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_GlobalAttributes {\n\t\t\tgraph [label=\"Instance for: GlobalAttributes\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1555 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1629 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_GraphID {\n\t\t\tgraph [label=\"Instance for: GraphID\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1556 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1630 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_HtmlAlign {\n\t\t\tgraph [label=\"Instance for: HtmlAlign\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1557 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_HtmlAttribute {\n\t\t\tgraph [label=\"Instance for: HtmlAttribute\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1558 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1631 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_HtmlCell {\n\t\t\tgraph [label=\"Instance for: HtmlCell\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1559 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1632 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_HtmlImg {\n\t\t\tgraph [label=\"Instance for: HtmlImg\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1560 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_HtmlLabel {\n\t\t\tgraph [label=\"Instance for: HtmlLabel\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1561 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1633 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_HtmlRow {\n\t\t\tgraph [label=\"Instance for: HtmlRow\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1562 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1634 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_HtmlScale {\n\t\t\tgraph [label=\"Instance for: HtmlScale\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1563 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_HtmlTable {\n\t\t\tgraph [label=\"Instance for: HtmlTable\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1564 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1635 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_HtmlTextItem {\n\t\t\tgraph [label=\"Instance for: HtmlTextItem\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1565 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1636 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_HtmlVAlign {\n\t\t\tgraph [label=\"Instance for: HtmlVAlign\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1566 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_Justification {\n\t\t\tgraph [label=\"Instance for: Justification\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1567 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_Label {\n\t\t\tgraph [label=\"Instance for: Label\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1568 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1637 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_LayerID {\n\t\t\tgraph [label=\"Instance for: LayerID\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1569 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1638 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_LayerList {\n\t\t\tgraph [label=\"Instance for: LayerList\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1570 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1639 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_LayerRange {\n\t\t\tgraph [label=\"Instance for: LayerRange\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1571 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1640 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_ModeType {\n\t\t\tgraph [label=\"Instance for: ModeType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1572 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_Model {\n\t\t\tgraph [label=\"Instance for: Model\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1573 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_OutputMode {\n\t\t\tgraph [label=\"Instance for: OutputMode\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1574 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_Overlap {\n\t\t\tgraph [label=\"Instance for: Overlap\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1575 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1641 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_Pack {\n\t\t\tgraph [label=\"Instance for: Pack\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1576 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1642 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_PackMode {\n\t\t\tgraph [label=\"Instance for: PackMode\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1577 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1643 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_PageDir {\n\t\t\tgraph [label=\"Instance for: PageDir\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1578 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_Point {\n\t\t\tgraph [label=\"Instance for: Point\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1579 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1644 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_PortName {\n\t\t\tgraph [label=\"Instance for: PortName\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1580 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1645 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_PortPos {\n\t\t\tgraph [label=\"Instance for: PortPos\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1581 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1646 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_Pos {\n\t\t\tgraph [label=\"Instance for: Pos\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1582 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1647 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_QuadType {\n\t\t\tgraph [label=\"Instance for: QuadType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1583 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_RankDir {\n\t\t\tgraph [label=\"Instance for: RankDir\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1584 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_RankType {\n\t\t\tgraph [label=\"Instance for: RankType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1585 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_Ratios {\n\t\t\tgraph [label=\"Instance for: Ratios\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1586 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1648 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_RecordField {\n\t\t\tgraph [label=\"Instance for: RecordField\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1587 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1649 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_Rect {\n\t\t\tgraph [label=\"Instance for: Rect\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1588 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1650 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_Root {\n\t\t\tgraph [label=\"Instance for: Root\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1589 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1651 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_STStyle {\n\t\t\tgraph [label=\"Instance for: STStyle\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1590 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_ScaleType {\n\t\t\tgraph [label=\"Instance for: ScaleType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1591 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_Shape {\n\t\t\tgraph [label=\"Instance for: Shape\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1592 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_SmoothType {\n\t\t\tgraph [label=\"Instance for: SmoothType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1593 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_Spline {\n\t\t\tgraph [label=\"Instance for: Spline\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1594 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1652 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_StartType {\n\t\t\tgraph [label=\"Instance for: StartType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1595 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1653 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_StyleItem {\n\t\t\tgraph [label=\"Instance for: StyleItem\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1596 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_StyleName {\n\t\t\tgraph [label=\"Instance for: StyleName\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1597 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_VerticalPlacement {\n\t\t\tgraph [label=\"Instance for: VerticalPlacement\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1598 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_ViewPort {\n\t\t\tgraph [label=\"Instance for: ViewPort\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1599 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1654 [label=\"Data.GraphViz.Testing.Instances\\nshrink\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Arbitrary_Data_X11Color {\n\t\t\tgraph [label=\"Instance for: X11Color\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1600 [label=\"Data.GraphViz.Testing.Instances\\narbitrary\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\t1889 [label=\"Unknown Module\\narbitrary\", style=\"filled,dotted\", shape=doubleoctagon, fillcolor=khaki];\n\t\t1900 [label=\"Unknown Module\\nshrink\", style=\"filled,dotted\", shape=doubleoctagon, fillcolor=khaki];\n\t\t1530 -> 1889 [penwidth=\"2.386294361119891\", color=black];\n\t\t1531 -> 1889 [penwidth=\"2.386294361119891\", color=black];\n\t\t1532 -> 1889 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1534 -> 1889 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1535 -> 1889 [penwidth=\"2.09861228866811\", color=black];\n\t\t1536 -> 1889 [penwidth=\"2.386294361119891\", color=black];\n\t\t1537 -> 1889 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1539 -> 1889 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1543 -> 1889 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1544 -> 1889 [penwidth=\"5.68213122712422\", color=black];\n\t\t1547 -> 1889 [penwidth=\"3.1972245773362196\", color=black];\n\t\t1548 -> 1889 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1551 -> 1889 [penwidth=1, color=black];\n\t\t1554 -> 1889 [penwidth=1, color=black];\n\t\t1556 -> 1889 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1558 -> 1889 [penwidth=\"3.833213344056216\", color=black];\n\t\t1559 -> 1889 [penwidth=\"2.09861228866811\", color=black];\n\t\t1560 -> 1889 [penwidth=1, color=black];\n\t\t1564 -> 1889 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1568 -> 1889 [penwidth=1, color=black];\n\t\t1569 -> 1889 [penwidth=1, color=black];\n\t\t1570 -> 1889 [penwidth=1, color=black];\n\t\t1571 -> 1889 [penwidth=\"2.09861228866811\", color=black];\n\t\t1575 -> 1889 [penwidth=1, color=black];\n\t\t1576 -> 1889 [penwidth=1, color=black];\n\t\t1577 -> 1889 [penwidth=\"2.09861228866811\", color=black];\n\t\t1579 -> 1889 [penwidth=1, color=black];\n\t\t1581 -> 1889 [penwidth=\"2.09861228866811\", color=black];\n\t\t1582 -> 1889 [penwidth=1, color=black];\n\t\t1594 -> 1889 [penwidth=\"2.09861228866811\", color=black];\n\t\t1595 -> 1889 [penwidth=\"2.386294361119891\", color=black];\n\t\t1596 -> 1889 [penwidth=1, color=black];\n\t\t1599 -> 1889 [penwidth=\"2.386294361119891\", color=black];\n\t\t1615 -> 1900 [penwidth=1, color=black];\n\t\t1618 -> 1900 [penwidth=1, color=black];\n\t\t1620 -> 1900 [penwidth=\"2.386294361119891\", color=black];\n\t\t1623 -> 1900 [penwidth=\"2.09861228866811\", color=black];\n\t\t1624 -> 1900 [penwidth=\"5.68213122712422\", color=black];\n\t\t1625 -> 1900 [penwidth=\"3.0794415416798357\", color=black];\n\t\t1626 -> 1900 [penwidth=1, color=black];\n\t\t1627 -> 1900 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1628 -> 1900 [penwidth=1, color=black];\n\t\t1630 -> 1900 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1631 -> 1900 [penwidth=\"4.091042453358316\", color=black];\n\t\t1632 -> 1900 [penwidth=\"2.09861228866811\", color=black];\n\t\t1633 -> 1900 [penwidth=1, color=black];\n\t\t1636 -> 1900 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1637 -> 1900 [penwidth=1, color=black];\n\t\t1638 -> 1900 [penwidth=1, color=black];\n\t\t1640 -> 1900 [penwidth=1, color=black];\n\t\t1641 -> 1900 [penwidth=1, color=black];\n\t\t1642 -> 1900 [penwidth=1, color=black];\n\t\t1643 -> 1900 [penwidth=1, color=black];\n\t\t1644 -> 1900 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1646 -> 1900 [penwidth=1, color=black];\n\t\t1647 -> 1900 [penwidth=1, color=black];\n\t\t1648 -> 1900 [penwidth=1, color=black];\n\t\t1649 -> 1900 [penwidth=1, color=black];\n\t\t1650 -> 1900 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1652 -> 1900 [penwidth=1, color=black];\n\t\t1653 -> 1900 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1654 -> 1900 [penwidth=\"2.09861228866811\", color=black];\n\t\t1665 -> 1889 [penwidth=\"2.09861228866811\", color=black];\n\t\t1889 -> 1530 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1531 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1532 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1533 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1534 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1535 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1536 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1537 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1538 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1539 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1540 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1541 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1542 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1543 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1544 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1545 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1546 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1547 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1548 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1549 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1550 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1551 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1552 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1553 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1554 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1555 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1556 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1557 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1558 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1559 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1560 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1561 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1562 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1563 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1564 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1565 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1566 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1567 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1568 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1569 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1570 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1571 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1572 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1573 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1574 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1575 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1576 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1577 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1578 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1579 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1580 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1581 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1582 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1583 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1584 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1585 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1586 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1587 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1588 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1589 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1590 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1591 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1592 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1593 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1594 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1595 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1596 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1597 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1598 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1599 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1600 [penwidth=1, color=navy, dir=none];\n\t\t1889 -> 1665 [penwidth=1, color=navy, dir=none];\n\t\t1900 -> 1614 [penwidth=1, color=navy, dir=none];\n\t\t1900 -> 1615 [penwidth=1, color=navy, dir=none];\n\t\t1900 -> 1616 [penwidth=1, color=navy, dir=none];\n\t\t1900 -> 1617 [penwidth=1, color=navy, dir=none];\n\t\t1900 -> 1618 [penwidth=1, color=navy, dir=none];\n\t\t1900 -> 1619 [penwidth=1, color=navy, dir=none];\n\t\t1900 -> 1620 [penwidth=\"2.386294361119891\", color=navy, dir=none];\n\t\t1900 -> 1621 [penwidth=1, color=navy, dir=none];\n\t\t1900 -> 1622 [penwidth=1, color=navy, dir=none];\n\t\t1900 -> 1623 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1900 -> 1624 [penwidth=\"5.976733742420574\", color=navy, dir=none];\n\t\t1900 -> 1625 [penwidth=\"2.386294361119891\", color=navy, dir=none];\n\t\t1900 -> 1626 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1900 -> 1627 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1900 -> 1628 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1900 -> 1629 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1900 -> 1630 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1900 -> 1631 [penwidth=\"4.091042453358316\", color=navy, dir=none];\n\t\t1900 -> 1632 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1900 -> 1633 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1900 -> 1634 [penwidth=1, color=navy, dir=none];\n\t\t1900 -> 1635 [penwidth=1, color=navy, dir=none];\n\t\t1900 -> 1636 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1900 -> 1637 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1900 -> 1638 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1900 -> 1639 [penwidth=1, color=navy, dir=none];\n\t\t1900 -> 1640 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1900 -> 1641 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1900 -> 1642 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1900 -> 1643 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1900 -> 1644 [penwidth=1, color=navy, dir=none];\n\t\t1900 -> 1645 [penwidth=1, color=navy, dir=none];\n\t\t1900 -> 1646 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1900 -> 1647 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1900 -> 1648 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1900 -> 1649 [penwidth=\"2.386294361119891\", color=navy, dir=none];\n\t\t1900 -> 1650 [penwidth=1, color=navy, dir=none];\n\t\t1900 -> 1651 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1900 -> 1652 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1900 -> 1653 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1900 -> 1654 [penwidth=1, color=navy, dir=none];\n\t\t1900 -> 1666 [penwidth=1, color=navy, dir=none];\n\t}\n\tsubgraph cluster_Class_DotRepr {\n\t\tgraph [label=\"Class: DotRepr\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=rosybrown1];\n\t\tsubgraph cluster_Class_DotRepr_Data_GDotGraphn {\n\t\t\tgraph [label=\"Instance for: GDotGraph n\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1779 [label=\"Data.GraphViz.Types.Generalised\\nedgeInformation\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1793 [label=\"Data.GraphViz.Types.Generalised\\ngetID\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1794 [label=\"Data.GraphViz.Types.Generalised\\ngraphIsDirected\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1795 [label=\"Data.GraphViz.Types.Generalised\\ngraphIsStrict\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1796 [label=\"Data.GraphViz.Types.Generalised\\ngraphStructureInformation\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1799 [label=\"Data.GraphViz.Types.Generalised\\nmakeStrict\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1800 [label=\"Data.GraphViz.Types.Generalised\\nnodeInformation\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1814 [label=\"Data.GraphViz.Types.Generalised\\nsetID\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\t1891 [label=\"Unknown Module\\nedgeInformation\", style=\"filled,dotted\", shape=doubleoctagon, fillcolor=khaki];\n\t\t1893 [label=\"Unknown Module\\ngetID\", style=\"filled,dotted\", shape=doubleoctagon, fillcolor=khaki];\n\t\t1894 [label=\"Unknown Module\\ngraphIsDirected\", style=\"filled,dotted\", shape=doubleoctagon, fillcolor=khaki];\n\t\t1895 [label=\"Unknown Module\\ngraphIsStrict\", style=\"filled,dotted\", shape=doubleoctagon, fillcolor=khaki];\n\t\t1896 [label=\"Unknown Module\\ngraphStructureInformation\", style=\"filled,dotted\", shape=doubleoctagon, fillcolor=khaki];\n\t\t1897 [label=\"Unknown Module\\nmakeStrict\", style=\"filled,dotted\", shape=doubleoctagon, fillcolor=khaki];\n\t\t1898 [label=\"Unknown Module\\nnodeInformation\", style=\"filled,dotted\", shape=doubleoctagon, fillcolor=khaki];\n\t\t1899 [label=\"Unknown Module\\nsetID\", style=\"filled,dotted\", shape=doubleoctagon, fillcolor=khaki];\n\t\t1891 -> 1779 [penwidth=1, color=navy, dir=none];\n\t\t1893 -> 1793 [penwidth=1, color=navy, dir=none];\n\t\t1894 -> 1794 [penwidth=1, color=navy, dir=none];\n\t\t1895 -> 1795 [penwidth=1, color=navy, dir=none];\n\t\t1896 -> 1796 [penwidth=1, color=navy, dir=none];\n\t\t1897 -> 1799 [penwidth=1, color=navy, dir=none];\n\t\t1898 -> 1800 [penwidth=1, color=navy, dir=none];\n\t\t1899 -> 1814 [penwidth=1, color=navy, dir=none];\n\t}\n\tsubgraph cluster_Class_Eq {\n\t\tgraph [label=\"Class: Eq\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=rosybrown1];\n\t\tsubgraph cluster_Class_Eq_Data_SameAttr {\n\t\t\tgraph [label=\"Instance for: SameAttr\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1827 [label=\"Data.GraphViz.Types.State\\n==\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\t1888 [label=\"Unknown Module\\n==\", style=\"filled,dotted\", shape=doubleoctagon, fillcolor=khaki];\n\t\t1888 -> 1827 [penwidth=1, color=navy, dir=none];\n\t}\n\tsubgraph cluster_Class_Functor {\n\t\tgraph [label=\"Class: Functor\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=rosybrown1];\n\t\tsubgraph cluster_Class_Functor_Data_DotEdge {\n\t\t\tgraph [label=\"Instance for: DotEdge\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1703 [label=\"Data.GraphViz.Types.Common\\nfmap\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Functor_Data_DotNode {\n\t\t\tgraph [label=\"Instance for: DotNode\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1704 [label=\"Data.GraphViz.Types.Common\\nfmap\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Functor_Data_GDotGraph {\n\t\t\tgraph [label=\"Instance for: GDotGraph\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1780 [label=\"Data.GraphViz.Types.Generalised\\nfmap\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Functor_Data_GDotStatement {\n\t\t\tgraph [label=\"Instance for: GDotStatement\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1781 [label=\"Data.GraphViz.Types.Generalised\\nfmap\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Functor_Data_GDotSubGraph {\n\t\t\tgraph [label=\"Instance for: GDotSubGraph\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1782 [label=\"Data.GraphViz.Types.Generalised\\nfmap\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\t1892 [label=\"Unknown Module\\nfmap\", style=\"filled,dotted\", shape=doubleoctagon, fillcolor=khaki];\n\t\t1780 -> 1892 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1781 -> 1892 [penwidth=\"2.09861228866811\", color=black];\n\t\t1782 -> 1892 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1892 -> 1703 [penwidth=1, color=navy, dir=none];\n\t\t1892 -> 1704 [penwidth=1, color=navy, dir=none];\n\t\t1892 -> 1780 [penwidth=1, color=navy, dir=none];\n\t\t1892 -> 1781 [penwidth=\"2.386294361119891\", color=navy, dir=none];\n\t\t1892 -> 1782 [penwidth=1, color=navy, dir=none];\n\t}\n\tsubgraph cluster_Class_Labellable {\n\t\tgraph [label=\"Class: Labellable\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=rosybrown1];\n\t\tsubgraph cluster_Class_Labellable_Data_PortNameEscString {\n\t\t\tgraph [label=\"Instance for: (PortName, EscString)\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t538 [label=\"Data.GraphViz.Attributes\\ntoLabel\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Labellable_Data_Bool {\n\t\t\tgraph [label=\"Instance for: Bool\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t539 [label=\"Data.GraphViz.Attributes\\ntoLabel\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Labellable_Data_Char {\n\t\t\tgraph [label=\"Instance for: Char\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t540 [label=\"Data.GraphViz.Attributes\\ntoLabel\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Labellable_Data_Double {\n\t\t\tgraph [label=\"Instance for: Double\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t541 [label=\"Data.GraphViz.Attributes\\ntoLabel\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Labellable_Data_EscString {\n\t\t\tgraph [label=\"Instance for: EscString\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t542 [label=\"Data.GraphViz.Attributes\\ntoLabel\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Labellable_Data_HtmlLabel {\n\t\t\tgraph [label=\"Instance for: HtmlLabel\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t543 [label=\"Data.GraphViz.Attributes\\ntoLabel\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Labellable_Data_HtmlTable {\n\t\t\tgraph [label=\"Instance for: HtmlTable\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t544 [label=\"Data.GraphViz.Attributes\\ntoLabel\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Labellable_Data_HtmlText {\n\t\t\tgraph [label=\"Instance for: HtmlText\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t545 [label=\"Data.GraphViz.Attributes\\ntoLabel\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Labellable_Data_Int {\n\t\t\tgraph [label=\"Instance for: Int\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t546 [label=\"Data.GraphViz.Attributes\\ntoLabel\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Labellable_Data_PortName {\n\t\t\tgraph [label=\"Instance for: PortName\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t547 [label=\"Data.GraphViz.Attributes\\ntoLabel\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Labellable_Data_RecordField {\n\t\t\tgraph [label=\"Instance for: RecordField\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t548 [label=\"Data.GraphViz.Attributes\\ntoLabel\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_Labellable_Data_RecordFields {\n\t\t\tgraph [label=\"Instance for: RecordFields\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t549 [label=\"Data.GraphViz.Attributes\\ntoLabel\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\t537 [label=\"Data.GraphViz.Attributes\\ntoLabel\", style=\"filled,solid\", shape=doubleoctagon, fillcolor=goldenrod];\n\t\t537 -> 538 [penwidth=1, color=navy, dir=none];\n\t\t537 -> 539 [penwidth=1, color=navy, dir=none];\n\t\t537 -> 540 [penwidth=1, color=navy, dir=none];\n\t\t537 -> 541 [penwidth=1, color=navy, dir=none];\n\t\t537 -> 542 [penwidth=1, color=navy, dir=none];\n\t\t537 -> 543 [penwidth=1, color=navy, dir=none];\n\t\t537 -> 544 [penwidth=1, color=navy, dir=none];\n\t\t537 -> 545 [penwidth=1, color=navy, dir=none];\n\t\t537 -> 546 [penwidth=1, color=navy, dir=none];\n\t\t537 -> 547 [penwidth=1, color=navy, dir=none];\n\t\t537 -> 548 [penwidth=1, color=navy, dir=none];\n\t\t537 -> 549 [penwidth=1, color=navy, dir=none];\n\t\t538 -> 537 [penwidth=1, color=black];\n\t\t539 -> 537 [penwidth=1, color=black];\n\t\t540 -> 537 [penwidth=1, color=black];\n\t\t541 -> 537 [penwidth=1, color=black];\n\t\t544 -> 537 [penwidth=1, color=black];\n\t\t545 -> 537 [penwidth=1, color=black];\n\t\t546 -> 537 [penwidth=1, color=black];\n\t\t547 -> 537 [penwidth=1, color=black];\n\t\t548 -> 537 [penwidth=1, color=black];\n\t}\n\tsubgraph cluster_Class_Ord {\n\t\tgraph [label=\"Class: Ord\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=rosybrown1];\n\t\tsubgraph cluster_Class_Ord_Data_SameAttr {\n\t\t\tgraph [label=\"Instance for: SameAttr\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1842 [label=\"Data.GraphViz.Types.State\\ncompare\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\t1890 [label=\"Unknown Module\\ncompare\", style=\"filled,dotted\", shape=doubleoctagon, fillcolor=khaki];\n\t\t1842 -> 1890 [penwidth=1, color=black];\n\t\t1890 -> 1842 [penwidth=1, color=navy, dir=none];\n\t}\n\tsubgraph cluster_Class_ParseDot {\n\t\tgraph [label=\"Class: ParseDot\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=rosybrown1];\n\t\tsubgraph cluster_Class_ParseDot_Data_DotEdgea {\n\t\t\tgraph [label=\"Instance for: (DotEdge a)\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1715 [label=\"Data.GraphViz.Types.Common\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1729 [label=\"Data.GraphViz.Types.Common\\nparseList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1737 [label=\"Data.GraphViz.Types.Common\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1741 [label=\"Data.GraphViz.Types.Common\\nparseUnqtList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_DotNodea {\n\t\t\tgraph [label=\"Instance for: (DotNode a)\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1716 [label=\"Data.GraphViz.Types.Common\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1730 [label=\"Data.GraphViz.Types.Common\\nparseList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1738 [label=\"Data.GraphViz.Types.Common\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1742 [label=\"Data.GraphViz.Types.Common\\nparseUnqtList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_GDotGrapha {\n\t\t\tgraph [label=\"Instance for: (GDotGraph a)\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1801 [label=\"Data.GraphViz.Types.Generalised\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1807 [label=\"Data.GraphViz.Types.Generalised\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_GDotStatementa {\n\t\t\tgraph [label=\"Instance for: (GDotStatement a)\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1802 [label=\"Data.GraphViz.Types.Generalised\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1805 [label=\"Data.GraphViz.Types.Generalised\\nparseList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1808 [label=\"Data.GraphViz.Types.Generalised\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1810 [label=\"Data.GraphViz.Types.Generalised\\nparseUnqtList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_GDotSubGrapha {\n\t\t\tgraph [label=\"Instance for: (GDotSubGraph a)\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1803 [label=\"Data.GraphViz.Types.Generalised\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1806 [label=\"Data.GraphViz.Types.Generalised\\nparseList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1809 [label=\"Data.GraphViz.Types.Generalised\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1811 [label=\"Data.GraphViz.Types.Generalised\\nparseUnqtList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_ArrowFill {\n\t\t\tgraph [label=\"Instance for: ArrowFill\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t437 [label=\"Data.GraphViz.Attributes\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t467 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_ArrowModifier {\n\t\t\tgraph [label=\"Instance for: ArrowModifier\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t468 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_ArrowShape {\n\t\t\tgraph [label=\"Instance for: ArrowShape\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t469 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_ArrowSide {\n\t\t\tgraph [label=\"Instance for: ArrowSide\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t438 [label=\"Data.GraphViz.Attributes\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t470 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_ArrowType {\n\t\t\tgraph [label=\"Instance for: ArrowType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t471 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_AspectType {\n\t\t\tgraph [label=\"Instance for: AspectType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t439 [label=\"Data.GraphViz.Attributes\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t472 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_Attribute {\n\t\t\tgraph [label=\"Instance for: Attribute\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t440 [label=\"Data.GraphViz.Attributes\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t461 [label=\"Data.GraphViz.Attributes\\nparseList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t473 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_Bool {\n\t\t\tgraph [label=\"Instance for: Bool\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1417 [label=\"Data.GraphViz.Parsing\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_BrewerName {\n\t\t\tgraph [label=\"Instance for: BrewerName\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1210 [label=\"Data.GraphViz.Attributes.Colors\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_Char {\n\t\t\tgraph [label=\"Instance for: Char\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1389 [label=\"Data.GraphViz.Parsing\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1411 [label=\"Data.GraphViz.Parsing\\nparseList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1418 [label=\"Data.GraphViz.Parsing\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1426 [label=\"Data.GraphViz.Parsing\\nparseUnqtList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_ClusterMode {\n\t\t\tgraph [label=\"Instance for: ClusterMode\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t474 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_Color {\n\t\t\tgraph [label=\"Instance for: Color\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1208 [label=\"Data.GraphViz.Attributes.Colors\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1209 [label=\"Data.GraphViz.Attributes.Colors\\nparseList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1211 [label=\"Data.GraphViz.Attributes.Colors\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1214 [label=\"Data.GraphViz.Attributes.Colors\\nparseUnqtList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_ColorScheme {\n\t\t\tgraph [label=\"Instance for: ColorScheme\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1212 [label=\"Data.GraphViz.Attributes.Colors\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_CompassPoint {\n\t\t\tgraph [label=\"Instance for: CompassPoint\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1360 [label=\"Data.GraphViz.Attributes.Internal\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_DEConstraints {\n\t\t\tgraph [label=\"Instance for: DEConstraints\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t475 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_DPoint {\n\t\t\tgraph [label=\"Instance for: DPoint\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t441 [label=\"Data.GraphViz.Attributes\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t476 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_DirType {\n\t\t\tgraph [label=\"Instance for: DirType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t477 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_Double {\n\t\t\tgraph [label=\"Instance for: Double\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1412 [label=\"Data.GraphViz.Parsing\\nparseList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1419 [label=\"Data.GraphViz.Parsing\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1427 [label=\"Data.GraphViz.Parsing\\nparseUnqtList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_EdgeType {\n\t\t\tgraph [label=\"Instance for: EdgeType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t442 [label=\"Data.GraphViz.Attributes\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t478 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_FocusType {\n\t\t\tgraph [label=\"Instance for: FocusType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t443 [label=\"Data.GraphViz.Attributes\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t479 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_GlobalAttributes {\n\t\t\tgraph [label=\"Instance for: GlobalAttributes\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1717 [label=\"Data.GraphViz.Types.Common\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1731 [label=\"Data.GraphViz.Types.Common\\nparseList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1739 [label=\"Data.GraphViz.Types.Common\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1743 [label=\"Data.GraphViz.Types.Common\\nparseUnqtList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_GraphID {\n\t\t\tgraph [label=\"Instance for: GraphID\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1718 [label=\"Data.GraphViz.Types.Common\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1740 [label=\"Data.GraphViz.Types.Common\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_HtmlAlign {\n\t\t\tgraph [label=\"Instance for: HtmlAlign\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1281 [label=\"Data.GraphViz.Attributes.HTML\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1301 [label=\"Data.GraphViz.Attributes.HTML\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_HtmlAttribute {\n\t\t\tgraph [label=\"Instance for: HtmlAttribute\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1282 [label=\"Data.GraphViz.Attributes.HTML\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1297 [label=\"Data.GraphViz.Attributes.HTML\\nparseList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1302 [label=\"Data.GraphViz.Attributes.HTML\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1311 [label=\"Data.GraphViz.Attributes.HTML\\nparseUnqtList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_HtmlCell {\n\t\t\tgraph [label=\"Instance for: HtmlCell\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1283 [label=\"Data.GraphViz.Attributes.HTML\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1298 [label=\"Data.GraphViz.Attributes.HTML\\nparseList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1303 [label=\"Data.GraphViz.Attributes.HTML\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1312 [label=\"Data.GraphViz.Attributes.HTML\\nparseUnqtList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_HtmlImg {\n\t\t\tgraph [label=\"Instance for: HtmlImg\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1284 [label=\"Data.GraphViz.Attributes.HTML\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1304 [label=\"Data.GraphViz.Attributes.HTML\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_HtmlLabel {\n\t\t\tgraph [label=\"Instance for: HtmlLabel\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1285 [label=\"Data.GraphViz.Attributes.HTML\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1305 [label=\"Data.GraphViz.Attributes.HTML\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_HtmlRow {\n\t\t\tgraph [label=\"Instance for: HtmlRow\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1286 [label=\"Data.GraphViz.Attributes.HTML\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1299 [label=\"Data.GraphViz.Attributes.HTML\\nparseList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1306 [label=\"Data.GraphViz.Attributes.HTML\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1313 [label=\"Data.GraphViz.Attributes.HTML\\nparseUnqtList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_HtmlScale {\n\t\t\tgraph [label=\"Instance for: HtmlScale\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1287 [label=\"Data.GraphViz.Attributes.HTML\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1307 [label=\"Data.GraphViz.Attributes.HTML\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_HtmlTable {\n\t\t\tgraph [label=\"Instance for: HtmlTable\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1288 [label=\"Data.GraphViz.Attributes.HTML\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1308 [label=\"Data.GraphViz.Attributes.HTML\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_HtmlTextItem {\n\t\t\tgraph [label=\"Instance for: HtmlTextItem\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1289 [label=\"Data.GraphViz.Attributes.HTML\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1300 [label=\"Data.GraphViz.Attributes.HTML\\nparseList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1309 [label=\"Data.GraphViz.Attributes.HTML\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1314 [label=\"Data.GraphViz.Attributes.HTML\\nparseUnqtList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_HtmlVAlign {\n\t\t\tgraph [label=\"Instance for: HtmlVAlign\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1290 [label=\"Data.GraphViz.Attributes.HTML\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1310 [label=\"Data.GraphViz.Attributes.HTML\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_Int {\n\t\t\tgraph [label=\"Instance for: Int\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1420 [label=\"Data.GraphViz.Parsing\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_Justification {\n\t\t\tgraph [label=\"Instance for: Justification\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t480 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_Label {\n\t\t\tgraph [label=\"Instance for: Label\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t444 [label=\"Data.GraphViz.Attributes\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t481 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_LayerID {\n\t\t\tgraph [label=\"Instance for: LayerID\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t445 [label=\"Data.GraphViz.Attributes\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t482 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_LayerList {\n\t\t\tgraph [label=\"Instance for: LayerList\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t446 [label=\"Data.GraphViz.Attributes\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t483 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_LayerRange {\n\t\t\tgraph [label=\"Instance for: LayerRange\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t447 [label=\"Data.GraphViz.Attributes\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t484 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_ModeType {\n\t\t\tgraph [label=\"Instance for: ModeType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t485 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_Model {\n\t\t\tgraph [label=\"Instance for: Model\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t486 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_OutputMode {\n\t\t\tgraph [label=\"Instance for: OutputMode\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t487 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_Overlap {\n\t\t\tgraph [label=\"Instance for: Overlap\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t488 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_Pack {\n\t\t\tgraph [label=\"Instance for: Pack\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t489 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_PackMode {\n\t\t\tgraph [label=\"Instance for: PackMode\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t490 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_PageDir {\n\t\t\tgraph [label=\"Instance for: PageDir\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t491 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_Point {\n\t\t\tgraph [label=\"Instance for: Point\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t448 [label=\"Data.GraphViz.Attributes\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t492 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t511 [label=\"Data.GraphViz.Attributes\\nparseUnqtList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_PortName {\n\t\t\tgraph [label=\"Instance for: PortName\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1357 [label=\"Data.GraphViz.Attributes.Internal\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1361 [label=\"Data.GraphViz.Attributes.Internal\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_PortPos {\n\t\t\tgraph [label=\"Instance for: PortPos\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1358 [label=\"Data.GraphViz.Attributes.Internal\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1362 [label=\"Data.GraphViz.Attributes.Internal\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_Pos {\n\t\t\tgraph [label=\"Instance for: Pos\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t449 [label=\"Data.GraphViz.Attributes\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t493 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_QuadType {\n\t\t\tgraph [label=\"Instance for: QuadType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t494 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_RankDir {\n\t\t\tgraph [label=\"Instance for: RankDir\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t495 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_RankType {\n\t\t\tgraph [label=\"Instance for: RankType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t496 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_Ratios {\n\t\t\tgraph [label=\"Instance for: Ratios\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t497 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_RecordField {\n\t\t\tgraph [label=\"Instance for: RecordField\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t450 [label=\"Data.GraphViz.Attributes\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t462 [label=\"Data.GraphViz.Attributes\\nparseList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t498 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t512 [label=\"Data.GraphViz.Attributes\\nparseUnqtList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_Rect {\n\t\t\tgraph [label=\"Instance for: Rect\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t451 [label=\"Data.GraphViz.Attributes\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t499 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_Root {\n\t\t\tgraph [label=\"Instance for: Root\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t452 [label=\"Data.GraphViz.Attributes\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t500 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_STStyle {\n\t\t\tgraph [label=\"Instance for: STStyle\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t501 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_ScaleType {\n\t\t\tgraph [label=\"Instance for: ScaleType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t502 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_Shape {\n\t\t\tgraph [label=\"Instance for: Shape\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t503 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_SmoothType {\n\t\t\tgraph [label=\"Instance for: SmoothType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t504 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_Spline {\n\t\t\tgraph [label=\"Instance for: Spline\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t453 [label=\"Data.GraphViz.Attributes\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t505 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t513 [label=\"Data.GraphViz.Attributes\\nparseUnqtList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_StartType {\n\t\t\tgraph [label=\"Instance for: StartType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t506 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_StyleItem {\n\t\t\tgraph [label=\"Instance for: StyleItem\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t454 [label=\"Data.GraphViz.Attributes\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t463 [label=\"Data.GraphViz.Attributes\\nparseList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t507 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t514 [label=\"Data.GraphViz.Attributes\\nparseUnqtList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_StyleName {\n\t\t\tgraph [label=\"Instance for: StyleName\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t455 [label=\"Data.GraphViz.Attributes\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t508 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_VerticalPlacement {\n\t\t\tgraph [label=\"Instance for: VerticalPlacement\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t509 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_ViewPort {\n\t\t\tgraph [label=\"Instance for: ViewPort\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t456 [label=\"Data.GraphViz.Attributes\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t510 [label=\"Data.GraphViz.Attributes\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_Word16 {\n\t\t\tgraph [label=\"Instance for: Word16\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1421 [label=\"Data.GraphViz.Parsing\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_Word8 {\n\t\t\tgraph [label=\"Instance for: Word8\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1422 [label=\"Data.GraphViz.Parsing\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_X11Color {\n\t\t\tgraph [label=\"Instance for: X11Color\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1213 [label=\"Data.GraphViz.Attributes.Colors\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_ParseDot_Data_a {\n\t\t\tgraph [label=\"Instance for: [a]\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1390 [label=\"Data.GraphViz.Parsing\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1423 [label=\"Data.GraphViz.Parsing\\nparseUnqt\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_DefaultInstance_ParseDot {\n\t\t\tgraph [label=\"Default Instance\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1388 [label=\"Data.GraphViz.Parsing\\nparse\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1410 [label=\"Data.GraphViz.Parsing\\nparseList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1425 [label=\"Data.GraphViz.Parsing\\nparseUnqtList\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\t1387 [label=\"Data.GraphViz.Parsing\\nparse\", style=\"filled,solid\", shape=doubleoctagon, fillcolor=goldenrod];\n\t\t1409 [label=\"Data.GraphViz.Parsing\\nparseList\", style=\"filled,solid\", shape=doubleoctagon, fillcolor=goldenrod];\n\t\t1416 [label=\"Data.GraphViz.Parsing\\nparseUnqt\", style=\"filled,solid\", shape=doubleoctagon, fillcolor=goldenrod];\n\t\t1424 [label=\"Data.GraphViz.Parsing\\nparseUnqtList\", style=\"filled,solid\", shape=doubleoctagon, fillcolor=goldenrod];\n\t\t437 -> 1416 [penwidth=1, color=black];\n\t\t438 -> 1416 [penwidth=1, color=black];\n\t\t439 -> 1387 [penwidth=1, color=black];\n\t\t440 -> 1416 [penwidth=1, color=black];\n\t\t441 -> 1416 [penwidth=\"1.6931471805599454\", color=black];\n\t\t442 -> 1416 [penwidth=1, color=black];\n\t\t443 -> 1387 [penwidth=\"1.6931471805599454\", color=black];\n\t\t444 -> 1387 [penwidth=\"2.09861228866811\", color=black];\n\t\t445 -> 1387 [penwidth=1, color=black];\n\t\t446 -> 1416 [penwidth=1, color=black];\n\t\t447 -> 1387 [penwidth=1, color=black];\n\t\t447 -> 1416 [penwidth=\"1.6931471805599454\", color=black];\n\t\t448 -> 1416 [penwidth=1, color=black];\n\t\t449 -> 1416 [penwidth=1, color=black];\n\t\t450 -> 1416 [penwidth=1, color=black];\n\t\t451 -> 1416 [penwidth=1, color=black];\n\t\t452 -> 1387 [penwidth=1, color=black];\n\t\t453 -> 1416 [penwidth=1, color=black];\n\t\t454 -> 1387 [penwidth=1, color=black];\n\t\t454 -> 1416 [penwidth=1, color=black];\n\t\t455 -> 1416 [penwidth=1, color=black];\n\t\t456 -> 1416 [penwidth=1, color=black];\n\t\t461 -> 1424 [penwidth=1, color=black];\n\t\t462 -> 1424 [penwidth=1, color=black];\n\t\t463 -> 1387 [penwidth=1, color=black];\n\t\t463 -> 1424 [penwidth=1, color=black];\n\t\t468 -> 1416 [penwidth=\"1.6931471805599454\", color=black];\n\t\t471 -> 1416 [penwidth=\"1.6931471805599454\", color=black];\n\t\t472 -> 1416 [penwidth=1, color=black];\n\t\t473 -> 1387 [penwidth=1, color=black];\n\t\t475 -> 1387 [penwidth=1, color=black];\n\t\t476 -> 1416 [penwidth=1, color=black];\n\t\t478 -> 1387 [penwidth=1, color=black];\n\t\t479 -> 1416 [penwidth=\"1.6931471805599454\", color=black];\n\t\t481 -> 1416 [penwidth=\"2.09861228866811\", color=black];\n\t\t483 -> 1416 [penwidth=1, color=black];\n\t\t484 -> 1416 [penwidth=\"2.09861228866811\", color=black];\n\t\t488 -> 1387 [penwidth=1, color=black];\n\t\t489 -> 1416 [penwidth=1, color=black];\n\t\t490 -> 1416 [penwidth=1, color=black];\n\t\t492 -> 1416 [penwidth=1, color=black];\n\t\t493 -> 1416 [penwidth=1, color=black];\n\t\t494 -> 1387 [penwidth=1, color=black];\n\t\t497 -> 1416 [penwidth=1, color=black];\n\t\t498 -> 1416 [penwidth=1, color=black];\n\t\t500 -> 1416 [penwidth=1, color=black];\n\t\t505 -> 1416 [penwidth=\"1.6931471805599454\", color=black];\n\t\t506 -> 1416 [penwidth=\"2.386294361119891\", color=black];\n\t\t507 -> 1416 [penwidth=1, color=black];\n\t\t510 -> 1416 [penwidth=\"2.386294361119891\", color=black];\n\t\t511 -> 1416 [penwidth=1, color=black];\n\t\t512 -> 1416 [penwidth=1, color=black];\n\t\t513 -> 1416 [penwidth=1, color=black];\n\t\t514 -> 1416 [penwidth=1, color=black];\n\t\t1208 -> 1416 [penwidth=\"2.09861228866811\", color=black];\n\t\t1209 -> 1416 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1209 -> 1424 [penwidth=1, color=black];\n\t\t1211 -> 1387 [penwidth=\"2.09861228866811\", color=black];\n\t\t1211 -> 1416 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1212 -> 1416 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1214 -> 1416 [penwidth=1, color=black];\n\t\t1281 -> 1416 [penwidth=1, color=black];\n\t\t1282 -> 1416 [penwidth=1, color=black];\n\t\t1283 -> 1416 [penwidth=1, color=black];\n\t\t1284 -> 1416 [penwidth=1, color=black];\n\t\t1285 -> 1416 [penwidth=1, color=black];\n\t\t1286 -> 1416 [penwidth=1, color=black];\n\t\t1287 -> 1416 [penwidth=1, color=black];\n\t\t1288 -> 1416 [penwidth=1, color=black];\n\t\t1289 -> 1416 [penwidth=1, color=black];\n\t\t1290 -> 1416 [penwidth=1, color=black];\n\t\t1297 -> 1424 [penwidth=1, color=black];\n\t\t1298 -> 1424 [penwidth=1, color=black];\n\t\t1299 -> 1424 [penwidth=1, color=black];\n\t\t1300 -> 1424 [penwidth=1, color=black];\n\t\t1303 -> 1387 [penwidth=1, color=black];\n\t\t1303 -> 1416 [penwidth=1, color=black];\n\t\t1305 -> 1416 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1306 -> 1416 [penwidth=1, color=black];\n\t\t1308 -> 1416 [penwidth=1, color=black];\n\t\t1309 -> 1416 [penwidth=1, color=black];\n\t\t1311 -> 1416 [penwidth=1, color=black];\n\t\t1312 -> 1416 [penwidth=1, color=black];\n\t\t1313 -> 1416 [penwidth=1, color=black];\n\t\t1314 -> 1416 [penwidth=1, color=black];\n\t\t1357 -> 1416 [penwidth=1, color=black];\n\t\t1358 -> 1416 [penwidth=1, color=black];\n\t\t1362 -> 1416 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1387 -> 437 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 438 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 439 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 440 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 441 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 442 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 443 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 444 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 445 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 446 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 447 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 448 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 449 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 450 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 451 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 452 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 453 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 454 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 455 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 456 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 1208 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 1281 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 1282 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 1283 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 1284 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 1285 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 1286 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 1287 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 1288 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 1289 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 1290 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 1357 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 1358 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 1388 [penwidth=1, color=turquoise, dir=none];\n\t\t1387 -> 1389 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 1390 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 1715 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 1716 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 1717 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 1718 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 1801 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 1802 [penwidth=1, color=navy, dir=none];\n\t\t1387 -> 1803 [penwidth=1, color=navy, dir=none];\n\t\t1388 -> 1416 [penwidth=1, color=black];\n\t\t1389 -> 1416 [penwidth=1, color=black];\n\t\t1390 -> 1409 [penwidth=1, color=chartreuse];\n\t\t1409 -> 461 [penwidth=1, color=navy, dir=none];\n\t\t1409 -> 462 [penwidth=1, color=navy, dir=none];\n\t\t1409 -> 463 [penwidth=1, color=navy, dir=none];\n\t\t1409 -> 1209 [penwidth=1, color=navy, dir=none];\n\t\t1409 -> 1297 [penwidth=1, color=navy, dir=none];\n\t\t1409 -> 1298 [penwidth=1, color=navy, dir=none];\n\t\t1409 -> 1299 [penwidth=1, color=navy, dir=none];\n\t\t1409 -> 1300 [penwidth=1, color=navy, dir=none];\n\t\t1409 -> 1410 [penwidth=1, color=turquoise, dir=none];\n\t\t1409 -> 1411 [penwidth=1, color=navy, dir=none];\n\t\t1409 -> 1412 [penwidth=1, color=navy, dir=none];\n\t\t1409 -> 1729 [penwidth=1, color=navy, dir=none];\n\t\t1409 -> 1730 [penwidth=1, color=navy, dir=none];\n\t\t1409 -> 1731 [penwidth=1, color=navy, dir=none];\n\t\t1409 -> 1805 [penwidth=1, color=navy, dir=none];\n\t\t1409 -> 1806 [penwidth=1, color=navy, dir=none];\n\t\t1410 -> 1424 [penwidth=1, color=black];\n\t\t1412 -> 1387 [penwidth=1, color=black];\n\t\t1412 -> 1424 [penwidth=1, color=black];\n\t\t1416 -> 467 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 468 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 469 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 470 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 471 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 472 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 473 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 474 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 475 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 476 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 477 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 478 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 479 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 480 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 481 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 482 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 483 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 484 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 485 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 486 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 487 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 488 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 489 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 490 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 491 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 492 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 493 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 494 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 495 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 496 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 497 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 498 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 499 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 500 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 501 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 502 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 503 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 504 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 505 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 506 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 507 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 508 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 509 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 510 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1210 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1211 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1212 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1213 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1301 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1302 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1303 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1304 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1305 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1306 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1307 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1308 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1309 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1310 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1360 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1361 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1362 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1417 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1418 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1419 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1420 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1421 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1422 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1423 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1737 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1738 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1739 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1740 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1807 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1808 [penwidth=1, color=navy, dir=none];\n\t\t1416 -> 1809 [penwidth=1, color=navy, dir=none];\n\t\t1423 -> 1424 [penwidth=1, color=black];\n\t\t1424 -> 511 [penwidth=1, color=navy, dir=none];\n\t\t1424 -> 512 [penwidth=1, color=navy, dir=none];\n\t\t1424 -> 513 [penwidth=1, color=navy, dir=none];\n\t\t1424 -> 514 [penwidth=1, color=navy, dir=none];\n\t\t1424 -> 1214 [penwidth=1, color=navy, dir=none];\n\t\t1424 -> 1311 [penwidth=1, color=navy, dir=none];\n\t\t1424 -> 1312 [penwidth=1, color=navy, dir=none];\n\t\t1424 -> 1313 [penwidth=1, color=navy, dir=none];\n\t\t1424 -> 1314 [penwidth=1, color=navy, dir=none];\n\t\t1424 -> 1425 [penwidth=1, color=turquoise, dir=none];\n\t\t1424 -> 1426 [penwidth=1, color=navy, dir=none];\n\t\t1424 -> 1427 [penwidth=1, color=navy, dir=none];\n\t\t1424 -> 1741 [penwidth=1, color=navy, dir=none];\n\t\t1424 -> 1742 [penwidth=1, color=navy, dir=none];\n\t\t1424 -> 1743 [penwidth=1, color=navy, dir=none];\n\t\t1424 -> 1810 [penwidth=1, color=navy, dir=none];\n\t\t1424 -> 1811 [penwidth=1, color=navy, dir=none];\n\t\t1425 -> 1416 [penwidth=1, color=black];\n\t\t1427 -> 1416 [penwidth=1, color=black];\n\t\t1715 -> 1416 [penwidth=1, color=black];\n\t\t1716 -> 1416 [penwidth=1, color=black];\n\t\t1717 -> 1416 [penwidth=1, color=black];\n\t\t1718 -> 1387 [penwidth=1, color=black];\n\t\t1729 -> 1424 [penwidth=1, color=black];\n\t\t1730 -> 1424 [penwidth=1, color=black];\n\t\t1731 -> 1424 [penwidth=1, color=black];\n\t\t1739 -> 1387 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1740 -> 1416 [penwidth=1, color=black];\n\t\t1743 -> 1387 [penwidth=1, color=black];\n\t\t1801 -> 1416 [penwidth=1, color=black];\n\t\t1802 -> 1416 [penwidth=1, color=black];\n\t\t1803 -> 1416 [penwidth=1, color=black];\n\t\t1805 -> 1424 [penwidth=1, color=black];\n\t\t1806 -> 1424 [penwidth=1, color=black];\n\t\t1808 -> 1416 [penwidth=\"2.386294361119891\", color=black];\n\t\t1810 -> 1387 [penwidth=1, color=black];\n\t\t1811 -> 1416 [penwidth=1, color=black];\n\t}\n\tsubgraph cluster_Class_PrintDot {\n\t\tgraph [label=\"Class: PrintDot\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=rosybrown1];\n\t\tsubgraph cluster_Class_PrintDot_Data_DotEdgea {\n\t\t\tgraph [label=\"Instance for: (DotEdge a)\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1708 [label=\"Data.GraphViz.Types.Common\\nlistToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1766 [label=\"Data.GraphViz.Types.Common\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1770 [label=\"Data.GraphViz.Types.Common\\nunqtListToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_DotNodea {\n\t\t\tgraph [label=\"Instance for: (DotNode a)\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1709 [label=\"Data.GraphViz.Types.Common\\nlistToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1767 [label=\"Data.GraphViz.Types.Common\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1771 [label=\"Data.GraphViz.Types.Common\\nunqtListToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_GDotGrapha {\n\t\t\tgraph [label=\"Instance for: (GDotGraph a)\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1821 [label=\"Data.GraphViz.Types.Generalised\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_GDotStatementa {\n\t\t\tgraph [label=\"Instance for: (GDotStatement a)\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1797 [label=\"Data.GraphViz.Types.Generalised\\nlistToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1822 [label=\"Data.GraphViz.Types.Generalised\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1824 [label=\"Data.GraphViz.Types.Generalised\\nunqtListToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_GDotSubGrapha {\n\t\t\tgraph [label=\"Instance for: (GDotSubGraph a)\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1798 [label=\"Data.GraphViz.Types.Generalised\\nlistToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1823 [label=\"Data.GraphViz.Types.Generalised\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1825 [label=\"Data.GraphViz.Types.Generalised\\nunqtListToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_ArrowFill {\n\t\t\tgraph [label=\"Instance for: ArrowFill\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t550 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_ArrowModifier {\n\t\t\tgraph [label=\"Instance for: ArrowModifier\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t551 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_ArrowShape {\n\t\t\tgraph [label=\"Instance for: ArrowShape\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t552 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_ArrowSide {\n\t\t\tgraph [label=\"Instance for: ArrowSide\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t553 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_ArrowType {\n\t\t\tgraph [label=\"Instance for: ArrowType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t554 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_AspectType {\n\t\t\tgraph [label=\"Instance for: AspectType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t520 [label=\"Data.GraphViz.Attributes\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t555 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_Attribute {\n\t\t\tgraph [label=\"Instance for: Attribute\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t422 [label=\"Data.GraphViz.Attributes\\nlistToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t556 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_Bool {\n\t\t\tgraph [label=\"Instance for: Bool\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1476 [label=\"Data.GraphViz.Printing\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=cyan];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_BrewerName {\n\t\t\tgraph [label=\"Instance for: BrewerName\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1220 [label=\"Data.GraphViz.Attributes.Colors\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_Char {\n\t\t\tgraph [label=\"Instance for: Char\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1460 [label=\"Data.GraphViz.Printing\\nlistToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1472 [label=\"Data.GraphViz.Printing\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1477 [label=\"Data.GraphViz.Printing\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=cyan];\n\t\t\t1486 [label=\"Data.GraphViz.Printing\\nunqtListToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_ClusterMode {\n\t\t\tgraph [label=\"Instance for: ClusterMode\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t557 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_Color {\n\t\t\tgraph [label=\"Instance for: Color\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1206 [label=\"Data.GraphViz.Attributes.Colors\\nlistToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1218 [label=\"Data.GraphViz.Attributes.Colors\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1221 [label=\"Data.GraphViz.Attributes.Colors\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1224 [label=\"Data.GraphViz.Attributes.Colors\\nunqtListToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_ColorScheme {\n\t\t\tgraph [label=\"Instance for: ColorScheme\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1222 [label=\"Data.GraphViz.Attributes.Colors\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_CompassPoint {\n\t\t\tgraph [label=\"Instance for: CompassPoint\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1366 [label=\"Data.GraphViz.Attributes.Internal\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_DEConstraints {\n\t\t\tgraph [label=\"Instance for: DEConstraints\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t558 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_DPoint {\n\t\t\tgraph [label=\"Instance for: DPoint\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t521 [label=\"Data.GraphViz.Attributes\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t559 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_DirType {\n\t\t\tgraph [label=\"Instance for: DirType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t560 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_Double {\n\t\t\tgraph [label=\"Instance for: Double\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1461 [label=\"Data.GraphViz.Printing\\nlistToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1473 [label=\"Data.GraphViz.Printing\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1478 [label=\"Data.GraphViz.Printing\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=cyan];\n\t\t\t1487 [label=\"Data.GraphViz.Printing\\nunqtListToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_EdgeType {\n\t\t\tgraph [label=\"Instance for: EdgeType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t522 [label=\"Data.GraphViz.Attributes\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t561 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_FocusType {\n\t\t\tgraph [label=\"Instance for: FocusType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t523 [label=\"Data.GraphViz.Attributes\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t562 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_GlobalAttributes {\n\t\t\tgraph [label=\"Instance for: GlobalAttributes\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1710 [label=\"Data.GraphViz.Types.Common\\nlistToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1768 [label=\"Data.GraphViz.Types.Common\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1772 [label=\"Data.GraphViz.Types.Common\\nunqtListToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_GraphID {\n\t\t\tgraph [label=\"Instance for: GraphID\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1761 [label=\"Data.GraphViz.Types.Common\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1769 [label=\"Data.GraphViz.Types.Common\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_HtmlAlign {\n\t\t\tgraph [label=\"Instance for: HtmlAlign\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1328 [label=\"Data.GraphViz.Attributes.HTML\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_HtmlAttribute {\n\t\t\tgraph [label=\"Instance for: HtmlAttribute\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1277 [label=\"Data.GraphViz.Attributes.HTML\\nlistToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1329 [label=\"Data.GraphViz.Attributes.HTML\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1338 [label=\"Data.GraphViz.Attributes.HTML\\nunqtListToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_HtmlCell {\n\t\t\tgraph [label=\"Instance for: HtmlCell\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1278 [label=\"Data.GraphViz.Attributes.HTML\\nlistToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1330 [label=\"Data.GraphViz.Attributes.HTML\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1339 [label=\"Data.GraphViz.Attributes.HTML\\nunqtListToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_HtmlImg {\n\t\t\tgraph [label=\"Instance for: HtmlImg\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1331 [label=\"Data.GraphViz.Attributes.HTML\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_HtmlLabel {\n\t\t\tgraph [label=\"Instance for: HtmlLabel\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1332 [label=\"Data.GraphViz.Attributes.HTML\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_HtmlRow {\n\t\t\tgraph [label=\"Instance for: HtmlRow\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1279 [label=\"Data.GraphViz.Attributes.HTML\\nlistToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1333 [label=\"Data.GraphViz.Attributes.HTML\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1340 [label=\"Data.GraphViz.Attributes.HTML\\nunqtListToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_HtmlScale {\n\t\t\tgraph [label=\"Instance for: HtmlScale\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1334 [label=\"Data.GraphViz.Attributes.HTML\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_HtmlTable {\n\t\t\tgraph [label=\"Instance for: HtmlTable\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1335 [label=\"Data.GraphViz.Attributes.HTML\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_HtmlTextItem {\n\t\t\tgraph [label=\"Instance for: HtmlTextItem\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1280 [label=\"Data.GraphViz.Attributes.HTML\\nlistToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1336 [label=\"Data.GraphViz.Attributes.HTML\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1341 [label=\"Data.GraphViz.Attributes.HTML\\nunqtListToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_HtmlVAlign {\n\t\t\tgraph [label=\"Instance for: HtmlVAlign\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1337 [label=\"Data.GraphViz.Attributes.HTML\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_Int {\n\t\t\tgraph [label=\"Instance for: Int\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1479 [label=\"Data.GraphViz.Printing\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=cyan];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_Justification {\n\t\t\tgraph [label=\"Instance for: Justification\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t563 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_Label {\n\t\t\tgraph [label=\"Instance for: Label\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t524 [label=\"Data.GraphViz.Attributes\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t564 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_LayerID {\n\t\t\tgraph [label=\"Instance for: LayerID\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t423 [label=\"Data.GraphViz.Attributes\\nlistToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t525 [label=\"Data.GraphViz.Attributes\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t565 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t594 [label=\"Data.GraphViz.Attributes\\nunqtListToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_LayerList {\n\t\t\tgraph [label=\"Instance for: LayerList\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t526 [label=\"Data.GraphViz.Attributes\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t566 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_LayerRange {\n\t\t\tgraph [label=\"Instance for: LayerRange\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t527 [label=\"Data.GraphViz.Attributes\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t567 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_ModeType {\n\t\t\tgraph [label=\"Instance for: ModeType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t568 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_Model {\n\t\t\tgraph [label=\"Instance for: Model\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t569 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_OutputMode {\n\t\t\tgraph [label=\"Instance for: OutputMode\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t570 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_Overlap {\n\t\t\tgraph [label=\"Instance for: Overlap\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t571 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_Pack {\n\t\t\tgraph [label=\"Instance for: Pack\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t572 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_PackMode {\n\t\t\tgraph [label=\"Instance for: PackMode\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t573 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_PageDir {\n\t\t\tgraph [label=\"Instance for: PageDir\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t574 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_Point {\n\t\t\tgraph [label=\"Instance for: Point\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t424 [label=\"Data.GraphViz.Attributes\\nlistToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t528 [label=\"Data.GraphViz.Attributes\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t575 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t595 [label=\"Data.GraphViz.Attributes\\nunqtListToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_PortName {\n\t\t\tgraph [label=\"Instance for: PortName\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1364 [label=\"Data.GraphViz.Attributes.Internal\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1367 [label=\"Data.GraphViz.Attributes.Internal\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_PortPos {\n\t\t\tgraph [label=\"Instance for: PortPos\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1365 [label=\"Data.GraphViz.Attributes.Internal\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1368 [label=\"Data.GraphViz.Attributes.Internal\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_Pos {\n\t\t\tgraph [label=\"Instance for: Pos\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t529 [label=\"Data.GraphViz.Attributes\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t576 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_QuadType {\n\t\t\tgraph [label=\"Instance for: QuadType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t577 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_RankDir {\n\t\t\tgraph [label=\"Instance for: RankDir\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t578 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_RankType {\n\t\t\tgraph [label=\"Instance for: RankType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t579 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_Ratios {\n\t\t\tgraph [label=\"Instance for: Ratios\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t580 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_RecordField {\n\t\t\tgraph [label=\"Instance for: RecordField\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t425 [label=\"Data.GraphViz.Attributes\\nlistToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t530 [label=\"Data.GraphViz.Attributes\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t581 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t596 [label=\"Data.GraphViz.Attributes\\nunqtListToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_Rect {\n\t\t\tgraph [label=\"Instance for: Rect\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t531 [label=\"Data.GraphViz.Attributes\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t582 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_Root {\n\t\t\tgraph [label=\"Instance for: Root\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t532 [label=\"Data.GraphViz.Attributes\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t583 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_STStyle {\n\t\t\tgraph [label=\"Instance for: STStyle\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t584 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_ScaleType {\n\t\t\tgraph [label=\"Instance for: ScaleType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t585 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_Shape {\n\t\t\tgraph [label=\"Instance for: Shape\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t586 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_SmoothType {\n\t\t\tgraph [label=\"Instance for: SmoothType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t587 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_Spline {\n\t\t\tgraph [label=\"Instance for: Spline\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t426 [label=\"Data.GraphViz.Attributes\\nlistToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t533 [label=\"Data.GraphViz.Attributes\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t588 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t597 [label=\"Data.GraphViz.Attributes\\nunqtListToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_StartType {\n\t\t\tgraph [label=\"Instance for: StartType\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t589 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_StyleItem {\n\t\t\tgraph [label=\"Instance for: StyleItem\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t427 [label=\"Data.GraphViz.Attributes\\nlistToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t534 [label=\"Data.GraphViz.Attributes\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t590 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t598 [label=\"Data.GraphViz.Attributes\\nunqtListToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_StyleName {\n\t\t\tgraph [label=\"Instance for: StyleName\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t535 [label=\"Data.GraphViz.Attributes\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t591 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_VerticalPlacement {\n\t\t\tgraph [label=\"Instance for: VerticalPlacement\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t592 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_ViewPort {\n\t\t\tgraph [label=\"Instance for: ViewPort\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t536 [label=\"Data.GraphViz.Attributes\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t593 [label=\"Data.GraphViz.Attributes\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_Word16 {\n\t\t\tgraph [label=\"Instance for: Word16\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1480 [label=\"Data.GraphViz.Printing\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=cyan];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_Word8 {\n\t\t\tgraph [label=\"Instance for: Word8\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1481 [label=\"Data.GraphViz.Printing\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=cyan];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_X11Color {\n\t\t\tgraph [label=\"Instance for: X11Color\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1223 [label=\"Data.GraphViz.Attributes.Colors\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_Class_PrintDot_Data_a {\n\t\t\tgraph [label=\"Instance for: [a]\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1474 [label=\"Data.GraphViz.Printing\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1482 [label=\"Data.GraphViz.Printing\\nunqtDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\tsubgraph cluster_DefaultInstance_PrintDot {\n\t\t\tgraph [label=\"Default Instance\",\n\t\t\t\tfillcolor=slategray1];\n\t\t\t1459 [label=\"Data.GraphViz.Printing\\nlistToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1471 [label=\"Data.GraphViz.Printing\\ntoDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t\t1485 [label=\"Data.GraphViz.Printing\\nunqtListToDot\", style=\"filled,solid\", shape=octagon, fillcolor=bisque];\n\t\t}\n\t\t1458 [label=\"Data.GraphViz.Printing\\nlistToDot\", style=\"filled,solid\", shape=doubleoctagon, fillcolor=goldenrod];\n\t\t1470 [label=\"Data.GraphViz.Printing\\ntoDot\", style=\"filled,solid\", shape=doubleoctagon, fillcolor=goldenrod];\n\t\t1475 [label=\"Data.GraphViz.Printing\\nunqtDot\", style=\"filled,solid\", shape=doubleoctagon, fillcolor=goldenrod];\n\t\t1484 [label=\"Data.GraphViz.Printing\\nunqtListToDot\", style=\"filled,solid\", shape=doubleoctagon, fillcolor=goldenrod];\n\t\t422 -> 1484 [penwidth=1, color=black];\n\t\t423 -> 1470 [penwidth=1, color=black];\n\t\t423 -> 1475 [penwidth=1, color=black];\n\t\t424 -> 1484 [penwidth=1, color=black];\n\t\t425 -> 1470 [penwidth=1, color=black];\n\t\t425 -> 1484 [penwidth=1, color=black];\n\t\t426 -> 1484 [penwidth=1, color=black];\n\t\t427 -> 1470 [penwidth=1, color=black];\n\t\t427 -> 1484 [penwidth=1, color=black];\n\t\t520 -> 1475 [penwidth=\"1.6931471805599454\", color=black];\n\t\t521 -> 1470 [penwidth=\"1.6931471805599454\", color=black];\n\t\t522 -> 1475 [penwidth=1, color=black];\n\t\t523 -> 1470 [penwidth=\"1.6931471805599454\", color=black];\n\t\t524 -> 1470 [penwidth=\"1.6931471805599454\", color=black];\n\t\t524 -> 1475 [penwidth=1, color=black];\n\t\t525 -> 1470 [penwidth=1, color=black];\n\t\t525 -> 1475 [penwidth=1, color=black];\n\t\t526 -> 1470 [penwidth=1, color=black];\n\t\t527 -> 1470 [penwidth=1, color=black];\n\t\t527 -> 1475 [penwidth=1, color=black];\n\t\t528 -> 1475 [penwidth=1, color=black];\n\t\t529 -> 1470 [penwidth=\"1.6931471805599454\", color=black];\n\t\t530 -> 1475 [penwidth=1, color=black];\n\t\t531 -> 1475 [penwidth=1, color=black];\n\t\t532 -> 1470 [penwidth=1, color=black];\n\t\t532 -> 1475 [penwidth=1, color=black];\n\t\t533 -> 1475 [penwidth=1, color=black];\n\t\t534 -> 1470 [penwidth=1, color=black];\n\t\t534 -> 1475 [penwidth=1, color=black];\n\t\t535 -> 1470 [penwidth=1, color=black];\n\t\t535 -> 1475 [penwidth=1, color=black];\n\t\t536 -> 1475 [penwidth=1, color=black];\n\t\t551 -> 1475 [penwidth=\"1.6931471805599454\", color=black];\n\t\t552 -> 1475 [penwidth=\"3.1972245773362196\", color=black];\n\t\t554 -> 1475 [penwidth=\"1.6931471805599454\", color=black];\n\t\t555 -> 1475 [penwidth=1, color=black];\n\t\t556 -> 1470 [penwidth=\"1.6931471805599454\", color=black];\n\t\t557 -> 1475 [penwidth=\"2.09861228866811\", color=black];\n\t\t558 -> 1475 [penwidth=\"1.6931471805599454\", color=black];\n\t\t559 -> 1475 [penwidth=\"1.6931471805599454\", color=black];\n\t\t560 -> 1475 [penwidth=\"2.386294361119891\", color=black];\n\t\t561 -> 1470 [penwidth=\"1.6931471805599454\", color=black];\n\t\t562 -> 1475 [penwidth=\"1.6931471805599454\", color=black];\n\t\t564 -> 1475 [penwidth=\"2.09861228866811\", color=black];\n\t\t565 -> 1475 [penwidth=\"1.6931471805599454\", color=black];\n\t\t566 -> 1475 [penwidth=1, color=black];\n\t\t567 -> 1475 [penwidth=\"2.386294361119891\", color=black];\n\t\t571 -> 1475 [penwidth=\"2.09861228866811\", color=black];\n\t\t572 -> 1475 [penwidth=\"2.09861228866811\", color=black];\n\t\t573 -> 1475 [penwidth=1, color=black];\n\t\t575 -> 1475 [penwidth=1, color=black];\n\t\t576 -> 1475 [penwidth=\"1.6931471805599454\", color=black];\n\t\t580 -> 1475 [penwidth=1, color=black];\n\t\t581 -> 1475 [penwidth=1, color=black];\n\t\t583 -> 1475 [penwidth=\"2.09861228866811\", color=black];\n\t\t585 -> 1475 [penwidth=\"1.6931471805599454\", color=black];\n\t\t588 -> 1475 [penwidth=1, color=black];\n\t\t589 -> 1475 [penwidth=\"2.386294361119891\", color=black];\n\t\t590 -> 1475 [penwidth=\"1.6931471805599454\", color=black];\n\t\t591 -> 1475 [penwidth=1, color=black];\n\t\t593 -> 1475 [penwidth=\"1.6931471805599454\", color=black];\n\t\t594 -> 1475 [penwidth=\"1.6931471805599454\", color=black];\n\t\t595 -> 1475 [penwidth=1, color=black];\n\t\t596 -> 1475 [penwidth=\"1.6931471805599454\", color=black];\n\t\t597 -> 1475 [penwidth=1, color=black];\n\t\t598 -> 1475 [penwidth=1, color=black];\n\t\t1206 -> 1470 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1206 -> 1484 [penwidth=1, color=black];\n\t\t1218 -> 1470 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1218 -> 1475 [penwidth=1, color=black];\n\t\t1220 -> 1475 [penwidth=\"4.555348061489413\", color=black];\n\t\t1221 -> 1475 [penwidth=\"2.09861228866811\", color=black];\n\t\t1222 -> 1475 [penwidth=\"2.09861228866811\", color=black];\n\t\t1223 -> 1475 [penwidth=\"7.302618975744905\", color=black];\n\t\t1224 -> 1475 [penwidth=1, color=black];\n\t\t1277 -> 1484 [penwidth=1, color=black];\n\t\t1278 -> 1484 [penwidth=1, color=black];\n\t\t1279 -> 1484 [penwidth=1, color=black];\n\t\t1280 -> 1484 [penwidth=1, color=black];\n\t\t1330 -> 1475 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1332 -> 1475 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1333 -> 1475 [penwidth=1, color=black];\n\t\t1335 -> 1470 [penwidth=1, color=black];\n\t\t1336 -> 1475 [penwidth=1, color=black];\n\t\t1338 -> 1475 [penwidth=1, color=black];\n\t\t1339 -> 1475 [penwidth=1, color=black];\n\t\t1340 -> 1475 [penwidth=1, color=black];\n\t\t1341 -> 1475 [penwidth=1, color=black];\n\t\t1364 -> 1470 [penwidth=1, color=black];\n\t\t1365 -> 1470 [penwidth=1, color=black];\n\t\t1365 -> 1475 [penwidth=\"1.6931471805599454\", color=black];\n\t\t1367 -> 1475 [penwidth=1, color=black];\n\t\t1368 -> 1475 [penwidth=\"2.09861228866811\", color=black];\n\t\t1458 -> 422 [penwidth=1, color=navy, dir=none];\n\t\t1458 -> 423 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1458 -> 424 [penwidth=1, color=navy, dir=none];\n\t\t1458 -> 425 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1458 -> 426 [penwidth=1, color=navy, dir=none];\n\t\t1458 -> 427 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1458 -> 1206 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1458 -> 1277 [penwidth=1, color=navy, dir=none];\n\t\t1458 -> 1278 [penwidth=1, color=navy, dir=none];\n\t\t1458 -> 1279 [penwidth=1, color=navy, dir=none];\n\t\t1458 -> 1280 [penwidth=1, color=navy, dir=none];\n\t\t1458 -> 1459 [penwidth=1, color=turquoise, dir=none];\n\t\t1458 -> 1460 [penwidth=1, color=navy, dir=none];\n\t\t1458 -> 1461 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1458 -> 1708 [penwidth=1, color=navy, dir=none];\n\t\t1458 -> 1709 [penwidth=1, color=navy, dir=none];\n\t\t1458 -> 1710 [penwidth=1, color=navy, dir=none];\n\t\t1458 -> 1797 [penwidth=1, color=navy, dir=none];\n\t\t1458 -> 1798 [penwidth=1, color=navy, dir=none];\n\t\t1459 -> 1484 [penwidth=1, color=black];\n\t\t1461 -> 1470 [penwidth=1, color=black];\n\t\t1461 -> 1484 [penwidth=1, color=black];\n\t\t1470 -> 520 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1470 -> 521 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1470 -> 522 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1470 -> 523 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1470 -> 524 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1470 -> 525 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1470 -> 526 [penwidth=1, color=navy, dir=none];\n\t\t1470 -> 527 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1470 -> 528 [penwidth=1, color=navy, dir=none];\n\t\t1470 -> 529 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1470 -> 530 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1470 -> 531 [penwidth=1, color=navy, dir=none];\n\t\t1470 -> 532 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1470 -> 533 [penwidth=1, color=navy, dir=none];\n\t\t1470 -> 534 [penwidth=1, color=navy, dir=none];\n\t\t1470 -> 535 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1470 -> 536 [penwidth=1, color=navy, dir=none];\n\t\t1470 -> 1218 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1470 -> 1364 [penwidth=1, color=navy, dir=none];\n\t\t1470 -> 1365 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1470 -> 1471 [penwidth=1, color=turquoise, dir=none];\n\t\t1470 -> 1472 [penwidth=1, color=navy, dir=none];\n\t\t1470 -> 1473 [penwidth=1, color=navy, dir=none];\n\t\t1470 -> 1474 [penwidth=1, color=navy, dir=none];\n\t\t1470 -> 1761 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1471 -> 1475 [penwidth=1, color=black];\n\t\t1473 -> 1475 [penwidth=1, color=black];\n\t\t1474 -> 1458 [penwidth=1, color=chartreuse];\n\t\t1475 -> 550 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1475 -> 551 [penwidth=1, color=navy, dir=none];\n\t\t1475 -> 552 [penwidth=\"3.1972245773362196\", color=navy, dir=none];\n\t\t1475 -> 553 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1475 -> 554 [penwidth=1, color=navy, dir=none];\n\t\t1475 -> 555 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1475 -> 556 [penwidth=\"5.976733742420574\", color=navy, dir=none];\n\t\t1475 -> 557 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1475 -> 558 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1475 -> 559 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1475 -> 560 [penwidth=\"2.386294361119891\", color=navy, dir=none];\n\t\t1475 -> 561 [penwidth=\"2.6094379124341005\", color=navy, dir=none];\n\t\t1475 -> 562 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1475 -> 563 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1475 -> 564 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1475 -> 565 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1475 -> 566 [penwidth=1, color=navy, dir=none];\n\t\t1475 -> 567 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1475 -> 568 [penwidth=\"2.386294361119891\", color=navy, dir=none];\n\t\t1475 -> 569 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1475 -> 570 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1475 -> 571 [penwidth=\"3.0794415416798357\", color=navy, dir=none];\n\t\t1475 -> 572 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1475 -> 573 [penwidth=\"2.386294361119891\", color=navy, dir=none];\n\t\t1475 -> 574 [penwidth=\"3.0794415416798357\", color=navy, dir=none];\n\t\t1475 -> 575 [penwidth=1, color=navy, dir=none];\n\t\t1475 -> 576 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1475 -> 577 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1475 -> 578 [penwidth=\"2.386294361119891\", color=navy, dir=none];\n\t\t1475 -> 579 [penwidth=\"2.6094379124341005\", color=navy, dir=none];\n\t\t1475 -> 580 [penwidth=\"2.6094379124341005\", color=navy, dir=none];\n\t\t1475 -> 581 [penwidth=\"2.386294361119891\", color=navy, dir=none];\n\t\t1475 -> 582 [penwidth=1, color=navy, dir=none];\n\t\t1475 -> 583 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1475 -> 584 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1475 -> 585 [penwidth=\"2.6094379124341005\", color=navy, dir=none];\n\t\t1475 -> 586 [penwidth=\"4.465735902799727\", color=navy, dir=none];\n\t\t1475 -> 587 [penwidth=\"2.9459101490553135\", color=navy, dir=none];\n\t\t1475 -> 588 [penwidth=1, color=navy, dir=none];\n\t\t1475 -> 589 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1475 -> 590 [penwidth=1, color=navy, dir=none];\n\t\t1475 -> 591 [penwidth=\"3.1972245773362196\", color=navy, dir=none];\n\t\t1475 -> 592 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1475 -> 593 [penwidth=1, color=navy, dir=none];\n\t\t1475 -> 1220 [penwidth=\"4.555348061489413\", color=navy, dir=none];\n\t\t1475 -> 1221 [penwidth=\"2.6094379124341005\", color=navy, dir=none];\n\t\t1475 -> 1222 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1475 -> 1223 [penwidth=\"7.302618975744905\", color=navy, dir=none];\n\t\t1475 -> 1328 [penwidth=\"2.386294361119891\", color=navy, dir=none];\n\t\t1475 -> 1329 [penwidth=\"4.091042453358316\", color=navy, dir=none];\n\t\t1475 -> 1330 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1475 -> 1331 [penwidth=1, color=navy, dir=none];\n\t\t1475 -> 1332 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1475 -> 1333 [penwidth=1, color=navy, dir=none];\n\t\t1475 -> 1334 [penwidth=\"2.6094379124341005\", color=navy, dir=none];\n\t\t1475 -> 1335 [penwidth=1, color=navy, dir=none];\n\t\t1475 -> 1336 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1475 -> 1337 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1475 -> 1366 [penwidth=\"3.302585092994046\", color=navy, dir=none];\n\t\t1475 -> 1367 [penwidth=1, color=navy, dir=none];\n\t\t1475 -> 1368 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1475 -> 1476 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1475 -> 1477 [penwidth=1, color=navy, dir=none];\n\t\t1475 -> 1478 [penwidth=1, color=navy, dir=none];\n\t\t1475 -> 1479 [penwidth=1, color=navy, dir=none];\n\t\t1475 -> 1480 [penwidth=1, color=navy, dir=none];\n\t\t1475 -> 1481 [penwidth=1, color=navy, dir=none];\n\t\t1475 -> 1482 [penwidth=1, color=navy, dir=none];\n\t\t1475 -> 1766 [penwidth=1, color=navy, dir=none];\n\t\t1475 -> 1767 [penwidth=1, color=navy, dir=none];\n\t\t1475 -> 1768 [penwidth=1, color=navy, dir=none];\n\t\t1475 -> 1769 [penwidth=\"2.09861228866811\", color=navy, dir=none];\n\t\t1475 -> 1821 [penwidth=1, color=navy, dir=none];\n\t\t1475 -> 1822 [penwidth=\"2.386294361119891\", color=navy, dir=none];\n\t\t1475 -> 1823 [penwidth=1, color=navy, dir=none];\n\t\t1482 -> 1484 [penwidth=1, color=black];\n\t\t1484 -> 594 [penwidth=1, color=navy, dir=none];\n\t\t1484 -> 595 [penwidth=1, color=navy, dir=none];\n\t\t1484 -> 596 [penwidth=\"1.6931471805599454\", color=navy, dir=none];\n\t\t1484 -> 597 [penwidth=1, color=navy, dir=none];\n\t\t1484 -> 598 [penwidth=1, color=navy, dir=none];\n\t\t1484 -> 1224 [penwidth=1, color=navy, dir=none];\n\t\t1484 -> 1338 [penwidth=1, color=navy, dir=none];\n\t\t1484 -> 1339 [penwidth=1, color=navy, dir=none];\n\t\t1484 -> 1340 [penwidth=1, color=navy, dir=none];\n\t\t1484 -> 1341 [penwidth=1, color=navy, dir=none];\n\t\t1484 -> 1485 [penwidth=1, color=turquoise, dir=none];\n\t\t1484 -> 1486 [penwidth=1, color=navy, dir=none];\n\t\t1484 -> 1487 [penwidth=1, color=navy, dir=none];\n\t\t1484 -> 1770 [penwidth=1, color=navy, dir=none];\n\t\t1484 -> 1771 [penwidth=1, color=navy, dir=none];\n\t\t1484 -> 1772 [penwidth=1, color=navy, dir=none];\n\t\t1484 -> 1824 [penwidth=1, color=navy, dir=none];\n\t\t1484 -> 1825 [penwidth=1, color=navy, dir=none];\n\t\t1485 -> 1475 [penwidth=1, color=black];\n\t\t1487 -> 1475 [penwidth=1, color=black];\n\t\t1708 -> 1484 [penwidth=1, color=black];\n\t\t1709 -> 1484 [penwidth=1, color=black];\n\t\t1710 -> 1484 [penwidth=1, color=black];\n\t\t1761 -> 1470 [penwidth=1, color=black];\n\t\t1761 -> 1475 [penwidth=1, color=black];\n\t\t1768 -> 1470 [penwidth=1, color=black];\n\t\t1769 -> 1475 [penwidth=\"2.09861228866811\", color=black];\n\t\t1797 -> 1484 [penwidth=1, color=black];\n\t\t1798 -> 1484 [penwidth=1, color=black];\n\t\t1822 -> 1475 [penwidth=\"2.386294361119891\", color=black];\n\t\t1824 -> 1475 [penwidth=1, color=black];\n\t}\n\tsubgraph cluster_Data_ArrowFill {\n\t\tgraph [label=\"Data: ArrowFill\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t159 [label=\"Data.GraphViz.Attributes\\nFilledArrow\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t275 [label=\"Data.GraphViz.Attributes\\nOpenArrow\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_ArrowModifier {\n\t\tgraph [label=\"Data: ArrowModifier\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t84 [label=\"Data.GraphViz.Attributes\\nArrMod\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t402 [label=\"Data.GraphViz.Attributes\\narrowFill\", style=\"filled,solid\", shape=component, fillcolor=gold];\n\t\t403 [label=\"Data.GraphViz.Attributes\\narrowSide\", style=\"filled,solid\", shape=component, fillcolor=gold];\n\t\t402 -> 84 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t403 -> 84 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t}\n\tsubgraph cluster_Data_ArrowShape {\n\t\tgraph [label=\"Data: ArrowShape\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t99 [label=\"Data.GraphViz.Attributes\\nBox\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t119 [label=\"Data.GraphViz.Attributes\\nCrow\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t128 [label=\"Data.GraphViz.Attributes\\nDiamond\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t137 [label=\"Data.GraphViz.Attributes\\nDotArrow\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t191 [label=\"Data.GraphViz.Attributes\\nInv\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t254 [label=\"Data.GraphViz.Attributes\\nNoArrow\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t267 [label=\"Data.GraphViz.Attributes\\nNormal\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t377 [label=\"Data.GraphViz.Attributes\\nTee\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t393 [label=\"Data.GraphViz.Attributes\\nVee\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_ArrowSide {\n\t\tgraph [label=\"Data: ArrowSide\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t98 [label=\"Data.GraphViz.Attributes\\nBothSides\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t232 [label=\"Data.GraphViz.Attributes\\nLeftSide\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t328 [label=\"Data.GraphViz.Attributes\\nRightSide\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_ArrowType {\n\t\tgraph [label=\"Data: ArrowType\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t82 [label=\"Data.GraphViz.Attributes\\nAType\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_AspectType {\n\t\tgraph [label=\"Data: AspectType\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t316 [label=\"Data.GraphViz.Attributes\\nRatioOnly\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t317 [label=\"Data.GraphViz.Attributes\\nRatioPassCount\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_Attribute {\n\t\tgraph [label=\"Data: Attribute\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t31 [label=\"Data.GraphViz.AttributeGenerator\\nA\", style=\"filled,solid\", shape=box3d, fillcolor=crimson];\n\t\t48 [label=\"Data.GraphViz.AttributeGenerator\\ncnst\", style=\"filled,solid\", shape=component, fillcolor=crimson];\n\t\t49 [label=\"Data.GraphViz.AttributeGenerator\\ncomment\", style=\"filled,solid\", shape=component, fillcolor=crimson];\n\t\t57 [label=\"Data.GraphViz.AttributeGenerator\\nforClusters\", style=\"filled,solid\", shape=component, fillcolor=crimson];\n\t\t58 [label=\"Data.GraphViz.AttributeGenerator\\nforEdges\", style=\"filled,solid\", shape=component, fillcolor=crimson];\n\t\t59 [label=\"Data.GraphViz.AttributeGenerator\\nforGraphs\", style=\"filled,solid\", shape=component, fillcolor=crimson];\n\t\t60 [label=\"Data.GraphViz.AttributeGenerator\\nforNodes\", style=\"filled,solid\", shape=component, fillcolor=crimson];\n\t\t61 [label=\"Data.GraphViz.AttributeGenerator\\nforSubGraphs\", style=\"filled,solid\", shape=component, fillcolor=crimson];\n\t\t66 [label=\"Data.GraphViz.AttributeGenerator\\nname\", style=\"filled,solid\", shape=component, fillcolor=crimson];\n\t\t67 [label=\"Data.GraphViz.AttributeGenerator\\nparseDef\", style=\"filled,solid\", shape=component, fillcolor=crimson];\n\t\t69 [label=\"Data.GraphViz.AttributeGenerator\\nparseNames\", style=\"filled,solid\", shape=component, fillcolor=crimson];\n\t\t77 [label=\"Data.GraphViz.AttributeGenerator\\nvaltype\", style=\"filled,solid\", shape=component, fillcolor=crimson];\n\t\t85 [label=\"Data.GraphViz.Attributes\\nArrowHead\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t86 [label=\"Data.GraphViz.Attributes\\nArrowSize\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t87 [label=\"Data.GraphViz.Attributes\\nArrowTail\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t88 [label=\"Data.GraphViz.Attributes\\nAspect\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t93 [label=\"Data.GraphViz.Attributes\\nBb\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t94 [label=\"Data.GraphViz.Attributes\\nBgColor\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t104 [label=\"Data.GraphViz.Attributes\\nCenter\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t105 [label=\"Data.GraphViz.Attributes\\nCharset\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t108 [label=\"Data.GraphViz.Attributes\\nClusterRank\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t109 [label=\"Data.GraphViz.Attributes\\nColor\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t110 [label=\"Data.GraphViz.Attributes\\nColorScheme\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t111 [label=\"Data.GraphViz.Attributes\\nComment\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t113 [label=\"Data.GraphViz.Attributes\\nCompound\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t117 [label=\"Data.GraphViz.Attributes\\nConcentrate\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t118 [label=\"Data.GraphViz.Attributes\\nConstraint\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t121 [label=\"Data.GraphViz.Attributes\\nDPI\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t123 [label=\"Data.GraphViz.Attributes\\nDamping\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t125 [label=\"Data.GraphViz.Attributes\\nDecorate\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t126 [label=\"Data.GraphViz.Attributes\\nDefaultDist\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t130 [label=\"Data.GraphViz.Attributes\\nDim\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t131 [label=\"Data.GraphViz.Attributes\\nDimen\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t132 [label=\"Data.GraphViz.Attributes\\nDir\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t133 [label=\"Data.GraphViz.Attributes\\nDirEdgeConstraints\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t134 [label=\"Data.GraphViz.Attributes\\nDistortion\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t141 [label=\"Data.GraphViz.Attributes\\nESep\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t143 [label=\"Data.GraphViz.Attributes\\nEdgeTarget\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t144 [label=\"Data.GraphViz.Attributes\\nEdgeTooltip\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t145 [label=\"Data.GraphViz.Attributes\\nEdgeURL\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t149 [label=\"Data.GraphViz.Attributes\\nEpsilon\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t154 [label=\"Data.GraphViz.Attributes\\nFillColor\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t160 [label=\"Data.GraphViz.Attributes\\nFixedSize\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t163 [label=\"Data.GraphViz.Attributes\\nFontColor\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t164 [label=\"Data.GraphViz.Attributes\\nFontName\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t165 [label=\"Data.GraphViz.Attributes\\nFontNames\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t166 [label=\"Data.GraphViz.Attributes\\nFontPath\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t167 [label=\"Data.GraphViz.Attributes\\nFontSize\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t175 [label=\"Data.GraphViz.Attributes\\nGroup\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t176 [label=\"Data.GraphViz.Attributes\\nHeadClip\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t177 [label=\"Data.GraphViz.Attributes\\nHeadLabel\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t178 [label=\"Data.GraphViz.Attributes\\nHeadPort\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t179 [label=\"Data.GraphViz.Attributes\\nHeadTarget\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t180 [label=\"Data.GraphViz.Attributes\\nHeadTooltip\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t181 [label=\"Data.GraphViz.Attributes\\nHeadURL\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t182 [label=\"Data.GraphViz.Attributes\\nHeight\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t188 [label=\"Data.GraphViz.Attributes\\nID\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t189 [label=\"Data.GraphViz.Attributes\\nImage\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t190 [label=\"Data.GraphViz.Attributes\\nImageScale\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t202 [label=\"Data.GraphViz.Attributes\\nK\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t205 [label=\"Data.GraphViz.Attributes\\nLHead\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t207 [label=\"Data.GraphViz.Attributes\\nLPos\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t212 [label=\"Data.GraphViz.Attributes\\nLTail\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t213 [label=\"Data.GraphViz.Attributes\\nLabel\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t214 [label=\"Data.GraphViz.Attributes\\nLabelAngle\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t215 [label=\"Data.GraphViz.Attributes\\nLabelDistance\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t216 [label=\"Data.GraphViz.Attributes\\nLabelFloat\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t217 [label=\"Data.GraphViz.Attributes\\nLabelFontColor\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t218 [label=\"Data.GraphViz.Attributes\\nLabelFontName\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t219 [label=\"Data.GraphViz.Attributes\\nLabelFontSize\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t220 [label=\"Data.GraphViz.Attributes\\nLabelJust\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t221 [label=\"Data.GraphViz.Attributes\\nLabelLoc\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t222 [label=\"Data.GraphViz.Attributes\\nLabelTarget\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t223 [label=\"Data.GraphViz.Attributes\\nLabelTooltip\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t224 [label=\"Data.GraphViz.Attributes\\nLabelURL\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t226 [label=\"Data.GraphViz.Attributes\\nLandscape\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t227 [label=\"Data.GraphViz.Attributes\\nLayer\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t228 [label=\"Data.GraphViz.Attributes\\nLayerSep\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t229 [label=\"Data.GraphViz.Attributes\\nLayers\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t230 [label=\"Data.GraphViz.Attributes\\nLayout\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t233 [label=\"Data.GraphViz.Attributes\\nLen\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t234 [label=\"Data.GraphViz.Attributes\\nLevels\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t235 [label=\"Data.GraphViz.Attributes\\nLevelsGap\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t239 [label=\"Data.GraphViz.Attributes\\nMCLimit\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t245 [label=\"Data.GraphViz.Attributes\\nMargin\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t246 [label=\"Data.GraphViz.Attributes\\nMaxIter\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t248 [label=\"Data.GraphViz.Attributes\\nMinDist\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t249 [label=\"Data.GraphViz.Attributes\\nMinLen\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t251 [label=\"Data.GraphViz.Attributes\\nMode\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t252 [label=\"Data.GraphViz.Attributes\\nModel\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t253 [label=\"Data.GraphViz.Attributes\\nMosek\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t259 [label=\"Data.GraphViz.Attributes\\nNoJustify\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t265 [label=\"Data.GraphViz.Attributes\\nNodeSep\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t269 [label=\"Data.GraphViz.Attributes\\nNormalize\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t272 [label=\"Data.GraphViz.Attributes\\nNslimit\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t273 [label=\"Data.GraphViz.Attributes\\nNslimit1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t276 [label=\"Data.GraphViz.Attributes\\nOrdering\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t277 [label=\"Data.GraphViz.Attributes\\nOrientation\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t278 [label=\"Data.GraphViz.Attributes\\nOutputOrder\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t279 [label=\"Data.GraphViz.Attributes\\nOverlap\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t280 [label=\"Data.GraphViz.Attributes\\nOverlapScaling\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t282 [label=\"Data.GraphViz.Attributes\\nPack\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t287 [label=\"Data.GraphViz.Attributes\\nPackMode\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t289 [label=\"Data.GraphViz.Attributes\\nPad\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t290 [label=\"Data.GraphViz.Attributes\\nPage\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t291 [label=\"Data.GraphViz.Attributes\\nPageDir\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t293 [label=\"Data.GraphViz.Attributes\\nPenColor\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t294 [label=\"Data.GraphViz.Attributes\\nPenWidth\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t296 [label=\"Data.GraphViz.Attributes\\nPeripheries\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t297 [label=\"Data.GraphViz.Attributes\\nPin\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t305 [label=\"Data.GraphViz.Attributes\\nPos\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t308 [label=\"Data.GraphViz.Attributes\\nQuadTree\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t309 [label=\"Data.GraphViz.Attributes\\nQuantum\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t312 [label=\"Data.GraphViz.Attributes\\nRank\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t313 [label=\"Data.GraphViz.Attributes\\nRankDir\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t314 [label=\"Data.GraphViz.Attributes\\nRankSep\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t315 [label=\"Data.GraphViz.Attributes\\nRatio\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t319 [label=\"Data.GraphViz.Attributes\\nReMinCross\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t323 [label=\"Data.GraphViz.Attributes\\nRects\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t324 [label=\"Data.GraphViz.Attributes\\nRegular\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t327 [label=\"Data.GraphViz.Attributes\\nRepulsiveForce\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t329 [label=\"Data.GraphViz.Attributes\\nRoot\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t330 [label=\"Data.GraphViz.Attributes\\nRotate\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t334 [label=\"Data.GraphViz.Attributes\\nSameHead\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t336 [label=\"Data.GraphViz.Attributes\\nSameTail\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t337 [label=\"Data.GraphViz.Attributes\\nSamplePoints\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t340 [label=\"Data.GraphViz.Attributes\\nSearchSize\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t342 [label=\"Data.GraphViz.Attributes\\nSep\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t344 [label=\"Data.GraphViz.Attributes\\nShape\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t345 [label=\"Data.GraphViz.Attributes\\nShapeFile\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t347 [label=\"Data.GraphViz.Attributes\\nShowBoxes\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t348 [label=\"Data.GraphViz.Attributes\\nSides\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t350 [label=\"Data.GraphViz.Attributes\\nSize\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t351 [label=\"Data.GraphViz.Attributes\\nSkew\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t352 [label=\"Data.GraphViz.Attributes\\nSmoothing\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t354 [label=\"Data.GraphViz.Attributes\\nSortV\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t359 [label=\"Data.GraphViz.Attributes\\nSplines\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t361 [label=\"Data.GraphViz.Attributes\\nStart\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t366 [label=\"Data.GraphViz.Attributes\\nStyle\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t367 [label=\"Data.GraphViz.Attributes\\nStyleSheet\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t370 [label=\"Data.GraphViz.Attributes\\nTailClip\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t371 [label=\"Data.GraphViz.Attributes\\nTailLabel\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t372 [label=\"Data.GraphViz.Attributes\\nTailPort\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t373 [label=\"Data.GraphViz.Attributes\\nTailTarget\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t374 [label=\"Data.GraphViz.Attributes\\nTailTooltip\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t375 [label=\"Data.GraphViz.Attributes\\nTailURL\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t376 [label=\"Data.GraphViz.Attributes\\nTarget\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t379 [label=\"Data.GraphViz.Attributes\\nTooltip\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t385 [label=\"Data.GraphViz.Attributes\\nTrueColor\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t386 [label=\"Data.GraphViz.Attributes\\nURL\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t388 [label=\"Data.GraphViz.Attributes\\nUnknownAttribute\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t394 [label=\"Data.GraphViz.Attributes\\nVertices\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t395 [label=\"Data.GraphViz.Attributes\\nViewPort\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t396 [label=\"Data.GraphViz.Attributes\\nVoroMargin\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t398 [label=\"Data.GraphViz.Attributes\\nWeight\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t399 [label=\"Data.GraphViz.Attributes\\nWidth\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t401 [label=\"Data.GraphViz.Attributes\\nZ\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t48 -> 31 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t49 -> 31 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t57 -> 31 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t58 -> 31 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t59 -> 31 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t60 -> 31 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t61 -> 31 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t66 -> 31 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t67 -> 31 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t69 -> 31 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t77 -> 31 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t}\n\tsubgraph cluster_Data_Atts {\n\t\tgraph [label=\"Data: Atts\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t32 [label=\"Data.GraphViz.AttributeGenerator\\nAS\", style=\"filled,solid\", shape=box3d, fillcolor=crimson];\n\t\t46 [label=\"Data.GraphViz.AttributeGenerator\\natts\", style=\"filled,solid\", shape=component, fillcolor=crimson];\n\t\t74 [label=\"Data.GraphViz.AttributeGenerator\\ntpNm\", style=\"filled,solid\", shape=component, fillcolor=crimson];\n\t\t46 -> 32 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t74 -> 32 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t}\n\tsubgraph cluster_Data_BrewerName {\n\t\tgraph [label=\"Data: BrewerName\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t611 [label=\"Data.GraphViz.Attributes.Colors\\nAccent\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t642 [label=\"Data.GraphViz.Attributes.Colors\\nBlues\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t643 [label=\"Data.GraphViz.Attributes.Colors\\nBrbg\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t651 [label=\"Data.GraphViz.Attributes.Colors\\nBugn\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t652 [label=\"Data.GraphViz.Attributes.Colors\\nBupu\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t690 [label=\"Data.GraphViz.Attributes.Colors\\nDark2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t752 [label=\"Data.GraphViz.Attributes.Colors\\nGnbu\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t871 [label=\"Data.GraphViz.Attributes.Colors\\nGreens\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t872 [label=\"Data.GraphViz.Attributes.Colors\\nGreys\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1018 [label=\"Data.GraphViz.Attributes.Colors\\nOranges\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1024 [label=\"Data.GraphViz.Attributes.Colors\\nOrrd\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1025 [label=\"Data.GraphViz.Attributes.Colors\\nPaired\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1043 [label=\"Data.GraphViz.Attributes.Colors\\nPastel1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1044 [label=\"Data.GraphViz.Attributes.Colors\\nPastel2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1056 [label=\"Data.GraphViz.Attributes.Colors\\nPiyg\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1063 [label=\"Data.GraphViz.Attributes.Colors\\nPrgn\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1064 [label=\"Data.GraphViz.Attributes.Colors\\nPubu\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1065 [label=\"Data.GraphViz.Attributes.Colors\\nPubugn\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1066 [label=\"Data.GraphViz.Attributes.Colors\\nPuor\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1067 [label=\"Data.GraphViz.Attributes.Colors\\nPurd\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1073 [label=\"Data.GraphViz.Attributes.Colors\\nPurples\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1076 [label=\"Data.GraphViz.Attributes.Colors\\nRdbu\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1077 [label=\"Data.GraphViz.Attributes.Colors\\nRdgy\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1078 [label=\"Data.GraphViz.Attributes.Colors\\nRdpu\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1079 [label=\"Data.GraphViz.Attributes.Colors\\nRdylbu\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1080 [label=\"Data.GraphViz.Attributes.Colors\\nRdylgn\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1086 [label=\"Data.GraphViz.Attributes.Colors\\nReds\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1114 [label=\"Data.GraphViz.Attributes.Colors\\nSet1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1115 [label=\"Data.GraphViz.Attributes.Colors\\nSet2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1116 [label=\"Data.GraphViz.Attributes.Colors\\nSet3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1142 [label=\"Data.GraphViz.Attributes.Colors\\nSpectral\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1195 [label=\"Data.GraphViz.Attributes.Colors\\nYlgn\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1196 [label=\"Data.GraphViz.Attributes.Colors\\nYlgnbu\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1197 [label=\"Data.GraphViz.Attributes.Colors\\nYlorbr\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1198 [label=\"Data.GraphViz.Attributes.Colors\\nYlorrd\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_ClusterMode {\n\t\tgraph [label=\"Data: ClusterMode\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t173 [label=\"Data.GraphViz.Attributes\\nGlobal\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t237 [label=\"Data.GraphViz.Attributes\\nLocal\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t255 [label=\"Data.GraphViz.Attributes\\nNoCluster\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_ClusterTree {\n\t\tgraph [label=\"Data: ClusterTree\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1668 [label=\"Data.GraphViz.Types.Clustering\\nCT\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1670 [label=\"Data.GraphViz.Types.Clustering\\nNT\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t}\n\tsubgraph cluster_Data_Color {\n\t\tgraph [label=\"Data: Color\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t644 [label=\"Data.GraphViz.Attributes.Colors\\nBrewerColor\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t873 [label=\"Data.GraphViz.Attributes.Colors\\nHSV\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1074 [label=\"Data.GraphViz.Attributes.Colors\\nRGB\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1075 [label=\"Data.GraphViz.Attributes.Colors\\nRGBA\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1188 [label=\"Data.GraphViz.Attributes.Colors\\nX11Color\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1199 [label=\"Data.GraphViz.Attributes.Colors\\nalpha\", style=\"filled,solid\", shape=component, fillcolor=gold];\n\t\t1200 [label=\"Data.GraphViz.Attributes.Colors\\nblue\", style=\"filled,solid\", shape=component, fillcolor=gold];\n\t\t1203 [label=\"Data.GraphViz.Attributes.Colors\\ngreen\", style=\"filled,solid\", shape=component, fillcolor=gold];\n\t\t1205 [label=\"Data.GraphViz.Attributes.Colors\\nhue\", style=\"filled,solid\", shape=component, fillcolor=gold];\n\t\t1215 [label=\"Data.GraphViz.Attributes.Colors\\nred\", style=\"filled,solid\", shape=component, fillcolor=gold];\n\t\t1216 [label=\"Data.GraphViz.Attributes.Colors\\nsaturation\", style=\"filled,solid\", shape=component, fillcolor=gold];\n\t\t1225 [label=\"Data.GraphViz.Attributes.Colors\\nvalue\", style=\"filled,solid\", shape=component, fillcolor=gold];\n\t\t1199 -> 1075 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1200 -> 1074 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1200 -> 1075 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1203 -> 1074 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1203 -> 1075 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1205 -> 873 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1215 -> 1074 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1215 -> 1075 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1216 -> 873 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1225 -> 873 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t}\n\tsubgraph cluster_Data_ColorScheme {\n\t\tgraph [label=\"Data: ColorScheme\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t645 [label=\"Data.GraphViz.Attributes.Colors\\nBrewerScheme\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1187 [label=\"Data.GraphViz.Attributes.Colors\\nX11\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_CompassPoint {\n\t\tgraph [label=\"Data: CompassPoint\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1342 [label=\"Data.GraphViz.Attributes.Internal\\nCenterPoint\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1344 [label=\"Data.GraphViz.Attributes.Internal\\nEast\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1346 [label=\"Data.GraphViz.Attributes.Internal\\nNoCP\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1347 [label=\"Data.GraphViz.Attributes.Internal\\nNorth\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1348 [label=\"Data.GraphViz.Attributes.Internal\\nNorthEast\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1349 [label=\"Data.GraphViz.Attributes.Internal\\nNorthWest\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1351 [label=\"Data.GraphViz.Attributes.Internal\\nSouth\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1352 [label=\"Data.GraphViz.Attributes.Internal\\nSouthEast\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1353 [label=\"Data.GraphViz.Attributes.Internal\\nSouthWest\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1354 [label=\"Data.GraphViz.Attributes.Internal\\nWest\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t}\n\tsubgraph cluster_Data_DEConstraints {\n\t\tgraph [label=\"Data: DEConstraints\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t142 [label=\"Data.GraphViz.Attributes\\nEdgeConstraints\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t185 [label=\"Data.GraphViz.Attributes\\nHierConstraints\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t256 [label=\"Data.GraphViz.Attributes\\nNoConstraints\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_DPoint {\n\t\tgraph [label=\"Data: DPoint\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t122 [label=\"Data.GraphViz.Attributes\\nDVal\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t281 [label=\"Data.GraphViz.Attributes\\nPVal\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_DirType {\n\t\tgraph [label=\"Data: DirType\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t92 [label=\"Data.GraphViz.Attributes\\nBack\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t97 [label=\"Data.GraphViz.Attributes\\nBoth\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t168 [label=\"Data.GraphViz.Attributes\\nForward\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t257 [label=\"Data.GraphViz.Attributes\\nNoDir\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_DotEdge {\n\t\tgraph [label=\"Data: DotEdge\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1680 [label=\"Data.GraphViz.Types.Common\\nDotEdge\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1699 [label=\"Data.GraphViz.Types.Common\\ndirectedEdge\", style=\"filled,solid\", shape=component, fillcolor=bisque];\n\t\t1700 [label=\"Data.GraphViz.Types.Common\\nedgeAttributes\", style=\"filled,solid\", shape=component, fillcolor=bisque];\n\t\t1701 [label=\"Data.GraphViz.Types.Common\\nedgeFromNodeID\", style=\"filled,solid\", shape=component, fillcolor=bisque];\n\t\t1702 [label=\"Data.GraphViz.Types.Common\\nedgeToNodeID\", style=\"filled,solid\", shape=component, fillcolor=bisque];\n\t\t1699 -> 1680 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1700 -> 1680 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1701 -> 1680 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1702 -> 1680 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t}\n\tsubgraph cluster_Data_DotError {\n\t\tgraph [label=\"Data: DotError\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1683 [label=\"Data.GraphViz.Types.Common\\nEdgeError\", style=\"filled,solid\", shape=box3d, fillcolor=crimson];\n\t\t1685 [label=\"Data.GraphViz.Types.Common\\nGraphError\", style=\"filled,solid\", shape=box3d, fillcolor=crimson];\n\t\t1688 [label=\"Data.GraphViz.Types.Common\\nNodeError\", style=\"filled,solid\", shape=box3d, fillcolor=crimson];\n\t}\n\tsubgraph cluster_Data_DotNode {\n\t\tgraph [label=\"Data: DotNode\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1681 [label=\"Data.GraphViz.Types.Common\\nDotNode\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1713 [label=\"Data.GraphViz.Types.Common\\nnodeAttributes\", style=\"filled,solid\", shape=component, fillcolor=bisque];\n\t\t1714 [label=\"Data.GraphViz.Types.Common\\nnodeID\", style=\"filled,solid\", shape=component, fillcolor=bisque];\n\t\t1713 -> 1681 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1714 -> 1681 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t}\n\tsubgraph cluster_Data_EdgeID {\n\t\tgraph [label=\"Data: EdgeID\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1 [label=\"Data.GraphViz\\nEID\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t13 [label=\"Data.GraphViz\\neID\", style=\"filled,solid\", shape=component, fillcolor=bisque];\n\t\t14 [label=\"Data.GraphViz\\neLbl\", style=\"filled,solid\", shape=component, fillcolor=bisque];\n\t\t13 -> 1 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t14 -> 1 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t}\n\tsubgraph cluster_Data_EdgeType {\n\t\tgraph [label=\"Data: EdgeType\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t114 [label=\"Data.GraphViz.Attributes\\nCompoundEdge\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t236 [label=\"Data.GraphViz.Attributes\\nLineEdges\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t258 [label=\"Data.GraphViz.Attributes\\nNoEdges\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t302 [label=\"Data.GraphViz.Attributes\\nPolyLine\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t357 [label=\"Data.GraphViz.Attributes\\nSplineEdges\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_FocusType {\n\t\tgraph [label=\"Data: FocusType\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t263 [label=\"Data.GraphViz.Attributes\\nNodeFocus\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t400 [label=\"Data.GraphViz.Attributes\\nXY\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_GDotGraph {\n\t\tgraph [label=\"Data: GDotGraph\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1776 [label=\"Data.GraphViz.Types.Generalised\\nGDotGraph\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1783 [label=\"Data.GraphViz.Types.Generalised\\ngDirectedGraph\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t1784 [label=\"Data.GraphViz.Types.Generalised\\ngGraphID\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t1785 [label=\"Data.GraphViz.Types.Generalised\\ngGraphStatements\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t1787 [label=\"Data.GraphViz.Types.Generalised\\ngStrictGraph\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t1783 -> 1776 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1784 -> 1776 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1785 -> 1776 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1787 -> 1776 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t}\n\tsubgraph cluster_Data_GDotStatement {\n\t\tgraph [label=\"Data: GDotStatement\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1773 [label=\"Data.GraphViz.Types.Generalised\\nDE\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1774 [label=\"Data.GraphViz.Types.Generalised\\nDN\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1775 [label=\"Data.GraphViz.Types.Generalised\\nGA\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1778 [label=\"Data.GraphViz.Types.Generalised\\nSG\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_GDotSubGraph {\n\t\tgraph [label=\"Data: GDotSubGraph\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1777 [label=\"Data.GraphViz.Types.Generalised\\nGDotSG\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1786 [label=\"Data.GraphViz.Types.Generalised\\ngIsCluster\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t1788 [label=\"Data.GraphViz.Types.Generalised\\ngSubGraphID\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t1789 [label=\"Data.GraphViz.Types.Generalised\\ngSubGraphStmts\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t1786 -> 1777 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1788 -> 1777 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1789 -> 1777 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t}\n\tsubgraph cluster_Data_GlobalAttributes {\n\t\tgraph [label=\"Data: GlobalAttributes\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1682 [label=\"Data.GraphViz.Types.Common\\nEdgeAttrs\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1684 [label=\"Data.GraphViz.Types.Common\\nGraphAttrs\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1687 [label=\"Data.GraphViz.Types.Common\\nNodeAttrs\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1691 [label=\"Data.GraphViz.Types.Common\\nattrs\", style=\"filled,solid\", shape=component, fillcolor=bisque];\n\t\t1691 -> 1682 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1691 -> 1684 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1691 -> 1687 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t}\n\tsubgraph cluster_Data_GraphID {\n\t\tgraph [label=\"Data: GraphID\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1679 [label=\"Data.GraphViz.Types.Common\\nDbl\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1686 [label=\"Data.GraphViz.Types.Common\\nInt\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1689 [label=\"Data.GraphViz.Types.Common\\nStr\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t}\n\tsubgraph cluster_Data_GraphvizParams {\n\t\tgraph [label=\"Data: GraphvizParams\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t2 [label=\"Data.GraphViz\\nParams\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t7 [label=\"Data.GraphViz\\nclusterBy\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t8 [label=\"Data.GraphViz\\nclusterID\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t15 [label=\"Data.GraphViz\\nfmtCluster\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t16 [label=\"Data.GraphViz\\nfmtEdge\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t17 [label=\"Data.GraphViz\\nfmtNode\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t19 [label=\"Data.GraphViz\\nglobalAttributes\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t22 [label=\"Data.GraphViz\\nisDirected\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t7 -> 2 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t8 -> 2 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t15 -> 2 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t16 -> 2 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t17 -> 2 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t19 -> 2 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t22 -> 2 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t}\n\tsubgraph cluster_Data_HtmlAlign {\n\t\tgraph [label=\"Data: HtmlAlign\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1229 [label=\"Data.GraphViz.Attributes.HTML\\nHCenter\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1230 [label=\"Data.GraphViz.Attributes.HTML\\nHLeft\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1232 [label=\"Data.GraphViz.Attributes.HTML\\nHRight\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1234 [label=\"Data.GraphViz.Attributes.HTML\\nHText\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_HtmlAttribute {\n\t\tgraph [label=\"Data: HtmlAttribute\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1236 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlAlign\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1237 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlBAlign\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1238 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlBGColor\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1239 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlBorder\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1240 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlCellBorder\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1241 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlCellPadding\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1242 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlCellSpacing\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1243 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlColSpan\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1244 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlColor\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1248 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlFace\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1249 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlFixedSize\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1251 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlHRef\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1252 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlHeight\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1258 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlPointSize\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1259 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlPort\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1261 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlRowSpan\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1262 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlScale\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1264 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlSrc\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1267 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlTarget\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1269 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlTitle\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1270 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlVAlign\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1271 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlWidth\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_HtmlCell {\n\t\tgraph [label=\"Data: HtmlCell\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1254 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlImgCell\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1255 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlLabelCell\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_HtmlImg {\n\t\tgraph [label=\"Data: HtmlImg\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1253 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlImg\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_HtmlLabel {\n\t\tgraph [label=\"Data: HtmlLabel\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1266 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlTable\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1268 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlText\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_HtmlRow {\n\t\tgraph [label=\"Data: HtmlRow\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1260 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlRow\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_HtmlScale {\n\t\tgraph [label=\"Data: HtmlScale\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1245 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlExpandBoth\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1246 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlExpandHeight\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1247 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlExpandWidth\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1256 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlNaturalSize\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1263 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlScaleUniformly\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_HtmlTable {\n\t\tgraph [label=\"Data: HtmlTable\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1233 [label=\"Data.GraphViz.Attributes.HTML\\nHTable\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1322 [label=\"Data.GraphViz.Attributes.HTML\\ntableAttrs\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t1323 [label=\"Data.GraphViz.Attributes.HTML\\ntableFontAttrs\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t1324 [label=\"Data.GraphViz.Attributes.HTML\\ntableRows\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t1322 -> 1233 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1323 -> 1233 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1324 -> 1233 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t}\n\tsubgraph cluster_Data_HtmlTextItem {\n\t\tgraph [label=\"Data: HtmlTextItem\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1250 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlFont\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1257 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlNewline\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1265 [label=\"Data.GraphViz.Attributes.HTML\\nHtmlStr\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_HtmlVAlign {\n\t\tgraph [label=\"Data: HtmlVAlign\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1228 [label=\"Data.GraphViz.Attributes.HTML\\nHBottom\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1231 [label=\"Data.GraphViz.Attributes.HTML\\nHMiddle\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1235 [label=\"Data.GraphViz.Attributes.HTML\\nHTop\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_Justification {\n\t\tgraph [label=\"Data: Justification\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t199 [label=\"Data.GraphViz.Attributes\\nJCenter\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t200 [label=\"Data.GraphViz.Attributes\\nJLeft\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t201 [label=\"Data.GraphViz.Attributes\\nJRight\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_Label {\n\t\tgraph [label=\"Data: Label\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t187 [label=\"Data.GraphViz.Attributes\\nHtmlLabel\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t321 [label=\"Data.GraphViz.Attributes\\nRecordLabel\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t365 [label=\"Data.GraphViz.Attributes\\nStrLabel\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_LayerID {\n\t\tgraph [label=\"Data: LayerID\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t83 [label=\"Data.GraphViz.Attributes\\nAllLayers\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t209 [label=\"Data.GraphViz.Attributes\\nLRInt\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t210 [label=\"Data.GraphViz.Attributes\\nLRName\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_LayerList {\n\t\tgraph [label=\"Data: LayerList\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t206 [label=\"Data.GraphViz.Attributes\\nLL\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_LayerRange {\n\t\tgraph [label=\"Data: LayerRange\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t208 [label=\"Data.GraphViz.Attributes\\nLRID\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t211 [label=\"Data.GraphViz.Attributes\\nLRS\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_ModeType {\n\t\tgraph [label=\"Data: ModeType\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t184 [label=\"Data.GraphViz.Attributes\\nHier\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t196 [label=\"Data.GraphViz.Attributes\\nIpSep\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t203 [label=\"Data.GraphViz.Attributes\\nKK\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t244 [label=\"Data.GraphViz.Attributes\\nMajor\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_Model {\n\t\tgraph [label=\"Data: Model\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t107 [label=\"Data.GraphViz.Attributes\\nCircuit\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t346 [label=\"Data.GraphViz.Attributes\\nShortPath\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t368 [label=\"Data.GraphViz.Attributes\\nSubSet\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_NodeCluster {\n\t\tgraph [label=\"Data: NodeCluster\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1667 [label=\"Data.GraphViz.Types.Clustering\\nC\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1669 [label=\"Data.GraphViz.Types.Clustering\\nN\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t}\n\tsubgraph cluster_Data_NodeInfo {\n\t\tgraph [label=\"Data: NodeInfo\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1828 [label=\"Data.GraphViz.Types.State\\nNI\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1841 [label=\"Data.GraphViz.Types.State\\natts\", style=\"filled,solid\", shape=component, fillcolor=bisque];\n\t\t1844 [label=\"Data.GraphViz.Types.State\\ngAtts\", style=\"filled,solid\", shape=component, fillcolor=bisque];\n\t\t1853 [label=\"Data.GraphViz.Types.State\\nlocation\", style=\"filled,solid\", shape=component, fillcolor=bisque];\n\t\t1841 -> 1828 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1844 -> 1828 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1853 -> 1828 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t}\n\tsubgraph cluster_Data_OutputMode {\n\t\tgraph [label=\"Data: OutputMode\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t103 [label=\"Data.GraphViz.Attributes\\nBreadthFirst\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t146 [label=\"Data.GraphViz.Attributes\\nEdgesFirst\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t266 [label=\"Data.GraphViz.Attributes\\nNodesFirst\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_Overlap {\n\t\tgraph [label=\"Data: Overlap\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t115 [label=\"Data.GraphViz.Attributes\\nCompressOverlap\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t197 [label=\"Data.GraphViz.Attributes\\nIpsepOverlap\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t204 [label=\"Data.GraphViz.Attributes\\nKeepOverlaps\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t307 [label=\"Data.GraphViz.Attributes\\nPrismOverlap\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t326 [label=\"Data.GraphViz.Attributes\\nRemoveOverlaps\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t338 [label=\"Data.GraphViz.Attributes\\nScaleOverlaps\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t339 [label=\"Data.GraphViz.Attributes\\nScaleXYOverlaps\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t397 [label=\"Data.GraphViz.Attributes\\nVpscOverlap\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_Pack {\n\t\tgraph [label=\"Data: Pack\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t135 [label=\"Data.GraphViz.Attributes\\nDoPack\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t136 [label=\"Data.GraphViz.Attributes\\nDontPack\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t286 [label=\"Data.GraphViz.Attributes\\nPackMargin\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_PackMode {\n\t\tgraph [label=\"Data: PackMode\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t283 [label=\"Data.GraphViz.Attributes\\nPackArray\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t284 [label=\"Data.GraphViz.Attributes\\nPackClust\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t285 [label=\"Data.GraphViz.Attributes\\nPackGraph\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t288 [label=\"Data.GraphViz.Attributes\\nPackNode\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_PageDir {\n\t\tgraph [label=\"Data: PageDir\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t95 [label=\"Data.GraphViz.Attributes\\nBl\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t102 [label=\"Data.GraphViz.Attributes\\nBr\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t231 [label=\"Data.GraphViz.Attributes\\nLb\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t238 [label=\"Data.GraphViz.Attributes\\nLt\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t318 [label=\"Data.GraphViz.Attributes\\nRb\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t332 [label=\"Data.GraphViz.Attributes\\nRt\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t378 [label=\"Data.GraphViz.Attributes\\nTl\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t380 [label=\"Data.GraphViz.Attributes\\nTr\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_Point {\n\t\tgraph [label=\"Data: Point\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t299 [label=\"Data.GraphViz.Attributes\\nPoint\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t415 [label=\"Data.GraphViz.Attributes\\nforcePos\", style=\"filled,solid\", shape=component, fillcolor=gold];\n\t\t607 [label=\"Data.GraphViz.Attributes\\nxCoord\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t608 [label=\"Data.GraphViz.Attributes\\nyCoord\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t609 [label=\"Data.GraphViz.Attributes\\nzCoord\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t415 -> 299 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t607 -> 299 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t608 -> 299 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t609 -> 299 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t}\n\tsubgraph cluster_Data_PortName {\n\t\tgraph [label=\"Data: PortName\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1350 [label=\"Data.GraphViz.Attributes.Internal\\nPN\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1363 [label=\"Data.GraphViz.Attributes.Internal\\nportName\", style=\"filled,solid\", shape=component, fillcolor=bisque];\n\t\t1363 -> 1350 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t}\n\tsubgraph cluster_Data_PortPos {\n\t\tgraph [label=\"Data: PortPos\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1343 [label=\"Data.GraphViz.Attributes.Internal\\nCompassPoint\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1345 [label=\"Data.GraphViz.Attributes.Internal\\nLabelledPort\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t}\n\tsubgraph cluster_Data_Pos {\n\t\tgraph [label=\"Data: Pos\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t300 [label=\"Data.GraphViz.Attributes\\nPointPos\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t358 [label=\"Data.GraphViz.Attributes\\nSplinePos\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_QuadType {\n\t\tgraph [label=\"Data: QuadType\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t151 [label=\"Data.GraphViz.Attributes\\nFastQT\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t260 [label=\"Data.GraphViz.Attributes\\nNoQT\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t268 [label=\"Data.GraphViz.Attributes\\nNormalQT\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_RankDir {\n\t\tgraph [label=\"Data: RankDir\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t169 [label=\"Data.GraphViz.Attributes\\nFromBottom\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t170 [label=\"Data.GraphViz.Attributes\\nFromLeft\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t171 [label=\"Data.GraphViz.Attributes\\nFromRight\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t172 [label=\"Data.GraphViz.Attributes\\nFromTop\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_RankType {\n\t\tgraph [label=\"Data: RankType\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t247 [label=\"Data.GraphViz.Attributes\\nMaxRank\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t250 [label=\"Data.GraphViz.Attributes\\nMinRank\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t335 [label=\"Data.GraphViz.Attributes\\nSameRank\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t349 [label=\"Data.GraphViz.Attributes\\nSinkRank\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t355 [label=\"Data.GraphViz.Attributes\\nSourceRank\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_Ratios {\n\t\tgraph [label=\"Data: Ratios\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t89 [label=\"Data.GraphViz.Attributes\\nAspectRatio\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t90 [label=\"Data.GraphViz.Attributes\\nAutoRatio\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t116 [label=\"Data.GraphViz.Attributes\\nCompressRatio\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t150 [label=\"Data.GraphViz.Attributes\\nExpandRatio\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t156 [label=\"Data.GraphViz.Attributes\\nFillRatio\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_RecordField {\n\t\tgraph [label=\"Data: RecordField\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t152 [label=\"Data.GraphViz.Attributes\\nFieldLabel\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t161 [label=\"Data.GraphViz.Attributes\\nFlipFields\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t225 [label=\"Data.GraphViz.Attributes\\nLabelledTarget\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t304 [label=\"Data.GraphViz.Attributes\\nPortName\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_Rect {\n\t\tgraph [label=\"Data: Rect\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t322 [label=\"Data.GraphViz.Attributes\\nRect\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_Root {\n\t\tgraph [label=\"Data: Root\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t198 [label=\"Data.GraphViz.Attributes\\nIsCentral\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t264 [label=\"Data.GraphViz.Attributes\\nNodeName\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t270 [label=\"Data.GraphViz.Attributes\\nNotCentral\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_STStyle {\n\t\tgraph [label=\"Data: STStyle\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t311 [label=\"Data.GraphViz.Attributes\\nRandomStyle\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t325 [label=\"Data.GraphViz.Attributes\\nRegularStyle\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t341 [label=\"Data.GraphViz.Attributes\\nSelfStyle\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_SameAttr {\n\t\tgraph [label=\"Data: SameAttr\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1829 [label=\"Data.GraphViz.Types.State\\nSA\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1845 [label=\"Data.GraphViz.Types.State\\ngetAttr\", style=\"filled,solid\", shape=component, fillcolor=bisque];\n\t\t1845 -> 1829 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t}\n\tsubgraph cluster_Data_ScaleType {\n\t\tgraph [label=\"Data: ScaleType\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t153 [label=\"Data.GraphViz.Attributes\\nFillBoth\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t155 [label=\"Data.GraphViz.Attributes\\nFillHeight\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t157 [label=\"Data.GraphViz.Attributes\\nFillWidth\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t261 [label=\"Data.GraphViz.Attributes\\nNoScale\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t387 [label=\"Data.GraphViz.Attributes\\nUniformScale\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_Shape {\n\t\tgraph [label=\"Data: Shape\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t100 [label=\"Data.GraphViz.Attributes\\nBox3D\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t101 [label=\"Data.GraphViz.Attributes\\nBoxShape\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t106 [label=\"Data.GraphViz.Attributes\\nCircle\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t112 [label=\"Data.GraphViz.Attributes\\nComponent\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t129 [label=\"Data.GraphViz.Attributes\\nDiamondShape\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t139 [label=\"Data.GraphViz.Attributes\\nDoubleCircle\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t140 [label=\"Data.GraphViz.Attributes\\nDoubleOctagon\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t147 [label=\"Data.GraphViz.Attributes\\nEgg\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t148 [label=\"Data.GraphViz.Attributes\\nEllipse\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t162 [label=\"Data.GraphViz.Attributes\\nFolder\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t183 [label=\"Data.GraphViz.Attributes\\nHexagon\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t186 [label=\"Data.GraphViz.Attributes\\nHouse\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t192 [label=\"Data.GraphViz.Attributes\\nInvHouse\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t193 [label=\"Data.GraphViz.Attributes\\nInvTrapezium\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t194 [label=\"Data.GraphViz.Attributes\\nInvTriangle\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t240 [label=\"Data.GraphViz.Attributes\\nMCircle\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t241 [label=\"Data.GraphViz.Attributes\\nMDiamond\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t242 [label=\"Data.GraphViz.Attributes\\nMRecord\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t243 [label=\"Data.GraphViz.Attributes\\nMSquare\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t271 [label=\"Data.GraphViz.Attributes\\nNote\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t274 [label=\"Data.GraphViz.Attributes\\nOctagon\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t292 [label=\"Data.GraphViz.Attributes\\nParallelogram\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t295 [label=\"Data.GraphViz.Attributes\\nPentagon\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t298 [label=\"Data.GraphViz.Attributes\\nPlainText\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t301 [label=\"Data.GraphViz.Attributes\\nPointShape\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t303 [label=\"Data.GraphViz.Attributes\\nPolygon\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t320 [label=\"Data.GraphViz.Attributes\\nRecord\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t343 [label=\"Data.GraphViz.Attributes\\nSeptagon\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t369 [label=\"Data.GraphViz.Attributes\\nTab\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t381 [label=\"Data.GraphViz.Attributes\\nTrapezium\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t382 [label=\"Data.GraphViz.Attributes\\nTriangle\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t384 [label=\"Data.GraphViz.Attributes\\nTripleOctagon\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_SmoothType {\n\t\tgraph [label=\"Data: SmoothType\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t91 [label=\"Data.GraphViz.Attributes\\nAvgDist\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t174 [label=\"Data.GraphViz.Attributes\\nGraphDist\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t262 [label=\"Data.GraphViz.Attributes\\nNoSmooth\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t306 [label=\"Data.GraphViz.Attributes\\nPowerDist\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t310 [label=\"Data.GraphViz.Attributes\\nRNG\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t360 [label=\"Data.GraphViz.Attributes\\nSpring\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t383 [label=\"Data.GraphViz.Attributes\\nTriangleSmooth\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_Spline {\n\t\tgraph [label=\"Data: Spline\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t356 [label=\"Data.GraphViz.Attributes\\nSpline\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_StartType {\n\t\tgraph [label=\"Data: StartType\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t362 [label=\"Data.GraphViz.Attributes\\nStartSeed\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t363 [label=\"Data.GraphViz.Attributes\\nStartStyle\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t364 [label=\"Data.GraphViz.Attributes\\nStartStyleSeed\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_StateValue {\n\t\tgraph [label=\"Data: StateValue\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1830 [label=\"Data.GraphViz.Types.State\\nSV\", style=\"filled,solid\", shape=box3d, fillcolor=cyan];\n\t\t1851 [label=\"Data.GraphViz.Types.State\\nglobalAttrs\", style=\"filled,solid\", shape=component, fillcolor=bisque];\n\t\t1852 [label=\"Data.GraphViz.Types.State\\nglobalPath\", style=\"filled,solid\", shape=component, fillcolor=bisque];\n\t\t1869 [label=\"Data.GraphViz.Types.State\\nuseGlobals\", style=\"filled,solid\", shape=component, fillcolor=bisque];\n\t\t1870 [label=\"Data.GraphViz.Types.State\\nvalue\", style=\"filled,solid\", shape=component, fillcolor=bisque];\n\t\t1851 -> 1830 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1852 -> 1830 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1869 -> 1830 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1870 -> 1830 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t}\n\tsubgraph cluster_Data_StyleItem {\n\t\tgraph [label=\"Data: StyleItem\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t333 [label=\"Data.GraphViz.Attributes\\nSItem\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_StyleName {\n\t\tgraph [label=\"Data: StyleName\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t96 [label=\"Data.GraphViz.Attributes\\nBold\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t120 [label=\"Data.GraphViz.Attributes\\nDD\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t124 [label=\"Data.GraphViz.Attributes\\nDashed\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t127 [label=\"Data.GraphViz.Attributes\\nDiagonals\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t138 [label=\"Data.GraphViz.Attributes\\nDotted\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t158 [label=\"Data.GraphViz.Attributes\\nFilled\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t195 [label=\"Data.GraphViz.Attributes\\nInvisible\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t331 [label=\"Data.GraphViz.Attributes\\nRounded\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t353 [label=\"Data.GraphViz.Attributes\\nSolid\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_Test {\n\t\tgraph [label=\"Data: Test\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t1490 [label=\"Data.GraphViz.Testing\\nTest\", style=\"filled,solid\", shape=box3d, fillcolor=crimson];\n\t\t1493 [label=\"Data.GraphViz.Testing\\ndesc\", style=\"filled,solid\", shape=component, fillcolor=crimson];\n\t\t1495 [label=\"Data.GraphViz.Testing\\nlookupName\", style=\"filled,solid\", shape=component, fillcolor=crimson];\n\t\t1496 [label=\"Data.GraphViz.Testing\\nname\", style=\"filled,solid\", shape=component, fillcolor=crimson];\n\t\t1501 [label=\"Data.GraphViz.Testing\\ntest\", style=\"filled,solid\", shape=component, fillcolor=crimson];\n\t\t1493 -> 1490 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1495 -> 1490 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1496 -> 1490 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t1501 -> 1490 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t}\n\tsubgraph cluster_Data_VType {\n\t\tgraph [label=\"Data: VType\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t33 [label=\"Data.GraphViz.AttributeGenerator\\nBl\", style=\"filled,solid\", shape=box3d, fillcolor=crimson];\n\t\t34 [label=\"Data.GraphViz.AttributeGenerator\\nCust\", style=\"filled,solid\", shape=box3d, fillcolor=crimson];\n\t\t35 [label=\"Data.GraphViz.AttributeGenerator\\nDbl\", style=\"filled,solid\", shape=box3d, fillcolor=crimson];\n\t\t36 [label=\"Data.GraphViz.AttributeGenerator\\nEStrng\", style=\"filled,solid\", shape=box3d, fillcolor=crimson];\n\t\t37 [label=\"Data.GraphViz.AttributeGenerator\\nInteg\", style=\"filled,solid\", shape=box3d, fillcolor=crimson];\n\t\t38 [label=\"Data.GraphViz.AttributeGenerator\\nStrng\", style=\"filled,solid\", shape=box3d, fillcolor=crimson];\n\t}\n\tsubgraph cluster_Data_VerticalPlacement {\n\t\tgraph [label=\"Data: VerticalPlacement\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t389 [label=\"Data.GraphViz.Attributes\\nVBottom\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t390 [label=\"Data.GraphViz.Attributes\\nVCenter\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t392 [label=\"Data.GraphViz.Attributes\\nVTop\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\tsubgraph cluster_Data_ViewPort {\n\t\tgraph [label=\"Data: ViewPort\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t391 [label=\"Data.GraphViz.Attributes\\nVP\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t414 [label=\"Data.GraphViz.Attributes\\nfocus\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t416 [label=\"Data.GraphViz.Attributes\\nhVal\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t606 [label=\"Data.GraphViz.Attributes\\nwVal\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t610 [label=\"Data.GraphViz.Attributes\\nzVal\", style=\"filled,solid\", shape=component, fillcolor=goldenrod];\n\t\t414 -> 391 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t416 -> 391 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t606 -> 391 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t\t610 -> 391 [penwidth=1, color=magenta, arrowtail=odot, arrowhead=vee];\n\t}\n\tsubgraph cluster_Data_X11Color {\n\t\tgraph [label=\"Data: X11Color\",\n\t\t\tstyle=\"filled,rounded\",\n\t\t\tfillcolor=papayawhip];\n\t\t612 [label=\"Data.GraphViz.Attributes.Colors\\nAliceBlue\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t613 [label=\"Data.GraphViz.Attributes.Colors\\nAntiqueWhite\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t614 [label=\"Data.GraphViz.Attributes.Colors\\nAntiqueWhite1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t615 [label=\"Data.GraphViz.Attributes.Colors\\nAntiqueWhite2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t616 [label=\"Data.GraphViz.Attributes.Colors\\nAntiqueWhite3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t617 [label=\"Data.GraphViz.Attributes.Colors\\nAntiqueWhite4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t618 [label=\"Data.GraphViz.Attributes.Colors\\nAquamarine\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t619 [label=\"Data.GraphViz.Attributes.Colors\\nAquamarine1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t620 [label=\"Data.GraphViz.Attributes.Colors\\nAquamarine2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t621 [label=\"Data.GraphViz.Attributes.Colors\\nAquamarine3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t622 [label=\"Data.GraphViz.Attributes.Colors\\nAquamarine4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t623 [label=\"Data.GraphViz.Attributes.Colors\\nAzure\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t624 [label=\"Data.GraphViz.Attributes.Colors\\nAzure1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t625 [label=\"Data.GraphViz.Attributes.Colors\\nAzure2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t626 [label=\"Data.GraphViz.Attributes.Colors\\nAzure3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t627 [label=\"Data.GraphViz.Attributes.Colors\\nAzure4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t628 [label=\"Data.GraphViz.Attributes.Colors\\nBeige\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t629 [label=\"Data.GraphViz.Attributes.Colors\\nBisque\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t630 [label=\"Data.GraphViz.Attributes.Colors\\nBisque1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t631 [label=\"Data.GraphViz.Attributes.Colors\\nBisque2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t632 [label=\"Data.GraphViz.Attributes.Colors\\nBisque3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t633 [label=\"Data.GraphViz.Attributes.Colors\\nBisque4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t634 [label=\"Data.GraphViz.Attributes.Colors\\nBlack\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t635 [label=\"Data.GraphViz.Attributes.Colors\\nBlanchedAlmond\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t636 [label=\"Data.GraphViz.Attributes.Colors\\nBlue\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t637 [label=\"Data.GraphViz.Attributes.Colors\\nBlue1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t638 [label=\"Data.GraphViz.Attributes.Colors\\nBlue2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t639 [label=\"Data.GraphViz.Attributes.Colors\\nBlue3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t640 [label=\"Data.GraphViz.Attributes.Colors\\nBlue4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t641 [label=\"Data.GraphViz.Attributes.Colors\\nBlueViolet\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t646 [label=\"Data.GraphViz.Attributes.Colors\\nBrown\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t647 [label=\"Data.GraphViz.Attributes.Colors\\nBrown1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t648 [label=\"Data.GraphViz.Attributes.Colors\\nBrown2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t649 [label=\"Data.GraphViz.Attributes.Colors\\nBrown3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t650 [label=\"Data.GraphViz.Attributes.Colors\\nBrown4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t653 [label=\"Data.GraphViz.Attributes.Colors\\nBurlywood\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t654 [label=\"Data.GraphViz.Attributes.Colors\\nBurlywood1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t655 [label=\"Data.GraphViz.Attributes.Colors\\nBurlywood2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t656 [label=\"Data.GraphViz.Attributes.Colors\\nBurlywood3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t657 [label=\"Data.GraphViz.Attributes.Colors\\nBurlywood4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t658 [label=\"Data.GraphViz.Attributes.Colors\\nCadetBlue\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t659 [label=\"Data.GraphViz.Attributes.Colors\\nCadetBlue1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t660 [label=\"Data.GraphViz.Attributes.Colors\\nCadetBlue2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t661 [label=\"Data.GraphViz.Attributes.Colors\\nCadetBlue3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t662 [label=\"Data.GraphViz.Attributes.Colors\\nCadetBlue4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t663 [label=\"Data.GraphViz.Attributes.Colors\\nChartreuse\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t664 [label=\"Data.GraphViz.Attributes.Colors\\nChartreuse1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t665 [label=\"Data.GraphViz.Attributes.Colors\\nChartreuse2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t666 [label=\"Data.GraphViz.Attributes.Colors\\nChartreuse3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t667 [label=\"Data.GraphViz.Attributes.Colors\\nChartreuse4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t668 [label=\"Data.GraphViz.Attributes.Colors\\nChocolate\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t669 [label=\"Data.GraphViz.Attributes.Colors\\nChocolate1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t670 [label=\"Data.GraphViz.Attributes.Colors\\nChocolate2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t671 [label=\"Data.GraphViz.Attributes.Colors\\nChocolate3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t672 [label=\"Data.GraphViz.Attributes.Colors\\nChocolate4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t673 [label=\"Data.GraphViz.Attributes.Colors\\nCoral\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t674 [label=\"Data.GraphViz.Attributes.Colors\\nCoral1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t675 [label=\"Data.GraphViz.Attributes.Colors\\nCoral2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t676 [label=\"Data.GraphViz.Attributes.Colors\\nCoral3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t677 [label=\"Data.GraphViz.Attributes.Colors\\nCoral4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t678 [label=\"Data.GraphViz.Attributes.Colors\\nCornFlowerBlue\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t679 [label=\"Data.GraphViz.Attributes.Colors\\nCornSilk\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t680 [label=\"Data.GraphViz.Attributes.Colors\\nCornSilk1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t681 [label=\"Data.GraphViz.Attributes.Colors\\nCornSilk2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t682 [label=\"Data.GraphViz.Attributes.Colors\\nCornSilk3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t683 [label=\"Data.GraphViz.Attributes.Colors\\nCornSilk4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t684 [label=\"Data.GraphViz.Attributes.Colors\\nCrimson\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t685 [label=\"Data.GraphViz.Attributes.Colors\\nCyan\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t686 [label=\"Data.GraphViz.Attributes.Colors\\nCyan1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t687 [label=\"Data.GraphViz.Attributes.Colors\\nCyan2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t688 [label=\"Data.GraphViz.Attributes.Colors\\nCyan3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t689 [label=\"Data.GraphViz.Attributes.Colors\\nCyan4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t691 [label=\"Data.GraphViz.Attributes.Colors\\nDarkGoldenrod\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t692 [label=\"Data.GraphViz.Attributes.Colors\\nDarkGoldenrod1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t693 [label=\"Data.GraphViz.Attributes.Colors\\nDarkGoldenrod2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t694 [label=\"Data.GraphViz.Attributes.Colors\\nDarkGoldenrod3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t695 [label=\"Data.GraphViz.Attributes.Colors\\nDarkGoldenrod4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t696 [label=\"Data.GraphViz.Attributes.Colors\\nDarkGreen\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t697 [label=\"Data.GraphViz.Attributes.Colors\\nDarkOliveGreen\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t698 [label=\"Data.GraphViz.Attributes.Colors\\nDarkOliveGreen1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t699 [label=\"Data.GraphViz.Attributes.Colors\\nDarkOliveGreen2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t700 [label=\"Data.GraphViz.Attributes.Colors\\nDarkOliveGreen3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t701 [label=\"Data.GraphViz.Attributes.Colors\\nDarkOliveGreen4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t702 [label=\"Data.GraphViz.Attributes.Colors\\nDarkOrange\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t703 [label=\"Data.GraphViz.Attributes.Colors\\nDarkOrange1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t704 [label=\"Data.GraphViz.Attributes.Colors\\nDarkOrange2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t705 [label=\"Data.GraphViz.Attributes.Colors\\nDarkOrange3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t706 [label=\"Data.GraphViz.Attributes.Colors\\nDarkOrange4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t707 [label=\"Data.GraphViz.Attributes.Colors\\nDarkOrchid\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t708 [label=\"Data.GraphViz.Attributes.Colors\\nDarkOrchid1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t709 [label=\"Data.GraphViz.Attributes.Colors\\nDarkOrchid2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t710 [label=\"Data.GraphViz.Attributes.Colors\\nDarkOrchid3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t711 [label=\"Data.GraphViz.Attributes.Colors\\nDarkOrchid4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t712 [label=\"Data.GraphViz.Attributes.Colors\\nDarkSalmon\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t713 [label=\"Data.GraphViz.Attributes.Colors\\nDarkSeaGreen\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t714 [label=\"Data.GraphViz.Attributes.Colors\\nDarkSeaGreen1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t715 [label=\"Data.GraphViz.Attributes.Colors\\nDarkSeaGreen2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t716 [label=\"Data.GraphViz.Attributes.Colors\\nDarkSeaGreen3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t717 [label=\"Data.GraphViz.Attributes.Colors\\nDarkSeaGreen4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t718 [label=\"Data.GraphViz.Attributes.Colors\\nDarkSlateBlue\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t719 [label=\"Data.GraphViz.Attributes.Colors\\nDarkSlateGray\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t720 [label=\"Data.GraphViz.Attributes.Colors\\nDarkSlateGray1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t721 [label=\"Data.GraphViz.Attributes.Colors\\nDarkSlateGray2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t722 [label=\"Data.GraphViz.Attributes.Colors\\nDarkSlateGray3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t723 [label=\"Data.GraphViz.Attributes.Colors\\nDarkSlateGray4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t724 [label=\"Data.GraphViz.Attributes.Colors\\nDarkTurquoise\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t725 [label=\"Data.GraphViz.Attributes.Colors\\nDarkViolet\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t726 [label=\"Data.GraphViz.Attributes.Colors\\nDarkkhaki\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t727 [label=\"Data.GraphViz.Attributes.Colors\\nDeepPink\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t728 [label=\"Data.GraphViz.Attributes.Colors\\nDeepPink1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t729 [label=\"Data.GraphViz.Attributes.Colors\\nDeepPink2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t730 [label=\"Data.GraphViz.Attributes.Colors\\nDeepPink3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t731 [label=\"Data.GraphViz.Attributes.Colors\\nDeepPink4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t732 [label=\"Data.GraphViz.Attributes.Colors\\nDeepSkyBlue\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t733 [label=\"Data.GraphViz.Attributes.Colors\\nDeepSkyBlue1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t734 [label=\"Data.GraphViz.Attributes.Colors\\nDeepSkyBlue2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t735 [label=\"Data.GraphViz.Attributes.Colors\\nDeepSkyBlue3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t736 [label=\"Data.GraphViz.Attributes.Colors\\nDeepSkyBlue4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t737 [label=\"Data.GraphViz.Attributes.Colors\\nDimGray\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t738 [label=\"Data.GraphViz.Attributes.Colors\\nDodgerBlue\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t739 [label=\"Data.GraphViz.Attributes.Colors\\nDodgerBlue1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t740 [label=\"Data.GraphViz.Attributes.Colors\\nDodgerBlue2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t741 [label=\"Data.GraphViz.Attributes.Colors\\nDodgerBlue3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t742 [label=\"Data.GraphViz.Attributes.Colors\\nDodgerBlue4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t743 [label=\"Data.GraphViz.Attributes.Colors\\nFirebrick\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t744 [label=\"Data.GraphViz.Attributes.Colors\\nFirebrick1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t745 [label=\"Data.GraphViz.Attributes.Colors\\nFirebrick2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t746 [label=\"Data.GraphViz.Attributes.Colors\\nFirebrick3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t747 [label=\"Data.GraphViz.Attributes.Colors\\nFirebrick4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t748 [label=\"Data.GraphViz.Attributes.Colors\\nFloralWhite\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t749 [label=\"Data.GraphViz.Attributes.Colors\\nForestGreen\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t750 [label=\"Data.GraphViz.Attributes.Colors\\nGainsboro\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t751 [label=\"Data.GraphViz.Attributes.Colors\\nGhostWhite\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t753 [label=\"Data.GraphViz.Attributes.Colors\\nGold\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t754 [label=\"Data.GraphViz.Attributes.Colors\\nGold1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t755 [label=\"Data.GraphViz.Attributes.Colors\\nGold2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t756 [label=\"Data.GraphViz.Attributes.Colors\\nGold3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t757 [label=\"Data.GraphViz.Attributes.Colors\\nGold4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t758 [label=\"Data.GraphViz.Attributes.Colors\\nGoldenrod\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t759 [label=\"Data.GraphViz.Attributes.Colors\\nGoldenrod1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t760 [label=\"Data.GraphViz.Attributes.Colors\\nGoldenrod2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t761 [label=\"Data.GraphViz.Attributes.Colors\\nGoldenrod3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t762 [label=\"Data.GraphViz.Attributes.Colors\\nGoldenrod4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t763 [label=\"Data.GraphViz.Attributes.Colors\\nGray\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t764 [label=\"Data.GraphViz.Attributes.Colors\\nGray0\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t765 [label=\"Data.GraphViz.Attributes.Colors\\nGray1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t766 [label=\"Data.GraphViz.Attributes.Colors\\nGray10\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t767 [label=\"Data.GraphViz.Attributes.Colors\\nGray100\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t768 [label=\"Data.GraphViz.Attributes.Colors\\nGray11\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t769 [label=\"Data.GraphViz.Attributes.Colors\\nGray12\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t770 [label=\"Data.GraphViz.Attributes.Colors\\nGray13\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t771 [label=\"Data.GraphViz.Attributes.Colors\\nGray14\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t772 [label=\"Data.GraphViz.Attributes.Colors\\nGray15\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t773 [label=\"Data.GraphViz.Attributes.Colors\\nGray16\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t774 [label=\"Data.GraphViz.Attributes.Colors\\nGray17\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t775 [label=\"Data.GraphViz.Attributes.Colors\\nGray18\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t776 [label=\"Data.GraphViz.Attributes.Colors\\nGray19\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t777 [label=\"Data.GraphViz.Attributes.Colors\\nGray2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t778 [label=\"Data.GraphViz.Attributes.Colors\\nGray20\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t779 [label=\"Data.GraphViz.Attributes.Colors\\nGray21\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t780 [label=\"Data.GraphViz.Attributes.Colors\\nGray22\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t781 [label=\"Data.GraphViz.Attributes.Colors\\nGray23\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t782 [label=\"Data.GraphViz.Attributes.Colors\\nGray24\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t783 [label=\"Data.GraphViz.Attributes.Colors\\nGray25\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t784 [label=\"Data.GraphViz.Attributes.Colors\\nGray26\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t785 [label=\"Data.GraphViz.Attributes.Colors\\nGray27\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t786 [label=\"Data.GraphViz.Attributes.Colors\\nGray28\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t787 [label=\"Data.GraphViz.Attributes.Colors\\nGray29\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t788 [label=\"Data.GraphViz.Attributes.Colors\\nGray3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t789 [label=\"Data.GraphViz.Attributes.Colors\\nGray30\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t790 [label=\"Data.GraphViz.Attributes.Colors\\nGray31\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t791 [label=\"Data.GraphViz.Attributes.Colors\\nGray32\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t792 [label=\"Data.GraphViz.Attributes.Colors\\nGray33\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t793 [label=\"Data.GraphViz.Attributes.Colors\\nGray34\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t794 [label=\"Data.GraphViz.Attributes.Colors\\nGray35\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t795 [label=\"Data.GraphViz.Attributes.Colors\\nGray36\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t796 [label=\"Data.GraphViz.Attributes.Colors\\nGray37\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t797 [label=\"Data.GraphViz.Attributes.Colors\\nGray38\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t798 [label=\"Data.GraphViz.Attributes.Colors\\nGray39\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t799 [label=\"Data.GraphViz.Attributes.Colors\\nGray4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t800 [label=\"Data.GraphViz.Attributes.Colors\\nGray40\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t801 [label=\"Data.GraphViz.Attributes.Colors\\nGray41\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t802 [label=\"Data.GraphViz.Attributes.Colors\\nGray42\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t803 [label=\"Data.GraphViz.Attributes.Colors\\nGray43\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t804 [label=\"Data.GraphViz.Attributes.Colors\\nGray44\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t805 [label=\"Data.GraphViz.Attributes.Colors\\nGray45\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t806 [label=\"Data.GraphViz.Attributes.Colors\\nGray46\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t807 [label=\"Data.GraphViz.Attributes.Colors\\nGray47\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t808 [label=\"Data.GraphViz.Attributes.Colors\\nGray48\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t809 [label=\"Data.GraphViz.Attributes.Colors\\nGray49\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t810 [label=\"Data.GraphViz.Attributes.Colors\\nGray5\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t811 [label=\"Data.GraphViz.Attributes.Colors\\nGray50\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t812 [label=\"Data.GraphViz.Attributes.Colors\\nGray51\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t813 [label=\"Data.GraphViz.Attributes.Colors\\nGray52\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t814 [label=\"Data.GraphViz.Attributes.Colors\\nGray53\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t815 [label=\"Data.GraphViz.Attributes.Colors\\nGray54\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t816 [label=\"Data.GraphViz.Attributes.Colors\\nGray55\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t817 [label=\"Data.GraphViz.Attributes.Colors\\nGray56\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t818 [label=\"Data.GraphViz.Attributes.Colors\\nGray57\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t819 [label=\"Data.GraphViz.Attributes.Colors\\nGray58\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t820 [label=\"Data.GraphViz.Attributes.Colors\\nGray59\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t821 [label=\"Data.GraphViz.Attributes.Colors\\nGray6\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t822 [label=\"Data.GraphViz.Attributes.Colors\\nGray60\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t823 [label=\"Data.GraphViz.Attributes.Colors\\nGray61\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t824 [label=\"Data.GraphViz.Attributes.Colors\\nGray62\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t825 [label=\"Data.GraphViz.Attributes.Colors\\nGray63\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t826 [label=\"Data.GraphViz.Attributes.Colors\\nGray64\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t827 [label=\"Data.GraphViz.Attributes.Colors\\nGray65\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t828 [label=\"Data.GraphViz.Attributes.Colors\\nGray66\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t829 [label=\"Data.GraphViz.Attributes.Colors\\nGray67\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t830 [label=\"Data.GraphViz.Attributes.Colors\\nGray68\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t831 [label=\"Data.GraphViz.Attributes.Colors\\nGray69\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t832 [label=\"Data.GraphViz.Attributes.Colors\\nGray7\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t833 [label=\"Data.GraphViz.Attributes.Colors\\nGray70\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t834 [label=\"Data.GraphViz.Attributes.Colors\\nGray71\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t835 [label=\"Data.GraphViz.Attributes.Colors\\nGray72\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t836 [label=\"Data.GraphViz.Attributes.Colors\\nGray73\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t837 [label=\"Data.GraphViz.Attributes.Colors\\nGray74\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t838 [label=\"Data.GraphViz.Attributes.Colors\\nGray75\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t839 [label=\"Data.GraphViz.Attributes.Colors\\nGray76\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t840 [label=\"Data.GraphViz.Attributes.Colors\\nGray77\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t841 [label=\"Data.GraphViz.Attributes.Colors\\nGray78\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t842 [label=\"Data.GraphViz.Attributes.Colors\\nGray79\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t843 [label=\"Data.GraphViz.Attributes.Colors\\nGray8\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t844 [label=\"Data.GraphViz.Attributes.Colors\\nGray80\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t845 [label=\"Data.GraphViz.Attributes.Colors\\nGray81\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t846 [label=\"Data.GraphViz.Attributes.Colors\\nGray82\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t847 [label=\"Data.GraphViz.Attributes.Colors\\nGray83\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t848 [label=\"Data.GraphViz.Attributes.Colors\\nGray84\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t849 [label=\"Data.GraphViz.Attributes.Colors\\nGray85\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t850 [label=\"Data.GraphViz.Attributes.Colors\\nGray86\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t851 [label=\"Data.GraphViz.Attributes.Colors\\nGray87\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t852 [label=\"Data.GraphViz.Attributes.Colors\\nGray88\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t853 [label=\"Data.GraphViz.Attributes.Colors\\nGray89\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t854 [label=\"Data.GraphViz.Attributes.Colors\\nGray9\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t855 [label=\"Data.GraphViz.Attributes.Colors\\nGray90\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t856 [label=\"Data.GraphViz.Attributes.Colors\\nGray91\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t857 [label=\"Data.GraphViz.Attributes.Colors\\nGray92\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t858 [label=\"Data.GraphViz.Attributes.Colors\\nGray93\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t859 [label=\"Data.GraphViz.Attributes.Colors\\nGray94\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t860 [label=\"Data.GraphViz.Attributes.Colors\\nGray95\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t861 [label=\"Data.GraphViz.Attributes.Colors\\nGray96\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t862 [label=\"Data.GraphViz.Attributes.Colors\\nGray97\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t863 [label=\"Data.GraphViz.Attributes.Colors\\nGray98\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t864 [label=\"Data.GraphViz.Attributes.Colors\\nGray99\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t865 [label=\"Data.GraphViz.Attributes.Colors\\nGreen\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t866 [label=\"Data.GraphViz.Attributes.Colors\\nGreen1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t867 [label=\"Data.GraphViz.Attributes.Colors\\nGreen2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t868 [label=\"Data.GraphViz.Attributes.Colors\\nGreen3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t869 [label=\"Data.GraphViz.Attributes.Colors\\nGreen4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t870 [label=\"Data.GraphViz.Attributes.Colors\\nGreenYellow\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t874 [label=\"Data.GraphViz.Attributes.Colors\\nHoneyDew\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t875 [label=\"Data.GraphViz.Attributes.Colors\\nHoneyDew1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t876 [label=\"Data.GraphViz.Attributes.Colors\\nHoneyDew2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t877 [label=\"Data.GraphViz.Attributes.Colors\\nHoneyDew3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t878 [label=\"Data.GraphViz.Attributes.Colors\\nHoneyDew4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t879 [label=\"Data.GraphViz.Attributes.Colors\\nHotPink\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t880 [label=\"Data.GraphViz.Attributes.Colors\\nHotPink1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t881 [label=\"Data.GraphViz.Attributes.Colors\\nHotPink2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t882 [label=\"Data.GraphViz.Attributes.Colors\\nHotPink3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t883 [label=\"Data.GraphViz.Attributes.Colors\\nHotPink4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t884 [label=\"Data.GraphViz.Attributes.Colors\\nIndianRed\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t885 [label=\"Data.GraphViz.Attributes.Colors\\nIndianRed1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t886 [label=\"Data.GraphViz.Attributes.Colors\\nIndianRed2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t887 [label=\"Data.GraphViz.Attributes.Colors\\nIndianRed3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t888 [label=\"Data.GraphViz.Attributes.Colors\\nIndianRed4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t889 [label=\"Data.GraphViz.Attributes.Colors\\nIndigo\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t890 [label=\"Data.GraphViz.Attributes.Colors\\nIvory\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t891 [label=\"Data.GraphViz.Attributes.Colors\\nIvory1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t892 [label=\"Data.GraphViz.Attributes.Colors\\nIvory2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t893 [label=\"Data.GraphViz.Attributes.Colors\\nIvory3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t894 [label=\"Data.GraphViz.Attributes.Colors\\nIvory4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t895 [label=\"Data.GraphViz.Attributes.Colors\\nKhaki\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t896 [label=\"Data.GraphViz.Attributes.Colors\\nKhaki1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t897 [label=\"Data.GraphViz.Attributes.Colors\\nKhaki2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t898 [label=\"Data.GraphViz.Attributes.Colors\\nKhaki3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t899 [label=\"Data.GraphViz.Attributes.Colors\\nKhaki4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t900 [label=\"Data.GraphViz.Attributes.Colors\\nLavender\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t901 [label=\"Data.GraphViz.Attributes.Colors\\nLavenderBlush\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t902 [label=\"Data.GraphViz.Attributes.Colors\\nLavenderBlush1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t903 [label=\"Data.GraphViz.Attributes.Colors\\nLavenderBlush2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t904 [label=\"Data.GraphViz.Attributes.Colors\\nLavenderBlush3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t905 [label=\"Data.GraphViz.Attributes.Colors\\nLavenderBlush4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t906 [label=\"Data.GraphViz.Attributes.Colors\\nLawnGreen\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t907 [label=\"Data.GraphViz.Attributes.Colors\\nLemonChiffon\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t908 [label=\"Data.GraphViz.Attributes.Colors\\nLemonChiffon1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t909 [label=\"Data.GraphViz.Attributes.Colors\\nLemonChiffon2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t910 [label=\"Data.GraphViz.Attributes.Colors\\nLemonChiffon3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t911 [label=\"Data.GraphViz.Attributes.Colors\\nLemonChiffon4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t912 [label=\"Data.GraphViz.Attributes.Colors\\nLightBlue\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t913 [label=\"Data.GraphViz.Attributes.Colors\\nLightBlue1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t914 [label=\"Data.GraphViz.Attributes.Colors\\nLightBlue2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t915 [label=\"Data.GraphViz.Attributes.Colors\\nLightBlue3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t916 [label=\"Data.GraphViz.Attributes.Colors\\nLightBlue4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t917 [label=\"Data.GraphViz.Attributes.Colors\\nLightCoral\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t918 [label=\"Data.GraphViz.Attributes.Colors\\nLightCyan\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t919 [label=\"Data.GraphViz.Attributes.Colors\\nLightCyan1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t920 [label=\"Data.GraphViz.Attributes.Colors\\nLightCyan2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t921 [label=\"Data.GraphViz.Attributes.Colors\\nLightCyan3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t922 [label=\"Data.GraphViz.Attributes.Colors\\nLightCyan4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t923 [label=\"Data.GraphViz.Attributes.Colors\\nLightGoldenrod\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t924 [label=\"Data.GraphViz.Attributes.Colors\\nLightGoldenrod1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t925 [label=\"Data.GraphViz.Attributes.Colors\\nLightGoldenrod2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t926 [label=\"Data.GraphViz.Attributes.Colors\\nLightGoldenrod3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t927 [label=\"Data.GraphViz.Attributes.Colors\\nLightGoldenrod4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t928 [label=\"Data.GraphViz.Attributes.Colors\\nLightGoldenrodYellow\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t929 [label=\"Data.GraphViz.Attributes.Colors\\nLightGray\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t930 [label=\"Data.GraphViz.Attributes.Colors\\nLightPink\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t931 [label=\"Data.GraphViz.Attributes.Colors\\nLightPink1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t932 [label=\"Data.GraphViz.Attributes.Colors\\nLightPink2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t933 [label=\"Data.GraphViz.Attributes.Colors\\nLightPink3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t934 [label=\"Data.GraphViz.Attributes.Colors\\nLightPink4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t935 [label=\"Data.GraphViz.Attributes.Colors\\nLightSalmon\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t936 [label=\"Data.GraphViz.Attributes.Colors\\nLightSalmon1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t937 [label=\"Data.GraphViz.Attributes.Colors\\nLightSalmon2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t938 [label=\"Data.GraphViz.Attributes.Colors\\nLightSalmon3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t939 [label=\"Data.GraphViz.Attributes.Colors\\nLightSalmon4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t940 [label=\"Data.GraphViz.Attributes.Colors\\nLightSeaGreen\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t941 [label=\"Data.GraphViz.Attributes.Colors\\nLightSkyBlue\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t942 [label=\"Data.GraphViz.Attributes.Colors\\nLightSkyBlue1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t943 [label=\"Data.GraphViz.Attributes.Colors\\nLightSkyBlue2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t944 [label=\"Data.GraphViz.Attributes.Colors\\nLightSkyBlue3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t945 [label=\"Data.GraphViz.Attributes.Colors\\nLightSkyBlue4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t946 [label=\"Data.GraphViz.Attributes.Colors\\nLightSlateBlue\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t947 [label=\"Data.GraphViz.Attributes.Colors\\nLightSlateGray\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t948 [label=\"Data.GraphViz.Attributes.Colors\\nLightSteelBlue\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t949 [label=\"Data.GraphViz.Attributes.Colors\\nLightSteelBlue1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t950 [label=\"Data.GraphViz.Attributes.Colors\\nLightSteelBlue2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t951 [label=\"Data.GraphViz.Attributes.Colors\\nLightSteelBlue3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t952 [label=\"Data.GraphViz.Attributes.Colors\\nLightSteelBlue4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t953 [label=\"Data.GraphViz.Attributes.Colors\\nLightYellow\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t954 [label=\"Data.GraphViz.Attributes.Colors\\nLightYellow1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t955 [label=\"Data.GraphViz.Attributes.Colors\\nLightYellow2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t956 [label=\"Data.GraphViz.Attributes.Colors\\nLightYellow3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t957 [label=\"Data.GraphViz.Attributes.Colors\\nLightYellow4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t958 [label=\"Data.GraphViz.Attributes.Colors\\nLimeGreen\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t959 [label=\"Data.GraphViz.Attributes.Colors\\nLinen\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t960 [label=\"Data.GraphViz.Attributes.Colors\\nMagenta\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t961 [label=\"Data.GraphViz.Attributes.Colors\\nMagenta1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t962 [label=\"Data.GraphViz.Attributes.Colors\\nMagenta2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t963 [label=\"Data.GraphViz.Attributes.Colors\\nMagenta3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t964 [label=\"Data.GraphViz.Attributes.Colors\\nMagenta4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t965 [label=\"Data.GraphViz.Attributes.Colors\\nMaroon\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t966 [label=\"Data.GraphViz.Attributes.Colors\\nMaroon1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t967 [label=\"Data.GraphViz.Attributes.Colors\\nMaroon2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t968 [label=\"Data.GraphViz.Attributes.Colors\\nMaroon3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t969 [label=\"Data.GraphViz.Attributes.Colors\\nMaroon4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t970 [label=\"Data.GraphViz.Attributes.Colors\\nMediumAquamarine\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t971 [label=\"Data.GraphViz.Attributes.Colors\\nMediumBlue\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t972 [label=\"Data.GraphViz.Attributes.Colors\\nMediumOrchid\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t973 [label=\"Data.GraphViz.Attributes.Colors\\nMediumOrchid1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t974 [label=\"Data.GraphViz.Attributes.Colors\\nMediumOrchid2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t975 [label=\"Data.GraphViz.Attributes.Colors\\nMediumOrchid3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t976 [label=\"Data.GraphViz.Attributes.Colors\\nMediumOrchid4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t977 [label=\"Data.GraphViz.Attributes.Colors\\nMediumPurple\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t978 [label=\"Data.GraphViz.Attributes.Colors\\nMediumPurple1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t979 [label=\"Data.GraphViz.Attributes.Colors\\nMediumPurple2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t980 [label=\"Data.GraphViz.Attributes.Colors\\nMediumPurple3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t981 [label=\"Data.GraphViz.Attributes.Colors\\nMediumPurple4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t982 [label=\"Data.GraphViz.Attributes.Colors\\nMediumSeaGreen\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t983 [label=\"Data.GraphViz.Attributes.Colors\\nMediumSlateBlue\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t984 [label=\"Data.GraphViz.Attributes.Colors\\nMediumSpringGreen\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t985 [label=\"Data.GraphViz.Attributes.Colors\\nMediumTurquoise\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t986 [label=\"Data.GraphViz.Attributes.Colors\\nMediumVioletRed\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t987 [label=\"Data.GraphViz.Attributes.Colors\\nMidnightBlue\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t988 [label=\"Data.GraphViz.Attributes.Colors\\nMintCream\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t989 [label=\"Data.GraphViz.Attributes.Colors\\nMistyRose\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t990 [label=\"Data.GraphViz.Attributes.Colors\\nMistyRose1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t991 [label=\"Data.GraphViz.Attributes.Colors\\nMistyRose2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t992 [label=\"Data.GraphViz.Attributes.Colors\\nMistyRose3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t993 [label=\"Data.GraphViz.Attributes.Colors\\nMistyRose4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t994 [label=\"Data.GraphViz.Attributes.Colors\\nMoccasin\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t995 [label=\"Data.GraphViz.Attributes.Colors\\nNavajoWhite\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t996 [label=\"Data.GraphViz.Attributes.Colors\\nNavajoWhite1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t997 [label=\"Data.GraphViz.Attributes.Colors\\nNavajoWhite2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t998 [label=\"Data.GraphViz.Attributes.Colors\\nNavajoWhite3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t999 [label=\"Data.GraphViz.Attributes.Colors\\nNavajoWhite4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1000 [label=\"Data.GraphViz.Attributes.Colors\\nNavy\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1001 [label=\"Data.GraphViz.Attributes.Colors\\nNavyBlue\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1002 [label=\"Data.GraphViz.Attributes.Colors\\nOldLace\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1003 [label=\"Data.GraphViz.Attributes.Colors\\nOliveDrab\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1004 [label=\"Data.GraphViz.Attributes.Colors\\nOliveDrab1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1005 [label=\"Data.GraphViz.Attributes.Colors\\nOliveDrab2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1006 [label=\"Data.GraphViz.Attributes.Colors\\nOliveDrab3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1007 [label=\"Data.GraphViz.Attributes.Colors\\nOliveDrab4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1008 [label=\"Data.GraphViz.Attributes.Colors\\nOrange\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1009 [label=\"Data.GraphViz.Attributes.Colors\\nOrange1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1010 [label=\"Data.GraphViz.Attributes.Colors\\nOrange2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1011 [label=\"Data.GraphViz.Attributes.Colors\\nOrange3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1012 [label=\"Data.GraphViz.Attributes.Colors\\nOrange4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1013 [label=\"Data.GraphViz.Attributes.Colors\\nOrangeRed\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1014 [label=\"Data.GraphViz.Attributes.Colors\\nOrangeRed1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1015 [label=\"Data.GraphViz.Attributes.Colors\\nOrangeRed2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1016 [label=\"Data.GraphViz.Attributes.Colors\\nOrangeRed3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1017 [label=\"Data.GraphViz.Attributes.Colors\\nOrangeRed4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1019 [label=\"Data.GraphViz.Attributes.Colors\\nOrchid\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1020 [label=\"Data.GraphViz.Attributes.Colors\\nOrchid1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1021 [label=\"Data.GraphViz.Attributes.Colors\\nOrchid2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1022 [label=\"Data.GraphViz.Attributes.Colors\\nOrchid3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1023 [label=\"Data.GraphViz.Attributes.Colors\\nOrchid4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1026 [label=\"Data.GraphViz.Attributes.Colors\\nPaleGoldenrod\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1027 [label=\"Data.GraphViz.Attributes.Colors\\nPaleGreen\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1028 [label=\"Data.GraphViz.Attributes.Colors\\nPaleGreen1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1029 [label=\"Data.GraphViz.Attributes.Colors\\nPaleGreen2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1030 [label=\"Data.GraphViz.Attributes.Colors\\nPaleGreen3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1031 [label=\"Data.GraphViz.Attributes.Colors\\nPaleGreen4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1032 [label=\"Data.GraphViz.Attributes.Colors\\nPaleTurquoise\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1033 [label=\"Data.GraphViz.Attributes.Colors\\nPaleTurquoise1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1034 [label=\"Data.GraphViz.Attributes.Colors\\nPaleTurquoise2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1035 [label=\"Data.GraphViz.Attributes.Colors\\nPaleTurquoise3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1036 [label=\"Data.GraphViz.Attributes.Colors\\nPaleTurquoise4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1037 [label=\"Data.GraphViz.Attributes.Colors\\nPaleVioletRed\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1038 [label=\"Data.GraphViz.Attributes.Colors\\nPaleVioletRed1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1039 [label=\"Data.GraphViz.Attributes.Colors\\nPaleVioletRed2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1040 [label=\"Data.GraphViz.Attributes.Colors\\nPaleVioletRed3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1041 [label=\"Data.GraphViz.Attributes.Colors\\nPaleVioletRed4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1042 [label=\"Data.GraphViz.Attributes.Colors\\nPapayaWhip\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1045 [label=\"Data.GraphViz.Attributes.Colors\\nPeachPuff\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1046 [label=\"Data.GraphViz.Attributes.Colors\\nPeachPuff1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1047 [label=\"Data.GraphViz.Attributes.Colors\\nPeachPuff2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1048 [label=\"Data.GraphViz.Attributes.Colors\\nPeachPuff3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1049 [label=\"Data.GraphViz.Attributes.Colors\\nPeachPuff4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1050 [label=\"Data.GraphViz.Attributes.Colors\\nPeru\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1051 [label=\"Data.GraphViz.Attributes.Colors\\nPink\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1052 [label=\"Data.GraphViz.Attributes.Colors\\nPink1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1053 [label=\"Data.GraphViz.Attributes.Colors\\nPink2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1054 [label=\"Data.GraphViz.Attributes.Colors\\nPink3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1055 [label=\"Data.GraphViz.Attributes.Colors\\nPink4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1057 [label=\"Data.GraphViz.Attributes.Colors\\nPlum\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1058 [label=\"Data.GraphViz.Attributes.Colors\\nPlum1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1059 [label=\"Data.GraphViz.Attributes.Colors\\nPlum2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1060 [label=\"Data.GraphViz.Attributes.Colors\\nPlum3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1061 [label=\"Data.GraphViz.Attributes.Colors\\nPlum4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1062 [label=\"Data.GraphViz.Attributes.Colors\\nPowderBlue\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1068 [label=\"Data.GraphViz.Attributes.Colors\\nPurple\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1069 [label=\"Data.GraphViz.Attributes.Colors\\nPurple1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1070 [label=\"Data.GraphViz.Attributes.Colors\\nPurple2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1071 [label=\"Data.GraphViz.Attributes.Colors\\nPurple3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1072 [label=\"Data.GraphViz.Attributes.Colors\\nPurple4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1081 [label=\"Data.GraphViz.Attributes.Colors\\nRed\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1082 [label=\"Data.GraphViz.Attributes.Colors\\nRed1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1083 [label=\"Data.GraphViz.Attributes.Colors\\nRed2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1084 [label=\"Data.GraphViz.Attributes.Colors\\nRed3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1085 [label=\"Data.GraphViz.Attributes.Colors\\nRed4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1087 [label=\"Data.GraphViz.Attributes.Colors\\nRosyBrown\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1088 [label=\"Data.GraphViz.Attributes.Colors\\nRosyBrown1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1089 [label=\"Data.GraphViz.Attributes.Colors\\nRosyBrown2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1090 [label=\"Data.GraphViz.Attributes.Colors\\nRosyBrown3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1091 [label=\"Data.GraphViz.Attributes.Colors\\nRosyBrown4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1092 [label=\"Data.GraphViz.Attributes.Colors\\nRoyalBlue\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1093 [label=\"Data.GraphViz.Attributes.Colors\\nRoyalBlue1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1094 [label=\"Data.GraphViz.Attributes.Colors\\nRoyalBlue2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1095 [label=\"Data.GraphViz.Attributes.Colors\\nRoyalBlue3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1096 [label=\"Data.GraphViz.Attributes.Colors\\nRoyalBlue4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1097 [label=\"Data.GraphViz.Attributes.Colors\\nSaddleBrown\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1098 [label=\"Data.GraphViz.Attributes.Colors\\nSalmon\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1099 [label=\"Data.GraphViz.Attributes.Colors\\nSalmon1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1100 [label=\"Data.GraphViz.Attributes.Colors\\nSalmon2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1101 [label=\"Data.GraphViz.Attributes.Colors\\nSalmon3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1102 [label=\"Data.GraphViz.Attributes.Colors\\nSalmon4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1103 [label=\"Data.GraphViz.Attributes.Colors\\nSandyBrown\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1104 [label=\"Data.GraphViz.Attributes.Colors\\nSeaGreen\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1105 [label=\"Data.GraphViz.Attributes.Colors\\nSeaGreen1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1106 [label=\"Data.GraphViz.Attributes.Colors\\nSeaGreen2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1107 [label=\"Data.GraphViz.Attributes.Colors\\nSeaGreen3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1108 [label=\"Data.GraphViz.Attributes.Colors\\nSeaGreen4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1109 [label=\"Data.GraphViz.Attributes.Colors\\nSeaShell\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1110 [label=\"Data.GraphViz.Attributes.Colors\\nSeaShell1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1111 [label=\"Data.GraphViz.Attributes.Colors\\nSeaShell2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1112 [label=\"Data.GraphViz.Attributes.Colors\\nSeaShell3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1113 [label=\"Data.GraphViz.Attributes.Colors\\nSeaShell4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1117 [label=\"Data.GraphViz.Attributes.Colors\\nSienna\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1118 [label=\"Data.GraphViz.Attributes.Colors\\nSienna1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1119 [label=\"Data.GraphViz.Attributes.Colors\\nSienna2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1120 [label=\"Data.GraphViz.Attributes.Colors\\nSienna3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1121 [label=\"Data.GraphViz.Attributes.Colors\\nSienna4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1122 [label=\"Data.GraphViz.Attributes.Colors\\nSkyBlue\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1123 [label=\"Data.GraphViz.Attributes.Colors\\nSkyBlue1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1124 [label=\"Data.GraphViz.Attributes.Colors\\nSkyBlue2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1125 [label=\"Data.GraphViz.Attributes.Colors\\nSkyBlue3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1126 [label=\"Data.GraphViz.Attributes.Colors\\nSkyBlue4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1127 [label=\"Data.GraphViz.Attributes.Colors\\nSlateBlue\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1128 [label=\"Data.GraphViz.Attributes.Colors\\nSlateBlue1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1129 [label=\"Data.GraphViz.Attributes.Colors\\nSlateBlue2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1130 [label=\"Data.GraphViz.Attributes.Colors\\nSlateBlue3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1131 [label=\"Data.GraphViz.Attributes.Colors\\nSlateBlue4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1132 [label=\"Data.GraphViz.Attributes.Colors\\nSlateGray\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1133 [label=\"Data.GraphViz.Attributes.Colors\\nSlateGray1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1134 [label=\"Data.GraphViz.Attributes.Colors\\nSlateGray2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1135 [label=\"Data.GraphViz.Attributes.Colors\\nSlateGray3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1136 [label=\"Data.GraphViz.Attributes.Colors\\nSlateGray4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1137 [label=\"Data.GraphViz.Attributes.Colors\\nSnow\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1138 [label=\"Data.GraphViz.Attributes.Colors\\nSnow1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1139 [label=\"Data.GraphViz.Attributes.Colors\\nSnow2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1140 [label=\"Data.GraphViz.Attributes.Colors\\nSnow3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1141 [label=\"Data.GraphViz.Attributes.Colors\\nSnow4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1143 [label=\"Data.GraphViz.Attributes.Colors\\nSpringGreen\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1144 [label=\"Data.GraphViz.Attributes.Colors\\nSpringGreen1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1145 [label=\"Data.GraphViz.Attributes.Colors\\nSpringGreen2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1146 [label=\"Data.GraphViz.Attributes.Colors\\nSpringGreen3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1147 [label=\"Data.GraphViz.Attributes.Colors\\nSpringGreen4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1148 [label=\"Data.GraphViz.Attributes.Colors\\nSteelBlue\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1149 [label=\"Data.GraphViz.Attributes.Colors\\nSteelBlue1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1150 [label=\"Data.GraphViz.Attributes.Colors\\nSteelBlue2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1151 [label=\"Data.GraphViz.Attributes.Colors\\nSteelBlue3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1152 [label=\"Data.GraphViz.Attributes.Colors\\nSteelBlue4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1153 [label=\"Data.GraphViz.Attributes.Colors\\nTan\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1154 [label=\"Data.GraphViz.Attributes.Colors\\nTan1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1155 [label=\"Data.GraphViz.Attributes.Colors\\nTan2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1156 [label=\"Data.GraphViz.Attributes.Colors\\nTan3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1157 [label=\"Data.GraphViz.Attributes.Colors\\nTan4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1158 [label=\"Data.GraphViz.Attributes.Colors\\nThistle\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1159 [label=\"Data.GraphViz.Attributes.Colors\\nThistle1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1160 [label=\"Data.GraphViz.Attributes.Colors\\nThistle2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1161 [label=\"Data.GraphViz.Attributes.Colors\\nThistle3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1162 [label=\"Data.GraphViz.Attributes.Colors\\nThistle4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1163 [label=\"Data.GraphViz.Attributes.Colors\\nTomato\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1164 [label=\"Data.GraphViz.Attributes.Colors\\nTomato1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1165 [label=\"Data.GraphViz.Attributes.Colors\\nTomato2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1166 [label=\"Data.GraphViz.Attributes.Colors\\nTomato3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1167 [label=\"Data.GraphViz.Attributes.Colors\\nTomato4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1168 [label=\"Data.GraphViz.Attributes.Colors\\nTransparent\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1169 [label=\"Data.GraphViz.Attributes.Colors\\nTurquoise\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1170 [label=\"Data.GraphViz.Attributes.Colors\\nTurquoise1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1171 [label=\"Data.GraphViz.Attributes.Colors\\nTurquoise2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1172 [label=\"Data.GraphViz.Attributes.Colors\\nTurquoise3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1173 [label=\"Data.GraphViz.Attributes.Colors\\nTurquoise4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1174 [label=\"Data.GraphViz.Attributes.Colors\\nViolet\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1175 [label=\"Data.GraphViz.Attributes.Colors\\nVioletRed\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1176 [label=\"Data.GraphViz.Attributes.Colors\\nVioletRed1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1177 [label=\"Data.GraphViz.Attributes.Colors\\nVioletRed2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1178 [label=\"Data.GraphViz.Attributes.Colors\\nVioletRed3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1179 [label=\"Data.GraphViz.Attributes.Colors\\nVioletRed4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1180 [label=\"Data.GraphViz.Attributes.Colors\\nWheat\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1181 [label=\"Data.GraphViz.Attributes.Colors\\nWheat1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1182 [label=\"Data.GraphViz.Attributes.Colors\\nWheat2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1183 [label=\"Data.GraphViz.Attributes.Colors\\nWheat3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1184 [label=\"Data.GraphViz.Attributes.Colors\\nWheat4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1185 [label=\"Data.GraphViz.Attributes.Colors\\nWhite\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1186 [label=\"Data.GraphViz.Attributes.Colors\\nWhiteSmoke\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1189 [label=\"Data.GraphViz.Attributes.Colors\\nYellow\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1190 [label=\"Data.GraphViz.Attributes.Colors\\nYellow1\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1191 [label=\"Data.GraphViz.Attributes.Colors\\nYellow2\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1192 [label=\"Data.GraphViz.Attributes.Colors\\nYellow3\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1193 [label=\"Data.GraphViz.Attributes.Colors\\nYellow4\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t\t1194 [label=\"Data.GraphViz.Attributes.Colors\\nYellowGreen\", style=\"filled,solid\", shape=box3d, fillcolor=goldenrod];\n\t}\n\t3 [label=\"Data.GraphViz\\naddEdgeIDs\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t4 [label=\"Data.GraphViz\\naugmentGraph\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t5 [label=\"Data.GraphViz\\nblankParams\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t6 [label=\"Data.GraphViz\\ncanonicalise\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t9 [label=\"Data.GraphViz\\ndefaultParams\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t10 [label=\"Data.GraphViz\\ndotAttributes\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t11 [label=\"Data.GraphViz\\ndotToGraph\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t12 [label=\"Data.GraphViz\\ndotizeGraph\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t18 [label=\"Data.GraphViz\\nfromDotResult\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t20 [label=\"Data.GraphViz\\ngraphToDot\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t21 [label=\"Data.GraphViz\\ngraphToGraph\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t23 [label=\"Data.GraphViz\\nisUndirected\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t24 [label=\"Data.GraphViz\\nnonClusteredParams\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t25 [label=\"Data.GraphViz\\nprettyPrint\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t26 [label=\"Data.GraphViz\\nprettyPrint'\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t27 [label=\"Data.GraphViz\\npreview\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t28 [label=\"Data.GraphViz\\nsetDirectedness\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t29 [label=\"Data.GraphViz\\nsetEdgeComment\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t30 [label=\"Data.GraphViz\\nstripID\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t39 [label=\"Data.GraphViz.AttributeGenerator\\narbitraryFor\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t40 [label=\"Data.GraphViz.AttributeGenerator\\narbitraryFor'\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t41 [label=\"Data.GraphViz.AttributeGenerator\\narbitraryInstance\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t42 [label=\"Data.GraphViz.AttributeGenerator\\nasRows\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t43 [label=\"Data.GraphViz.AttributeGenerator\\nattributes\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t44 [label=\"Data.GraphViz.AttributeGenerator\\nattrs\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t45 [label=\"Data.GraphViz.AttributeGenerator\\nattrs'\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t47 [label=\"Data.GraphViz.AttributeGenerator\\nbool\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t50 [label=\"Data.GraphViz.AttributeGenerator\\ncreateAlias\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t51 [label=\"Data.GraphViz.AttributeGenerator\\ncreateDefn\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t52 [label=\"Data.GraphViz.AttributeGenerator\\ndocLen\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t53 [label=\"Data.GraphViz.AttributeGenerator\\ndocList\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t54 [label=\"Data.GraphViz.AttributeGenerator\\ndollar\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t55 [label=\"Data.GraphViz.AttributeGenerator\\ndot\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t56 [label=\"Data.GraphViz.AttributeGenerator\\nfirstOthers\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t62 [label=\"Data.GraphViz.AttributeGenerator\\ngenArbitrary\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t63 [label=\"Data.GraphViz.AttributeGenerator\\ngenCode\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t64 [label=\"Data.GraphViz.AttributeGenerator\\nmain\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t65 [label=\"Data.GraphViz.AttributeGenerator\\nmakeAttr\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t68 [label=\"Data.GraphViz.AttributeGenerator\\nparseInstance\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t70 [label=\"Data.GraphViz.AttributeGenerator\\nsameAttributeFunc\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t71 [label=\"Data.GraphViz.AttributeGenerator\\nshowInstance\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t72 [label=\"Data.GraphViz.AttributeGenerator\\nshrinkFor\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t73 [label=\"Data.GraphViz.AttributeGenerator\\ntab\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t75 [label=\"Data.GraphViz.AttributeGenerator\\nunknownAttr\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t76 [label=\"Data.GraphViz.AttributeGenerator\\nusedByFunc\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t78 [label=\"Data.GraphViz.AttributeGenerator\\nvsep\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t79 [label=\"Data.GraphViz.AttributeGenerator\\nvtype\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t80 [label=\"Data.GraphViz.AttributeGenerator\\nvtypeCode\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t81 [label=\"Data.GraphViz.AttributeGenerator\\nwrap\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t404 [label=\"Data.GraphViz.Attributes\\nbox\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t405 [label=\"Data.GraphViz.Attributes\\ncheckDD\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t406 [label=\"Data.GraphViz.Attributes\\ncheckLayerName\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t407 [label=\"Data.GraphViz.Attributes\\ncreatePoint\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t408 [label=\"Data.GraphViz.Attributes\\ncrow\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t409 [label=\"Data.GraphViz.Attributes\\ndefLayerSep\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t410 [label=\"Data.GraphViz.Attributes\\ndiamond\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t411 [label=\"Data.GraphViz.Attributes\\ndotArrow\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t412 [label=\"Data.GraphViz.Attributes\\neDiamond\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t413 [label=\"Data.GraphViz.Attributes\\nemptyArr\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t417 [label=\"Data.GraphViz.Attributes\\nhalfOpen\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t418 [label=\"Data.GraphViz.Attributes\\ninv\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t419 [label=\"Data.GraphViz.Attributes\\ninvDot\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t420 [label=\"Data.GraphViz.Attributes\\ninvEmpty\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t421 [label=\"Data.GraphViz.Attributes\\ninvODot\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t428 [label=\"Data.GraphViz.Attributes\\nnoArrow\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t429 [label=\"Data.GraphViz.Attributes\\nnoMods\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t430 [label=\"Data.GraphViz.Attributes\\nnormal\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t431 [label=\"Data.GraphViz.Attributes\\nnotLayerSep\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t432 [label=\"Data.GraphViz.Attributes\\noBox\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t433 [label=\"Data.GraphViz.Attributes\\noDiamond\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t434 [label=\"Data.GraphViz.Attributes\\noDot\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t435 [label=\"Data.GraphViz.Attributes\\nopenArr\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t436 [label=\"Data.GraphViz.Attributes\\nopenMod\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t457 [label=\"Data.GraphViz.Attributes\\nparseArgs\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t458 [label=\"Data.GraphViz.Attributes\\nparseLayerName\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t459 [label=\"Data.GraphViz.Attributes\\nparseLayerName'\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t460 [label=\"Data.GraphViz.Attributes\\nparseLayerSep\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t464 [label=\"Data.GraphViz.Attributes\\nparsePoint2D\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t465 [label=\"Data.GraphViz.Attributes\\nparseRecord\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t466 [label=\"Data.GraphViz.Attributes\\nparseStyleName\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t515 [label=\"Data.GraphViz.Attributes\\nprintPortName\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t516 [label=\"Data.GraphViz.Attributes\\nrecordEscChars\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t517 [label=\"Data.GraphViz.Attributes\\nsameAttribute\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t518 [label=\"Data.GraphViz.Attributes\\nspecialArrowParse\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t519 [label=\"Data.GraphViz.Attributes\\ntee\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t599 [label=\"Data.GraphViz.Attributes\\nunqtRecordString\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t600 [label=\"Data.GraphViz.Attributes\\nusedByClusters\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t601 [label=\"Data.GraphViz.Attributes\\nusedByEdges\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t602 [label=\"Data.GraphViz.Attributes\\nusedByGraphs\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t603 [label=\"Data.GraphViz.Attributes\\nusedByNodes\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t604 [label=\"Data.GraphViz.Attributes\\nusedBySubGraphs\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t605 [label=\"Data.GraphViz.Attributes\\nvee\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1201 [label=\"Data.GraphViz.Attributes.Colors\\nfromAColour\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t1202 [label=\"Data.GraphViz.Attributes.Colors\\nfromColour\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t1204 [label=\"Data.GraphViz.Attributes.Colors\\nhexColor\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1207 [label=\"Data.GraphViz.Attributes.Colors\\nmaxWord\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1217 [label=\"Data.GraphViz.Attributes.Colors\\ntoColour\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t1219 [label=\"Data.GraphViz.Attributes.Colors\\ntoOpacity\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1226 [label=\"Data.GraphViz.Attributes.Colors\\nword8Doc\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1227 [label=\"Data.GraphViz.Attributes.Colors\\nx11Colour\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1272 [label=\"Data.GraphViz.Attributes.HTML\\nescapeAttribute\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1273 [label=\"Data.GraphViz.Attributes.HTML\\nescapeHtml\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1274 [label=\"Data.GraphViz.Attributes.HTML\\nescapeValue\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1275 [label=\"Data.GraphViz.Attributes.HTML\\nhtmlEscapes\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1276 [label=\"Data.GraphViz.Attributes.HTML\\nhtmlUnescapes\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1291 [label=\"Data.GraphViz.Attributes.HTML\\nparseBoolHtml\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1292 [label=\"Data.GraphViz.Attributes.HTML\\nparseHtmlEmptyTag\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1293 [label=\"Data.GraphViz.Attributes.HTML\\nparseHtmlField\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1294 [label=\"Data.GraphViz.Attributes.HTML\\nparseHtmlField'\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1295 [label=\"Data.GraphViz.Attributes.HTML\\nparseHtmlFontTag\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1296 [label=\"Data.GraphViz.Attributes.HTML\\nparseHtmlTag\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1315 [label=\"Data.GraphViz.Attributes.HTML\\nprintBoolHtml\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1316 [label=\"Data.GraphViz.Attributes.HTML\\nprintCell\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1317 [label=\"Data.GraphViz.Attributes.HTML\\nprintHtmlEmptyTag\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1318 [label=\"Data.GraphViz.Attributes.HTML\\nprintHtmlField\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1319 [label=\"Data.GraphViz.Attributes.HTML\\nprintHtmlField'\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1320 [label=\"Data.GraphViz.Attributes.HTML\\nprintHtmlFontTag\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1321 [label=\"Data.GraphViz.Attributes.HTML\\nprintHtmlTag\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1325 [label=\"Data.GraphViz.Attributes.HTML\\nunescapeAttribute\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1326 [label=\"Data.GraphViz.Attributes.HTML\\nunescapeHtml\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1327 [label=\"Data.GraphViz.Attributes.HTML\\nunescapeValue\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1355 [label=\"Data.GraphViz.Attributes.Internal\\ncheckPortName\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1356 [label=\"Data.GraphViz.Attributes.Internal\\ncompassLookup\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1359 [label=\"Data.GraphViz.Attributes.Internal\\nparseEdgeBasedPP\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1369 [label=\"Data.GraphViz.Attributes.Internal\\nunqtPortName\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1370 [label=\"Data.GraphViz.Parsing\\nallWhitespace\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1371 [label=\"Data.GraphViz.Parsing\\nallWhitespace'\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1372 [label=\"Data.GraphViz.Parsing\\nbracket\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1373 [label=\"Data.GraphViz.Parsing\\ncharacter\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1374 [label=\"Data.GraphViz.Parsing\\ncommaSep\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t1375 [label=\"Data.GraphViz.Parsing\\ncommaSep'\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1376 [label=\"Data.GraphViz.Parsing\\ncommaSepUnqt\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1377 [label=\"Data.GraphViz.Parsing\\nconsumeLine\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1378 [label=\"Data.GraphViz.Parsing\\ndiscard\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1379 [label=\"Data.GraphViz.Parsing\\nnewline\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1380 [label=\"Data.GraphViz.Parsing\\nnewline'\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1381 [label=\"Data.GraphViz.Parsing\\nnoneOf\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1382 [label=\"Data.GraphViz.Parsing\\nnumString\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1383 [label=\"Data.GraphViz.Parsing\\nonlyBool\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1384 [label=\"Data.GraphViz.Parsing\\noptionalQuoted\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1385 [label=\"Data.GraphViz.Parsing\\noptionalQuotedString\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t1386 [label=\"Data.GraphViz.Parsing\\norQuote\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1391 [label=\"Data.GraphViz.Parsing\\nparseAndSpace\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1392 [label=\"Data.GraphViz.Parsing\\nparseAngled\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1393 [label=\"Data.GraphViz.Parsing\\nparseBraced\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1394 [label=\"Data.GraphViz.Parsing\\nparseComma\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1395 [label=\"Data.GraphViz.Parsing\\nparseEq\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1396 [label=\"Data.GraphViz.Parsing\\nparseEscaped\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1397 [label=\"Data.GraphViz.Parsing\\nparseField\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1398 [label=\"Data.GraphViz.Parsing\\nparseFieldBool\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1399 [label=\"Data.GraphViz.Parsing\\nparseFieldDef\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1400 [label=\"Data.GraphViz.Parsing\\nparseFields\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1401 [label=\"Data.GraphViz.Parsing\\nparseFieldsBool\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t1402 [label=\"Data.GraphViz.Parsing\\nparseFieldsDef\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t1403 [label=\"Data.GraphViz.Parsing\\nparseFloat\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1404 [label=\"Data.GraphViz.Parsing\\nparseFloat'\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1405 [label=\"Data.GraphViz.Parsing\\nparseInt\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1406 [label=\"Data.GraphViz.Parsing\\nparseInt'\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1407 [label=\"Data.GraphViz.Parsing\\nparseIt\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t1408 [label=\"Data.GraphViz.Parsing\\nparseIt'\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t1413 [label=\"Data.GraphViz.Parsing\\nparseQuote\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1414 [label=\"Data.GraphViz.Parsing\\nparseSigned\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1415 [label=\"Data.GraphViz.Parsing\\nparseStrictFloat\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1428 [label=\"Data.GraphViz.Parsing\\nquoteChar\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1429 [label=\"Data.GraphViz.Parsing\\nquotedParse\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1430 [label=\"Data.GraphViz.Parsing\\nquotedString\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1431 [label=\"Data.GraphViz.Parsing\\nquotelessString\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1432 [label=\"Data.GraphViz.Parsing\\nrunParser'\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1433 [label=\"Data.GraphViz.Parsing\\nstring\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1434 [label=\"Data.GraphViz.Parsing\\nstringBlock\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1435 [label=\"Data.GraphViz.Parsing\\nstringRep\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1436 [label=\"Data.GraphViz.Parsing\\nstringReps\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1437 [label=\"Data.GraphViz.Parsing\\nstrings\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t1438 [label=\"Data.GraphViz.Parsing\\ntryParseList\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t1439 [label=\"Data.GraphViz.Parsing\\ntryParseList'\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1440 [label=\"Data.GraphViz.Parsing\\nwhitespace\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1441 [label=\"Data.GraphViz.Parsing\\nwhitespace'\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1442 [label=\"Data.GraphViz.Parsing\\nwrapWhitespace\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1443 [label=\"Data.GraphViz.PreProcessing\\nparseConcatStrings\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1444 [label=\"Data.GraphViz.PreProcessing\\nparseHTML\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1445 [label=\"Data.GraphViz.PreProcessing\\nparseLineComment\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1446 [label=\"Data.GraphViz.PreProcessing\\nparseMultiLineComment\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1447 [label=\"Data.GraphViz.PreProcessing\\nparseOutUnwanted\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1448 [label=\"Data.GraphViz.PreProcessing\\nparsePreProcessor\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1449 [label=\"Data.GraphViz.PreProcessing\\nparseSplitLine\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1450 [label=\"Data.GraphViz.PreProcessing\\nparseUnwanted\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1451 [label=\"Data.GraphViz.PreProcessing\\npreProcess\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t1452 [label=\"Data.GraphViz.Printing\\naddEscapes\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1453 [label=\"Data.GraphViz.Printing\\naddQuotes\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1454 [label=\"Data.GraphViz.Printing\\nangled\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1455 [label=\"Data.GraphViz.Printing\\ncommaDel\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1456 [label=\"Data.GraphViz.Printing\\nfslash\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1457 [label=\"Data.GraphViz.Printing\\nlang\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1462 [label=\"Data.GraphViz.Printing\\nneedsQuotes\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1463 [label=\"Data.GraphViz.Printing\\nprintEscaped\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1464 [label=\"Data.GraphViz.Printing\\nprintField\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1465 [label=\"Data.GraphViz.Printing\\nprintIt\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t1466 [label=\"Data.GraphViz.Printing\\nqtChar\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1467 [label=\"Data.GraphViz.Printing\\nqtString\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1468 [label=\"Data.GraphViz.Printing\\nrang\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1469 [label=\"Data.GraphViz.Printing\\nrenderDot\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1483 [label=\"Data.GraphViz.Printing\\nunqtEscaped\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1488 [label=\"Data.GraphViz.Printing\\nunqtString\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1489 [label=\"Data.GraphViz.Printing\\nwrap\", style=\"filled,solid\", shape=box, fillcolor=goldenrod];\n\t1491 [label=\"Data.GraphViz.Testing\\nblankLn\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1492 [label=\"Data.GraphViz.Testing\\ndefaultTests\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1494 [label=\"Data.GraphViz.Testing\\ndie\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1497 [label=\"Data.GraphViz.Testing\\nrunChosenTests\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1498 [label=\"Data.GraphViz.Testing\\nrunTest\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1499 [label=\"Data.GraphViz.Testing\\nrunTests\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1500 [label=\"Data.GraphViz.Testing\\nspacerLn\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1502 [label=\"Data.GraphViz.Testing\\ntest_dotizeAugment\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1503 [label=\"Data.GraphViz.Testing\\ntest_dotizeAugmentUniq\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1504 [label=\"Data.GraphViz.Testing\\ntest_findAllEdges\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1505 [label=\"Data.GraphViz.Testing\\ntest_findAllEdgesG\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1506 [label=\"Data.GraphViz.Testing\\ntest_findAllNodes\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1507 [label=\"Data.GraphViz.Testing\\ntest_findAllNodesE\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1508 [label=\"Data.GraphViz.Testing\\ntest_findAllNodesEG\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1509 [label=\"Data.GraphViz.Testing\\ntest_findAllNodesG\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1510 [label=\"Data.GraphViz.Testing\\ntest_generalisedSameDot\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1511 [label=\"Data.GraphViz.Testing\\ntest_noGraphInfo\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1512 [label=\"Data.GraphViz.Testing\\ntest_noGraphInfoG\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1513 [label=\"Data.GraphViz.Testing\\ntest_parsePrettyID\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1514 [label=\"Data.GraphViz.Testing\\ntest_preProcessingID\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1515 [label=\"Data.GraphViz.Testing\\ntest_printParseGID\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1516 [label=\"Data.GraphViz.Testing\\ntest_printParseID\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1517 [label=\"Data.GraphViz.Testing\\ntest_printParseID_Attributes\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1518 [label=\"Data.GraphViz.Testing.Instances\\narbBounded\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1519 [label=\"Data.GraphViz.Testing.Instances\\narbDS\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1520 [label=\"Data.GraphViz.Testing.Instances\\narbField\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1521 [label=\"Data.GraphViz.Testing.Instances\\narbGDS\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1522 [label=\"Data.GraphViz.Testing.Instances\\narbHtml\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1523 [label=\"Data.GraphViz.Testing.Instances\\narbHtmlText\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1524 [label=\"Data.GraphViz.Testing.Instances\\narbHtmlTexts\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1525 [label=\"Data.GraphViz.Testing.Instances\\narbIDString\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1526 [label=\"Data.GraphViz.Testing.Instances\\narbLayerName\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1527 [label=\"Data.GraphViz.Testing.Instances\\narbList\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1528 [label=\"Data.GraphViz.Testing.Instances\\narbString\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1529 [label=\"Data.GraphViz.Testing.Instances\\narbStyleName\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1601 [label=\"Data.GraphViz.Testing.Instances\\nfromPositive\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1602 [label=\"Data.GraphViz.Testing.Instances\\ngenGDStmts\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1603 [label=\"Data.GraphViz.Testing.Instances\\nlrnameCheck\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1604 [label=\"Data.GraphViz.Testing.Instances\\nnonEmptyShrinks\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1605 [label=\"Data.GraphViz.Testing.Instances\\nnonEmptyShrinks'\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1606 [label=\"Data.GraphViz.Testing.Instances\\nnotBool\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1607 [label=\"Data.GraphViz.Testing.Instances\\nnotCP\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1608 [label=\"Data.GraphViz.Testing.Instances\\nnotInt\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1609 [label=\"Data.GraphViz.Testing.Instances\\nnotNumStr\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1610 [label=\"Data.GraphViz.Testing.Instances\\nnotStr\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1611 [label=\"Data.GraphViz.Testing.Instances\\npoint2D\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1612 [label=\"Data.GraphViz.Testing.Instances\\nposArbitrary\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1613 [label=\"Data.GraphViz.Testing.Instances\\nreturnCheck\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1655 [label=\"Data.GraphViz.Testing.Instances\\nshrinkGDStmts\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1656 [label=\"Data.GraphViz.Testing.Instances\\nshrinkL\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1657 [label=\"Data.GraphViz.Testing.Instances\\nshrinkList\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1658 [label=\"Data.GraphViz.Testing.Instances\\nshrinkList'\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1659 [label=\"Data.GraphViz.Testing.Instances\\nshrinkM\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1660 [label=\"Data.GraphViz.Testing.Instances\\nshrinkString\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1661 [label=\"Data.GraphViz.Testing.Instances\\nsimplifyHtmlText\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1662 [label=\"Data.GraphViz.Testing.Instances\\nvalidSplineList\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1663 [label=\"Data.GraphViz.Testing.Instances\\nvalidString\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1664 [label=\"Data.GraphViz.Testing.Instances\\nvalidUnknown\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1671 [label=\"Data.GraphViz.Types.Clustering\\nclustOrder\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1672 [label=\"Data.GraphViz.Types.Clustering\\nclustToTree\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1673 [label=\"Data.GraphViz.Types.Clustering\\nclustersToNodes\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1674 [label=\"Data.GraphViz.Types.Clustering\\ncollapseNClusts\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1675 [label=\"Data.GraphViz.Types.Clustering\\ngetNodes\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1676 [label=\"Data.GraphViz.Types.Clustering\\nsameClust\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1677 [label=\"Data.GraphViz.Types.Clustering\\ntreeToDot\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1678 [label=\"Data.GraphViz.Types.Clustering\\ntreesToDot\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1690 [label=\"Data.GraphViz.Types.Common\\naddPortPos\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1692 [label=\"Data.GraphViz.Types.Common\\nclust\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1693 [label=\"Data.GraphViz.Types.Common\\nclust'\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1694 [label=\"Data.GraphViz.Types.Common\\ndetermineType\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1695 [label=\"Data.GraphViz.Types.Common\\ndirEdge\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1696 [label=\"Data.GraphViz.Types.Common\\ndirEdge'\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1697 [label=\"Data.GraphViz.Types.Common\\ndirGraph\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1698 [label=\"Data.GraphViz.Types.Common\\ndirGraph'\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1705 [label=\"Data.GraphViz.Types.Common\\ninvalidEdge\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1706 [label=\"Data.GraphViz.Types.Common\\ninvalidGlobal\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1707 [label=\"Data.GraphViz.Types.Common\\ninvalidNode\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1711 [label=\"Data.GraphViz.Types.Common\\nmkEdge\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1712 [label=\"Data.GraphViz.Types.Common\\nmkEdges\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1719 [label=\"Data.GraphViz.Types.Common\\nparseAttrBased\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1720 [label=\"Data.GraphViz.Types.Common\\nparseAttrBasedList\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1721 [label=\"Data.GraphViz.Types.Common\\nparseBracesBased\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1722 [label=\"Data.GraphViz.Types.Common\\nparseEdgeID\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1723 [label=\"Data.GraphViz.Types.Common\\nparseEdgeLine\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1724 [label=\"Data.GraphViz.Types.Common\\nparseEdgeNode\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1725 [label=\"Data.GraphViz.Types.Common\\nparseEdgeNodes\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1726 [label=\"Data.GraphViz.Types.Common\\nparseEdgeType\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1727 [label=\"Data.GraphViz.Types.Common\\nparseGlobAttrType\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1728 [label=\"Data.GraphViz.Types.Common\\nparseGraphID\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1732 [label=\"Data.GraphViz.Types.Common\\nparseNodeID\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1733 [label=\"Data.GraphViz.Types.Common\\nparseSGID\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1734 [label=\"Data.GraphViz.Types.Common\\nparseStatements\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1735 [label=\"Data.GraphViz.Types.Common\\nparseStmtBased\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1736 [label=\"Data.GraphViz.Types.Common\\nparseSubGraphID\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1744 [label=\"Data.GraphViz.Types.Common\\nprintAttrBased\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1745 [label=\"Data.GraphViz.Types.Common\\nprintAttrBasedList\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1746 [label=\"Data.GraphViz.Types.Common\\nprintBracesBased\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1747 [label=\"Data.GraphViz.Types.Common\\nprintEdgeID\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1748 [label=\"Data.GraphViz.Types.Common\\nprintGlobAttrType\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1749 [label=\"Data.GraphViz.Types.Common\\nprintGraphID\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1750 [label=\"Data.GraphViz.Types.Common\\nprintNodeID\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1751 [label=\"Data.GraphViz.Types.Common\\nprintSGID\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1752 [label=\"Data.GraphViz.Types.Common\\nprintStmtBased\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1753 [label=\"Data.GraphViz.Types.Common\\nprintStmtBasedList\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1754 [label=\"Data.GraphViz.Types.Common\\nprintSubGraphID\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1755 [label=\"Data.GraphViz.Types.Common\\nsGraph\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1756 [label=\"Data.GraphViz.Types.Common\\nsGraph'\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1757 [label=\"Data.GraphViz.Types.Common\\nstatementEnd\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1758 [label=\"Data.GraphViz.Types.Common\\nstrGraph\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1759 [label=\"Data.GraphViz.Types.Common\\nstrGraph'\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1760 [label=\"Data.GraphViz.Types.Common\\nstringNum\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1762 [label=\"Data.GraphViz.Types.Common\\nundirEdge\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1763 [label=\"Data.GraphViz.Types.Common\\nundirEdge'\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1764 [label=\"Data.GraphViz.Types.Common\\nundirGraph\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1765 [label=\"Data.GraphViz.Types.Common\\nundirGraph'\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1790 [label=\"Data.GraphViz.Types.Generalised\\ngeneraliseDotGraph\", style=\"filled,solid\", shape=box, fillcolor=gold];\n\t1791 [label=\"Data.GraphViz.Types.Generalised\\ngeneraliseStatements\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1792 [label=\"Data.GraphViz.Types.Generalised\\ngeneraliseSubGraph\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1804 [label=\"Data.GraphViz.Types.Generalised\\nparseGStmts\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1812 [label=\"Data.GraphViz.Types.Generalised\\nprintGStmts\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1813 [label=\"Data.GraphViz.Types.Generalised\\nprintSubGraphID'\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1815 [label=\"Data.GraphViz.Types.Generalised\\nstatementEdges\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1816 [label=\"Data.GraphViz.Types.Generalised\\nstatementNodes\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1817 [label=\"Data.GraphViz.Types.Generalised\\nstatementStructure\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1818 [label=\"Data.GraphViz.Types.Generalised\\nstmtEdges\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1819 [label=\"Data.GraphViz.Types.Generalised\\nstmtNodes\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1820 [label=\"Data.GraphViz.Types.Generalised\\nstmtStructure\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1826 [label=\"Data.GraphViz.Types.Generalised\\nwithSubGraphID\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1831 [label=\"Data.GraphViz.Types.State\\naddCluster\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1832 [label=\"Data.GraphViz.Types.State\\naddEdge\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1833 [label=\"Data.GraphViz.Types.State\\naddEdgeGlobals\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1834 [label=\"Data.GraphViz.Types.State\\naddEdgeNodes\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1835 [label=\"Data.GraphViz.Types.State\\naddGlobals\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1836 [label=\"Data.GraphViz.Types.State\\naddGraphGlobals\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1837 [label=\"Data.GraphViz.Types.State\\naddNode\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1838 [label=\"Data.GraphViz.Types.State\\naddNodeGlobals\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1839 [label=\"Data.GraphViz.Types.State\\naddSubGraph\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1840 [label=\"Data.GraphViz.Types.State\\nappend\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1843 [label=\"Data.GraphViz.Types.State\\nempty\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1846 [label=\"Data.GraphViz.Types.State\\ngetDotEdges\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1847 [label=\"Data.GraphViz.Types.State\\ngetGlobals\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1848 [label=\"Data.GraphViz.Types.State\\ngetGraphInfo\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1849 [label=\"Data.GraphViz.Types.State\\ngetNodeLookup\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1850 [label=\"Data.GraphViz.Types.State\\ngetPath\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1854 [label=\"Data.GraphViz.Types.State\\nmergeCInfos\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1855 [label=\"Data.GraphViz.Types.State\\nmergeNInfos\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1856 [label=\"Data.GraphViz.Types.State\\nmergeNode\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1857 [label=\"Data.GraphViz.Types.State\\nmergePs\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1858 [label=\"Data.GraphViz.Types.State\\nmodifyGlobal\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1859 [label=\"Data.GraphViz.Types.State\\nmodifyPath\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1860 [label=\"Data.GraphViz.Types.State\\nmodifyValue\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1861 [label=\"Data.GraphViz.Types.State\\nrecursiveCall\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1862 [label=\"Data.GraphViz.Types.State\\nsingleton\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1863 [label=\"Data.GraphViz.Types.State\\nsnoc\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1864 [label=\"Data.GraphViz.Types.State\\ntoDotNodes\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1865 [label=\"Data.GraphViz.Types.State\\ntoList\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1866 [label=\"Data.GraphViz.Types.State\\ntoSAttr\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1867 [label=\"Data.GraphViz.Types.State\\nunSame\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1868 [label=\"Data.GraphViz.Types.State\\nunionWith\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1871 [label=\"Data.GraphViz.Util\\nbool\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1872 [label=\"Data.GraphViz.Util\\ndescapeQuotes\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1873 [label=\"Data.GraphViz.Util\\nescapeQuotes\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1874 [label=\"Data.GraphViz.Util\\nfrstIDString\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1875 [label=\"Data.GraphViz.Util\\ngroupSortBy\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1876 [label=\"Data.GraphViz.Util\\nisIDString\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1877 [label=\"Data.GraphViz.Util\\nisIntString\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1878 [label=\"Data.GraphViz.Util\\nisKeyword\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1879 [label=\"Data.GraphViz.Util\\nisNumString\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1880 [label=\"Data.GraphViz.Util\\nisSingle\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t1881 [label=\"Data.GraphViz.Util\\nkeywords\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1882 [label=\"Data.GraphViz.Util\\nrestIDString\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1883 [label=\"Data.GraphViz.Util\\nstringToInt\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1884 [label=\"Data.GraphViz.Util\\ntoDouble\", style=\"filled,solid\", shape=box, fillcolor=cyan];\n\t1885 [label=\"Data.GraphViz.Util\\nuniq\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1886 [label=\"Data.GraphViz.Util\\nuniqBy\", style=\"filled,solid\", shape=box, fillcolor=bisque];\n\t1887 [label=\"Main\\ndg\", style=\"filled,solid\", shape=box, fillcolor=crimson];\n\t3 -> 1 [penwidth=1, color=black];\n\t4 -> 1 [penwidth=1, color=black];\n\t4 -> 111 [penwidth=1, color=black];\n\t5 -> 2 [penwidth=1, color=black];\n\t5 -> 7 [penwidth=1, color=black];\n\t5 -> 8 [penwidth=1, color=black];\n\t5 -> 15 [penwidth=1, color=black];\n\t5 -> 16 [penwidth=1, color=black];\n\t5 -> 17 [penwidth=1, color=black];\n\t5 -> 19 [penwidth=1, color=black];\n\t5 -> 22 [penwidth=1, color=black];\n\t6 -> 25 [penwidth=1, color=black];\n\t9 -> 2 [penwidth=1, color=black];\n\t9 -> 7 [penwidth=1, color=black];\n\t9 -> 8 [penwidth=1, color=black];\n\t9 -> 15 [penwidth=1, color=black];\n\t9 -> 16 [penwidth=1, color=black];\n\t9 -> 17 [penwidth=1, color=black];\n\t9 -> 19 [penwidth=1, color=black];\n\t9 -> 22 [penwidth=1, color=black];\n\t9 -> 1669 [penwidth=1, color=black];\n\t10 -> 4 [penwidth=1, color=black];\n\t10 -> 18 [penwidth=1, color=black];\n\t11 -> 1885 [penwidth=1, color=black];\n\t11 -> 1886 [penwidth=1, color=black];\n\t12 -> 15 [penwidth=1, color=black];\n\t12 -> 16 [penwidth=1, color=black];\n\t12 -> 17 [penwidth=1, color=black];\n\t12 -> 21 [penwidth=1, color=black];\n\t20 -> 7 [penwidth=1, color=black];\n\t20 -> 8 [penwidth=1, color=black];\n\t20 -> 15 [penwidth=1, color=black];\n\t20 -> 16 [penwidth=1, color=black];\n\t20 -> 17 [penwidth=1, color=black];\n\t20 -> 19 [penwidth=1, color=black];\n\t20 -> 22 [penwidth=1, color=black];\n\t20 -> 1673 [penwidth=1, color=black];\n\t21 -> 3 [penwidth=1, color=black];\n\t21 -> 10 [penwidth=1, color=black];\n\t21 -> 16 [penwidth=\"1.6931471805599454\", color=black];\n\t21 -> 20 [penwidth=1, color=black];\n\t21 -> 22 [penwidth=1, color=black];\n\t21 -> 29 [penwidth=1, color=black];\n\t24 -> 9 [penwidth=1, color=chartreuse];\n\t25 -> 18 [penwidth=1, color=black];\n\t26 -> 25 [penwidth=1, color=black];\n\t27 -> 16 [penwidth=1, color=black];\n\t27 -> 17 [penwidth=1, color=black];\n\t27 -> 20 [penwidth=1, color=black];\n\t27 -> 24 [penwidth=1, color=black];\n\t27 -> 28 [penwidth=1, color=black];\n\t27 -> 537 [penwidth=\"1.6931471805599454\", color=black];\n\t28 -> 22 [penwidth=1, color=black];\n\t28 -> 23 [penwidth=1, color=black];\n\t29 -> 13 [penwidth=1, color=black];\n\t29 -> 30 [penwidth=1, color=black];\n\t29 -> 111 [penwidth=1, color=black];\n\t30 -> 14 [penwidth=1, color=chartreuse];\n\t39 -> 34 [penwidth=1, color=black];\n\t39 -> 36 [penwidth=1, color=black];\n\t39 -> 38 [penwidth=1, color=black];\n\t40 -> 39 [penwidth=1, color=black];\n\t40 -> 77 [penwidth=1, color=black];\n\t41 -> 38 [penwidth=\"2.09861228866811\", color=black];\n\t41 -> 39 [penwidth=1, color=black];\n\t41 -> 40 [penwidth=1, color=black];\n\t41 -> 42 [penwidth=\"2.09861228866811\", color=black];\n\t41 -> 46 [penwidth=\"2.09861228866811\", color=black];\n\t41 -> 48 [penwidth=\"2.09861228866811\", color=black];\n\t41 -> 54 [penwidth=1, color=black];\n\t41 -> 56 [penwidth=1, color=black];\n\t41 -> 69 [penwidth=1, color=black];\n\t41 -> 72 [penwidth=\"2.09861228866811\", color=black];\n\t41 -> 73 [penwidth=1, color=black];\n\t41 -> 74 [penwidth=1, color=black];\n\t41 -> 75 [penwidth=\"2.09861228866811\", color=black];\n\t41 -> 77 [penwidth=1, color=black];\n\t41 -> 78 [penwidth=\"1.6931471805599454\", color=black];\n\t42 -> 52 [penwidth=1, color=chartreuse];\n\t43 -> 33 [penwidth=\"3.833213344056216\", color=black];\n\t43 -> 34 [penwidth=\"5.007333185232471\", color=black];\n\t43 -> 35 [penwidth=\"4.367295829986475\", color=black];\n\t43 -> 36 [penwidth=\"3.70805020110221\", color=black];\n\t43 -> 37 [penwidth=\"3.3978952727983707\", color=black];\n\t43 -> 38 [penwidth=\"3.833213344056216\", color=black];\n\t43 -> 65 [penwidth=\"5.969813299576001\", color=black];\n\t44 -> 43 [penwidth=1, color=black];\n\t45 -> 32 [penwidth=1, color=black];\n\t45 -> 44 [penwidth=1, color=black];\n\t50 -> 74 [penwidth=1, color=black];\n\t51 -> 38 [penwidth=\"1.6931471805599454\", color=black];\n\t51 -> 42 [penwidth=1, color=black];\n\t51 -> 46 [penwidth=1, color=black];\n\t51 -> 48 [penwidth=1, color=black];\n\t51 -> 49 [penwidth=1, color=black];\n\t51 -> 56 [penwidth=1, color=black];\n\t51 -> 73 [penwidth=\"1.6931471805599454\", color=black];\n\t51 -> 74 [penwidth=1, color=black];\n\t51 -> 75 [penwidth=1, color=black];\n\t51 -> 79 [penwidth=\"1.6931471805599454\", color=black];\n\t51 -> 80 [penwidth=1, color=black];\n\t62 -> 41 [penwidth=1, color=chartreuse];\n\t63 -> 50 [penwidth=1, color=black];\n\t63 -> 51 [penwidth=1, color=black];\n\t63 -> 57 [penwidth=1, color=black];\n\t63 -> 58 [penwidth=1, color=black];\n\t63 -> 59 [penwidth=1, color=black];\n\t63 -> 60 [penwidth=1, color=black];\n\t63 -> 61 [penwidth=1, color=black];\n\t63 -> 68 [penwidth=1, color=black];\n\t63 -> 70 [penwidth=1, color=black];\n\t63 -> 71 [penwidth=1, color=black];\n\t63 -> 76 [penwidth=\"2.6094379124341005\", color=black];\n\t63 -> 78 [penwidth=1, color=black];\n\t64 -> 32 [penwidth=1, color=black];\n\t64 -> 43 [penwidth=1, color=black];\n\t64 -> 46 [penwidth=1, color=black];\n\t64 -> 62 [penwidth=1, color=black];\n\t64 -> 63 [penwidth=1, color=black];\n\t64 -> 74 [penwidth=1, color=black];\n\t65 -> 31 [penwidth=1, color=black];\n\t65 -> 33 [penwidth=1, color=black];\n\t65 -> 48 [penwidth=1, color=black];\n\t65 -> 49 [penwidth=1, color=black];\n\t65 -> 57 [penwidth=1, color=black];\n\t65 -> 58 [penwidth=1, color=black];\n\t65 -> 59 [penwidth=1, color=black];\n\t65 -> 60 [penwidth=1, color=black];\n\t65 -> 61 [penwidth=1, color=black];\n\t65 -> 66 [penwidth=1, color=black];\n\t65 -> 67 [penwidth=1, color=black];\n\t65 -> 69 [penwidth=1, color=black];\n\t65 -> 77 [penwidth=1, color=black];\n\t65 -> 81 [penwidth=1, color=black];\n\t68 -> 33 [penwidth=1, color=black];\n\t68 -> 42 [penwidth=1, color=black];\n\t68 -> 46 [penwidth=1, color=black];\n\t68 -> 48 [penwidth=\"2.09861228866811\", color=black];\n\t68 -> 53 [penwidth=1, color=black];\n\t68 -> 56 [penwidth=1, color=black];\n\t68 -> 67 [penwidth=\"1.6931471805599454\", color=black];\n\t68 -> 69 [penwidth=1, color=black];\n\t68 -> 73 [penwidth=1, color=black];\n\t68 -> 74 [penwidth=1, color=black];\n\t68 -> 75 [penwidth=1, color=black];\n\t68 -> 77 [penwidth=1, color=black];\n\t68 -> 78 [penwidth=1, color=black];\n\t70 -> 42 [penwidth=1, color=black];\n\t70 -> 46 [penwidth=1, color=black];\n\t70 -> 48 [penwidth=\"1.6931471805599454\", color=black];\n\t70 -> 74 [penwidth=1, color=black];\n\t70 -> 75 [penwidth=\"1.6931471805599454\", color=black];\n\t71 -> 42 [penwidth=1, color=black];\n\t71 -> 46 [penwidth=1, color=black];\n\t71 -> 48 [penwidth=1, color=black];\n\t71 -> 66 [penwidth=1, color=black];\n\t71 -> 73 [penwidth=1, color=black];\n\t71 -> 74 [penwidth=1, color=black];\n\t71 -> 75 [penwidth=1, color=black];\n\t71 -> 78 [penwidth=1, color=black];\n\t72 -> 34 [penwidth=1, color=black];\n\t72 -> 36 [penwidth=1, color=black];\n\t72 -> 38 [penwidth=1, color=black];\n\t76 -> 42 [penwidth=1, color=black];\n\t76 -> 46 [penwidth=1, color=black];\n\t76 -> 48 [penwidth=1, color=black];\n\t76 -> 55 [penwidth=1, color=black];\n\t76 -> 74 [penwidth=1, color=black];\n\t76 -> 75 [penwidth=1, color=black];\n\t79 -> 33 [penwidth=1, color=black];\n\t79 -> 34 [penwidth=1, color=black];\n\t79 -> 35 [penwidth=1, color=black];\n\t79 -> 36 [penwidth=1, color=black];\n\t79 -> 37 [penwidth=1, color=black];\n\t79 -> 38 [penwidth=1, color=black];\n\t80 -> 77 [penwidth=1, color=black];\n\t80 -> 79 [penwidth=1, color=black];\n\t404 -> 82 [penwidth=1, color=black];\n\t404 -> 99 [penwidth=1, color=black];\n\t404 -> 429 [penwidth=1, color=black];\n\t405 -> 96 [penwidth=1, color=black];\n\t405 -> 120 [penwidth=1, color=black];\n\t405 -> 124 [penwidth=1, color=black];\n\t405 -> 127 [penwidth=1, color=black];\n\t405 -> 138 [penwidth=1, color=black];\n\t405 -> 158 [penwidth=1, color=black];\n\t405 -> 195 [penwidth=1, color=black];\n\t405 -> 331 [penwidth=1, color=black];\n\t405 -> 353 [penwidth=1, color=black];\n\t406 -> 83 [penwidth=1, color=black];\n\t406 -> 209 [penwidth=1, color=black];\n\t406 -> 210 [penwidth=1, color=black];\n\t406 -> 1883 [penwidth=1, color=black];\n\t407 -> 299 [penwidth=1, color=black];\n\t408 -> 82 [penwidth=1, color=black];\n\t408 -> 119 [penwidth=1, color=black];\n\t408 -> 429 [penwidth=1, color=black];\n\t410 -> 82 [penwidth=1, color=black];\n\t410 -> 128 [penwidth=1, color=black];\n\t410 -> 429 [penwidth=1, color=black];\n\t411 -> 82 [penwidth=1, color=black];\n\t411 -> 137 [penwidth=1, color=black];\n\t411 -> 429 [penwidth=1, color=black];\n\t412 -> 433 [penwidth=1, color=chartreuse];\n\t413 -> 82 [penwidth=1, color=black];\n\t413 -> 267 [penwidth=1, color=black];\n\t413 -> 436 [penwidth=1, color=black];\n\t417 -> 82 [penwidth=1, color=black];\n\t417 -> 84 [penwidth=1, color=black];\n\t417 -> 159 [penwidth=1, color=black];\n\t417 -> 232 [penwidth=1, color=black];\n\t417 -> 393 [penwidth=1, color=black];\n\t418 -> 82 [penwidth=1, color=black];\n\t418 -> 191 [penwidth=1, color=black];\n\t418 -> 429 [penwidth=1, color=black];\n\t419 -> 82 [penwidth=1, color=black];\n\t419 -> 137 [penwidth=1, color=black];\n\t419 -> 191 [penwidth=1, color=black];\n\t419 -> 429 [penwidth=\"1.6931471805599454\", color=black];\n\t420 -> 82 [penwidth=1, color=black];\n\t420 -> 191 [penwidth=1, color=black];\n\t420 -> 267 [penwidth=1, color=black];\n\t420 -> 429 [penwidth=1, color=black];\n\t420 -> 436 [penwidth=1, color=black];\n\t421 -> 82 [penwidth=1, color=black];\n\t421 -> 137 [penwidth=1, color=black];\n\t421 -> 191 [penwidth=1, color=black];\n\t421 -> 429 [penwidth=1, color=black];\n\t421 -> 436 [penwidth=1, color=black];\n\t427 -> 333 [penwidth=1, color=black];\n\t428 -> 82 [penwidth=1, color=black];\n\t428 -> 254 [penwidth=1, color=black];\n\t428 -> 429 [penwidth=1, color=black];\n\t429 -> 84 [penwidth=1, color=black];\n\t429 -> 98 [penwidth=1, color=black];\n\t429 -> 159 [penwidth=1, color=black];\n\t430 -> 82 [penwidth=1, color=black];\n\t430 -> 267 [penwidth=1, color=black];\n\t430 -> 429 [penwidth=1, color=black];\n\t431 -> 409 [penwidth=1, color=black];\n\t432 -> 82 [penwidth=1, color=black];\n\t432 -> 99 [penwidth=1, color=black];\n\t432 -> 436 [penwidth=1, color=black];\n\t433 -> 82 [penwidth=1, color=black];\n\t433 -> 128 [penwidth=1, color=black];\n\t433 -> 436 [penwidth=1, color=black];\n\t434 -> 82 [penwidth=1, color=black];\n\t434 -> 84 [penwidth=1, color=black];\n\t434 -> 98 [penwidth=1, color=black];\n\t434 -> 137 [penwidth=1, color=black];\n\t434 -> 275 [penwidth=1, color=black];\n\t435 -> 605 [penwidth=1, color=chartreuse];\n\t436 -> 84 [penwidth=1, color=black];\n\t436 -> 98 [penwidth=1, color=black];\n\t436 -> 275 [penwidth=1, color=black];\n\t439 -> 316 [penwidth=1, color=black];\n\t439 -> 317 [penwidth=1, color=black];\n\t439 -> 1376 [penwidth=1, color=black];\n\t439 -> 1429 [penwidth=1, color=black];\n\t441 -> 122 [penwidth=1, color=black];\n\t441 -> 1429 [penwidth=1, color=black];\n\t442 -> 258 [penwidth=1, color=black];\n\t442 -> 1384 [penwidth=1, color=black];\n\t442 -> 1435 [penwidth=1, color=black];\n\t443 -> 263 [penwidth=1, color=black];\n\t443 -> 400 [penwidth=1, color=black];\n\t444 -> 187 [penwidth=1, color=black];\n\t444 -> 321 [penwidth=1, color=black];\n\t444 -> 365 [penwidth=1, color=black];\n\t444 -> 1392 [penwidth=1, color=black];\n\t445 -> 209 [penwidth=1, color=black];\n\t445 -> 406 [penwidth=1, color=black];\n\t445 -> 459 [penwidth=1, color=black];\n\t446 -> 206 [penwidth=1, color=black];\n\t446 -> 210 [penwidth=1, color=black];\n\t446 -> 1429 [penwidth=1, color=black];\n\t446 -> 1434 [penwidth=1, color=black];\n\t447 -> 208 [penwidth=1, color=black];\n\t447 -> 211 [penwidth=1, color=black];\n\t447 -> 460 [penwidth=1, color=black];\n\t447 -> 1429 [penwidth=1, color=black];\n\t448 -> 1429 [penwidth=1, color=black];\n\t449 -> 1429 [penwidth=1, color=black];\n\t450 -> 1429 [penwidth=1, color=black];\n\t451 -> 1429 [penwidth=1, color=black];\n\t452 -> 198 [penwidth=1, color=black];\n\t452 -> 264 [penwidth=1, color=black];\n\t452 -> 270 [penwidth=1, color=black];\n\t452 -> 1383 [penwidth=1, color=black];\n\t452 -> 1384 [penwidth=1, color=black];\n\t452 -> 1871 [penwidth=1, color=black];\n\t453 -> 1429 [penwidth=1, color=black];\n\t454 -> 333 [penwidth=\"1.6931471805599454\", color=black];\n\t454 -> 457 [penwidth=1, color=black];\n\t454 -> 1429 [penwidth=1, color=black];\n\t455 -> 405 [penwidth=1, color=black];\n\t455 -> 1429 [penwidth=1, color=black];\n\t455 -> 1431 [penwidth=1, color=black];\n\t456 -> 1429 [penwidth=1, color=black];\n\t457 -> 466 [penwidth=1, color=black];\n\t457 -> 1373 [penwidth=\"1.6931471805599454\", color=black];\n\t457 -> 1394 [penwidth=1, color=black];\n\t458 -> 409 [penwidth=1, color=black];\n\t458 -> 1396 [penwidth=1, color=black];\n\t459 -> 458 [penwidth=1, color=black];\n\t459 -> 1429 [penwidth=1, color=black];\n\t459 -> 1434 [penwidth=1, color=black];\n\t460 -> 409 [penwidth=1, color=black];\n\t460 -> 1373 [penwidth=1, color=black];\n\t462 -> 152 [penwidth=1, color=black];\n\t462 -> 516 [penwidth=1, color=black];\n\t462 -> 1429 [penwidth=1, color=black];\n\t463 -> 1429 [penwidth=1, color=black];\n\t464 -> 407 [penwidth=1, color=black];\n\t464 -> 1376 [penwidth=1, color=black];\n\t465 -> 516 [penwidth=1, color=black];\n\t465 -> 1396 [penwidth=1, color=black];\n\t466 -> 1381 [penwidth=1, color=black];\n\t466 -> 1386 [penwidth=1, color=black];\n\t466 -> 1396 [penwidth=1, color=black];\n\t466 -> 1428 [penwidth=1, color=black];\n\t466 -> 1435 [penwidth=1, color=black];\n\t467 -> 159 [penwidth=1, color=black];\n\t467 -> 275 [penwidth=1, color=black];\n\t467 -> 1373 [penwidth=1, color=black];\n\t467 -> 1871 [penwidth=1, color=black];\n\t468 -> 84 [penwidth=1, color=black];\n\t469 -> 99 [penwidth=1, color=black];\n\t469 -> 119 [penwidth=1, color=black];\n\t469 -> 128 [penwidth=1, color=black];\n\t469 -> 137 [penwidth=1, color=black];\n\t469 -> 191 [penwidth=1, color=black];\n\t469 -> 254 [penwidth=1, color=black];\n\t469 -> 267 [penwidth=1, color=black];\n\t469 -> 377 [penwidth=1, color=black];\n\t469 -> 393 [penwidth=1, color=black];\n\t469 -> 1435 [penwidth=\"3.1972245773362196\", color=black];\n\t470 -> 98 [penwidth=1, color=black];\n\t470 -> 232 [penwidth=1, color=black];\n\t470 -> 328 [penwidth=1, color=black];\n\t470 -> 1373 [penwidth=1, color=black];\n\t470 -> 1871 [penwidth=1, color=black];\n\t471 -> 82 [penwidth=1, color=black];\n\t471 -> 518 [penwidth=1, color=black];\n\t472 -> 316 [penwidth=1, color=black];\n\t472 -> 317 [penwidth=1, color=black];\n\t472 -> 1376 [penwidth=1, color=black];\n\t473 -> 85 [penwidth=1, color=black];\n\t473 -> 86 [penwidth=1, color=black];\n\t473 -> 87 [penwidth=1, color=black];\n\t473 -> 88 [penwidth=1, color=black];\n\t473 -> 93 [penwidth=1, color=black];\n\t473 -> 94 [penwidth=1, color=black];\n\t473 -> 104 [penwidth=1, color=black];\n\t473 -> 105 [penwidth=1, color=black];\n\t473 -> 108 [penwidth=1, color=black];\n\t473 -> 109 [penwidth=1, color=black];\n\t473 -> 110 [penwidth=1, color=black];\n\t473 -> 111 [penwidth=1, color=black];\n\t473 -> 113 [penwidth=1, color=black];\n\t473 -> 117 [penwidth=1, color=black];\n\t473 -> 118 [penwidth=1, color=black];\n\t473 -> 121 [penwidth=1, color=black];\n\t473 -> 123 [penwidth=1, color=black];\n\t473 -> 125 [penwidth=1, color=black];\n\t473 -> 126 [penwidth=1, color=black];\n\t473 -> 130 [penwidth=1, color=black];\n\t473 -> 131 [penwidth=1, color=black];\n\t473 -> 132 [penwidth=1, color=black];\n\t473 -> 133 [penwidth=1, color=black];\n\t473 -> 134 [penwidth=1, color=black];\n\t473 -> 135 [penwidth=1, color=black];\n\t473 -> 141 [penwidth=1, color=black];\n\t473 -> 142 [penwidth=1, color=black];\n\t473 -> 143 [penwidth=1, color=black];\n\t473 -> 144 [penwidth=1, color=black];\n\t473 -> 145 [penwidth=1, color=black];\n\t473 -> 149 [penwidth=1, color=black];\n\t473 -> 154 [penwidth=1, color=black];\n\t473 -> 160 [penwidth=1, color=black];\n\t473 -> 163 [penwidth=1, color=black];\n\t473 -> 164 [penwidth=1, color=black];\n\t473 -> 165 [penwidth=1, color=black];\n\t473 -> 166 [penwidth=1, color=black];\n\t473 -> 167 [penwidth=1, color=black];\n\t473 -> 175 [penwidth=1, color=black];\n\t473 -> 176 [penwidth=1, color=black];\n\t473 -> 177 [penwidth=1, color=black];\n\t473 -> 178 [penwidth=1, color=black];\n\t473 -> 179 [penwidth=1, color=black];\n\t473 -> 180 [penwidth=1, color=black];\n\t473 -> 181 [penwidth=1, color=black];\n\t473 -> 182 [penwidth=1, color=black];\n\t473 -> 188 [penwidth=1, color=black];\n\t473 -> 189 [penwidth=1, color=black];\n\t473 -> 190 [penwidth=1, color=black];\n\t473 -> 198 [penwidth=1, color=black];\n\t473 -> 202 [penwidth=1, color=black];\n\t473 -> 204 [penwidth=1, color=black];\n\t473 -> 205 [penwidth=1, color=black];\n\t473 -> 207 [penwidth=1, color=black];\n\t473 -> 212 [penwidth=1, color=black];\n\t473 -> 213 [penwidth=1, color=black];\n\t473 -> 214 [penwidth=1, color=black];\n\t473 -> 215 [penwidth=1, color=black];\n\t473 -> 216 [penwidth=1, color=black];\n\t473 -> 217 [penwidth=1, color=black];\n\t473 -> 218 [penwidth=1, color=black];\n\t473 -> 219 [penwidth=1, color=black];\n\t473 -> 220 [penwidth=1, color=black];\n\t473 -> 221 [penwidth=1, color=black];\n\t473 -> 222 [penwidth=1, color=black];\n\t473 -> 223 [penwidth=1, color=black];\n\t473 -> 224 [penwidth=1, color=black];\n\t473 -> 226 [penwidth=1, color=black];\n\t473 -> 227 [penwidth=1, color=black];\n\t473 -> 228 [penwidth=1, color=black];\n\t473 -> 229 [penwidth=1, color=black];\n\t473 -> 230 [penwidth=1, color=black];\n\t473 -> 233 [penwidth=1, color=black];\n\t473 -> 234 [penwidth=1, color=black];\n\t473 -> 235 [penwidth=1, color=black];\n\t473 -> 239 [penwidth=1, color=black];\n\t473 -> 245 [penwidth=1, color=black];\n\t473 -> 246 [penwidth=1, color=black];\n\t473 -> 248 [penwidth=1, color=black];\n\t473 -> 249 [penwidth=1, color=black];\n\t473 -> 251 [penwidth=1, color=black];\n\t473 -> 252 [penwidth=1, color=black];\n\t473 -> 253 [penwidth=1, color=black];\n\t473 -> 259 [penwidth=1, color=black];\n\t473 -> 265 [penwidth=1, color=black];\n\t473 -> 268 [penwidth=1, color=black];\n\t473 -> 269 [penwidth=1, color=black];\n\t473 -> 272 [penwidth=1, color=black];\n\t473 -> 273 [penwidth=1, color=black];\n\t473 -> 276 [penwidth=1, color=black];\n\t473 -> 277 [penwidth=1, color=black];\n\t473 -> 278 [penwidth=1, color=black];\n\t473 -> 279 [penwidth=1, color=black];\n\t473 -> 280 [penwidth=1, color=black];\n\t473 -> 282 [penwidth=1, color=black];\n\t473 -> 287 [penwidth=1, color=black];\n\t473 -> 289 [penwidth=1, color=black];\n\t473 -> 290 [penwidth=1, color=black];\n\t473 -> 291 [penwidth=1, color=black];\n\t473 -> 293 [penwidth=1, color=black];\n\t473 -> 294 [penwidth=1, color=black];\n\t473 -> 296 [penwidth=1, color=black];\n\t473 -> 297 [penwidth=1, color=black];\n\t473 -> 305 [penwidth=1, color=black];\n\t473 -> 308 [penwidth=1, color=black];\n\t473 -> 309 [penwidth=1, color=black];\n\t473 -> 312 [penwidth=1, color=black];\n\t473 -> 313 [penwidth=1, color=black];\n\t473 -> 314 [penwidth=1, color=black];\n\t473 -> 315 [penwidth=1, color=black];\n\t473 -> 319 [penwidth=1, color=black];\n\t473 -> 323 [penwidth=1, color=black];\n\t473 -> 324 [penwidth=1, color=black];\n\t473 -> 327 [penwidth=1, color=black];\n\t473 -> 329 [penwidth=1, color=black];\n\t473 -> 330 [penwidth=1, color=black];\n\t473 -> 334 [penwidth=1, color=black];\n\t473 -> 336 [penwidth=1, color=black];\n\t473 -> 337 [penwidth=1, color=black];\n\t473 -> 340 [penwidth=1, color=black];\n\t473 -> 342 [penwidth=1, color=black];\n\t473 -> 344 [penwidth=1, color=black];\n\t473 -> 345 [penwidth=1, color=black];\n\t473 -> 347 [penwidth=1, color=black];\n\t473 -> 348 [penwidth=1, color=black];\n\t473 -> 350 [penwidth=1, color=black];\n\t473 -> 351 [penwidth=1, color=black];\n\t473 -> 352 [penwidth=1, color=black];\n\t473 -> 354 [penwidth=1, color=black];\n\t473 -> 357 [penwidth=1, color=black];\n\t473 -> 359 [penwidth=1, color=black];\n\t473 -> 361 [penwidth=1, color=black];\n\t473 -> 366 [penwidth=1, color=black];\n\t473 -> 367 [penwidth=1, color=black];\n\t473 -> 370 [penwidth=1, color=black];\n\t473 -> 371 [penwidth=1, color=black];\n\t473 -> 372 [penwidth=1, color=black];\n\t473 -> 373 [penwidth=1, color=black];\n\t473 -> 374 [penwidth=1, color=black];\n\t473 -> 375 [penwidth=1, color=black];\n\t473 -> 376 [penwidth=1, color=black];\n\t473 -> 379 [penwidth=1, color=black];\n\t473 -> 385 [penwidth=1, color=black];\n\t473 -> 386 [penwidth=1, color=black];\n\t473 -> 387 [penwidth=1, color=black];\n\t473 -> 388 [penwidth=1, color=black];\n\t473 -> 394 [penwidth=1, color=black];\n\t473 -> 395 [penwidth=1, color=black];\n\t473 -> 396 [penwidth=1, color=black];\n\t473 -> 398 [penwidth=1, color=black];\n\t473 -> 399 [penwidth=1, color=black];\n\t473 -> 401 [penwidth=1, color=black];\n\t473 -> 1395 [penwidth=1, color=black];\n\t473 -> 1397 [penwidth=\"5.736198448394496\", color=black];\n\t473 -> 1398 [penwidth=\"3.833213344056216\", color=black];\n\t473 -> 1399 [penwidth=\"2.9459101490553135\", color=black];\n\t473 -> 1400 [penwidth=\"2.791759469228055\", color=black];\n\t473 -> 1434 [penwidth=1, color=black];\n\t474 -> 173 [penwidth=1, color=black];\n\t474 -> 237 [penwidth=1, color=black];\n\t474 -> 255 [penwidth=1, color=black];\n\t474 -> 1435 [penwidth=\"2.09861228866811\", color=black];\n\t475 -> 142 [penwidth=1, color=black];\n\t475 -> 185 [penwidth=1, color=black];\n\t475 -> 256 [penwidth=1, color=black];\n\t475 -> 1435 [penwidth=1, color=black];\n\t475 -> 1871 [penwidth=1, color=black];\n\t476 -> 122 [penwidth=1, color=black];\n\t476 -> 281 [penwidth=1, color=black];\n\t476 -> 464 [penwidth=1, color=black];\n\t477 -> 92 [penwidth=1, color=black];\n\t477 -> 97 [penwidth=1, color=black];\n\t477 -> 168 [penwidth=1, color=black];\n\t477 -> 257 [penwidth=1, color=black];\n\t477 -> 1435 [penwidth=\"2.386294361119891\", color=black];\n\t478 -> 114 [penwidth=1, color=black];\n\t478 -> 236 [penwidth=\"1.6931471805599454\", color=black];\n\t478 -> 302 [penwidth=1, color=black];\n\t478 -> 357 [penwidth=\"1.6931471805599454\", color=black];\n\t478 -> 1435 [penwidth=\"2.386294361119891\", color=black];\n\t478 -> 1871 [penwidth=1, color=black];\n\t479 -> 263 [penwidth=1, color=black];\n\t479 -> 400 [penwidth=1, color=black];\n\t480 -> 199 [penwidth=1, color=black];\n\t480 -> 200 [penwidth=1, color=black];\n\t480 -> 201 [penwidth=1, color=black];\n\t480 -> 1435 [penwidth=\"2.09861228866811\", color=black];\n\t481 -> 187 [penwidth=1, color=black];\n\t481 -> 321 [penwidth=1, color=black];\n\t481 -> 365 [penwidth=1, color=black];\n\t481 -> 1392 [penwidth=1, color=black];\n\t482 -> 406 [penwidth=1, color=black];\n\t482 -> 458 [penwidth=1, color=black];\n\t483 -> 206 [penwidth=1, color=black];\n\t483 -> 460 [penwidth=1, color=black];\n\t484 -> 208 [penwidth=1, color=black];\n\t484 -> 211 [penwidth=1, color=black];\n\t484 -> 460 [penwidth=1, color=black];\n\t485 -> 184 [penwidth=1, color=black];\n\t485 -> 196 [penwidth=1, color=black];\n\t485 -> 203 [penwidth=1, color=black];\n\t485 -> 244 [penwidth=1, color=black];\n\t485 -> 1435 [penwidth=\"2.386294361119891\", color=black];\n\t486 -> 107 [penwidth=1, color=black];\n\t486 -> 346 [penwidth=1, color=black];\n\t486 -> 368 [penwidth=1, color=black];\n\t486 -> 1435 [penwidth=\"2.09861228866811\", color=black];\n\t487 -> 103 [penwidth=1, color=black];\n\t487 -> 146 [penwidth=1, color=black];\n\t487 -> 266 [penwidth=1, color=black];\n\t487 -> 1435 [penwidth=\"2.09861228866811\", color=black];\n\t488 -> 115 [penwidth=1, color=black];\n\t488 -> 197 [penwidth=1, color=black];\n\t488 -> 204 [penwidth=1, color=black];\n\t488 -> 307 [penwidth=1, color=black];\n\t488 -> 326 [penwidth=1, color=black];\n\t488 -> 338 [penwidth=1, color=black];\n\t488 -> 339 [penwidth=1, color=black];\n\t488 -> 397 [penwidth=1, color=black];\n\t488 -> 1433 [penwidth=1, color=black];\n\t488 -> 1435 [penwidth=\"2.9459101490553135\", color=black];\n\t489 -> 135 [penwidth=1, color=black];\n\t489 -> 136 [penwidth=1, color=black];\n\t489 -> 286 [penwidth=1, color=black];\n\t489 -> 1383 [penwidth=1, color=black];\n\t489 -> 1871 [penwidth=1, color=black];\n\t490 -> 283 [penwidth=1, color=black];\n\t490 -> 284 [penwidth=1, color=black];\n\t490 -> 285 [penwidth=1, color=black];\n\t490 -> 288 [penwidth=1, color=black];\n\t490 -> 1373 [penwidth=1, color=black];\n\t490 -> 1433 [penwidth=1, color=black];\n\t490 -> 1435 [penwidth=\"2.09861228866811\", color=black];\n\t491 -> 95 [penwidth=1, color=black];\n\t491 -> 102 [penwidth=1, color=black];\n\t491 -> 231 [penwidth=1, color=black];\n\t491 -> 238 [penwidth=1, color=black];\n\t491 -> 318 [penwidth=1, color=black];\n\t491 -> 332 [penwidth=1, color=black];\n\t491 -> 378 [penwidth=1, color=black];\n\t491 -> 380 [penwidth=1, color=black];\n\t491 -> 1435 [penwidth=\"3.0794415416798357\", color=black];\n\t492 -> 299 [penwidth=1, color=black];\n\t492 -> 1373 [penwidth=1, color=black];\n\t492 -> 1376 [penwidth=1, color=black];\n\t492 -> 1394 [penwidth=1, color=black];\n\t493 -> 300 [penwidth=1, color=black];\n\t493 -> 356 [penwidth=1, color=black];\n\t493 -> 358 [penwidth=1, color=black];\n\t494 -> 151 [penwidth=\"1.6931471805599454\", color=black];\n\t494 -> 260 [penwidth=\"1.6931471805599454\", color=black];\n\t494 -> 268 [penwidth=\"1.6931471805599454\", color=black];\n\t494 -> 1373 [penwidth=1, color=black];\n\t494 -> 1435 [penwidth=\"2.09861228866811\", color=black];\n\t494 -> 1871 [penwidth=1, color=black];\n\t495 -> 169 [penwidth=1, color=black];\n\t495 -> 170 [penwidth=1, color=black];\n\t495 -> 171 [penwidth=1, color=black];\n\t495 -> 172 [penwidth=1, color=black];\n\t495 -> 1435 [penwidth=\"2.386294361119891\", color=black];\n\t496 -> 247 [penwidth=1, color=black];\n\t496 -> 250 [penwidth=1, color=black];\n\t496 -> 335 [penwidth=1, color=black];\n\t496 -> 349 [penwidth=1, color=black];\n\t496 -> 355 [penwidth=1, color=black];\n\t496 -> 1435 [penwidth=\"2.6094379124341005\", color=black];\n\t497 -> 89 [penwidth=1, color=black];\n\t497 -> 90 [penwidth=1, color=black];\n\t497 -> 116 [penwidth=1, color=black];\n\t497 -> 150 [penwidth=1, color=black];\n\t497 -> 156 [penwidth=1, color=black];\n\t497 -> 1435 [penwidth=\"2.386294361119891\", color=black];\n\t498 -> 152 [penwidth=1, color=black];\n\t498 -> 161 [penwidth=1, color=black];\n\t498 -> 225 [penwidth=1, color=black];\n\t498 -> 304 [penwidth=1, color=black];\n\t498 -> 465 [penwidth=\"2.09861228866811\", color=black];\n\t498 -> 1350 [penwidth=1, color=black];\n\t498 -> 1392 [penwidth=1, color=black];\n\t498 -> 1393 [penwidth=1, color=black];\n\t498 -> 1440 [penwidth=1, color=black];\n\t499 -> 322 [penwidth=1, color=black];\n\t499 -> 464 [penwidth=\"1.6931471805599454\", color=black];\n\t499 -> 1375 [penwidth=1, color=black];\n\t500 -> 198 [penwidth=1, color=black];\n\t500 -> 264 [penwidth=1, color=black];\n\t500 -> 270 [penwidth=1, color=black];\n\t500 -> 1383 [penwidth=1, color=black];\n\t500 -> 1871 [penwidth=1, color=black];\n\t501 -> 311 [penwidth=1, color=black];\n\t501 -> 325 [penwidth=1, color=black];\n\t501 -> 341 [penwidth=1, color=black];\n\t501 -> 1435 [penwidth=\"2.09861228866811\", color=black];\n\t502 -> 153 [penwidth=1, color=black];\n\t502 -> 155 [penwidth=1, color=black];\n\t502 -> 157 [penwidth=1, color=black];\n\t502 -> 261 [penwidth=1, color=black];\n\t502 -> 387 [penwidth=1, color=black];\n\t502 -> 1435 [penwidth=\"2.6094379124341005\", color=black];\n\t503 -> 100 [penwidth=1, color=black];\n\t503 -> 101 [penwidth=1, color=black];\n\t503 -> 106 [penwidth=1, color=black];\n\t503 -> 112 [penwidth=1, color=black];\n\t503 -> 129 [penwidth=1, color=black];\n\t503 -> 139 [penwidth=1, color=black];\n\t503 -> 140 [penwidth=1, color=black];\n\t503 -> 147 [penwidth=1, color=black];\n\t503 -> 148 [penwidth=1, color=black];\n\t503 -> 162 [penwidth=1, color=black];\n\t503 -> 183 [penwidth=1, color=black];\n\t503 -> 186 [penwidth=1, color=black];\n\t503 -> 192 [penwidth=1, color=black];\n\t503 -> 193 [penwidth=1, color=black];\n\t503 -> 194 [penwidth=1, color=black];\n\t503 -> 240 [penwidth=1, color=black];\n\t503 -> 241 [penwidth=1, color=black];\n\t503 -> 242 [penwidth=1, color=black];\n\t503 -> 243 [penwidth=1, color=black];\n\t503 -> 271 [penwidth=1, color=black];\n\t503 -> 274 [penwidth=1, color=black];\n\t503 -> 292 [penwidth=1, color=black];\n\t503 -> 295 [penwidth=1, color=black];\n\t503 -> 298 [penwidth=1, color=black];\n\t503 -> 301 [penwidth=1, color=black];\n\t503 -> 303 [penwidth=1, color=black];\n\t503 -> 320 [penwidth=1, color=black];\n\t503 -> 343 [penwidth=1, color=black];\n\t503 -> 369 [penwidth=1, color=black];\n\t503 -> 381 [penwidth=1, color=black];\n\t503 -> 382 [penwidth=1, color=black];\n\t503 -> 384 [penwidth=1, color=black];\n\t503 -> 1435 [penwidth=\"4.401197381662156\", color=black];\n\t503 -> 1436 [penwidth=\"1.6931471805599454\", color=black];\n\t504 -> 91 [penwidth=1, color=black];\n\t504 -> 174 [penwidth=1, color=black];\n\t504 -> 262 [penwidth=1, color=black];\n\t504 -> 306 [penwidth=1, color=black];\n\t504 -> 310 [penwidth=1, color=black];\n\t504 -> 360 [penwidth=1, color=black];\n\t504 -> 383 [penwidth=1, color=black];\n\t504 -> 1435 [penwidth=\"2.9459101490553135\", color=black];\n\t505 -> 356 [penwidth=1, color=black];\n\t505 -> 1373 [penwidth=1, color=black];\n\t505 -> 1378 [penwidth=1, color=black];\n\t505 -> 1394 [penwidth=1, color=black];\n\t505 -> 1440 [penwidth=\"1.6931471805599454\", color=black];\n\t506 -> 362 [penwidth=1, color=black];\n\t506 -> 363 [penwidth=1, color=black];\n\t506 -> 364 [penwidth=1, color=black];\n\t507 -> 333 [penwidth=1, color=black];\n\t507 -> 457 [penwidth=1, color=black];\n\t507 -> 1439 [penwidth=1, color=black];\n\t508 -> 405 [penwidth=1, color=black];\n\t508 -> 466 [penwidth=1, color=black];\n\t509 -> 389 [penwidth=1, color=black];\n\t509 -> 390 [penwidth=1, color=black];\n\t509 -> 392 [penwidth=1, color=black];\n\t509 -> 1435 [penwidth=\"2.09861228866811\", color=black];\n\t510 -> 391 [penwidth=1, color=black];\n\t510 -> 1394 [penwidth=\"2.09861228866811\", color=black];\n\t511 -> 1440 [penwidth=1, color=black];\n\t512 -> 1373 [penwidth=1, color=black];\n\t512 -> 1442 [penwidth=\"1.6931471805599454\", color=black];\n\t513 -> 1373 [penwidth=1, color=black];\n\t514 -> 1394 [penwidth=1, color=black];\n\t515 -> 599 [penwidth=1, color=black];\n\t515 -> 1363 [penwidth=1, color=black];\n\t515 -> 1454 [penwidth=1, color=black];\n\t517 -> 85 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 86 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 87 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 88 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 93 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 94 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 104 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 105 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 108 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 109 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 110 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 111 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 113 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 117 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 118 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 121 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 123 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 125 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 126 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 130 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 131 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 132 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 133 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 134 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 141 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 143 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 144 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 145 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 149 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 154 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 160 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 163 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 164 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 165 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 166 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 167 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 175 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 176 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 177 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 178 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 179 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 180 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 181 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 182 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 188 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 189 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 190 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 202 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 205 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 207 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 212 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 213 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 214 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 215 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 216 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 217 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 218 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 219 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 220 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 221 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 222 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 223 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 224 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 226 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 227 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 228 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 229 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 230 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 233 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 234 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 235 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 239 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 245 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 246 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 248 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 249 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 251 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 252 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 253 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 259 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 265 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 269 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 272 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 273 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 276 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 277 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 278 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 279 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 280 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 282 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 287 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 289 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 290 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 291 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 293 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 294 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 296 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 297 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 305 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 308 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 309 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 312 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 313 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 314 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 315 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 319 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 323 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 324 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 327 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 329 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 330 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 334 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 336 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 337 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 340 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 342 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 344 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 345 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 347 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 348 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 350 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 351 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 352 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 354 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 359 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 361 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 366 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 367 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 370 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 371 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 372 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 373 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 374 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 375 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 376 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 379 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 385 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 386 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 388 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 394 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 395 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 396 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 398 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 399 [penwidth=\"1.6931471805599454\", color=black];\n\t517 -> 401 [penwidth=\"1.6931471805599454\", color=black];\n\t518 -> 412 [penwidth=1, color=black];\n\t518 -> 413 [penwidth=1, color=black];\n\t518 -> 417 [penwidth=1, color=black];\n\t518 -> 420 [penwidth=1, color=black];\n\t518 -> 435 [penwidth=1, color=black];\n\t518 -> 1435 [penwidth=\"2.6094379124341005\", color=black];\n\t519 -> 82 [penwidth=1, color=black];\n\t519 -> 377 [penwidth=1, color=black];\n\t519 -> 429 [penwidth=1, color=black];\n\t520 -> 316 [penwidth=1, color=black];\n\t520 -> 317 [penwidth=1, color=black];\n\t521 -> 122 [penwidth=1, color=black];\n\t521 -> 281 [penwidth=1, color=black];\n\t522 -> 258 [penwidth=1, color=black];\n\t523 -> 263 [penwidth=1, color=black];\n\t523 -> 400 [penwidth=1, color=black];\n\t524 -> 187 [penwidth=1, color=black];\n\t524 -> 321 [penwidth=1, color=black];\n\t524 -> 365 [penwidth=1, color=black];\n\t525 -> 210 [penwidth=1, color=black];\n\t526 -> 206 [penwidth=1, color=black];\n\t527 -> 208 [penwidth=1, color=black];\n\t529 -> 300 [penwidth=1, color=black];\n\t529 -> 358 [penwidth=1, color=black];\n\t530 -> 152 [penwidth=1, color=black];\n\t530 -> 516 [penwidth=1, color=black];\n\t530 -> 1463 [penwidth=1, color=black];\n\t532 -> 264 [penwidth=1, color=black];\n\t534 -> 333 [penwidth=1, color=black];\n\t535 -> 120 [penwidth=1, color=black];\n\t538 -> 225 [penwidth=1, color=black];\n\t542 -> 213 [penwidth=1, color=black];\n\t542 -> 365 [penwidth=1, color=black];\n\t543 -> 187 [penwidth=1, color=black];\n\t543 -> 213 [penwidth=1, color=black];\n\t544 -> 1266 [penwidth=1, color=black];\n\t545 -> 1268 [penwidth=1, color=black];\n\t547 -> 304 [penwidth=1, color=black];\n\t549 -> 213 [penwidth=1, color=black];\n\t549 -> 321 [penwidth=1, color=black];\n\t550 -> 159 [penwidth=1, color=black];\n\t550 -> 275 [penwidth=1, color=black];\n\t551 -> 84 [penwidth=1, color=black];\n\t552 -> 99 [penwidth=1, color=black];\n\t552 -> 119 [penwidth=1, color=black];\n\t552 -> 128 [penwidth=1, color=black];\n\t552 -> 137 [penwidth=1, color=black];\n\t552 -> 191 [penwidth=1, color=black];\n\t552 -> 254 [penwidth=1, color=black];\n\t552 -> 267 [penwidth=1, color=black];\n\t552 -> 377 [penwidth=1, color=black];\n\t552 -> 393 [penwidth=1, color=black];\n\t553 -> 98 [penwidth=1, color=black];\n\t553 -> 232 [penwidth=1, color=black];\n\t553 -> 328 [penwidth=1, color=black];\n\t554 -> 82 [penwidth=1, color=black];\n\t555 -> 316 [penwidth=1, color=black];\n\t555 -> 317 [penwidth=1, color=black];\n\t555 -> 1455 [penwidth=1, color=black];\n\t556 -> 85 [penwidth=1, color=black];\n\t556 -> 86 [penwidth=1, color=black];\n\t556 -> 87 [penwidth=1, color=black];\n\t556 -> 88 [penwidth=1, color=black];\n\t556 -> 93 [penwidth=1, color=black];\n\t556 -> 94 [penwidth=1, color=black];\n\t556 -> 104 [penwidth=1, color=black];\n\t556 -> 105 [penwidth=1, color=black];\n\t556 -> 108 [penwidth=1, color=black];\n\t556 -> 109 [penwidth=1, color=black];\n\t556 -> 110 [penwidth=1, color=black];\n\t556 -> 111 [penwidth=1, color=black];\n\t556 -> 113 [penwidth=1, color=black];\n\t556 -> 117 [penwidth=1, color=black];\n\t556 -> 118 [penwidth=1, color=black];\n\t556 -> 121 [penwidth=1, color=black];\n\t556 -> 123 [penwidth=1, color=black];\n\t556 -> 125 [penwidth=1, color=black];\n\t556 -> 126 [penwidth=1, color=black];\n\t556 -> 130 [penwidth=1, color=black];\n\t556 -> 131 [penwidth=1, color=black];\n\t556 -> 132 [penwidth=1, color=black];\n\t556 -> 133 [penwidth=1, color=black];\n\t556 -> 134 [penwidth=1, color=black];\n\t556 -> 141 [penwidth=1, color=black];\n\t556 -> 143 [penwidth=1, color=black];\n\t556 -> 144 [penwidth=1, color=black];\n\t556 -> 145 [penwidth=1, color=black];\n\t556 -> 149 [penwidth=1, color=black];\n\t556 -> 154 [penwidth=1, color=black];\n\t556 -> 160 [penwidth=1, color=black];\n\t556 -> 163 [penwidth=1, color=black];\n\t556 -> 164 [penwidth=1, color=black];\n\t556 -> 165 [penwidth=1, color=black];\n\t556 -> 166 [penwidth=1, color=black];\n\t556 -> 167 [penwidth=1, color=black];\n\t556 -> 175 [penwidth=1, color=black];\n\t556 -> 176 [penwidth=1, color=black];\n\t556 -> 177 [penwidth=1, color=black];\n\t556 -> 178 [penwidth=1, color=black];\n\t556 -> 179 [penwidth=1, color=black];\n\t556 -> 180 [penwidth=1, color=black];\n\t556 -> 181 [penwidth=1, color=black];\n\t556 -> 182 [penwidth=1, color=black];\n\t556 -> 188 [penwidth=1, color=black];\n\t556 -> 189 [penwidth=1, color=black];\n\t556 -> 190 [penwidth=1, color=black];\n\t556 -> 202 [penwidth=1, color=black];\n\t556 -> 205 [penwidth=1, color=black];\n\t556 -> 207 [penwidth=1, color=black];\n\t556 -> 212 [penwidth=1, color=black];\n\t556 -> 213 [penwidth=1, color=black];\n\t556 -> 214 [penwidth=1, color=black];\n\t556 -> 215 [penwidth=1, color=black];\n\t556 -> 216 [penwidth=1, color=black];\n\t556 -> 217 [penwidth=1, color=black];\n\t556 -> 218 [penwidth=1, color=black];\n\t556 -> 219 [penwidth=1, color=black];\n\t556 -> 220 [penwidth=1, color=black];\n\t556 -> 221 [penwidth=1, color=black];\n\t556 -> 222 [penwidth=1, color=black];\n\t556 -> 223 [penwidth=1, color=black];\n\t556 -> 224 [penwidth=1, color=black];\n\t556 -> 226 [penwidth=1, color=black];\n\t556 -> 227 [penwidth=1, color=black];\n\t556 -> 228 [penwidth=1, color=black];\n\t556 -> 229 [penwidth=1, color=black];\n\t556 -> 230 [penwidth=1, color=black];\n\t556 -> 233 [penwidth=1, color=black];\n\t556 -> 234 [penwidth=1, color=black];\n\t556 -> 235 [penwidth=1, color=black];\n\t556 -> 239 [penwidth=1, color=black];\n\t556 -> 245 [penwidth=1, color=black];\n\t556 -> 246 [penwidth=1, color=black];\n\t556 -> 248 [penwidth=1, color=black];\n\t556 -> 249 [penwidth=1, color=black];\n\t556 -> 251 [penwidth=1, color=black];\n\t556 -> 252 [penwidth=1, color=black];\n\t556 -> 253 [penwidth=1, color=black];\n\t556 -> 259 [penwidth=1, color=black];\n\t556 -> 265 [penwidth=1, color=black];\n\t556 -> 269 [penwidth=1, color=black];\n\t556 -> 272 [penwidth=1, color=black];\n\t556 -> 273 [penwidth=1, color=black];\n\t556 -> 276 [penwidth=1, color=black];\n\t556 -> 277 [penwidth=1, color=black];\n\t556 -> 278 [penwidth=1, color=black];\n\t556 -> 279 [penwidth=1, color=black];\n\t556 -> 280 [penwidth=1, color=black];\n\t556 -> 282 [penwidth=1, color=black];\n\t556 -> 287 [penwidth=1, color=black];\n\t556 -> 289 [penwidth=1, color=black];\n\t556 -> 290 [penwidth=1, color=black];\n\t556 -> 291 [penwidth=1, color=black];\n\t556 -> 293 [penwidth=1, color=black];\n\t556 -> 294 [penwidth=1, color=black];\n\t556 -> 296 [penwidth=1, color=black];\n\t556 -> 297 [penwidth=1, color=black];\n\t556 -> 305 [penwidth=1, color=black];\n\t556 -> 308 [penwidth=1, color=black];\n\t556 -> 309 [penwidth=1, color=black];\n\t556 -> 312 [penwidth=1, color=black];\n\t556 -> 313 [penwidth=1, color=black];\n\t556 -> 314 [penwidth=1, color=black];\n\t556 -> 315 [penwidth=1, color=black];\n\t556 -> 319 [penwidth=1, color=black];\n\t556 -> 323 [penwidth=1, color=black];\n\t556 -> 324 [penwidth=1, color=black];\n\t556 -> 327 [penwidth=1, color=black];\n\t556 -> 329 [penwidth=1, color=black];\n\t556 -> 330 [penwidth=1, color=black];\n\t556 -> 334 [penwidth=1, color=black];\n\t556 -> 336 [penwidth=1, color=black];\n\t556 -> 337 [penwidth=1, color=black];\n\t556 -> 340 [penwidth=1, color=black];\n\t556 -> 342 [penwidth=1, color=black];\n\t556 -> 344 [penwidth=1, color=black];\n\t556 -> 345 [penwidth=1, color=black];\n\t556 -> 347 [penwidth=1, color=black];\n\t556 -> 348 [penwidth=1, color=black];\n\t556 -> 350 [penwidth=1, color=black];\n\t556 -> 351 [penwidth=1, color=black];\n\t556 -> 352 [penwidth=1, color=black];\n\t556 -> 354 [penwidth=1, color=black];\n\t556 -> 359 [penwidth=1, color=black];\n\t556 -> 361 [penwidth=1, color=black];\n\t556 -> 366 [penwidth=1, color=black];\n\t556 -> 367 [penwidth=1, color=black];\n\t556 -> 370 [penwidth=1, color=black];\n\t556 -> 371 [penwidth=1, color=black];\n\t556 -> 372 [penwidth=1, color=black];\n\t556 -> 373 [penwidth=1, color=black];\n\t556 -> 374 [penwidth=1, color=black];\n\t556 -> 375 [penwidth=1, color=black];\n\t556 -> 376 [penwidth=1, color=black];\n\t556 -> 379 [penwidth=1, color=black];\n\t556 -> 385 [penwidth=1, color=black];\n\t556 -> 386 [penwidth=1, color=black];\n\t556 -> 388 [penwidth=1, color=black];\n\t556 -> 394 [penwidth=1, color=black];\n\t556 -> 395 [penwidth=1, color=black];\n\t556 -> 396 [penwidth=1, color=black];\n\t556 -> 398 [penwidth=1, color=black];\n\t556 -> 399 [penwidth=1, color=black];\n\t556 -> 401 [penwidth=1, color=black];\n\t556 -> 1464 [penwidth=\"5.969813299576001\", color=black];\n\t557 -> 173 [penwidth=1, color=black];\n\t557 -> 237 [penwidth=1, color=black];\n\t557 -> 255 [penwidth=1, color=black];\n\t558 -> 142 [penwidth=1, color=black];\n\t558 -> 185 [penwidth=1, color=black];\n\t558 -> 256 [penwidth=1, color=black];\n\t559 -> 122 [penwidth=1, color=black];\n\t559 -> 281 [penwidth=1, color=black];\n\t560 -> 92 [penwidth=1, color=black];\n\t560 -> 97 [penwidth=1, color=black];\n\t560 -> 168 [penwidth=1, color=black];\n\t560 -> 257 [penwidth=1, color=black];\n\t561 -> 114 [penwidth=1, color=black];\n\t561 -> 236 [penwidth=1, color=black];\n\t561 -> 258 [penwidth=1, color=black];\n\t561 -> 302 [penwidth=1, color=black];\n\t561 -> 357 [penwidth=1, color=black];\n\t562 -> 263 [penwidth=1, color=black];\n\t562 -> 400 [penwidth=1, color=black];\n\t563 -> 199 [penwidth=1, color=black];\n\t563 -> 200 [penwidth=1, color=black];\n\t563 -> 201 [penwidth=1, color=black];\n\t564 -> 187 [penwidth=1, color=black];\n\t564 -> 321 [penwidth=1, color=black];\n\t564 -> 365 [penwidth=1, color=black];\n\t564 -> 1454 [penwidth=1, color=black];\n\t565 -> 83 [penwidth=1, color=black];\n\t565 -> 209 [penwidth=1, color=black];\n\t565 -> 210 [penwidth=1, color=black];\n\t566 -> 206 [penwidth=1, color=black];\n\t567 -> 208 [penwidth=1, color=black];\n\t567 -> 211 [penwidth=1, color=black];\n\t567 -> 409 [penwidth=1, color=black];\n\t568 -> 184 [penwidth=1, color=black];\n\t568 -> 196 [penwidth=1, color=black];\n\t568 -> 203 [penwidth=1, color=black];\n\t568 -> 244 [penwidth=1, color=black];\n\t569 -> 107 [penwidth=1, color=black];\n\t569 -> 346 [penwidth=1, color=black];\n\t569 -> 368 [penwidth=1, color=black];\n\t570 -> 103 [penwidth=1, color=black];\n\t570 -> 146 [penwidth=1, color=black];\n\t570 -> 266 [penwidth=1, color=black];\n\t571 -> 115 [penwidth=1, color=black];\n\t571 -> 197 [penwidth=1, color=black];\n\t571 -> 204 [penwidth=1, color=black];\n\t571 -> 307 [penwidth=1, color=black];\n\t571 -> 326 [penwidth=1, color=black];\n\t571 -> 338 [penwidth=1, color=black];\n\t571 -> 339 [penwidth=1, color=black];\n\t571 -> 397 [penwidth=1, color=black];\n\t572 -> 135 [penwidth=1, color=black];\n\t572 -> 136 [penwidth=1, color=black];\n\t572 -> 286 [penwidth=1, color=black];\n\t573 -> 283 [penwidth=1, color=black];\n\t573 -> 284 [penwidth=1, color=black];\n\t573 -> 285 [penwidth=1, color=black];\n\t573 -> 288 [penwidth=1, color=black];\n\t574 -> 95 [penwidth=1, color=black];\n\t574 -> 102 [penwidth=1, color=black];\n\t574 -> 231 [penwidth=1, color=black];\n\t574 -> 238 [penwidth=1, color=black];\n\t574 -> 318 [penwidth=1, color=black];\n\t574 -> 332 [penwidth=1, color=black];\n\t574 -> 378 [penwidth=1, color=black];\n\t574 -> 380 [penwidth=1, color=black];\n\t575 -> 299 [penwidth=1, color=black];\n\t575 -> 1455 [penwidth=1, color=black];\n\t575 -> 1871 [penwidth=1, color=black];\n\t576 -> 300 [penwidth=1, color=black];\n\t576 -> 358 [penwidth=1, color=black];\n\t577 -> 151 [penwidth=1, color=black];\n\t577 -> 260 [penwidth=1, color=black];\n\t577 -> 268 [penwidth=1, color=black];\n\t578 -> 169 [penwidth=1, color=black];\n\t578 -> 170 [penwidth=1, color=black];\n\t578 -> 171 [penwidth=1, color=black];\n\t578 -> 172 [penwidth=1, color=black];\n\t579 -> 247 [penwidth=1, color=black];\n\t579 -> 250 [penwidth=1, color=black];\n\t579 -> 335 [penwidth=1, color=black];\n\t579 -> 349 [penwidth=1, color=black];\n\t579 -> 355 [penwidth=1, color=black];\n\t580 -> 89 [penwidth=1, color=black];\n\t580 -> 90 [penwidth=1, color=black];\n\t580 -> 116 [penwidth=1, color=black];\n\t580 -> 150 [penwidth=1, color=black];\n\t580 -> 156 [penwidth=1, color=black];\n\t581 -> 152 [penwidth=1, color=black];\n\t581 -> 161 [penwidth=1, color=black];\n\t581 -> 225 [penwidth=1, color=black];\n\t581 -> 304 [penwidth=1, color=black];\n\t581 -> 515 [penwidth=\"1.6931471805599454\", color=black];\n\t581 -> 599 [penwidth=\"1.6931471805599454\", color=black];\n\t582 -> 322 [penwidth=1, color=black];\n\t582 -> 1455 [penwidth=1, color=black];\n\t583 -> 198 [penwidth=1, color=black];\n\t583 -> 264 [penwidth=1, color=black];\n\t583 -> 270 [penwidth=1, color=black];\n\t584 -> 311 [penwidth=1, color=black];\n\t584 -> 325 [penwidth=1, color=black];\n\t584 -> 341 [penwidth=1, color=black];\n\t585 -> 153 [penwidth=1, color=black];\n\t585 -> 155 [penwidth=1, color=black];\n\t585 -> 157 [penwidth=1, color=black];\n\t585 -> 261 [penwidth=1, color=black];\n\t585 -> 387 [penwidth=1, color=black];\n\t586 -> 100 [penwidth=1, color=black];\n\t586 -> 101 [penwidth=1, color=black];\n\t586 -> 106 [penwidth=1, color=black];\n\t586 -> 112 [penwidth=1, color=black];\n\t586 -> 129 [penwidth=1, color=black];\n\t586 -> 139 [penwidth=1, color=black];\n\t586 -> 140 [penwidth=1, color=black];\n\t586 -> 147 [penwidth=1, color=black];\n\t586 -> 148 [penwidth=1, color=black];\n\t586 -> 162 [penwidth=1, color=black];\n\t586 -> 183 [penwidth=1, color=black];\n\t586 -> 186 [penwidth=1, color=black];\n\t586 -> 192 [penwidth=1, color=black];\n\t586 -> 193 [penwidth=1, color=black];\n\t586 -> 194 [penwidth=1, color=black];\n\t586 -> 240 [penwidth=1, color=black];\n\t586 -> 241 [penwidth=1, color=black];\n\t586 -> 242 [penwidth=1, color=black];\n\t586 -> 243 [penwidth=1, color=black];\n\t586 -> 271 [penwidth=1, color=black];\n\t586 -> 274 [penwidth=1, color=black];\n\t586 -> 292 [penwidth=1, color=black];\n\t586 -> 295 [penwidth=1, color=black];\n\t586 -> 298 [penwidth=1, color=black];\n\t586 -> 301 [penwidth=1, color=black];\n\t586 -> 303 [penwidth=1, color=black];\n\t586 -> 320 [penwidth=1, color=black];\n\t586 -> 343 [penwidth=1, color=black];\n\t586 -> 369 [penwidth=1, color=black];\n\t586 -> 381 [penwidth=1, color=black];\n\t586 -> 382 [penwidth=1, color=black];\n\t586 -> 384 [penwidth=1, color=black];\n\t587 -> 91 [penwidth=1, color=black];\n\t587 -> 174 [penwidth=1, color=black];\n\t587 -> 262 [penwidth=1, color=black];\n\t587 -> 306 [penwidth=1, color=black];\n\t587 -> 310 [penwidth=1, color=black];\n\t587 -> 360 [penwidth=1, color=black];\n\t587 -> 383 [penwidth=1, color=black];\n\t588 -> 356 [penwidth=1, color=black];\n\t588 -> 1455 [penwidth=1, color=black];\n\t589 -> 362 [penwidth=1, color=black];\n\t589 -> 363 [penwidth=1, color=black];\n\t589 -> 364 [penwidth=1, color=black];\n\t590 -> 333 [penwidth=1, color=black];\n\t591 -> 96 [penwidth=1, color=black];\n\t591 -> 120 [penwidth=1, color=black];\n\t591 -> 124 [penwidth=1, color=black];\n\t591 -> 127 [penwidth=1, color=black];\n\t591 -> 138 [penwidth=1, color=black];\n\t591 -> 158 [penwidth=1, color=black];\n\t591 -> 195 [penwidth=1, color=black];\n\t591 -> 331 [penwidth=1, color=black];\n\t591 -> 353 [penwidth=1, color=black];\n\t592 -> 389 [penwidth=1, color=black];\n\t592 -> 390 [penwidth=1, color=black];\n\t592 -> 392 [penwidth=1, color=black];\n\t593 -> 414 [penwidth=1, color=black];\n\t593 -> 416 [penwidth=1, color=black];\n\t593 -> 606 [penwidth=1, color=black];\n\t593 -> 610 [penwidth=1, color=black];\n\t594 -> 409 [penwidth=1, color=black];\n\t599 -> 516 [penwidth=1, color=black];\n\t599 -> 1483 [penwidth=1, color=black];\n\t600 -> 94 [penwidth=1, color=black];\n\t600 -> 109 [penwidth=1, color=black];\n\t600 -> 110 [penwidth=1, color=black];\n\t600 -> 154 [penwidth=1, color=black];\n\t600 -> 163 [penwidth=1, color=black];\n\t600 -> 164 [penwidth=1, color=black];\n\t600 -> 167 [penwidth=1, color=black];\n\t600 -> 202 [penwidth=1, color=black];\n\t600 -> 207 [penwidth=1, color=black];\n\t600 -> 213 [penwidth=1, color=black];\n\t600 -> 220 [penwidth=1, color=black];\n\t600 -> 221 [penwidth=1, color=black];\n\t600 -> 259 [penwidth=1, color=black];\n\t600 -> 293 [penwidth=1, color=black];\n\t600 -> 294 [penwidth=1, color=black];\n\t600 -> 296 [penwidth=1, color=black];\n\t600 -> 312 [penwidth=1, color=black];\n\t600 -> 354 [penwidth=1, color=black];\n\t600 -> 366 [penwidth=1, color=black];\n\t600 -> 376 [penwidth=1, color=black];\n\t600 -> 379 [penwidth=1, color=black];\n\t600 -> 386 [penwidth=1, color=black];\n\t600 -> 388 [penwidth=1, color=black];\n\t601 -> 85 [penwidth=1, color=black];\n\t601 -> 86 [penwidth=1, color=black];\n\t601 -> 87 [penwidth=1, color=black];\n\t601 -> 109 [penwidth=1, color=black];\n\t601 -> 110 [penwidth=1, color=black];\n\t601 -> 111 [penwidth=1, color=black];\n\t601 -> 118 [penwidth=1, color=black];\n\t601 -> 125 [penwidth=1, color=black];\n\t601 -> 132 [penwidth=1, color=black];\n\t601 -> 143 [penwidth=1, color=black];\n\t601 -> 144 [penwidth=1, color=black];\n\t601 -> 145 [penwidth=1, color=black];\n\t601 -> 163 [penwidth=1, color=black];\n\t601 -> 164 [penwidth=1, color=black];\n\t601 -> 167 [penwidth=1, color=black];\n\t601 -> 176 [penwidth=1, color=black];\n\t601 -> 177 [penwidth=1, color=black];\n\t601 -> 178 [penwidth=1, color=black];\n\t601 -> 179 [penwidth=1, color=black];\n\t601 -> 180 [penwidth=1, color=black];\n\t601 -> 181 [penwidth=1, color=black];\n\t601 -> 188 [penwidth=1, color=black];\n\t601 -> 205 [penwidth=1, color=black];\n\t601 -> 207 [penwidth=1, color=black];\n\t601 -> 212 [penwidth=1, color=black];\n\t601 -> 213 [penwidth=1, color=black];\n\t601 -> 214 [penwidth=1, color=black];\n\t601 -> 215 [penwidth=1, color=black];\n\t601 -> 216 [penwidth=1, color=black];\n\t601 -> 217 [penwidth=1, color=black];\n\t601 -> 218 [penwidth=1, color=black];\n\t601 -> 219 [penwidth=1, color=black];\n\t601 -> 222 [penwidth=1, color=black];\n\t601 -> 223 [penwidth=1, color=black];\n\t601 -> 224 [penwidth=1, color=black];\n\t601 -> 227 [penwidth=1, color=black];\n\t601 -> 233 [penwidth=1, color=black];\n\t601 -> 249 [penwidth=1, color=black];\n\t601 -> 259 [penwidth=1, color=black];\n\t601 -> 294 [penwidth=1, color=black];\n\t601 -> 305 [penwidth=1, color=black];\n\t601 -> 334 [penwidth=1, color=black];\n\t601 -> 336 [penwidth=1, color=black];\n\t601 -> 347 [penwidth=1, color=black];\n\t601 -> 366 [penwidth=1, color=black];\n\t601 -> 370 [penwidth=1, color=black];\n\t601 -> 371 [penwidth=1, color=black];\n\t601 -> 372 [penwidth=1, color=black];\n\t601 -> 373 [penwidth=1, color=black];\n\t601 -> 374 [penwidth=1, color=black];\n\t601 -> 375 [penwidth=1, color=black];\n\t601 -> 376 [penwidth=1, color=black];\n\t601 -> 379 [penwidth=1, color=black];\n\t601 -> 386 [penwidth=1, color=black];\n\t601 -> 388 [penwidth=1, color=black];\n\t601 -> 398 [penwidth=1, color=black];\n\t602 -> 88 [penwidth=1, color=black];\n\t602 -> 93 [penwidth=1, color=black];\n\t602 -> 94 [penwidth=1, color=black];\n\t602 -> 104 [penwidth=1, color=black];\n\t602 -> 105 [penwidth=1, color=black];\n\t602 -> 108 [penwidth=1, color=black];\n\t602 -> 110 [penwidth=1, color=black];\n\t602 -> 111 [penwidth=1, color=black];\n\t602 -> 113 [penwidth=1, color=black];\n\t602 -> 117 [penwidth=1, color=black];\n\t602 -> 121 [penwidth=1, color=black];\n\t602 -> 123 [penwidth=1, color=black];\n\t602 -> 126 [penwidth=1, color=black];\n\t602 -> 130 [penwidth=1, color=black];\n\t602 -> 131 [penwidth=1, color=black];\n\t602 -> 133 [penwidth=1, color=black];\n\t602 -> 141 [penwidth=1, color=black];\n\t602 -> 149 [penwidth=1, color=black];\n\t602 -> 163 [penwidth=1, color=black];\n\t602 -> 164 [penwidth=1, color=black];\n\t602 -> 165 [penwidth=1, color=black];\n\t602 -> 166 [penwidth=1, color=black];\n\t602 -> 167 [penwidth=1, color=black];\n\t602 -> 188 [penwidth=1, color=black];\n\t602 -> 202 [penwidth=1, color=black];\n\t602 -> 207 [penwidth=1, color=black];\n\t602 -> 213 [penwidth=1, color=black];\n\t602 -> 220 [penwidth=1, color=black];\n\t602 -> 221 [penwidth=1, color=black];\n\t602 -> 226 [penwidth=1, color=black];\n\t602 -> 228 [penwidth=1, color=black];\n\t602 -> 229 [penwidth=1, color=black];\n\t602 -> 230 [penwidth=1, color=black];\n\t602 -> 234 [penwidth=1, color=black];\n\t602 -> 235 [penwidth=1, color=black];\n\t602 -> 239 [penwidth=1, color=black];\n\t602 -> 245 [penwidth=1, color=black];\n\t602 -> 246 [penwidth=1, color=black];\n\t602 -> 248 [penwidth=1, color=black];\n\t602 -> 251 [penwidth=1, color=black];\n\t602 -> 252 [penwidth=1, color=black];\n\t602 -> 253 [penwidth=1, color=black];\n\t602 -> 259 [penwidth=1, color=black];\n\t602 -> 265 [penwidth=1, color=black];\n\t602 -> 269 [penwidth=1, color=black];\n\t602 -> 272 [penwidth=1, color=black];\n\t602 -> 273 [penwidth=1, color=black];\n\t602 -> 276 [penwidth=1, color=black];\n\t602 -> 278 [penwidth=1, color=black];\n\t602 -> 279 [penwidth=1, color=black];\n\t602 -> 280 [penwidth=1, color=black];\n\t602 -> 282 [penwidth=1, color=black];\n\t602 -> 287 [penwidth=1, color=black];\n\t602 -> 289 [penwidth=1, color=black];\n\t602 -> 290 [penwidth=1, color=black];\n\t602 -> 291 [penwidth=1, color=black];\n\t602 -> 308 [penwidth=1, color=black];\n\t602 -> 309 [penwidth=1, color=black];\n\t602 -> 313 [penwidth=1, color=black];\n\t602 -> 314 [penwidth=1, color=black];\n\t602 -> 315 [penwidth=1, color=black];\n\t602 -> 319 [penwidth=1, color=black];\n\t602 -> 327 [penwidth=1, color=black];\n\t602 -> 329 [penwidth=1, color=black];\n\t602 -> 330 [penwidth=1, color=black];\n\t602 -> 340 [penwidth=1, color=black];\n\t602 -> 342 [penwidth=1, color=black];\n\t602 -> 347 [penwidth=1, color=black];\n\t602 -> 350 [penwidth=1, color=black];\n\t602 -> 352 [penwidth=1, color=black];\n\t602 -> 354 [penwidth=1, color=black];\n\t602 -> 359 [penwidth=1, color=black];\n\t602 -> 361 [penwidth=1, color=black];\n\t602 -> 367 [penwidth=1, color=black];\n\t602 -> 376 [penwidth=1, color=black];\n\t602 -> 385 [penwidth=1, color=black];\n\t602 -> 386 [penwidth=1, color=black];\n\t602 -> 388 [penwidth=1, color=black];\n\t602 -> 395 [penwidth=1, color=black];\n\t602 -> 396 [penwidth=1, color=black];\n\t603 -> 109 [penwidth=1, color=black];\n\t603 -> 110 [penwidth=1, color=black];\n\t603 -> 111 [penwidth=1, color=black];\n\t603 -> 134 [penwidth=1, color=black];\n\t603 -> 154 [penwidth=1, color=black];\n\t603 -> 160 [penwidth=1, color=black];\n\t603 -> 163 [penwidth=1, color=black];\n\t603 -> 164 [penwidth=1, color=black];\n\t603 -> 167 [penwidth=1, color=black];\n\t603 -> 175 [penwidth=1, color=black];\n\t603 -> 182 [penwidth=1, color=black];\n\t603 -> 188 [penwidth=1, color=black];\n\t603 -> 189 [penwidth=1, color=black];\n\t603 -> 190 [penwidth=1, color=black];\n\t603 -> 213 [penwidth=1, color=black];\n\t603 -> 221 [penwidth=1, color=black];\n\t603 -> 227 [penwidth=1, color=black];\n\t603 -> 245 [penwidth=1, color=black];\n\t603 -> 259 [penwidth=1, color=black];\n\t603 -> 277 [penwidth=1, color=black];\n\t603 -> 294 [penwidth=1, color=black];\n\t603 -> 296 [penwidth=1, color=black];\n\t603 -> 297 [penwidth=1, color=black];\n\t603 -> 305 [penwidth=1, color=black];\n\t603 -> 323 [penwidth=1, color=black];\n\t603 -> 324 [penwidth=1, color=black];\n\t603 -> 329 [penwidth=1, color=black];\n\t603 -> 337 [penwidth=1, color=black];\n\t603 -> 344 [penwidth=1, color=black];\n\t603 -> 345 [penwidth=1, color=black];\n\t603 -> 347 [penwidth=1, color=black];\n\t603 -> 348 [penwidth=1, color=black];\n\t603 -> 351 [penwidth=1, color=black];\n\t603 -> 354 [penwidth=1, color=black];\n\t603 -> 366 [penwidth=1, color=black];\n\t603 -> 376 [penwidth=1, color=black];\n\t603 -> 379 [penwidth=1, color=black];\n\t603 -> 386 [penwidth=1, color=black];\n\t603 -> 388 [penwidth=1, color=black];\n\t603 -> 394 [penwidth=1, color=black];\n\t603 -> 399 [penwidth=1, color=black];\n\t603 -> 401 [penwidth=1, color=black];\n\t604 -> 312 [penwidth=1, color=black];\n\t604 -> 388 [penwidth=1, color=black];\n\t605 -> 82 [penwidth=1, color=black];\n\t605 -> 393 [penwidth=1, color=black];\n\t605 -> 429 [penwidth=1, color=black];\n\t1201 -> 1075 [penwidth=1, color=black];\n\t1201 -> 1168 [penwidth=1, color=black];\n\t1201 -> 1188 [penwidth=1, color=black];\n\t1201 -> 1207 [penwidth=1, color=black];\n\t1202 -> 1074 [penwidth=1, color=black];\n\t1204 -> 1226 [penwidth=1, color=chartreuse];\n\t1206 -> 644 [penwidth=1, color=black];\n\t1206 -> 1188 [penwidth=1, color=black];\n\t1208 -> 644 [penwidth=1, color=black];\n\t1208 -> 1188 [penwidth=1, color=black];\n\t1208 -> 1429 [penwidth=1, color=black];\n\t1209 -> 644 [penwidth=1, color=black];\n\t1209 -> 1188 [penwidth=1, color=black];\n\t1209 -> 1429 [penwidth=1, color=black];\n\t1210 -> 611 [penwidth=1, color=black];\n\t1210 -> 642 [penwidth=1, color=black];\n\t1210 -> 643 [penwidth=1, color=black];\n\t1210 -> 651 [penwidth=1, color=black];\n\t1210 -> 652 [penwidth=1, color=black];\n\t1210 -> 690 [penwidth=1, color=black];\n\t1210 -> 752 [penwidth=1, color=black];\n\t1210 -> 871 [penwidth=1, color=black];\n\t1210 -> 872 [penwidth=1, color=black];\n\t1210 -> 1018 [penwidth=1, color=black];\n\t1210 -> 1024 [penwidth=1, color=black];\n\t1210 -> 1025 [penwidth=1, color=black];\n\t1210 -> 1043 [penwidth=1, color=black];\n\t1210 -> 1044 [penwidth=1, color=black];\n\t1210 -> 1056 [penwidth=1, color=black];\n\t1210 -> 1063 [penwidth=1, color=black];\n\t1210 -> 1064 [penwidth=1, color=black];\n\t1210 -> 1065 [penwidth=1, color=black];\n\t1210 -> 1066 [penwidth=1, color=black];\n\t1210 -> 1067 [penwidth=1, color=black];\n\t1210 -> 1073 [penwidth=1, color=black];\n\t1210 -> 1076 [penwidth=1, color=black];\n\t1210 -> 1077 [penwidth=1, color=black];\n\t1210 -> 1078 [penwidth=1, color=black];\n\t1210 -> 1079 [penwidth=1, color=black];\n\t1210 -> 1080 [penwidth=1, color=black];\n\t1210 -> 1086 [penwidth=1, color=black];\n\t1210 -> 1114 [penwidth=1, color=black];\n\t1210 -> 1115 [penwidth=1, color=black];\n\t1210 -> 1116 [penwidth=1, color=black];\n\t1210 -> 1142 [penwidth=1, color=black];\n\t1210 -> 1195 [penwidth=1, color=black];\n\t1210 -> 1196 [penwidth=1, color=black];\n\t1210 -> 1197 [penwidth=1, color=black];\n\t1210 -> 1198 [penwidth=1, color=black];\n\t1210 -> 1435 [penwidth=\"4.555348061489413\", color=black];\n\t1211 -> 644 [penwidth=1, color=black];\n\t1211 -> 873 [penwidth=1, color=black];\n\t1211 -> 1074 [penwidth=1, color=black];\n\t1211 -> 1075 [penwidth=1, color=black];\n\t1211 -> 1188 [penwidth=1, color=black];\n\t1211 -> 1373 [penwidth=1, color=black];\n\t1211 -> 1433 [penwidth=1, color=black];\n\t1211 -> 1440 [penwidth=1, color=black];\n\t1212 -> 645 [penwidth=1, color=black];\n\t1212 -> 1187 [penwidth=1, color=black];\n\t1212 -> 1435 [penwidth=1, color=black];\n\t1213 -> 612 [penwidth=1, color=black];\n\t1213 -> 613 [penwidth=1, color=black];\n\t1213 -> 614 [penwidth=1, color=black];\n\t1213 -> 615 [penwidth=1, color=black];\n\t1213 -> 616 [penwidth=1, color=black];\n\t1213 -> 617 [penwidth=1, color=black];\n\t1213 -> 618 [penwidth=1, color=black];\n\t1213 -> 619 [penwidth=1, color=black];\n\t1213 -> 620 [penwidth=1, color=black];\n\t1213 -> 621 [penwidth=1, color=black];\n\t1213 -> 622 [penwidth=1, color=black];\n\t1213 -> 623 [penwidth=1, color=black];\n\t1213 -> 624 [penwidth=1, color=black];\n\t1213 -> 625 [penwidth=1, color=black];\n\t1213 -> 626 [penwidth=1, color=black];\n\t1213 -> 627 [penwidth=1, color=black];\n\t1213 -> 628 [penwidth=1, color=black];\n\t1213 -> 629 [penwidth=1, color=black];\n\t1213 -> 630 [penwidth=1, color=black];\n\t1213 -> 631 [penwidth=1, color=black];\n\t1213 -> 632 [penwidth=1, color=black];\n\t1213 -> 633 [penwidth=1, color=black];\n\t1213 -> 634 [penwidth=1, color=black];\n\t1213 -> 635 [penwidth=1, color=black];\n\t1213 -> 636 [penwidth=1, color=black];\n\t1213 -> 637 [penwidth=1, color=black];\n\t1213 -> 638 [penwidth=1, color=black];\n\t1213 -> 639 [penwidth=1, color=black];\n\t1213 -> 640 [penwidth=1, color=black];\n\t1213 -> 641 [penwidth=1, color=black];\n\t1213 -> 646 [penwidth=1, color=black];\n\t1213 -> 647 [penwidth=1, color=black];\n\t1213 -> 648 [penwidth=1, color=black];\n\t1213 -> 649 [penwidth=1, color=black];\n\t1213 -> 650 [penwidth=1, color=black];\n\t1213 -> 653 [penwidth=1, color=black];\n\t1213 -> 654 [penwidth=1, color=black];\n\t1213 -> 655 [penwidth=1, color=black];\n\t1213 -> 656 [penwidth=1, color=black];\n\t1213 -> 657 [penwidth=1, color=black];\n\t1213 -> 658 [penwidth=1, color=black];\n\t1213 -> 659 [penwidth=1, color=black];\n\t1213 -> 660 [penwidth=1, color=black];\n\t1213 -> 661 [penwidth=1, color=black];\n\t1213 -> 662 [penwidth=1, color=black];\n\t1213 -> 663 [penwidth=1, color=black];\n\t1213 -> 664 [penwidth=1, color=black];\n\t1213 -> 665 [penwidth=1, color=black];\n\t1213 -> 666 [penwidth=1, color=black];\n\t1213 -> 667 [penwidth=1, color=black];\n\t1213 -> 668 [penwidth=1, color=black];\n\t1213 -> 669 [penwidth=1, color=black];\n\t1213 -> 670 [penwidth=1, color=black];\n\t1213 -> 671 [penwidth=1, color=black];\n\t1213 -> 672 [penwidth=1, color=black];\n\t1213 -> 673 [penwidth=1, color=black];\n\t1213 -> 674 [penwidth=1, color=black];\n\t1213 -> 675 [penwidth=1, color=black];\n\t1213 -> 676 [penwidth=1, color=black];\n\t1213 -> 677 [penwidth=1, color=black];\n\t1213 -> 678 [penwidth=1, color=black];\n\t1213 -> 679 [penwidth=1, color=black];\n\t1213 -> 680 [penwidth=1, color=black];\n\t1213 -> 681 [penwidth=1, color=black];\n\t1213 -> 682 [penwidth=1, color=black];\n\t1213 -> 683 [penwidth=1, color=black];\n\t1213 -> 684 [penwidth=1, color=black];\n\t1213 -> 685 [penwidth=1, color=black];\n\t1213 -> 686 [penwidth=1, color=black];\n\t1213 -> 687 [penwidth=1, color=black];\n\t1213 -> 688 [penwidth=1, color=black];\n\t1213 -> 689 [penwidth=1, color=black];\n\t1213 -> 691 [penwidth=1, color=black];\n\t1213 -> 692 [penwidth=1, color=black];\n\t1213 -> 693 [penwidth=1, color=black];\n\t1213 -> 694 [penwidth=1, color=black];\n\t1213 -> 695 [penwidth=1, color=black];\n\t1213 -> 696 [penwidth=1, color=black];\n\t1213 -> 697 [penwidth=1, color=black];\n\t1213 -> 698 [penwidth=1, color=black];\n\t1213 -> 699 [penwidth=1, color=black];\n\t1213 -> 700 [penwidth=1, color=black];\n\t1213 -> 701 [penwidth=1, color=black];\n\t1213 -> 702 [penwidth=1, color=black];\n\t1213 -> 703 [penwidth=1, color=black];\n\t1213 -> 704 [penwidth=1, color=black];\n\t1213 -> 705 [penwidth=1, color=black];\n\t1213 -> 706 [penwidth=1, color=black];\n\t1213 -> 707 [penwidth=1, color=black];\n\t1213 -> 708 [penwidth=1, color=black];\n\t1213 -> 709 [penwidth=1, color=black];\n\t1213 -> 710 [penwidth=1, color=black];\n\t1213 -> 711 [penwidth=1, color=black];\n\t1213 -> 712 [penwidth=1, color=black];\n\t1213 -> 713 [penwidth=1, color=black];\n\t1213 -> 714 [penwidth=1, color=black];\n\t1213 -> 715 [penwidth=1, color=black];\n\t1213 -> 716 [penwidth=1, color=black];\n\t1213 -> 717 [penwidth=1, color=black];\n\t1213 -> 718 [penwidth=1, color=black];\n\t1213 -> 719 [penwidth=1, color=black];\n\t1213 -> 720 [penwidth=1, color=black];\n\t1213 -> 721 [penwidth=1, color=black];\n\t1213 -> 722 [penwidth=1, color=black];\n\t1213 -> 723 [penwidth=1, color=black];\n\t1213 -> 724 [penwidth=1, color=black];\n\t1213 -> 725 [penwidth=1, color=black];\n\t1213 -> 726 [penwidth=1, color=black];\n\t1213 -> 727 [penwidth=1, color=black];\n\t1213 -> 728 [penwidth=1, color=black];\n\t1213 -> 729 [penwidth=1, color=black];\n\t1213 -> 730 [penwidth=1, color=black];\n\t1213 -> 731 [penwidth=1, color=black];\n\t1213 -> 732 [penwidth=1, color=black];\n\t1213 -> 733 [penwidth=1, color=black];\n\t1213 -> 734 [penwidth=1, color=black];\n\t1213 -> 735 [penwidth=1, color=black];\n\t1213 -> 736 [penwidth=1, color=black];\n\t1213 -> 737 [penwidth=1, color=black];\n\t1213 -> 738 [penwidth=1, color=black];\n\t1213 -> 739 [penwidth=1, color=black];\n\t1213 -> 740 [penwidth=1, color=black];\n\t1213 -> 741 [penwidth=1, color=black];\n\t1213 -> 742 [penwidth=1, color=black];\n\t1213 -> 743 [penwidth=1, color=black];\n\t1213 -> 744 [penwidth=1, color=black];\n\t1213 -> 745 [penwidth=1, color=black];\n\t1213 -> 746 [penwidth=1, color=black];\n\t1213 -> 747 [penwidth=1, color=black];\n\t1213 -> 748 [penwidth=1, color=black];\n\t1213 -> 749 [penwidth=1, color=black];\n\t1213 -> 750 [penwidth=1, color=black];\n\t1213 -> 751 [penwidth=1, color=black];\n\t1213 -> 753 [penwidth=1, color=black];\n\t1213 -> 754 [penwidth=1, color=black];\n\t1213 -> 755 [penwidth=1, color=black];\n\t1213 -> 756 [penwidth=1, color=black];\n\t1213 -> 757 [penwidth=1, color=black];\n\t1213 -> 758 [penwidth=1, color=black];\n\t1213 -> 759 [penwidth=1, color=black];\n\t1213 -> 760 [penwidth=1, color=black];\n\t1213 -> 761 [penwidth=1, color=black];\n\t1213 -> 762 [penwidth=1, color=black];\n\t1213 -> 763 [penwidth=1, color=black];\n\t1213 -> 764 [penwidth=1, color=black];\n\t1213 -> 765 [penwidth=1, color=black];\n\t1213 -> 766 [penwidth=1, color=black];\n\t1213 -> 767 [penwidth=1, color=black];\n\t1213 -> 768 [penwidth=1, color=black];\n\t1213 -> 769 [penwidth=1, color=black];\n\t1213 -> 770 [penwidth=1, color=black];\n\t1213 -> 771 [penwidth=1, color=black];\n\t1213 -> 772 [penwidth=1, color=black];\n\t1213 -> 773 [penwidth=1, color=black];\n\t1213 -> 774 [penwidth=1, color=black];\n\t1213 -> 775 [penwidth=1, color=black];\n\t1213 -> 776 [penwidth=1, color=black];\n\t1213 -> 777 [penwidth=1, color=black];\n\t1213 -> 778 [penwidth=1, color=black];\n\t1213 -> 779 [penwidth=1, color=black];\n\t1213 -> 780 [penwidth=1, color=black];\n\t1213 -> 781 [penwidth=1, color=black];\n\t1213 -> 782 [penwidth=1, color=black];\n\t1213 -> 783 [penwidth=1, color=black];\n\t1213 -> 784 [penwidth=1, color=black];\n\t1213 -> 785 [penwidth=1, color=black];\n\t1213 -> 786 [penwidth=1, color=black];\n\t1213 -> 787 [penwidth=1, color=black];\n\t1213 -> 788 [penwidth=1, color=black];\n\t1213 -> 789 [penwidth=1, color=black];\n\t1213 -> 790 [penwidth=1, color=black];\n\t1213 -> 791 [penwidth=1, color=black];\n\t1213 -> 792 [penwidth=1, color=black];\n\t1213 -> 793 [penwidth=1, color=black];\n\t1213 -> 794 [penwidth=1, color=black];\n\t1213 -> 795 [penwidth=1, color=black];\n\t1213 -> 796 [penwidth=1, color=black];\n\t1213 -> 797 [penwidth=1, color=black];\n\t1213 -> 798 [penwidth=1, color=black];\n\t1213 -> 799 [penwidth=1, color=black];\n\t1213 -> 800 [penwidth=1, color=black];\n\t1213 -> 801 [penwidth=1, color=black];\n\t1213 -> 802 [penwidth=1, color=black];\n\t1213 -> 803 [penwidth=1, color=black];\n\t1213 -> 804 [penwidth=1, color=black];\n\t1213 -> 805 [penwidth=1, color=black];\n\t1213 -> 806 [penwidth=1, color=black];\n\t1213 -> 807 [penwidth=1, color=black];\n\t1213 -> 808 [penwidth=1, color=black];\n\t1213 -> 809 [penwidth=1, color=black];\n\t1213 -> 810 [penwidth=1, color=black];\n\t1213 -> 811 [penwidth=1, color=black];\n\t1213 -> 812 [penwidth=1, color=black];\n\t1213 -> 813 [penwidth=1, color=black];\n\t1213 -> 814 [penwidth=1, color=black];\n\t1213 -> 815 [penwidth=1, color=black];\n\t1213 -> 816 [penwidth=1, color=black];\n\t1213 -> 817 [penwidth=1, color=black];\n\t1213 -> 818 [penwidth=1, color=black];\n\t1213 -> 819 [penwidth=1, color=black];\n\t1213 -> 820 [penwidth=1, color=black];\n\t1213 -> 821 [penwidth=1, color=black];\n\t1213 -> 822 [penwidth=1, color=black];\n\t1213 -> 823 [penwidth=1, color=black];\n\t1213 -> 824 [penwidth=1, color=black];\n\t1213 -> 825 [penwidth=1, color=black];\n\t1213 -> 826 [penwidth=1, color=black];\n\t1213 -> 827 [penwidth=1, color=black];\n\t1213 -> 828 [penwidth=1, color=black];\n\t1213 -> 829 [penwidth=1, color=black];\n\t1213 -> 830 [penwidth=1, color=black];\n\t1213 -> 831 [penwidth=1, color=black];\n\t1213 -> 832 [penwidth=1, color=black];\n\t1213 -> 833 [penwidth=1, color=black];\n\t1213 -> 834 [penwidth=1, color=black];\n\t1213 -> 835 [penwidth=1, color=black];\n\t1213 -> 836 [penwidth=1, color=black];\n\t1213 -> 837 [penwidth=1, color=black];\n\t1213 -> 838 [penwidth=1, color=black];\n\t1213 -> 839 [penwidth=1, color=black];\n\t1213 -> 840 [penwidth=1, color=black];\n\t1213 -> 841 [penwidth=1, color=black];\n\t1213 -> 842 [penwidth=1, color=black];\n\t1213 -> 843 [penwidth=1, color=black];\n\t1213 -> 844 [penwidth=1, color=black];\n\t1213 -> 845 [penwidth=1, color=black];\n\t1213 -> 846 [penwidth=1, color=black];\n\t1213 -> 847 [penwidth=1, color=black];\n\t1213 -> 848 [penwidth=1, color=black];\n\t1213 -> 849 [penwidth=1, color=black];\n\t1213 -> 850 [penwidth=1, color=black];\n\t1213 -> 851 [penwidth=1, color=black];\n\t1213 -> 852 [penwidth=1, color=black];\n\t1213 -> 853 [penwidth=1, color=black];\n\t1213 -> 854 [penwidth=1, color=black];\n\t1213 -> 855 [penwidth=1, color=black];\n\t1213 -> 856 [penwidth=1, color=black];\n\t1213 -> 857 [penwidth=1, color=black];\n\t1213 -> 858 [penwidth=1, color=black];\n\t1213 -> 859 [penwidth=1, color=black];\n\t1213 -> 860 [penwidth=1, color=black];\n\t1213 -> 861 [penwidth=1, color=black];\n\t1213 -> 862 [penwidth=1, color=black];\n\t1213 -> 863 [penwidth=1, color=black];\n\t1213 -> 864 [penwidth=1, color=black];\n\t1213 -> 865 [penwidth=1, color=black];\n\t1213 -> 866 [penwidth=1, color=black];\n\t1213 -> 867 [penwidth=1, color=black];\n\t1213 -> 868 [penwidth=1, color=black];\n\t1213 -> 869 [penwidth=1, color=black];\n\t1213 -> 870 [penwidth=1, color=black];\n\t1213 -> 874 [penwidth=1, color=black];\n\t1213 -> 875 [penwidth=1, color=black];\n\t1213 -> 876 [penwidth=1, color=black];\n\t1213 -> 877 [penwidth=1, color=black];\n\t1213 -> 878 [penwidth=1, color=black];\n\t1213 -> 879 [penwidth=1, color=black];\n\t1213 -> 880 [penwidth=1, color=black];\n\t1213 -> 881 [penwidth=1, color=black];\n\t1213 -> 882 [penwidth=1, color=black];\n\t1213 -> 883 [penwidth=1, color=black];\n\t1213 -> 884 [penwidth=1, color=black];\n\t1213 -> 885 [penwidth=1, color=black];\n\t1213 -> 886 [penwidth=1, color=black];\n\t1213 -> 887 [penwidth=1, color=black];\n\t1213 -> 888 [penwidth=1, color=black];\n\t1213 -> 889 [penwidth=1, color=black];\n\t1213 -> 890 [penwidth=1, color=black];\n\t1213 -> 891 [penwidth=1, color=black];\n\t1213 -> 892 [penwidth=1, color=black];\n\t1213 -> 893 [penwidth=1, color=black];\n\t1213 -> 894 [penwidth=1, color=black];\n\t1213 -> 895 [penwidth=1, color=black];\n\t1213 -> 896 [penwidth=1, color=black];\n\t1213 -> 897 [penwidth=1, color=black];\n\t1213 -> 898 [penwidth=1, color=black];\n\t1213 -> 899 [penwidth=1, color=black];\n\t1213 -> 900 [penwidth=1, color=black];\n\t1213 -> 901 [penwidth=1, color=black];\n\t1213 -> 902 [penwidth=1, color=black];\n\t1213 -> 903 [penwidth=1, color=black];\n\t1213 -> 904 [penwidth=1, color=black];\n\t1213 -> 905 [penwidth=1, color=black];\n\t1213 -> 906 [penwidth=1, color=black];\n\t1213 -> 907 [penwidth=1, color=black];\n\t1213 -> 908 [penwidth=1, color=black];\n\t1213 -> 909 [penwidth=1, color=black];\n\t1213 -> 910 [penwidth=1, color=black];\n\t1213 -> 911 [penwidth=1, color=black];\n\t1213 -> 912 [penwidth=1, color=black];\n\t1213 -> 913 [penwidth=1, color=black];\n\t1213 -> 914 [penwidth=1, color=black];\n\t1213 -> 915 [penwidth=1, color=black];\n\t1213 -> 916 [penwidth=1, color=black];\n\t1213 -> 917 [penwidth=1, color=black];\n\t1213 -> 918 [penwidth=1, color=black];\n\t1213 -> 919 [penwidth=1, color=black];\n\t1213 -> 920 [penwidth=1, color=black];\n\t1213 -> 921 [penwidth=1, color=black];\n\t1213 -> 922 [penwidth=1, color=black];\n\t1213 -> 923 [penwidth=1, color=black];\n\t1213 -> 924 [penwidth=1, color=black];\n\t1213 -> 925 [penwidth=1, color=black];\n\t1213 -> 926 [penwidth=1, color=black];\n\t1213 -> 927 [penwidth=1, color=black];\n\t1213 -> 928 [penwidth=1, color=black];\n\t1213 -> 929 [penwidth=1, color=black];\n\t1213 -> 930 [penwidth=1, color=black];\n\t1213 -> 931 [penwidth=1, color=black];\n\t1213 -> 932 [penwidth=1, color=black];\n\t1213 -> 933 [penwidth=1, color=black];\n\t1213 -> 934 [penwidth=1, color=black];\n\t1213 -> 935 [penwidth=1, color=black];\n\t1213 -> 936 [penwidth=1, color=black];\n\t1213 -> 937 [penwidth=1, color=black];\n\t1213 -> 938 [penwidth=1, color=black];\n\t1213 -> 939 [penwidth=1, color=black];\n\t1213 -> 940 [penwidth=1, color=black];\n\t1213 -> 941 [penwidth=1, color=black];\n\t1213 -> 942 [penwidth=1, color=black];\n\t1213 -> 943 [penwidth=1, color=black];\n\t1213 -> 944 [penwidth=1, color=black];\n\t1213 -> 945 [penwidth=1, color=black];\n\t1213 -> 946 [penwidth=1, color=black];\n\t1213 -> 947 [penwidth=1, color=black];\n\t1213 -> 948 [penwidth=1, color=black];\n\t1213 -> 949 [penwidth=1, color=black];\n\t1213 -> 950 [penwidth=1, color=black];\n\t1213 -> 951 [penwidth=1, color=black];\n\t1213 -> 952 [penwidth=1, color=black];\n\t1213 -> 953 [penwidth=1, color=black];\n\t1213 -> 954 [penwidth=1, color=black];\n\t1213 -> 955 [penwidth=1, color=black];\n\t1213 -> 956 [penwidth=1, color=black];\n\t1213 -> 957 [penwidth=1, color=black];\n\t1213 -> 958 [penwidth=1, color=black];\n\t1213 -> 959 [penwidth=1, color=black];\n\t1213 -> 960 [penwidth=1, color=black];\n\t1213 -> 961 [penwidth=1, color=black];\n\t1213 -> 962 [penwidth=1, color=black];\n\t1213 -> 963 [penwidth=1, color=black];\n\t1213 -> 964 [penwidth=1, color=black];\n\t1213 -> 965 [penwidth=1, color=black];\n\t1213 -> 966 [penwidth=1, color=black];\n\t1213 -> 967 [penwidth=1, color=black];\n\t1213 -> 968 [penwidth=1, color=black];\n\t1213 -> 969 [penwidth=1, color=black];\n\t1213 -> 970 [penwidth=1, color=black];\n\t1213 -> 971 [penwidth=1, color=black];\n\t1213 -> 972 [penwidth=1, color=black];\n\t1213 -> 973 [penwidth=1, color=black];\n\t1213 -> 974 [penwidth=1, color=black];\n\t1213 -> 975 [penwidth=1, color=black];\n\t1213 -> 976 [penwidth=1, color=black];\n\t1213 -> 977 [penwidth=1, color=black];\n\t1213 -> 978 [penwidth=1, color=black];\n\t1213 -> 979 [penwidth=1, color=black];\n\t1213 -> 980 [penwidth=1, color=black];\n\t1213 -> 981 [penwidth=1, color=black];\n\t1213 -> 982 [penwidth=1, color=black];\n\t1213 -> 983 [penwidth=1, color=black];\n\t1213 -> 984 [penwidth=1, color=black];\n\t1213 -> 985 [penwidth=1, color=black];\n\t1213 -> 986 [penwidth=1, color=black];\n\t1213 -> 987 [penwidth=1, color=black];\n\t1213 -> 988 [penwidth=1, color=black];\n\t1213 -> 989 [penwidth=1, color=black];\n\t1213 -> 990 [penwidth=1, color=black];\n\t1213 -> 991 [penwidth=1, color=black];\n\t1213 -> 992 [penwidth=1, color=black];\n\t1213 -> 993 [penwidth=1, color=black];\n\t1213 -> 994 [penwidth=1, color=black];\n\t1213 -> 995 [penwidth=1, color=black];\n\t1213 -> 996 [penwidth=1, color=black];\n\t1213 -> 997 [penwidth=1, color=black];\n\t1213 -> 998 [penwidth=1, color=black];\n\t1213 -> 999 [penwidth=1, color=black];\n\t1213 -> 1000 [penwidth=1, color=black];\n\t1213 -> 1001 [penwidth=1, color=black];\n\t1213 -> 1002 [penwidth=1, color=black];\n\t1213 -> 1003 [penwidth=1, color=black];\n\t1213 -> 1004 [penwidth=1, color=black];\n\t1213 -> 1005 [penwidth=1, color=black];\n\t1213 -> 1006 [penwidth=1, color=black];\n\t1213 -> 1007 [penwidth=1, color=black];\n\t1213 -> 1008 [penwidth=1, color=black];\n\t1213 -> 1009 [penwidth=1, color=black];\n\t1213 -> 1010 [penwidth=1, color=black];\n\t1213 -> 1011 [penwidth=1, color=black];\n\t1213 -> 1012 [penwidth=1, color=black];\n\t1213 -> 1013 [penwidth=1, color=black];\n\t1213 -> 1014 [penwidth=1, color=black];\n\t1213 -> 1015 [penwidth=1, color=black];\n\t1213 -> 1016 [penwidth=1, color=black];\n\t1213 -> 1017 [penwidth=1, color=black];\n\t1213 -> 1019 [penwidth=1, color=black];\n\t1213 -> 1020 [penwidth=1, color=black];\n\t1213 -> 1021 [penwidth=1, color=black];\n\t1213 -> 1022 [penwidth=1, color=black];\n\t1213 -> 1023 [penwidth=1, color=black];\n\t1213 -> 1026 [penwidth=1, color=black];\n\t1213 -> 1027 [penwidth=1, color=black];\n\t1213 -> 1028 [penwidth=1, color=black];\n\t1213 -> 1029 [penwidth=1, color=black];\n\t1213 -> 1030 [penwidth=1, color=black];\n\t1213 -> 1031 [penwidth=1, color=black];\n\t1213 -> 1032 [penwidth=1, color=black];\n\t1213 -> 1033 [penwidth=1, color=black];\n\t1213 -> 1034 [penwidth=1, color=black];\n\t1213 -> 1035 [penwidth=1, color=black];\n\t1213 -> 1036 [penwidth=1, color=black];\n\t1213 -> 1037 [penwidth=1, color=black];\n\t1213 -> 1038 [penwidth=1, color=black];\n\t1213 -> 1039 [penwidth=1, color=black];\n\t1213 -> 1040 [penwidth=1, color=black];\n\t1213 -> 1041 [penwidth=1, color=black];\n\t1213 -> 1042 [penwidth=1, color=black];\n\t1213 -> 1045 [penwidth=1, color=black];\n\t1213 -> 1046 [penwidth=1, color=black];\n\t1213 -> 1047 [penwidth=1, color=black];\n\t1213 -> 1048 [penwidth=1, color=black];\n\t1213 -> 1049 [penwidth=1, color=black];\n\t1213 -> 1050 [penwidth=1, color=black];\n\t1213 -> 1051 [penwidth=1, color=black];\n\t1213 -> 1052 [penwidth=1, color=black];\n\t1213 -> 1053 [penwidth=1, color=black];\n\t1213 -> 1054 [penwidth=1, color=black];\n\t1213 -> 1055 [penwidth=1, color=black];\n\t1213 -> 1057 [penwidth=1, color=black];\n\t1213 -> 1058 [penwidth=1, color=black];\n\t1213 -> 1059 [penwidth=1, color=black];\n\t1213 -> 1060 [penwidth=1, color=black];\n\t1213 -> 1061 [penwidth=1, color=black];\n\t1213 -> 1062 [penwidth=1, color=black];\n\t1213 -> 1068 [penwidth=1, color=black];\n\t1213 -> 1069 [penwidth=1, color=black];\n\t1213 -> 1070 [penwidth=1, color=black];\n\t1213 -> 1071 [penwidth=1, color=black];\n\t1213 -> 1072 [penwidth=1, color=black];\n\t1213 -> 1081 [penwidth=1, color=black];\n\t1213 -> 1082 [penwidth=1, color=black];\n\t1213 -> 1083 [penwidth=1, color=black];\n\t1213 -> 1084 [penwidth=1, color=black];\n\t1213 -> 1085 [penwidth=1, color=black];\n\t1213 -> 1087 [penwidth=1, color=black];\n\t1213 -> 1088 [penwidth=1, color=black];\n\t1213 -> 1089 [penwidth=1, color=black];\n\t1213 -> 1090 [penwidth=1, color=black];\n\t1213 -> 1091 [penwidth=1, color=black];\n\t1213 -> 1092 [penwidth=1, color=black];\n\t1213 -> 1093 [penwidth=1, color=black];\n\t1213 -> 1094 [penwidth=1, color=black];\n\t1213 -> 1095 [penwidth=1, color=black];\n\t1213 -> 1096 [penwidth=1, color=black];\n\t1213 -> 1097 [penwidth=1, color=black];\n\t1213 -> 1098 [penwidth=1, color=black];\n\t1213 -> 1099 [penwidth=1, color=black];\n\t1213 -> 1100 [penwidth=1, color=black];\n\t1213 -> 1101 [penwidth=1, color=black];\n\t1213 -> 1102 [penwidth=1, color=black];\n\t1213 -> 1103 [penwidth=1, color=black];\n\t1213 -> 1104 [penwidth=1, color=black];\n\t1213 -> 1105 [penwidth=1, color=black];\n\t1213 -> 1106 [penwidth=1, color=black];\n\t1213 -> 1107 [penwidth=1, color=black];\n\t1213 -> 1108 [penwidth=1, color=black];\n\t1213 -> 1109 [penwidth=1, color=black];\n\t1213 -> 1110 [penwidth=1, color=black];\n\t1213 -> 1111 [penwidth=1, color=black];\n\t1213 -> 1112 [penwidth=1, color=black];\n\t1213 -> 1113 [penwidth=1, color=black];\n\t1213 -> 1117 [penwidth=1, color=black];\n\t1213 -> 1118 [penwidth=1, color=black];\n\t1213 -> 1119 [penwidth=1, color=black];\n\t1213 -> 1120 [penwidth=1, color=black];\n\t1213 -> 1121 [penwidth=1, color=black];\n\t1213 -> 1122 [penwidth=1, color=black];\n\t1213 -> 1123 [penwidth=1, color=black];\n\t1213 -> 1124 [penwidth=1, color=black];\n\t1213 -> 1125 [penwidth=1, color=black];\n\t1213 -> 1126 [penwidth=1, color=black];\n\t1213 -> 1127 [penwidth=1, color=black];\n\t1213 -> 1128 [penwidth=1, color=black];\n\t1213 -> 1129 [penwidth=1, color=black];\n\t1213 -> 1130 [penwidth=1, color=black];\n\t1213 -> 1131 [penwidth=1, color=black];\n\t1213 -> 1132 [penwidth=1, color=black];\n\t1213 -> 1133 [penwidth=1, color=black];\n\t1213 -> 1134 [penwidth=1, color=black];\n\t1213 -> 1135 [penwidth=1, color=black];\n\t1213 -> 1136 [penwidth=1, color=black];\n\t1213 -> 1137 [penwidth=1, color=black];\n\t1213 -> 1138 [penwidth=1, color=black];\n\t1213 -> 1139 [penwidth=1, color=black];\n\t1213 -> 1140 [penwidth=1, color=black];\n\t1213 -> 1141 [penwidth=1, color=black];\n\t1213 -> 1143 [penwidth=1, color=black];\n\t1213 -> 1144 [penwidth=1, color=black];\n\t1213 -> 1145 [penwidth=1, color=black];\n\t1213 -> 1146 [penwidth=1, color=black];\n\t1213 -> 1147 [penwidth=1, color=black];\n\t1213 -> 1148 [penwidth=1, color=black];\n\t1213 -> 1149 [penwidth=1, color=black];\n\t1213 -> 1150 [penwidth=1, color=black];\n\t1213 -> 1151 [penwidth=1, color=black];\n\t1213 -> 1152 [penwidth=1, color=black];\n\t1213 -> 1153 [penwidth=1, color=black];\n\t1213 -> 1154 [penwidth=1, color=black];\n\t1213 -> 1155 [penwidth=1, color=black];\n\t1213 -> 1156 [penwidth=1, color=black];\n\t1213 -> 1157 [penwidth=1, color=black];\n\t1213 -> 1158 [penwidth=1, color=black];\n\t1213 -> 1159 [penwidth=1, color=black];\n\t1213 -> 1160 [penwidth=1, color=black];\n\t1213 -> 1161 [penwidth=1, color=black];\n\t1213 -> 1162 [penwidth=1, color=black];\n\t1213 -> 1163 [penwidth=1, color=black];\n\t1213 -> 1164 [penwidth=1, color=black];\n\t1213 -> 1165 [penwidth=1, color=black];\n\t1213 -> 1166 [penwidth=1, color=black];\n\t1213 -> 1167 [penwidth=1, color=black];\n\t1213 -> 1168 [penwidth=1, color=black];\n\t1213 -> 1169 [penwidth=1, color=black];\n\t1213 -> 1170 [penwidth=1, color=black];\n\t1213 -> 1171 [penwidth=1, color=black];\n\t1213 -> 1172 [penwidth=1, color=black];\n\t1213 -> 1173 [penwidth=1, color=black];\n\t1213 -> 1174 [penwidth=1, color=black];\n\t1213 -> 1175 [penwidth=1, color=black];\n\t1213 -> 1176 [penwidth=1, color=black];\n\t1213 -> 1177 [penwidth=1, color=black];\n\t1213 -> 1178 [penwidth=1, color=black];\n\t1213 -> 1179 [penwidth=1, color=black];\n\t1213 -> 1180 [penwidth=1, color=black];\n\t1213 -> 1181 [penwidth=1, color=black];\n\t1213 -> 1182 [penwidth=1, color=black];\n\t1213 -> 1183 [penwidth=1, color=black];\n\t1213 -> 1184 [penwidth=1, color=black];\n\t1213 -> 1185 [penwidth=1, color=black];\n\t1213 -> 1186 [penwidth=1, color=black];\n\t1213 -> 1189 [penwidth=1, color=black];\n\t1213 -> 1190 [penwidth=1, color=black];\n\t1213 -> 1191 [penwidth=1, color=black];\n\t1213 -> 1192 [penwidth=1, color=black];\n\t1213 -> 1193 [penwidth=1, color=black];\n\t1213 -> 1194 [penwidth=1, color=black];\n\t1213 -> 1435 [penwidth=\"7.063785208687608\", color=black];\n\t1213 -> 1436 [penwidth=\"5.7535901911063645\", color=black];\n\t1214 -> 1373 [penwidth=1, color=black];\n\t1217 -> 644 [penwidth=1, color=black];\n\t1217 -> 873 [penwidth=1, color=black];\n\t1217 -> 1074 [penwidth=1, color=black];\n\t1217 -> 1075 [penwidth=1, color=black];\n\t1217 -> 1188 [penwidth=1, color=black];\n\t1217 -> 1219 [penwidth=1, color=black];\n\t1217 -> 1227 [penwidth=1, color=black];\n\t1218 -> 644 [penwidth=1, color=black];\n\t1218 -> 1188 [penwidth=1, color=black];\n\t1219 -> 1207 [penwidth=1, color=black];\n\t1220 -> 611 [penwidth=1, color=black];\n\t1220 -> 642 [penwidth=1, color=black];\n\t1220 -> 643 [penwidth=1, color=black];\n\t1220 -> 651 [penwidth=1, color=black];\n\t1220 -> 652 [penwidth=1, color=black];\n\t1220 -> 690 [penwidth=1, color=black];\n\t1220 -> 752 [penwidth=1, color=black];\n\t1220 -> 871 [penwidth=1, color=black];\n\t1220 -> 872 [penwidth=1, color=black];\n\t1220 -> 1018 [penwidth=1, color=black];\n\t1220 -> 1024 [penwidth=1, color=black];\n\t1220 -> 1025 [penwidth=1, color=black];\n\t1220 -> 1043 [penwidth=1, color=black];\n\t1220 -> 1044 [penwidth=1, color=black];\n\t1220 -> 1056 [penwidth=1, color=black];\n\t1220 -> 1063 [penwidth=1, color=black];\n\t1220 -> 1064 [penwidth=1, color=black];\n\t1220 -> 1065 [penwidth=1, color=black];\n\t1220 -> 1066 [penwidth=1, color=black];\n\t1220 -> 1067 [penwidth=1, color=black];\n\t1220 -> 1073 [penwidth=1, color=black];\n\t1220 -> 1076 [penwidth=1, color=black];\n\t1220 -> 1077 [penwidth=1, color=black];\n\t1220 -> 1078 [penwidth=1, color=black];\n\t1220 -> 1079 [penwidth=1, color=black];\n\t1220 -> 1080 [penwidth=1, color=black];\n\t1220 -> 1086 [penwidth=1, color=black];\n\t1220 -> 1114 [penwidth=1, color=black];\n\t1220 -> 1115 [penwidth=1, color=black];\n\t1220 -> 1116 [penwidth=1, color=black];\n\t1220 -> 1142 [penwidth=1, color=black];\n\t1220 -> 1195 [penwidth=1, color=black];\n\t1220 -> 1196 [penwidth=1, color=black];\n\t1220 -> 1197 [penwidth=1, color=black];\n\t1220 -> 1198 [penwidth=1, color=black];\n\t1221 -> 644 [penwidth=1, color=black];\n\t1221 -> 873 [penwidth=1, color=black];\n\t1221 -> 1074 [penwidth=1, color=black];\n\t1221 -> 1075 [penwidth=1, color=black];\n\t1221 -> 1188 [penwidth=1, color=black];\n\t1221 -> 1204 [penwidth=\"1.6931471805599454\", color=black];\n\t1222 -> 645 [penwidth=1, color=black];\n\t1222 -> 1187 [penwidth=1, color=black];\n\t1223 -> 612 [penwidth=1, color=black];\n\t1223 -> 613 [penwidth=1, color=black];\n\t1223 -> 614 [penwidth=1, color=black];\n\t1223 -> 615 [penwidth=1, color=black];\n\t1223 -> 616 [penwidth=1, color=black];\n\t1223 -> 617 [penwidth=1, color=black];\n\t1223 -> 618 [penwidth=1, color=black];\n\t1223 -> 619 [penwidth=1, color=black];\n\t1223 -> 620 [penwidth=1, color=black];\n\t1223 -> 621 [penwidth=1, color=black];\n\t1223 -> 622 [penwidth=1, color=black];\n\t1223 -> 623 [penwidth=1, color=black];\n\t1223 -> 624 [penwidth=1, color=black];\n\t1223 -> 625 [penwidth=1, color=black];\n\t1223 -> 626 [penwidth=1, color=black];\n\t1223 -> 627 [penwidth=1, color=black];\n\t1223 -> 628 [penwidth=1, color=black];\n\t1223 -> 629 [penwidth=1, color=black];\n\t1223 -> 630 [penwidth=1, color=black];\n\t1223 -> 631 [penwidth=1, color=black];\n\t1223 -> 632 [penwidth=1, color=black];\n\t1223 -> 633 [penwidth=1, color=black];\n\t1223 -> 634 [penwidth=1, color=black];\n\t1223 -> 635 [penwidth=1, color=black];\n\t1223 -> 636 [penwidth=1, color=black];\n\t1223 -> 637 [penwidth=1, color=black];\n\t1223 -> 638 [penwidth=1, color=black];\n\t1223 -> 639 [penwidth=1, color=black];\n\t1223 -> 640 [penwidth=1, color=black];\n\t1223 -> 641 [penwidth=1, color=black];\n\t1223 -> 646 [penwidth=1, color=black];\n\t1223 -> 647 [penwidth=1, color=black];\n\t1223 -> 648 [penwidth=1, color=black];\n\t1223 -> 649 [penwidth=1, color=black];\n\t1223 -> 650 [penwidth=1, color=black];\n\t1223 -> 653 [penwidth=1, color=black];\n\t1223 -> 654 [penwidth=1, color=black];\n\t1223 -> 655 [penwidth=1, color=black];\n\t1223 -> 656 [penwidth=1, color=black];\n\t1223 -> 657 [penwidth=1, color=black];\n\t1223 -> 658 [penwidth=1, color=black];\n\t1223 -> 659 [penwidth=1, color=black];\n\t1223 -> 660 [penwidth=1, color=black];\n\t1223 -> 661 [penwidth=1, color=black];\n\t1223 -> 662 [penwidth=1, color=black];\n\t1223 -> 663 [penwidth=1, color=black];\n\t1223 -> 664 [penwidth=1, color=black];\n\t1223 -> 665 [penwidth=1, color=black];\n\t1223 -> 666 [penwidth=1, color=black];\n\t1223 -> 667 [penwidth=1, color=black];\n\t1223 -> 668 [penwidth=1, color=black];\n\t1223 -> 669 [penwidth=1, color=black];\n\t1223 -> 670 [penwidth=1, color=black];\n\t1223 -> 671 [penwidth=1, color=black];\n\t1223 -> 672 [penwidth=1, color=black];\n\t1223 -> 673 [penwidth=1, color=black];\n\t1223 -> 674 [penwidth=1, color=black];\n\t1223 -> 675 [penwidth=1, color=black];\n\t1223 -> 676 [penwidth=1, color=black];\n\t1223 -> 677 [penwidth=1, color=black];\n\t1223 -> 678 [penwidth=1, color=black];\n\t1223 -> 679 [penwidth=1, color=black];\n\t1223 -> 680 [penwidth=1, color=black];\n\t1223 -> 681 [penwidth=1, color=black];\n\t1223 -> 682 [penwidth=1, color=black];\n\t1223 -> 683 [penwidth=1, color=black];\n\t1223 -> 684 [penwidth=1, color=black];\n\t1223 -> 685 [penwidth=1, color=black];\n\t1223 -> 686 [penwidth=1, color=black];\n\t1223 -> 687 [penwidth=1, color=black];\n\t1223 -> 688 [penwidth=1, color=black];\n\t1223 -> 689 [penwidth=1, color=black];\n\t1223 -> 691 [penwidth=1, color=black];\n\t1223 -> 692 [penwidth=1, color=black];\n\t1223 -> 693 [penwidth=1, color=black];\n\t1223 -> 694 [penwidth=1, color=black];\n\t1223 -> 695 [penwidth=1, color=black];\n\t1223 -> 696 [penwidth=1, color=black];\n\t1223 -> 697 [penwidth=1, color=black];\n\t1223 -> 698 [penwidth=1, color=black];\n\t1223 -> 699 [penwidth=1, color=black];\n\t1223 -> 700 [penwidth=1, color=black];\n\t1223 -> 701 [penwidth=1, color=black];\n\t1223 -> 702 [penwidth=1, color=black];\n\t1223 -> 703 [penwidth=1, color=black];\n\t1223 -> 704 [penwidth=1, color=black];\n\t1223 -> 705 [penwidth=1, color=black];\n\t1223 -> 706 [penwidth=1, color=black];\n\t1223 -> 707 [penwidth=1, color=black];\n\t1223 -> 708 [penwidth=1, color=black];\n\t1223 -> 709 [penwidth=1, color=black];\n\t1223 -> 710 [penwidth=1, color=black];\n\t1223 -> 711 [penwidth=1, color=black];\n\t1223 -> 712 [penwidth=1, color=black];\n\t1223 -> 713 [penwidth=1, color=black];\n\t1223 -> 714 [penwidth=1, color=black];\n\t1223 -> 715 [penwidth=1, color=black];\n\t1223 -> 716 [penwidth=1, color=black];\n\t1223 -> 717 [penwidth=1, color=black];\n\t1223 -> 718 [penwidth=1, color=black];\n\t1223 -> 719 [penwidth=1, color=black];\n\t1223 -> 720 [penwidth=1, color=black];\n\t1223 -> 721 [penwidth=1, color=black];\n\t1223 -> 722 [penwidth=1, color=black];\n\t1223 -> 723 [penwidth=1, color=black];\n\t1223 -> 724 [penwidth=1, color=black];\n\t1223 -> 725 [penwidth=1, color=black];\n\t1223 -> 726 [penwidth=1, color=black];\n\t1223 -> 727 [penwidth=1, color=black];\n\t1223 -> 728 [penwidth=1, color=black];\n\t1223 -> 729 [penwidth=1, color=black];\n\t1223 -> 730 [penwidth=1, color=black];\n\t1223 -> 731 [penwidth=1, color=black];\n\t1223 -> 732 [penwidth=1, color=black];\n\t1223 -> 733 [penwidth=1, color=black];\n\t1223 -> 734 [penwidth=1, color=black];\n\t1223 -> 735 [penwidth=1, color=black];\n\t1223 -> 736 [penwidth=1, color=black];\n\t1223 -> 737 [penwidth=1, color=black];\n\t1223 -> 738 [penwidth=1, color=black];\n\t1223 -> 739 [penwidth=1, color=black];\n\t1223 -> 740 [penwidth=1, color=black];\n\t1223 -> 741 [penwidth=1, color=black];\n\t1223 -> 742 [penwidth=1, color=black];\n\t1223 -> 743 [penwidth=1, color=black];\n\t1223 -> 744 [penwidth=1, color=black];\n\t1223 -> 745 [penwidth=1, color=black];\n\t1223 -> 746 [penwidth=1, color=black];\n\t1223 -> 747 [penwidth=1, color=black];\n\t1223 -> 748 [penwidth=1, color=black];\n\t1223 -> 749 [penwidth=1, color=black];\n\t1223 -> 750 [penwidth=1, color=black];\n\t1223 -> 751 [penwidth=1, color=black];\n\t1223 -> 753 [penwidth=1, color=black];\n\t1223 -> 754 [penwidth=1, color=black];\n\t1223 -> 755 [penwidth=1, color=black];\n\t1223 -> 756 [penwidth=1, color=black];\n\t1223 -> 757 [penwidth=1, color=black];\n\t1223 -> 758 [penwidth=1, color=black];\n\t1223 -> 759 [penwidth=1, color=black];\n\t1223 -> 760 [penwidth=1, color=black];\n\t1223 -> 761 [penwidth=1, color=black];\n\t1223 -> 762 [penwidth=1, color=black];\n\t1223 -> 763 [penwidth=1, color=black];\n\t1223 -> 764 [penwidth=1, color=black];\n\t1223 -> 765 [penwidth=1, color=black];\n\t1223 -> 766 [penwidth=1, color=black];\n\t1223 -> 767 [penwidth=1, color=black];\n\t1223 -> 768 [penwidth=1, color=black];\n\t1223 -> 769 [penwidth=1, color=black];\n\t1223 -> 770 [penwidth=1, color=black];\n\t1223 -> 771 [penwidth=1, color=black];\n\t1223 -> 772 [penwidth=1, color=black];\n\t1223 -> 773 [penwidth=1, color=black];\n\t1223 -> 774 [penwidth=1, color=black];\n\t1223 -> 775 [penwidth=1, color=black];\n\t1223 -> 776 [penwidth=1, color=black];\n\t1223 -> 777 [penwidth=1, color=black];\n\t1223 -> 778 [penwidth=1, color=black];\n\t1223 -> 779 [penwidth=1, color=black];\n\t1223 -> 780 [penwidth=1, color=black];\n\t1223 -> 781 [penwidth=1, color=black];\n\t1223 -> 782 [penwidth=1, color=black];\n\t1223 -> 783 [penwidth=1, color=black];\n\t1223 -> 784 [penwidth=1, color=black];\n\t1223 -> 785 [penwidth=1, color=black];\n\t1223 -> 786 [penwidth=1, color=black];\n\t1223 -> 787 [penwidth=1, color=black];\n\t1223 -> 788 [penwidth=1, color=black];\n\t1223 -> 789 [penwidth=1, color=black];\n\t1223 -> 790 [penwidth=1, color=black];\n\t1223 -> 791 [penwidth=1, color=black];\n\t1223 -> 792 [penwidth=1, color=black];\n\t1223 -> 793 [penwidth=1, color=black];\n\t1223 -> 794 [penwidth=1, color=black];\n\t1223 -> 795 [penwidth=1, color=black];\n\t1223 -> 796 [penwidth=1, color=black];\n\t1223 -> 797 [penwidth=1, color=black];\n\t1223 -> 798 [penwidth=1, color=black];\n\t1223 -> 799 [penwidth=1, color=black];\n\t1223 -> 800 [penwidth=1, color=black];\n\t1223 -> 801 [penwidth=1, color=black];\n\t1223 -> 802 [penwidth=1, color=black];\n\t1223 -> 803 [penwidth=1, color=black];\n\t1223 -> 804 [penwidth=1, color=black];\n\t1223 -> 805 [penwidth=1, color=black];\n\t1223 -> 806 [penwidth=1, color=black];\n\t1223 -> 807 [penwidth=1, color=black];\n\t1223 -> 808 [penwidth=1, color=black];\n\t1223 -> 809 [penwidth=1, color=black];\n\t1223 -> 810 [penwidth=1, color=black];\n\t1223 -> 811 [penwidth=1, color=black];\n\t1223 -> 812 [penwidth=1, color=black];\n\t1223 -> 813 [penwidth=1, color=black];\n\t1223 -> 814 [penwidth=1, color=black];\n\t1223 -> 815 [penwidth=1, color=black];\n\t1223 -> 816 [penwidth=1, color=black];\n\t1223 -> 817 [penwidth=1, color=black];\n\t1223 -> 818 [penwidth=1, color=black];\n\t1223 -> 819 [penwidth=1, color=black];\n\t1223 -> 820 [penwidth=1, color=black];\n\t1223 -> 821 [penwidth=1, color=black];\n\t1223 -> 822 [penwidth=1, color=black];\n\t1223 -> 823 [penwidth=1, color=black];\n\t1223 -> 824 [penwidth=1, color=black];\n\t1223 -> 825 [penwidth=1, color=black];\n\t1223 -> 826 [penwidth=1, color=black];\n\t1223 -> 827 [penwidth=1, color=black];\n\t1223 -> 828 [penwidth=1, color=black];\n\t1223 -> 829 [penwidth=1, color=black];\n\t1223 -> 830 [penwidth=1, color=black];\n\t1223 -> 831 [penwidth=1, color=black];\n\t1223 -> 832 [penwidth=1, color=black];\n\t1223 -> 833 [penwidth=1, color=black];\n\t1223 -> 834 [penwidth=1, color=black];\n\t1223 -> 835 [penwidth=1, color=black];\n\t1223 -> 836 [penwidth=1, color=black];\n\t1223 -> 837 [penwidth=1, color=black];\n\t1223 -> 838 [penwidth=1, color=black];\n\t1223 -> 839 [penwidth=1, color=black];\n\t1223 -> 840 [penwidth=1, color=black];\n\t1223 -> 841 [penwidth=1, color=black];\n\t1223 -> 842 [penwidth=1, color=black];\n\t1223 -> 843 [penwidth=1, color=black];\n\t1223 -> 844 [penwidth=1, color=black];\n\t1223 -> 845 [penwidth=1, color=black];\n\t1223 -> 846 [penwidth=1, color=black];\n\t1223 -> 847 [penwidth=1, color=black];\n\t1223 -> 848 [penwidth=1, color=black];\n\t1223 -> 849 [penwidth=1, color=black];\n\t1223 -> 850 [penwidth=1, color=black];\n\t1223 -> 851 [penwidth=1, color=black];\n\t1223 -> 852 [penwidth=1, color=black];\n\t1223 -> 853 [penwidth=1, color=black];\n\t1223 -> 854 [penwidth=1, color=black];\n\t1223 -> 855 [penwidth=1, color=black];\n\t1223 -> 856 [penwidth=1, color=black];\n\t1223 -> 857 [penwidth=1, color=black];\n\t1223 -> 858 [penwidth=1, color=black];\n\t1223 -> 859 [penwidth=1, color=black];\n\t1223 -> 860 [penwidth=1, color=black];\n\t1223 -> 861 [penwidth=1, color=black];\n\t1223 -> 862 [penwidth=1, color=black];\n\t1223 -> 863 [penwidth=1, color=black];\n\t1223 -> 864 [penwidth=1, color=black];\n\t1223 -> 865 [penwidth=1, color=black];\n\t1223 -> 866 [penwidth=1, color=black];\n\t1223 -> 867 [penwidth=1, color=black];\n\t1223 -> 868 [penwidth=1, color=black];\n\t1223 -> 869 [penwidth=1, color=black];\n\t1223 -> 870 [penwidth=1, color=black];\n\t1223 -> 874 [penwidth=1, color=black];\n\t1223 -> 875 [penwidth=1, color=black];\n\t1223 -> 876 [penwidth=1, color=black];\n\t1223 -> 877 [penwidth=1, color=black];\n\t1223 -> 878 [penwidth=1, color=black];\n\t1223 -> 879 [penwidth=1, color=black];\n\t1223 -> 880 [penwidth=1, color=black];\n\t1223 -> 881 [penwidth=1, color=black];\n\t1223 -> 882 [penwidth=1, color=black];\n\t1223 -> 883 [penwidth=1, color=black];\n\t1223 -> 884 [penwidth=1, color=black];\n\t1223 -> 885 [penwidth=1, color=black];\n\t1223 -> 886 [penwidth=1, color=black];\n\t1223 -> 887 [penwidth=1, color=black];\n\t1223 -> 888 [penwidth=1, color=black];\n\t1223 -> 889 [penwidth=1, color=black];\n\t1223 -> 890 [penwidth=1, color=black];\n\t1223 -> 891 [penwidth=1, color=black];\n\t1223 -> 892 [penwidth=1, color=black];\n\t1223 -> 893 [penwidth=1, color=black];\n\t1223 -> 894 [penwidth=1, color=black];\n\t1223 -> 895 [penwidth=1, color=black];\n\t1223 -> 896 [penwidth=1, color=black];\n\t1223 -> 897 [penwidth=1, color=black];\n\t1223 -> 898 [penwidth=1, color=black];\n\t1223 -> 899 [penwidth=1, color=black];\n\t1223 -> 900 [penwidth=1, color=black];\n\t1223 -> 901 [penwidth=1, color=black];\n\t1223 -> 902 [penwidth=1, color=black];\n\t1223 -> 903 [penwidth=1, color=black];\n\t1223 -> 904 [penwidth=1, color=black];\n\t1223 -> 905 [penwidth=1, color=black];\n\t1223 -> 906 [penwidth=1, color=black];\n\t1223 -> 907 [penwidth=1, color=black];\n\t1223 -> 908 [penwidth=1, color=black];\n\t1223 -> 909 [penwidth=1, color=black];\n\t1223 -> 910 [penwidth=1, color=black];\n\t1223 -> 911 [penwidth=1, color=black];\n\t1223 -> 912 [penwidth=1, color=black];\n\t1223 -> 913 [penwidth=1, color=black];\n\t1223 -> 914 [penwidth=1, color=black];\n\t1223 -> 915 [penwidth=1, color=black];\n\t1223 -> 916 [penwidth=1, color=black];\n\t1223 -> 917 [penwidth=1, color=black];\n\t1223 -> 918 [penwidth=1, color=black];\n\t1223 -> 919 [penwidth=1, color=black];\n\t1223 -> 920 [penwidth=1, color=black];\n\t1223 -> 921 [penwidth=1, color=black];\n\t1223 -> 922 [penwidth=1, color=black];\n\t1223 -> 923 [penwidth=1, color=black];\n\t1223 -> 924 [penwidth=1, color=black];\n\t1223 -> 925 [penwidth=1, color=black];\n\t1223 -> 926 [penwidth=1, color=black];\n\t1223 -> 927 [penwidth=1, color=black];\n\t1223 -> 928 [penwidth=1, color=black];\n\t1223 -> 929 [penwidth=1, color=black];\n\t1223 -> 930 [penwidth=1, color=black];\n\t1223 -> 931 [penwidth=1, color=black];\n\t1223 -> 932 [penwidth=1, color=black];\n\t1223 -> 933 [penwidth=1, color=black];\n\t1223 -> 934 [penwidth=1, color=black];\n\t1223 -> 935 [penwidth=1, color=black];\n\t1223 -> 936 [penwidth=1, color=black];\n\t1223 -> 937 [penwidth=1, color=black];\n\t1223 -> 938 [penwidth=1, color=black];\n\t1223 -> 939 [penwidth=1, color=black];\n\t1223 -> 940 [penwidth=1, color=black];\n\t1223 -> 941 [penwidth=1, color=black];\n\t1223 -> 942 [penwidth=1, color=black];\n\t1223 -> 943 [penwidth=1, color=black];\n\t1223 -> 944 [penwidth=1, color=black];\n\t1223 -> 945 [penwidth=1, color=black];\n\t1223 -> 946 [penwidth=1, color=black];\n\t1223 -> 947 [penwidth=1, color=black];\n\t1223 -> 948 [penwidth=1, color=black];\n\t1223 -> 949 [penwidth=1, color=black];\n\t1223 -> 950 [penwidth=1, color=black];\n\t1223 -> 951 [penwidth=1, color=black];\n\t1223 -> 952 [penwidth=1, color=black];\n\t1223 -> 953 [penwidth=1, color=black];\n\t1223 -> 954 [penwidth=1, color=black];\n\t1223 -> 955 [penwidth=1, color=black];\n\t1223 -> 956 [penwidth=1, color=black];\n\t1223 -> 957 [penwidth=1, color=black];\n\t1223 -> 958 [penwidth=1, color=black];\n\t1223 -> 959 [penwidth=1, color=black];\n\t1223 -> 960 [penwidth=1, color=black];\n\t1223 -> 961 [penwidth=1, color=black];\n\t1223 -> 962 [penwidth=1, color=black];\n\t1223 -> 963 [penwidth=1, color=black];\n\t1223 -> 964 [penwidth=1, color=black];\n\t1223 -> 965 [penwidth=1, color=black];\n\t1223 -> 966 [penwidth=1, color=black];\n\t1223 -> 967 [penwidth=1, color=black];\n\t1223 -> 968 [penwidth=1, color=black];\n\t1223 -> 969 [penwidth=1, color=black];\n\t1223 -> 970 [penwidth=1, color=black];\n\t1223 -> 971 [penwidth=1, color=black];\n\t1223 -> 972 [penwidth=1, color=black];\n\t1223 -> 973 [penwidth=1, color=black];\n\t1223 -> 974 [penwidth=1, color=black];\n\t1223 -> 975 [penwidth=1, color=black];\n\t1223 -> 976 [penwidth=1, color=black];\n\t1223 -> 977 [penwidth=1, color=black];\n\t1223 -> 978 [penwidth=1, color=black];\n\t1223 -> 979 [penwidth=1, color=black];\n\t1223 -> 980 [penwidth=1, color=black];\n\t1223 -> 981 [penwidth=1, color=black];\n\t1223 -> 982 [penwidth=1, color=black];\n\t1223 -> 983 [penwidth=1, color=black];\n\t1223 -> 984 [penwidth=1, color=black];\n\t1223 -> 985 [penwidth=1, color=black];\n\t1223 -> 986 [penwidth=1, color=black];\n\t1223 -> 987 [penwidth=1, color=black];\n\t1223 -> 988 [penwidth=1, color=black];\n\t1223 -> 989 [penwidth=1, color=black];\n\t1223 -> 990 [penwidth=1, color=black];\n\t1223 -> 991 [penwidth=1, color=black];\n\t1223 -> 992 [penwidth=1, color=black];\n\t1223 -> 993 [penwidth=1, color=black];\n\t1223 -> 994 [penwidth=1, color=black];\n\t1223 -> 995 [penwidth=1, color=black];\n\t1223 -> 996 [penwidth=1, color=black];\n\t1223 -> 997 [penwidth=1, color=black];\n\t1223 -> 998 [penwidth=1, color=black];\n\t1223 -> 999 [penwidth=1, color=black];\n\t1223 -> 1000 [penwidth=1, color=black];\n\t1223 -> 1001 [penwidth=1, color=black];\n\t1223 -> 1002 [penwidth=1, color=black];\n\t1223 -> 1003 [penwidth=1, color=black];\n\t1223 -> 1004 [penwidth=1, color=black];\n\t1223 -> 1005 [penwidth=1, color=black];\n\t1223 -> 1006 [penwidth=1, color=black];\n\t1223 -> 1007 [penwidth=1, color=black];\n\t1223 -> 1008 [penwidth=1, color=black];\n\t1223 -> 1009 [penwidth=1, color=black];\n\t1223 -> 1010 [penwidth=1, color=black];\n\t1223 -> 1011 [penwidth=1, color=black];\n\t1223 -> 1012 [penwidth=1, color=black];\n\t1223 -> 1013 [penwidth=1, color=black];\n\t1223 -> 1014 [penwidth=1, color=black];\n\t1223 -> 1015 [penwidth=1, color=black];\n\t1223 -> 1016 [penwidth=1, color=black];\n\t1223 -> 1017 [penwidth=1, color=black];\n\t1223 -> 1019 [penwidth=1, color=black];\n\t1223 -> 1020 [penwidth=1, color=black];\n\t1223 -> 1021 [penwidth=1, color=black];\n\t1223 -> 1022 [penwidth=1, color=black];\n\t1223 -> 1023 [penwidth=1, color=black];\n\t1223 -> 1026 [penwidth=1, color=black];\n\t1223 -> 1027 [penwidth=1, color=black];\n\t1223 -> 1028 [penwidth=1, color=black];\n\t1223 -> 1029 [penwidth=1, color=black];\n\t1223 -> 1030 [penwidth=1, color=black];\n\t1223 -> 1031 [penwidth=1, color=black];\n\t1223 -> 1032 [penwidth=1, color=black];\n\t1223 -> 1033 [penwidth=1, color=black];\n\t1223 -> 1034 [penwidth=1, color=black];\n\t1223 -> 1035 [penwidth=1, color=black];\n\t1223 -> 1036 [penwidth=1, color=black];\n\t1223 -> 1037 [penwidth=1, color=black];\n\t1223 -> 1038 [penwidth=1, color=black];\n\t1223 -> 1039 [penwidth=1, color=black];\n\t1223 -> 1040 [penwidth=1, color=black];\n\t1223 -> 1041 [penwidth=1, color=black];\n\t1223 -> 1042 [penwidth=1, color=black];\n\t1223 -> 1045 [penwidth=1, color=black];\n\t1223 -> 1046 [penwidth=1, color=black];\n\t1223 -> 1047 [penwidth=1, color=black];\n\t1223 -> 1048 [penwidth=1, color=black];\n\t1223 -> 1049 [penwidth=1, color=black];\n\t1223 -> 1050 [penwidth=1, color=black];\n\t1223 -> 1051 [penwidth=1, color=black];\n\t1223 -> 1052 [penwidth=1, color=black];\n\t1223 -> 1053 [penwidth=1, color=black];\n\t1223 -> 1054 [penwidth=1, color=black];\n\t1223 -> 1055 [penwidth=1, color=black];\n\t1223 -> 1057 [penwidth=1, color=black];\n\t1223 -> 1058 [penwidth=1, color=black];\n\t1223 -> 1059 [penwidth=1, color=black];\n\t1223 -> 1060 [penwidth=1, color=black];\n\t1223 -> 1061 [penwidth=1, color=black];\n\t1223 -> 1062 [penwidth=1, color=black];\n\t1223 -> 1068 [penwidth=1, color=black];\n\t1223 -> 1069 [penwidth=1, color=black];\n\t1223 -> 1070 [penwidth=1, color=black];\n\t1223 -> 1071 [penwidth=1, color=black];\n\t1223 -> 1072 [penwidth=1, color=black];\n\t1223 -> 1081 [penwidth=1, color=black];\n\t1223 -> 1082 [penwidth=1, color=black];\n\t1223 -> 1083 [penwidth=1, color=black];\n\t1223 -> 1084 [penwidth=1, color=black];\n\t1223 -> 1085 [penwidth=1, color=black];\n\t1223 -> 1087 [penwidth=1, color=black];\n\t1223 -> 1088 [penwidth=1, color=black];\n\t1223 -> 1089 [penwidth=1, color=black];\n\t1223 -> 1090 [penwidth=1, color=black];\n\t1223 -> 1091 [penwidth=1, color=black];\n\t1223 -> 1092 [penwidth=1, color=black];\n\t1223 -> 1093 [penwidth=1, color=black];\n\t1223 -> 1094 [penwidth=1, color=black];\n\t1223 -> 1095 [penwidth=1, color=black];\n\t1223 -> 1096 [penwidth=1, color=black];\n\t1223 -> 1097 [penwidth=1, color=black];\n\t1223 -> 1098 [penwidth=1, color=black];\n\t1223 -> 1099 [penwidth=1, color=black];\n\t1223 -> 1100 [penwidth=1, color=black];\n\t1223 -> 1101 [penwidth=1, color=black];\n\t1223 -> 1102 [penwidth=1, color=black];\n\t1223 -> 1103 [penwidth=1, color=black];\n\t1223 -> 1104 [penwidth=1, color=black];\n\t1223 -> 1105 [penwidth=1, color=black];\n\t1223 -> 1106 [penwidth=1, color=black];\n\t1223 -> 1107 [penwidth=1, color=black];\n\t1223 -> 1108 [penwidth=1, color=black];\n\t1223 -> 1109 [penwidth=1, color=black];\n\t1223 -> 1110 [penwidth=1, color=black];\n\t1223 -> 1111 [penwidth=1, color=black];\n\t1223 -> 1112 [penwidth=1, color=black];\n\t1223 -> 1113 [penwidth=1, color=black];\n\t1223 -> 1117 [penwidth=1, color=black];\n\t1223 -> 1118 [penwidth=1, color=black];\n\t1223 -> 1119 [penwidth=1, color=black];\n\t1223 -> 1120 [penwidth=1, color=black];\n\t1223 -> 1121 [penwidth=1, color=black];\n\t1223 -> 1122 [penwidth=1, color=black];\n\t1223 -> 1123 [penwidth=1, color=black];\n\t1223 -> 1124 [penwidth=1, color=black];\n\t1223 -> 1125 [penwidth=1, color=black];\n\t1223 -> 1126 [penwidth=1, color=black];\n\t1223 -> 1127 [penwidth=1, color=black];\n\t1223 -> 1128 [penwidth=1, color=black];\n\t1223 -> 1129 [penwidth=1, color=black];\n\t1223 -> 1130 [penwidth=1, color=black];\n\t1223 -> 1131 [penwidth=1, color=black];\n\t1223 -> 1132 [penwidth=1, color=black];\n\t1223 -> 1133 [penwidth=1, color=black];\n\t1223 -> 1134 [penwidth=1, color=black];\n\t1223 -> 1135 [penwidth=1, color=black];\n\t1223 -> 1136 [penwidth=1, color=black];\n\t1223 -> 1137 [penwidth=1, color=black];\n\t1223 -> 1138 [penwidth=1, color=black];\n\t1223 -> 1139 [penwidth=1, color=black];\n\t1223 -> 1140 [penwidth=1, color=black];\n\t1223 -> 1141 [penwidth=1, color=black];\n\t1223 -> 1143 [penwidth=1, color=black];\n\t1223 -> 1144 [penwidth=1, color=black];\n\t1223 -> 1145 [penwidth=1, color=black];\n\t1223 -> 1146 [penwidth=1, color=black];\n\t1223 -> 1147 [penwidth=1, color=black];\n\t1223 -> 1148 [penwidth=1, color=black];\n\t1223 -> 1149 [penwidth=1, color=black];\n\t1223 -> 1150 [penwidth=1, color=black];\n\t1223 -> 1151 [penwidth=1, color=black];\n\t1223 -> 1152 [penwidth=1, color=black];\n\t1223 -> 1153 [penwidth=1, color=black];\n\t1223 -> 1154 [penwidth=1, color=black];\n\t1223 -> 1155 [penwidth=1, color=black];\n\t1223 -> 1156 [penwidth=1, color=black];\n\t1223 -> 1157 [penwidth=1, color=black];\n\t1223 -> 1158 [penwidth=1, color=black];\n\t1223 -> 1159 [penwidth=1, color=black];\n\t1223 -> 1160 [penwidth=1, color=black];\n\t1223 -> 1161 [penwidth=1, color=black];\n\t1223 -> 1162 [penwidth=1, color=black];\n\t1223 -> 1163 [penwidth=1, color=black];\n\t1223 -> 1164 [penwidth=1, color=black];\n\t1223 -> 1165 [penwidth=1, color=black];\n\t1223 -> 1166 [penwidth=1, color=black];\n\t1223 -> 1167 [penwidth=1, color=black];\n\t1223 -> 1168 [penwidth=1, color=black];\n\t1223 -> 1169 [penwidth=1, color=black];\n\t1223 -> 1170 [penwidth=1, color=black];\n\t1223 -> 1171 [penwidth=1, color=black];\n\t1223 -> 1172 [penwidth=1, color=black];\n\t1223 -> 1173 [penwidth=1, color=black];\n\t1223 -> 1174 [penwidth=1, color=black];\n\t1223 -> 1175 [penwidth=1, color=black];\n\t1223 -> 1176 [penwidth=1, color=black];\n\t1223 -> 1177 [penwidth=1, color=black];\n\t1223 -> 1178 [penwidth=1, color=black];\n\t1223 -> 1179 [penwidth=1, color=black];\n\t1223 -> 1180 [penwidth=1, color=black];\n\t1223 -> 1181 [penwidth=1, color=black];\n\t1223 -> 1182 [penwidth=1, color=black];\n\t1223 -> 1183 [penwidth=1, color=black];\n\t1223 -> 1184 [penwidth=1, color=black];\n\t1223 -> 1185 [penwidth=1, color=black];\n\t1223 -> 1186 [penwidth=1, color=black];\n\t1223 -> 1189 [penwidth=1, color=black];\n\t1223 -> 1190 [penwidth=1, color=black];\n\t1223 -> 1191 [penwidth=1, color=black];\n\t1223 -> 1192 [penwidth=1, color=black];\n\t1223 -> 1193 [penwidth=1, color=black];\n\t1223 -> 1194 [penwidth=1, color=black];\n\t1227 -> 612 [penwidth=1, color=black];\n\t1227 -> 613 [penwidth=1, color=black];\n\t1227 -> 614 [penwidth=1, color=black];\n\t1227 -> 615 [penwidth=1, color=black];\n\t1227 -> 616 [penwidth=1, color=black];\n\t1227 -> 617 [penwidth=1, color=black];\n\t1227 -> 618 [penwidth=1, color=black];\n\t1227 -> 619 [penwidth=1, color=black];\n\t1227 -> 620 [penwidth=1, color=black];\n\t1227 -> 621 [penwidth=1, color=black];\n\t1227 -> 622 [penwidth=1, color=black];\n\t1227 -> 623 [penwidth=1, color=black];\n\t1227 -> 624 [penwidth=1, color=black];\n\t1227 -> 625 [penwidth=1, color=black];\n\t1227 -> 626 [penwidth=1, color=black];\n\t1227 -> 627 [penwidth=1, color=black];\n\t1227 -> 628 [penwidth=1, color=black];\n\t1227 -> 629 [penwidth=1, color=black];\n\t1227 -> 630 [penwidth=1, color=black];\n\t1227 -> 631 [penwidth=1, color=black];\n\t1227 -> 632 [penwidth=1, color=black];\n\t1227 -> 633 [penwidth=1, color=black];\n\t1227 -> 634 [penwidth=1, color=black];\n\t1227 -> 635 [penwidth=1, color=black];\n\t1227 -> 636 [penwidth=1, color=black];\n\t1227 -> 637 [penwidth=1, color=black];\n\t1227 -> 638 [penwidth=1, color=black];\n\t1227 -> 639 [penwidth=1, color=black];\n\t1227 -> 640 [penwidth=1, color=black];\n\t1227 -> 641 [penwidth=1, color=black];\n\t1227 -> 646 [penwidth=1, color=black];\n\t1227 -> 647 [penwidth=1, color=black];\n\t1227 -> 648 [penwidth=1, color=black];\n\t1227 -> 649 [penwidth=1, color=black];\n\t1227 -> 650 [penwidth=1, color=black];\n\t1227 -> 653 [penwidth=1, color=black];\n\t1227 -> 654 [penwidth=1, color=black];\n\t1227 -> 655 [penwidth=1, color=black];\n\t1227 -> 656 [penwidth=1, color=black];\n\t1227 -> 657 [penwidth=1, color=black];\n\t1227 -> 658 [penwidth=1, color=black];\n\t1227 -> 659 [penwidth=1, color=black];\n\t1227 -> 660 [penwidth=1, color=black];\n\t1227 -> 661 [penwidth=1, color=black];\n\t1227 -> 662 [penwidth=1, color=black];\n\t1227 -> 663 [penwidth=1, color=black];\n\t1227 -> 664 [penwidth=1, color=black];\n\t1227 -> 665 [penwidth=1, color=black];\n\t1227 -> 666 [penwidth=1, color=black];\n\t1227 -> 667 [penwidth=1, color=black];\n\t1227 -> 668 [penwidth=1, color=black];\n\t1227 -> 669 [penwidth=1, color=black];\n\t1227 -> 670 [penwidth=1, color=black];\n\t1227 -> 671 [penwidth=1, color=black];\n\t1227 -> 672 [penwidth=1, color=black];\n\t1227 -> 673 [penwidth=1, color=black];\n\t1227 -> 674 [penwidth=1, color=black];\n\t1227 -> 675 [penwidth=1, color=black];\n\t1227 -> 676 [penwidth=1, color=black];\n\t1227 -> 677 [penwidth=1, color=black];\n\t1227 -> 678 [penwidth=1, color=black];\n\t1227 -> 679 [penwidth=1, color=black];\n\t1227 -> 680 [penwidth=1, color=black];\n\t1227 -> 681 [penwidth=1, color=black];\n\t1227 -> 682 [penwidth=1, color=black];\n\t1227 -> 683 [penwidth=1, color=black];\n\t1227 -> 684 [penwidth=1, color=black];\n\t1227 -> 685 [penwidth=1, color=black];\n\t1227 -> 686 [penwidth=1, color=black];\n\t1227 -> 687 [penwidth=1, color=black];\n\t1227 -> 688 [penwidth=1, color=black];\n\t1227 -> 689 [penwidth=1, color=black];\n\t1227 -> 691 [penwidth=1, color=black];\n\t1227 -> 692 [penwidth=1, color=black];\n\t1227 -> 693 [penwidth=1, color=black];\n\t1227 -> 694 [penwidth=1, color=black];\n\t1227 -> 695 [penwidth=1, color=black];\n\t1227 -> 696 [penwidth=1, color=black];\n\t1227 -> 697 [penwidth=1, color=black];\n\t1227 -> 698 [penwidth=1, color=black];\n\t1227 -> 699 [penwidth=1, color=black];\n\t1227 -> 700 [penwidth=1, color=black];\n\t1227 -> 701 [penwidth=1, color=black];\n\t1227 -> 702 [penwidth=1, color=black];\n\t1227 -> 703 [penwidth=1, color=black];\n\t1227 -> 704 [penwidth=1, color=black];\n\t1227 -> 705 [penwidth=1, color=black];\n\t1227 -> 706 [penwidth=1, color=black];\n\t1227 -> 707 [penwidth=1, color=black];\n\t1227 -> 708 [penwidth=1, color=black];\n\t1227 -> 709 [penwidth=1, color=black];\n\t1227 -> 710 [penwidth=1, color=black];\n\t1227 -> 711 [penwidth=1, color=black];\n\t1227 -> 712 [penwidth=1, color=black];\n\t1227 -> 713 [penwidth=1, color=black];\n\t1227 -> 714 [penwidth=1, color=black];\n\t1227 -> 715 [penwidth=1, color=black];\n\t1227 -> 716 [penwidth=1, color=black];\n\t1227 -> 717 [penwidth=1, color=black];\n\t1227 -> 718 [penwidth=1, color=black];\n\t1227 -> 719 [penwidth=1, color=black];\n\t1227 -> 720 [penwidth=1, color=black];\n\t1227 -> 721 [penwidth=1, color=black];\n\t1227 -> 722 [penwidth=1, color=black];\n\t1227 -> 723 [penwidth=1, color=black];\n\t1227 -> 724 [penwidth=1, color=black];\n\t1227 -> 725 [penwidth=1, color=black];\n\t1227 -> 726 [penwidth=1, color=black];\n\t1227 -> 727 [penwidth=1, color=black];\n\t1227 -> 728 [penwidth=1, color=black];\n\t1227 -> 729 [penwidth=1, color=black];\n\t1227 -> 730 [penwidth=1, color=black];\n\t1227 -> 731 [penwidth=1, color=black];\n\t1227 -> 732 [penwidth=1, color=black];\n\t1227 -> 733 [penwidth=1, color=black];\n\t1227 -> 734 [penwidth=1, color=black];\n\t1227 -> 735 [penwidth=1, color=black];\n\t1227 -> 736 [penwidth=1, color=black];\n\t1227 -> 737 [penwidth=1, color=black];\n\t1227 -> 738 [penwidth=1, color=black];\n\t1227 -> 739 [penwidth=1, color=black];\n\t1227 -> 740 [penwidth=1, color=black];\n\t1227 -> 741 [penwidth=1, color=black];\n\t1227 -> 742 [penwidth=1, color=black];\n\t1227 -> 743 [penwidth=1, color=black];\n\t1227 -> 744 [penwidth=1, color=black];\n\t1227 -> 745 [penwidth=1, color=black];\n\t1227 -> 746 [penwidth=1, color=black];\n\t1227 -> 747 [penwidth=1, color=black];\n\t1227 -> 748 [penwidth=1, color=black];\n\t1227 -> 749 [penwidth=1, color=black];\n\t1227 -> 750 [penwidth=1, color=black];\n\t1227 -> 751 [penwidth=1, color=black];\n\t1227 -> 753 [penwidth=1, color=black];\n\t1227 -> 754 [penwidth=1, color=black];\n\t1227 -> 755 [penwidth=1, color=black];\n\t1227 -> 756 [penwidth=1, color=black];\n\t1227 -> 757 [penwidth=1, color=black];\n\t1227 -> 758 [penwidth=1, color=black];\n\t1227 -> 759 [penwidth=1, color=black];\n\t1227 -> 760 [penwidth=1, color=black];\n\t1227 -> 761 [penwidth=1, color=black];\n\t1227 -> 762 [penwidth=1, color=black];\n\t1227 -> 763 [penwidth=1, color=black];\n\t1227 -> 764 [penwidth=1, color=black];\n\t1227 -> 765 [penwidth=1, color=black];\n\t1227 -> 766 [penwidth=1, color=black];\n\t1227 -> 767 [penwidth=1, color=black];\n\t1227 -> 768 [penwidth=1, color=black];\n\t1227 -> 769 [penwidth=1, color=black];\n\t1227 -> 770 [penwidth=1, color=black];\n\t1227 -> 771 [penwidth=1, color=black];\n\t1227 -> 772 [penwidth=1, color=black];\n\t1227 -> 773 [penwidth=1, color=black];\n\t1227 -> 774 [penwidth=1, color=black];\n\t1227 -> 775 [penwidth=1, color=black];\n\t1227 -> 776 [penwidth=1, color=black];\n\t1227 -> 777 [penwidth=1, color=black];\n\t1227 -> 778 [penwidth=1, color=black];\n\t1227 -> 779 [penwidth=1, color=black];\n\t1227 -> 780 [penwidth=1, color=black];\n\t1227 -> 781 [penwidth=1, color=black];\n\t1227 -> 782 [penwidth=1, color=black];\n\t1227 -> 783 [penwidth=1, color=black];\n\t1227 -> 784 [penwidth=1, color=black];\n\t1227 -> 785 [penwidth=1, color=black];\n\t1227 -> 786 [penwidth=1, color=black];\n\t1227 -> 787 [penwidth=1, color=black];\n\t1227 -> 788 [penwidth=1, color=black];\n\t1227 -> 789 [penwidth=1, color=black];\n\t1227 -> 790 [penwidth=1, color=black];\n\t1227 -> 791 [penwidth=1, color=black];\n\t1227 -> 792 [penwidth=1, color=black];\n\t1227 -> 793 [penwidth=1, color=black];\n\t1227 -> 794 [penwidth=1, color=black];\n\t1227 -> 795 [penwidth=1, color=black];\n\t1227 -> 796 [penwidth=1, color=black];\n\t1227 -> 797 [penwidth=1, color=black];\n\t1227 -> 798 [penwidth=1, color=black];\n\t1227 -> 799 [penwidth=1, color=black];\n\t1227 -> 800 [penwidth=1, color=black];\n\t1227 -> 801 [penwidth=1, color=black];\n\t1227 -> 802 [penwidth=1, color=black];\n\t1227 -> 803 [penwidth=1, color=black];\n\t1227 -> 804 [penwidth=1, color=black];\n\t1227 -> 805 [penwidth=1, color=black];\n\t1227 -> 806 [penwidth=1, color=black];\n\t1227 -> 807 [penwidth=1, color=black];\n\t1227 -> 808 [penwidth=1, color=black];\n\t1227 -> 809 [penwidth=1, color=black];\n\t1227 -> 810 [penwidth=1, color=black];\n\t1227 -> 811 [penwidth=1, color=black];\n\t1227 -> 812 [penwidth=1, color=black];\n\t1227 -> 813 [penwidth=1, color=black];\n\t1227 -> 814 [penwidth=1, color=black];\n\t1227 -> 815 [penwidth=1, color=black];\n\t1227 -> 816 [penwidth=1, color=black];\n\t1227 -> 817 [penwidth=1, color=black];\n\t1227 -> 818 [penwidth=1, color=black];\n\t1227 -> 819 [penwidth=1, color=black];\n\t1227 -> 820 [penwidth=1, color=black];\n\t1227 -> 821 [penwidth=1, color=black];\n\t1227 -> 822 [penwidth=1, color=black];\n\t1227 -> 823 [penwidth=1, color=black];\n\t1227 -> 824 [penwidth=1, color=black];\n\t1227 -> 825 [penwidth=1, color=black];\n\t1227 -> 826 [penwidth=1, color=black];\n\t1227 -> 827 [penwidth=1, color=black];\n\t1227 -> 828 [penwidth=1, color=black];\n\t1227 -> 829 [penwidth=1, color=black];\n\t1227 -> 830 [penwidth=1, color=black];\n\t1227 -> 831 [penwidth=1, color=black];\n\t1227 -> 832 [penwidth=1, color=black];\n\t1227 -> 833 [penwidth=1, color=black];\n\t1227 -> 834 [penwidth=1, color=black];\n\t1227 -> 835 [penwidth=1, color=black];\n\t1227 -> 836 [penwidth=1, color=black];\n\t1227 -> 837 [penwidth=1, color=black];\n\t1227 -> 838 [penwidth=1, color=black];\n\t1227 -> 839 [penwidth=1, color=black];\n\t1227 -> 840 [penwidth=1, color=black];\n\t1227 -> 841 [penwidth=1, color=black];\n\t1227 -> 842 [penwidth=1, color=black];\n\t1227 -> 843 [penwidth=1, color=black];\n\t1227 -> 844 [penwidth=1, color=black];\n\t1227 -> 845 [penwidth=1, color=black];\n\t1227 -> 846 [penwidth=1, color=black];\n\t1227 -> 847 [penwidth=1, color=black];\n\t1227 -> 848 [penwidth=1, color=black];\n\t1227 -> 849 [penwidth=1, color=black];\n\t1227 -> 850 [penwidth=1, color=black];\n\t1227 -> 851 [penwidth=1, color=black];\n\t1227 -> 852 [penwidth=1, color=black];\n\t1227 -> 853 [penwidth=1, color=black];\n\t1227 -> 854 [penwidth=1, color=black];\n\t1227 -> 855 [penwidth=1, color=black];\n\t1227 -> 856 [penwidth=1, color=black];\n\t1227 -> 857 [penwidth=1, color=black];\n\t1227 -> 858 [penwidth=1, color=black];\n\t1227 -> 859 [penwidth=1, color=black];\n\t1227 -> 860 [penwidth=1, color=black];\n\t1227 -> 861 [penwidth=1, color=black];\n\t1227 -> 862 [penwidth=1, color=black];\n\t1227 -> 863 [penwidth=1, color=black];\n\t1227 -> 864 [penwidth=1, color=black];\n\t1227 -> 865 [penwidth=1, color=black];\n\t1227 -> 866 [penwidth=1, color=black];\n\t1227 -> 867 [penwidth=1, color=black];\n\t1227 -> 868 [penwidth=1, color=black];\n\t1227 -> 869 [penwidth=1, color=black];\n\t1227 -> 870 [penwidth=1, color=black];\n\t1227 -> 874 [penwidth=1, color=black];\n\t1227 -> 875 [penwidth=1, color=black];\n\t1227 -> 876 [penwidth=1, color=black];\n\t1227 -> 877 [penwidth=1, color=black];\n\t1227 -> 878 [penwidth=1, color=black];\n\t1227 -> 879 [penwidth=1, color=black];\n\t1227 -> 880 [penwidth=1, color=black];\n\t1227 -> 881 [penwidth=1, color=black];\n\t1227 -> 882 [penwidth=1, color=black];\n\t1227 -> 883 [penwidth=1, color=black];\n\t1227 -> 884 [penwidth=1, color=black];\n\t1227 -> 885 [penwidth=1, color=black];\n\t1227 -> 886 [penwidth=1, color=black];\n\t1227 -> 887 [penwidth=1, color=black];\n\t1227 -> 888 [penwidth=1, color=black];\n\t1227 -> 889 [penwidth=1, color=black];\n\t1227 -> 890 [penwidth=1, color=black];\n\t1227 -> 891 [penwidth=1, color=black];\n\t1227 -> 892 [penwidth=1, color=black];\n\t1227 -> 893 [penwidth=1, color=black];\n\t1227 -> 894 [penwidth=1, color=black];\n\t1227 -> 895 [penwidth=1, color=black];\n\t1227 -> 896 [penwidth=1, color=black];\n\t1227 -> 897 [penwidth=1, color=black];\n\t1227 -> 898 [penwidth=1, color=black];\n\t1227 -> 899 [penwidth=1, color=black];\n\t1227 -> 900 [penwidth=1, color=black];\n\t1227 -> 901 [penwidth=1, color=black];\n\t1227 -> 902 [penwidth=1, color=black];\n\t1227 -> 903 [penwidth=1, color=black];\n\t1227 -> 904 [penwidth=1, color=black];\n\t1227 -> 905 [penwidth=1, color=black];\n\t1227 -> 906 [penwidth=1, color=black];\n\t1227 -> 907 [penwidth=1, color=black];\n\t1227 -> 908 [penwidth=1, color=black];\n\t1227 -> 909 [penwidth=1, color=black];\n\t1227 -> 910 [penwidth=1, color=black];\n\t1227 -> 911 [penwidth=1, color=black];\n\t1227 -> 912 [penwidth=1, color=black];\n\t1227 -> 913 [penwidth=1, color=black];\n\t1227 -> 914 [penwidth=1, color=black];\n\t1227 -> 915 [penwidth=1, color=black];\n\t1227 -> 916 [penwidth=1, color=black];\n\t1227 -> 917 [penwidth=1, color=black];\n\t1227 -> 918 [penwidth=1, color=black];\n\t1227 -> 919 [penwidth=1, color=black];\n\t1227 -> 920 [penwidth=1, color=black];\n\t1227 -> 921 [penwidth=1, color=black];\n\t1227 -> 922 [penwidth=1, color=black];\n\t1227 -> 923 [penwidth=1, color=black];\n\t1227 -> 924 [penwidth=1, color=black];\n\t1227 -> 925 [penwidth=1, color=black];\n\t1227 -> 926 [penwidth=1, color=black];\n\t1227 -> 927 [penwidth=1, color=black];\n\t1227 -> 928 [penwidth=1, color=black];\n\t1227 -> 929 [penwidth=1, color=black];\n\t1227 -> 930 [penwidth=1, color=black];\n\t1227 -> 931 [penwidth=1, color=black];\n\t1227 -> 932 [penwidth=1, color=black];\n\t1227 -> 933 [penwidth=1, color=black];\n\t1227 -> 934 [penwidth=1, color=black];\n\t1227 -> 935 [penwidth=1, color=black];\n\t1227 -> 936 [penwidth=1, color=black];\n\t1227 -> 937 [penwidth=1, color=black];\n\t1227 -> 938 [penwidth=1, color=black];\n\t1227 -> 939 [penwidth=1, color=black];\n\t1227 -> 940 [penwidth=1, color=black];\n\t1227 -> 941 [penwidth=1, color=black];\n\t1227 -> 942 [penwidth=1, color=black];\n\t1227 -> 943 [penwidth=1, color=black];\n\t1227 -> 944 [penwidth=1, color=black];\n\t1227 -> 945 [penwidth=1, color=black];\n\t1227 -> 946 [penwidth=1, color=black];\n\t1227 -> 947 [penwidth=1, color=black];\n\t1227 -> 948 [penwidth=1, color=black];\n\t1227 -> 949 [penwidth=1, color=black];\n\t1227 -> 950 [penwidth=1, color=black];\n\t1227 -> 951 [penwidth=1, color=black];\n\t1227 -> 952 [penwidth=1, color=black];\n\t1227 -> 953 [penwidth=1, color=black];\n\t1227 -> 954 [penwidth=1, color=black];\n\t1227 -> 955 [penwidth=1, color=black];\n\t1227 -> 956 [penwidth=1, color=black];\n\t1227 -> 957 [penwidth=1, color=black];\n\t1227 -> 958 [penwidth=1, color=black];\n\t1227 -> 959 [penwidth=1, color=black];\n\t1227 -> 960 [penwidth=1, color=black];\n\t1227 -> 961 [penwidth=1, color=black];\n\t1227 -> 962 [penwidth=1, color=black];\n\t1227 -> 963 [penwidth=1, color=black];\n\t1227 -> 964 [penwidth=1, color=black];\n\t1227 -> 965 [penwidth=1, color=black];\n\t1227 -> 966 [penwidth=1, color=black];\n\t1227 -> 967 [penwidth=1, color=black];\n\t1227 -> 968 [penwidth=1, color=black];\n\t1227 -> 969 [penwidth=1, color=black];\n\t1227 -> 970 [penwidth=1, color=black];\n\t1227 -> 971 [penwidth=1, color=black];\n\t1227 -> 972 [penwidth=1, color=black];\n\t1227 -> 973 [penwidth=1, color=black];\n\t1227 -> 974 [penwidth=1, color=black];\n\t1227 -> 975 [penwidth=1, color=black];\n\t1227 -> 976 [penwidth=1, color=black];\n\t1227 -> 977 [penwidth=1, color=black];\n\t1227 -> 978 [penwidth=1, color=black];\n\t1227 -> 979 [penwidth=1, color=black];\n\t1227 -> 980 [penwidth=1, color=black];\n\t1227 -> 981 [penwidth=1, color=black];\n\t1227 -> 982 [penwidth=1, color=black];\n\t1227 -> 983 [penwidth=1, color=black];\n\t1227 -> 984 [penwidth=1, color=black];\n\t1227 -> 985 [penwidth=1, color=black];\n\t1227 -> 986 [penwidth=1, color=black];\n\t1227 -> 987 [penwidth=1, color=black];\n\t1227 -> 988 [penwidth=1, color=black];\n\t1227 -> 989 [penwidth=1, color=black];\n\t1227 -> 990 [penwidth=1, color=black];\n\t1227 -> 991 [penwidth=1, color=black];\n\t1227 -> 992 [penwidth=1, color=black];\n\t1227 -> 993 [penwidth=1, color=black];\n\t1227 -> 994 [penwidth=1, color=black];\n\t1227 -> 995 [penwidth=1, color=black];\n\t1227 -> 996 [penwidth=1, color=black];\n\t1227 -> 997 [penwidth=1, color=black];\n\t1227 -> 998 [penwidth=1, color=black];\n\t1227 -> 999 [penwidth=1, color=black];\n\t1227 -> 1000 [penwidth=1, color=black];\n\t1227 -> 1001 [penwidth=1, color=black];\n\t1227 -> 1002 [penwidth=1, color=black];\n\t1227 -> 1003 [penwidth=1, color=black];\n\t1227 -> 1004 [penwidth=1, color=black];\n\t1227 -> 1005 [penwidth=1, color=black];\n\t1227 -> 1006 [penwidth=1, color=black];\n\t1227 -> 1007 [penwidth=1, color=black];\n\t1227 -> 1008 [penwidth=1, color=black];\n\t1227 -> 1009 [penwidth=1, color=black];\n\t1227 -> 1010 [penwidth=1, color=black];\n\t1227 -> 1011 [penwidth=1, color=black];\n\t1227 -> 1012 [penwidth=1, color=black];\n\t1227 -> 1013 [penwidth=1, color=black];\n\t1227 -> 1014 [penwidth=1, color=black];\n\t1227 -> 1015 [penwidth=1, color=black];\n\t1227 -> 1016 [penwidth=1, color=black];\n\t1227 -> 1017 [penwidth=1, color=black];\n\t1227 -> 1019 [penwidth=1, color=black];\n\t1227 -> 1020 [penwidth=1, color=black];\n\t1227 -> 1021 [penwidth=1, color=black];\n\t1227 -> 1022 [penwidth=1, color=black];\n\t1227 -> 1023 [penwidth=1, color=black];\n\t1227 -> 1026 [penwidth=1, color=black];\n\t1227 -> 1027 [penwidth=1, color=black];\n\t1227 -> 1028 [penwidth=1, color=black];\n\t1227 -> 1029 [penwidth=1, color=black];\n\t1227 -> 1030 [penwidth=1, color=black];\n\t1227 -> 1031 [penwidth=1, color=black];\n\t1227 -> 1032 [penwidth=1, color=black];\n\t1227 -> 1033 [penwidth=1, color=black];\n\t1227 -> 1034 [penwidth=1, color=black];\n\t1227 -> 1035 [penwidth=1, color=black];\n\t1227 -> 1036 [penwidth=1, color=black];\n\t1227 -> 1037 [penwidth=1, color=black];\n\t1227 -> 1038 [penwidth=1, color=black];\n\t1227 -> 1039 [penwidth=1, color=black];\n\t1227 -> 1040 [penwidth=1, color=black];\n\t1227 -> 1041 [penwidth=1, color=black];\n\t1227 -> 1042 [penwidth=1, color=black];\n\t1227 -> 1045 [penwidth=1, color=black];\n\t1227 -> 1046 [penwidth=1, color=black];\n\t1227 -> 1047 [penwidth=1, color=black];\n\t1227 -> 1048 [penwidth=1, color=black];\n\t1227 -> 1049 [penwidth=1, color=black];\n\t1227 -> 1050 [penwidth=1, color=black];\n\t1227 -> 1051 [penwidth=1, color=black];\n\t1227 -> 1052 [penwidth=1, color=black];\n\t1227 -> 1053 [penwidth=1, color=black];\n\t1227 -> 1054 [penwidth=1, color=black];\n\t1227 -> 1055 [penwidth=1, color=black];\n\t1227 -> 1057 [penwidth=1, color=black];\n\t1227 -> 1058 [penwidth=1, color=black];\n\t1227 -> 1059 [penwidth=1, color=black];\n\t1227 -> 1060 [penwidth=1, color=black];\n\t1227 -> 1061 [penwidth=1, color=black];\n\t1227 -> 1062 [penwidth=1, color=black];\n\t1227 -> 1068 [penwidth=1, color=black];\n\t1227 -> 1069 [penwidth=1, color=black];\n\t1227 -> 1070 [penwidth=1, color=black];\n\t1227 -> 1071 [penwidth=1, color=black];\n\t1227 -> 1072 [penwidth=1, color=black];\n\t1227 -> 1081 [penwidth=1, color=black];\n\t1227 -> 1082 [penwidth=1, color=black];\n\t1227 -> 1083 [penwidth=1, color=black];\n\t1227 -> 1084 [penwidth=1, color=black];\n\t1227 -> 1085 [penwidth=1, color=black];\n\t1227 -> 1087 [penwidth=1, color=black];\n\t1227 -> 1088 [penwidth=1, color=black];\n\t1227 -> 1089 [penwidth=1, color=black];\n\t1227 -> 1090 [penwidth=1, color=black];\n\t1227 -> 1091 [penwidth=1, color=black];\n\t1227 -> 1092 [penwidth=1, color=black];\n\t1227 -> 1093 [penwidth=1, color=black];\n\t1227 -> 1094 [penwidth=1, color=black];\n\t1227 -> 1095 [penwidth=1, color=black];\n\t1227 -> 1096 [penwidth=1, color=black];\n\t1227 -> 1097 [penwidth=1, color=black];\n\t1227 -> 1098 [penwidth=1, color=black];\n\t1227 -> 1099 [penwidth=1, color=black];\n\t1227 -> 1100 [penwidth=1, color=black];\n\t1227 -> 1101 [penwidth=1, color=black];\n\t1227 -> 1102 [penwidth=1, color=black];\n\t1227 -> 1103 [penwidth=1, color=black];\n\t1227 -> 1104 [penwidth=1, color=black];\n\t1227 -> 1105 [penwidth=1, color=black];\n\t1227 -> 1106 [penwidth=1, color=black];\n\t1227 -> 1107 [penwidth=1, color=black];\n\t1227 -> 1108 [penwidth=1, color=black];\n\t1227 -> 1109 [penwidth=1, color=black];\n\t1227 -> 1110 [penwidth=1, color=black];\n\t1227 -> 1111 [penwidth=1, color=black];\n\t1227 -> 1112 [penwidth=1, color=black];\n\t1227 -> 1113 [penwidth=1, color=black];\n\t1227 -> 1117 [penwidth=1, color=black];\n\t1227 -> 1118 [penwidth=1, color=black];\n\t1227 -> 1119 [penwidth=1, color=black];\n\t1227 -> 1120 [penwidth=1, color=black];\n\t1227 -> 1121 [penwidth=1, color=black];\n\t1227 -> 1122 [penwidth=1, color=black];\n\t1227 -> 1123 [penwidth=1, color=black];\n\t1227 -> 1124 [penwidth=1, color=black];\n\t1227 -> 1125 [penwidth=1, color=black];\n\t1227 -> 1126 [penwidth=1, color=black];\n\t1227 -> 1127 [penwidth=1, color=black];\n\t1227 -> 1128 [penwidth=1, color=black];\n\t1227 -> 1129 [penwidth=1, color=black];\n\t1227 -> 1130 [penwidth=1, color=black];\n\t1227 -> 1131 [penwidth=1, color=black];\n\t1227 -> 1132 [penwidth=1, color=black];\n\t1227 -> 1133 [penwidth=1, color=black];\n\t1227 -> 1134 [penwidth=1, color=black];\n\t1227 -> 1135 [penwidth=1, color=black];\n\t1227 -> 1136 [penwidth=1, color=black];\n\t1227 -> 1137 [penwidth=1, color=black];\n\t1227 -> 1138 [penwidth=1, color=black];\n\t1227 -> 1139 [penwidth=1, color=black];\n\t1227 -> 1140 [penwidth=1, color=black];\n\t1227 -> 1141 [penwidth=1, color=black];\n\t1227 -> 1143 [penwidth=1, color=black];\n\t1227 -> 1144 [penwidth=1, color=black];\n\t1227 -> 1145 [penwidth=1, color=black];\n\t1227 -> 1146 [penwidth=1, color=black];\n\t1227 -> 1147 [penwidth=1, color=black];\n\t1227 -> 1148 [penwidth=1, color=black];\n\t1227 -> 1149 [penwidth=1, color=black];\n\t1227 -> 1150 [penwidth=1, color=black];\n\t1227 -> 1151 [penwidth=1, color=black];\n\t1227 -> 1152 [penwidth=1, color=black];\n\t1227 -> 1153 [penwidth=1, color=black];\n\t1227 -> 1154 [penwidth=1, color=black];\n\t1227 -> 1155 [penwidth=1, color=black];\n\t1227 -> 1156 [penwidth=1, color=black];\n\t1227 -> 1157 [penwidth=1, color=black];\n\t1227 -> 1158 [penwidth=1, color=black];\n\t1227 -> 1159 [penwidth=1, color=black];\n\t1227 -> 1160 [penwidth=1, color=black];\n\t1227 -> 1161 [penwidth=1, color=black];\n\t1227 -> 1162 [penwidth=1, color=black];\n\t1227 -> 1163 [penwidth=1, color=black];\n\t1227 -> 1164 [penwidth=1, color=black];\n\t1227 -> 1165 [penwidth=1, color=black];\n\t1227 -> 1166 [penwidth=1, color=black];\n\t1227 -> 1167 [penwidth=1, color=black];\n\t1227 -> 1168 [penwidth=1, color=black];\n\t1227 -> 1169 [penwidth=1, color=black];\n\t1227 -> 1170 [penwidth=1, color=black];\n\t1227 -> 1171 [penwidth=1, color=black];\n\t1227 -> 1172 [penwidth=1, color=black];\n\t1227 -> 1173 [penwidth=1, color=black];\n\t1227 -> 1174 [penwidth=1, color=black];\n\t1227 -> 1175 [penwidth=1, color=black];\n\t1227 -> 1176 [penwidth=1, color=black];\n\t1227 -> 1177 [penwidth=1, color=black];\n\t1227 -> 1178 [penwidth=1, color=black];\n\t1227 -> 1179 [penwidth=1, color=black];\n\t1227 -> 1180 [penwidth=1, color=black];\n\t1227 -> 1181 [penwidth=1, color=black];\n\t1227 -> 1182 [penwidth=1, color=black];\n\t1227 -> 1183 [penwidth=1, color=black];\n\t1227 -> 1184 [penwidth=1, color=black];\n\t1227 -> 1185 [penwidth=1, color=black];\n\t1227 -> 1186 [penwidth=1, color=black];\n\t1227 -> 1189 [penwidth=1, color=black];\n\t1227 -> 1190 [penwidth=1, color=black];\n\t1227 -> 1191 [penwidth=1, color=black];\n\t1227 -> 1192 [penwidth=1, color=black];\n\t1227 -> 1193 [penwidth=1, color=black];\n\t1227 -> 1194 [penwidth=1, color=black];\n\t1272 -> 1273 [penwidth=1, color=black];\n\t1273 -> 1275 [penwidth=1, color=black];\n\t1274 -> 1273 [penwidth=1, color=black];\n\t1276 -> 1275 [penwidth=1, color=black];\n\t1291 -> 1435 [penwidth=\"1.6931471805599454\", color=black];\n\t1292 -> 1370 [penwidth=1, color=black];\n\t1292 -> 1371 [penwidth=1, color=black];\n\t1292 -> 1373 [penwidth=1, color=black];\n\t1292 -> 1387 [penwidth=1, color=black];\n\t1292 -> 1392 [penwidth=1, color=black];\n\t1292 -> 1433 [penwidth=1, color=black];\n\t1292 -> 1439 [penwidth=1, color=black];\n\t1293 -> 1294 [penwidth=1, color=black];\n\t1293 -> 1416 [penwidth=1, color=black];\n\t1294 -> 1395 [penwidth=1, color=black];\n\t1294 -> 1429 [penwidth=1, color=black];\n\t1294 -> 1433 [penwidth=1, color=black];\n\t1295 -> 1296 [penwidth=1, color=black];\n\t1296 -> 1370 [penwidth=1, color=black];\n\t1296 -> 1371 [penwidth=\"1.6931471805599454\", color=black];\n\t1296 -> 1373 [penwidth=1, color=black];\n\t1296 -> 1387 [penwidth=1, color=black];\n\t1296 -> 1392 [penwidth=\"1.6931471805599454\", color=black];\n\t1296 -> 1433 [penwidth=1, color=black];\n\t1296 -> 1439 [penwidth=1, color=black];\n\t1301 -> 1229 [penwidth=1, color=black];\n\t1301 -> 1230 [penwidth=1, color=black];\n\t1301 -> 1232 [penwidth=1, color=black];\n\t1301 -> 1234 [penwidth=1, color=black];\n\t1301 -> 1435 [penwidth=\"2.386294361119891\", color=black];\n\t1302 -> 1236 [penwidth=1, color=black];\n\t1302 -> 1237 [penwidth=1, color=black];\n\t1302 -> 1238 [penwidth=1, color=black];\n\t1302 -> 1239 [penwidth=1, color=black];\n\t1302 -> 1240 [penwidth=1, color=black];\n\t1302 -> 1241 [penwidth=1, color=black];\n\t1302 -> 1242 [penwidth=1, color=black];\n\t1302 -> 1243 [penwidth=1, color=black];\n\t1302 -> 1244 [penwidth=1, color=black];\n\t1302 -> 1248 [penwidth=1, color=black];\n\t1302 -> 1249 [penwidth=1, color=black];\n\t1302 -> 1251 [penwidth=1, color=black];\n\t1302 -> 1252 [penwidth=1, color=black];\n\t1302 -> 1258 [penwidth=1, color=black];\n\t1302 -> 1259 [penwidth=1, color=black];\n\t1302 -> 1261 [penwidth=1, color=black];\n\t1302 -> 1262 [penwidth=1, color=black];\n\t1302 -> 1264 [penwidth=1, color=black];\n\t1302 -> 1267 [penwidth=1, color=black];\n\t1302 -> 1269 [penwidth=\"1.6931471805599454\", color=black];\n\t1302 -> 1270 [penwidth=1, color=black];\n\t1302 -> 1271 [penwidth=1, color=black];\n\t1302 -> 1291 [penwidth=1, color=black];\n\t1302 -> 1293 [penwidth=\"3.70805020110221\", color=black];\n\t1302 -> 1294 [penwidth=\"3.0794415416798357\", color=black];\n\t1302 -> 1325 [penwidth=\"2.9459101490553135\", color=black];\n\t1302 -> 1350 [penwidth=1, color=black];\n\t1303 -> 1254 [penwidth=1, color=black];\n\t1303 -> 1255 [penwidth=1, color=black];\n\t1303 -> 1296 [penwidth=1, color=black];\n\t1303 -> 1442 [penwidth=1, color=black];\n\t1304 -> 1253 [penwidth=1, color=black];\n\t1304 -> 1292 [penwidth=1, color=black];\n\t1304 -> 1442 [penwidth=1, color=black];\n\t1305 -> 1266 [penwidth=1, color=black];\n\t1305 -> 1268 [penwidth=1, color=black];\n\t1306 -> 1260 [penwidth=1, color=black];\n\t1306 -> 1296 [penwidth=1, color=black];\n\t1306 -> 1442 [penwidth=1, color=black];\n\t1307 -> 1245 [penwidth=1, color=black];\n\t1307 -> 1246 [penwidth=1, color=black];\n\t1307 -> 1247 [penwidth=1, color=black];\n\t1307 -> 1256 [penwidth=1, color=black];\n\t1307 -> 1263 [penwidth=1, color=black];\n\t1307 -> 1435 [penwidth=\"2.6094379124341005\", color=black];\n\t1308 -> 1233 [penwidth=1, color=black];\n\t1308 -> 1295 [penwidth=1, color=black];\n\t1308 -> 1296 [penwidth=1, color=black];\n\t1308 -> 1323 [penwidth=1, color=black];\n\t1308 -> 1442 [penwidth=\"2.09861228866811\", color=black];\n\t1309 -> 1250 [penwidth=1, color=black];\n\t1309 -> 1257 [penwidth=1, color=black];\n\t1309 -> 1265 [penwidth=1, color=black];\n\t1309 -> 1292 [penwidth=1, color=black];\n\t1309 -> 1295 [penwidth=1, color=black];\n\t1309 -> 1327 [penwidth=1, color=black];\n\t1310 -> 1228 [penwidth=1, color=black];\n\t1310 -> 1231 [penwidth=1, color=black];\n\t1310 -> 1235 [penwidth=1, color=black];\n\t1310 -> 1435 [penwidth=\"2.09861228866811\", color=black];\n\t1311 -> 1370 [penwidth=1, color=black];\n\t1312 -> 1371 [penwidth=1, color=black];\n\t1312 -> 1442 [penwidth=1, color=black];\n\t1313 -> 1371 [penwidth=1, color=black];\n\t1313 -> 1442 [penwidth=1, color=black];\n\t1315 -> 1871 [penwidth=1, color=black];\n\t1316 -> 1321 [penwidth=1, color=black];\n\t1317 -> 1454 [penwidth=1, color=black];\n\t1317 -> 1456 [penwidth=1, color=black];\n\t1317 -> 1470 [penwidth=1, color=black];\n\t1318 -> 1319 [penwidth=1, color=black];\n\t1318 -> 1475 [penwidth=1, color=black];\n\t1320 -> 1321 [penwidth=1, color=black];\n\t1321 -> 1454 [penwidth=\"1.6931471805599454\", color=black];\n\t1321 -> 1456 [penwidth=1, color=black];\n\t1321 -> 1470 [penwidth=1, color=black];\n\t1325 -> 1326 [penwidth=1, color=black];\n\t1326 -> 1275 [penwidth=1, color=black];\n\t1326 -> 1276 [penwidth=1, color=black];\n\t1326 -> 1373 [penwidth=\"1.6931471805599454\", color=black];\n\t1327 -> 1326 [penwidth=1, color=black];\n\t1328 -> 1229 [penwidth=1, color=black];\n\t1328 -> 1230 [penwidth=1, color=black];\n\t1328 -> 1232 [penwidth=1, color=black];\n\t1328 -> 1234 [penwidth=1, color=black];\n\t1329 -> 1236 [penwidth=1, color=black];\n\t1329 -> 1237 [penwidth=1, color=black];\n\t1329 -> 1238 [penwidth=1, color=black];\n\t1329 -> 1239 [penwidth=1, color=black];\n\t1329 -> 1240 [penwidth=1, color=black];\n\t1329 -> 1241 [penwidth=1, color=black];\n\t1329 -> 1242 [penwidth=1, color=black];\n\t1329 -> 1243 [penwidth=1, color=black];\n\t1329 -> 1244 [penwidth=1, color=black];\n\t1329 -> 1248 [penwidth=1, color=black];\n\t1329 -> 1249 [penwidth=1, color=black];\n\t1329 -> 1251 [penwidth=1, color=black];\n\t1329 -> 1252 [penwidth=1, color=black];\n\t1329 -> 1258 [penwidth=1, color=black];\n\t1329 -> 1259 [penwidth=1, color=black];\n\t1329 -> 1261 [penwidth=1, color=black];\n\t1329 -> 1262 [penwidth=1, color=black];\n\t1329 -> 1264 [penwidth=1, color=black];\n\t1329 -> 1267 [penwidth=1, color=black];\n\t1329 -> 1269 [penwidth=1, color=black];\n\t1329 -> 1270 [penwidth=1, color=black];\n\t1329 -> 1271 [penwidth=1, color=black];\n\t1329 -> 1272 [penwidth=\"2.791759469228055\", color=black];\n\t1329 -> 1315 [penwidth=1, color=black];\n\t1329 -> 1318 [penwidth=\"3.70805020110221\", color=black];\n\t1329 -> 1319 [penwidth=\"2.9459101490553135\", color=black];\n\t1329 -> 1363 [penwidth=1, color=black];\n\t1330 -> 1254 [penwidth=1, color=black];\n\t1330 -> 1255 [penwidth=1, color=black];\n\t1330 -> 1316 [penwidth=\"1.6931471805599454\", color=black];\n\t1331 -> 1253 [penwidth=1, color=black];\n\t1331 -> 1317 [penwidth=1, color=black];\n\t1332 -> 1266 [penwidth=1, color=black];\n\t1332 -> 1268 [penwidth=1, color=black];\n\t1333 -> 1260 [penwidth=1, color=black];\n\t1333 -> 1321 [penwidth=1, color=black];\n\t1334 -> 1245 [penwidth=1, color=black];\n\t1334 -> 1246 [penwidth=1, color=black];\n\t1334 -> 1247 [penwidth=1, color=black];\n\t1334 -> 1256 [penwidth=1, color=black];\n\t1334 -> 1263 [penwidth=1, color=black];\n\t1335 -> 1320 [penwidth=1, color=black];\n\t1335 -> 1321 [penwidth=1, color=black];\n\t1335 -> 1322 [penwidth=1, color=black];\n\t1335 -> 1323 [penwidth=1, color=black];\n\t1335 -> 1324 [penwidth=1, color=black];\n\t1336 -> 1250 [penwidth=1, color=black];\n\t1336 -> 1257 [penwidth=1, color=black];\n\t1336 -> 1265 [penwidth=1, color=black];\n\t1336 -> 1274 [penwidth=1, color=black];\n\t1336 -> 1317 [penwidth=1, color=black];\n\t1336 -> 1320 [penwidth=1, color=black];\n\t1337 -> 1228 [penwidth=1, color=black];\n\t1337 -> 1231 [penwidth=1, color=black];\n\t1337 -> 1235 [penwidth=1, color=black];\n\t1355 -> 1343 [penwidth=1, color=black];\n\t1355 -> 1345 [penwidth=1, color=black];\n\t1355 -> 1356 [penwidth=1, color=black];\n\t1355 -> 1363 [penwidth=1, color=black];\n\t1356 -> 1342 [penwidth=1, color=black];\n\t1356 -> 1344 [penwidth=1, color=black];\n\t1356 -> 1346 [penwidth=1, color=black];\n\t1356 -> 1347 [penwidth=1, color=black];\n\t1356 -> 1348 [penwidth=1, color=black];\n\t1356 -> 1349 [penwidth=1, color=black];\n\t1356 -> 1351 [penwidth=1, color=black];\n\t1356 -> 1352 [penwidth=1, color=black];\n\t1356 -> 1353 [penwidth=1, color=black];\n\t1356 -> 1354 [penwidth=1, color=black];\n\t1357 -> 1369 [penwidth=1, color=black];\n\t1357 -> 1429 [penwidth=1, color=black];\n\t1358 -> 1355 [penwidth=1, color=black];\n\t1358 -> 1369 [penwidth=1, color=black];\n\t1358 -> 1429 [penwidth=1, color=black];\n\t1359 -> 1345 [penwidth=1, color=black];\n\t1359 -> 1373 [penwidth=1, color=black];\n\t1359 -> 1387 [penwidth=\"2.09861228866811\", color=black];\n\t1360 -> 1342 [penwidth=1, color=black];\n\t1360 -> 1344 [penwidth=1, color=black];\n\t1360 -> 1346 [penwidth=1, color=black];\n\t1360 -> 1347 [penwidth=1, color=black];\n\t1360 -> 1348 [penwidth=1, color=black];\n\t1360 -> 1349 [penwidth=1, color=black];\n\t1360 -> 1351 [penwidth=1, color=black];\n\t1360 -> 1352 [penwidth=1, color=black];\n\t1360 -> 1353 [penwidth=1, color=black];\n\t1360 -> 1354 [penwidth=1, color=black];\n\t1360 -> 1435 [penwidth=\"3.302585092994046\", color=black];\n\t1361 -> 1350 [penwidth=1, color=black];\n\t1361 -> 1396 [penwidth=1, color=black];\n\t1362 -> 1345 [penwidth=1, color=black];\n\t1362 -> 1355 [penwidth=1, color=black];\n\t1362 -> 1373 [penwidth=1, color=black];\n\t1364 -> 1363 [penwidth=1, color=black];\n\t1365 -> 1345 [penwidth=\"1.6931471805599454\", color=black];\n\t1366 -> 1342 [penwidth=1, color=black];\n\t1366 -> 1344 [penwidth=1, color=black];\n\t1366 -> 1346 [penwidth=1, color=black];\n\t1366 -> 1347 [penwidth=1, color=black];\n\t1366 -> 1348 [penwidth=1, color=black];\n\t1366 -> 1349 [penwidth=1, color=black];\n\t1366 -> 1351 [penwidth=1, color=black];\n\t1366 -> 1352 [penwidth=1, color=black];\n\t1366 -> 1353 [penwidth=1, color=black];\n\t1366 -> 1354 [penwidth=1, color=black];\n\t1367 -> 1363 [penwidth=1, color=black];\n\t1368 -> 1343 [penwidth=1, color=black];\n\t1368 -> 1345 [penwidth=1, color=black];\n\t1369 -> 1350 [penwidth=1, color=black];\n\t1369 -> 1431 [penwidth=1, color=black];\n\t1370 -> 1371 [penwidth=1, color=black];\n\t1370 -> 1379 [penwidth=1, color=black];\n\t1370 -> 1440 [penwidth=1, color=black];\n\t1371 -> 1378 [penwidth=1, color=black];\n\t1371 -> 1380 [penwidth=1, color=black];\n\t1371 -> 1441 [penwidth=1, color=black];\n\t1372 -> 1378 [penwidth=1, color=black];\n\t1374 -> 1375 [penwidth=1, color=black];\n\t1374 -> 1387 [penwidth=\"1.6931471805599454\", color=black];\n\t1375 -> 1394 [penwidth=1, color=black];\n\t1375 -> 1441 [penwidth=\"1.6931471805599454\", color=black];\n\t1376 -> 1375 [penwidth=1, color=black];\n\t1376 -> 1416 [penwidth=\"1.6931471805599454\", color=black];\n\t1377 -> 1381 [penwidth=1, color=black];\n\t1379 -> 1433 [penwidth=1, color=black];\n\t1380 -> 1379 [penwidth=1, color=black];\n\t1380 -> 1441 [penwidth=1, color=black];\n\t1382 -> 1406 [penwidth=1, color=black];\n\t1382 -> 1415 [penwidth=1, color=black];\n\t1383 -> 1435 [penwidth=\"1.6931471805599454\", color=black];\n\t1384 -> 1429 [penwidth=1, color=black];\n\t1385 -> 1384 [penwidth=1, color=black];\n\t1385 -> 1433 [penwidth=1, color=black];\n\t1386 -> 1428 [penwidth=1, color=black];\n\t1386 -> 1435 [penwidth=1, color=black];\n\t1388 -> 1384 [penwidth=1, color=black];\n\t1389 -> 1429 [penwidth=1, color=black];\n\t1389 -> 1882 [penwidth=1, color=black];\n\t1391 -> 1371 [penwidth=1, color=black];\n\t1391 -> 1378 [penwidth=1, color=black];\n\t1392 -> 1372 [penwidth=1, color=black];\n\t1392 -> 1373 [penwidth=\"1.6931471805599454\", color=black];\n\t1393 -> 1372 [penwidth=1, color=black];\n\t1393 -> 1373 [penwidth=\"1.6931471805599454\", color=black];\n\t1394 -> 1373 [penwidth=1, color=black];\n\t1395 -> 1373 [penwidth=1, color=black];\n\t1395 -> 1442 [penwidth=1, color=black];\n\t1396 -> 1373 [penwidth=\"1.6931471805599454\", color=black];\n\t1396 -> 1428 [penwidth=1, color=black];\n\t1397 -> 1387 [penwidth=1, color=black];\n\t1397 -> 1395 [penwidth=1, color=black];\n\t1397 -> 1433 [penwidth=1, color=black];\n\t1398 -> 1399 [penwidth=1, color=black];\n\t1399 -> 1397 [penwidth=1, color=black];\n\t1399 -> 1433 [penwidth=1, color=black];\n\t1399 -> 1871 [penwidth=1, color=black];\n\t1399 -> 1882 [penwidth=1, color=black];\n\t1400 -> 1397 [penwidth=1, color=black];\n\t1401 -> 1398 [penwidth=1, color=black];\n\t1402 -> 1399 [penwidth=1, color=black];\n\t1403 -> 1373 [penwidth=\"2.09861228866811\", color=black];\n\t1403 -> 1405 [penwidth=\"1.6931471805599454\", color=black];\n\t1403 -> 1406 [penwidth=1, color=black];\n\t1403 -> 1432 [penwidth=1, color=black];\n\t1404 -> 1403 [penwidth=1, color=black];\n\t1404 -> 1405 [penwidth=1, color=black];\n\t1404 -> 1414 [penwidth=1, color=black];\n\t1406 -> 1405 [penwidth=1, color=black];\n\t1406 -> 1414 [penwidth=1, color=black];\n\t1407 -> 1387 [penwidth=1, color=black];\n\t1408 -> 1387 [penwidth=1, color=black];\n\t1408 -> 1432 [penwidth=1, color=black];\n\t1410 -> 1429 [penwidth=1, color=black];\n\t1411 -> 1429 [penwidth=1, color=black];\n\t1411 -> 1430 [penwidth=1, color=black];\n\t1411 -> 1431 [penwidth=1, color=black];\n\t1412 -> 1429 [penwidth=1, color=black];\n\t1413 -> 1373 [penwidth=1, color=black];\n\t1413 -> 1428 [penwidth=1, color=black];\n\t1414 -> 1373 [penwidth=1, color=black];\n\t1415 -> 1403 [penwidth=1, color=black];\n\t1415 -> 1414 [penwidth=1, color=black];\n\t1417 -> 1383 [penwidth=1, color=black];\n\t1417 -> 1406 [penwidth=1, color=black];\n\t1418 -> 1428 [penwidth=1, color=black];\n\t1419 -> 1404 [penwidth=1, color=chartreuse];\n\t1420 -> 1406 [penwidth=1, color=black];\n\t1421 -> 1405 [penwidth=1, color=black];\n\t1422 -> 1405 [penwidth=1, color=black];\n\t1425 -> 1370 [penwidth=1, color=black];\n\t1425 -> 1371 [penwidth=1, color=black];\n\t1425 -> 1373 [penwidth=\"1.6931471805599454\", color=black];\n\t1425 -> 1391 [penwidth=1, color=black];\n\t1425 -> 1394 [penwidth=1, color=black];\n\t1425 -> 1442 [penwidth=1, color=black];\n\t1426 -> 1430 [penwidth=1, color=black];\n\t1427 -> 1373 [penwidth=1, color=black];\n\t1429 -> 1372 [penwidth=1, color=black];\n\t1429 -> 1413 [penwidth=\"1.6931471805599454\", color=black];\n\t1430 -> 1396 [penwidth=1, color=black];\n\t1431 -> 1382 [penwidth=1, color=black];\n\t1431 -> 1434 [penwidth=1, color=black];\n\t1432 -> 1371 [penwidth=1, color=black];\n\t1432 -> 1378 [penwidth=1, color=black];\n\t1433 -> 1373 [penwidth=1, color=black];\n\t1434 -> 1874 [penwidth=1, color=black];\n\t1434 -> 1882 [penwidth=1, color=black];\n\t1435 -> 1436 [penwidth=1, color=black];\n\t1436 -> 1433 [penwidth=1, color=black];\n\t1437 -> 1433 [penwidth=1, color=black];\n\t1438 -> 1387 [penwidth=1, color=black];\n\t1438 -> 1439 [penwidth=1, color=black];\n\t1442 -> 1371 [penwidth=\"1.6931471805599454\", color=black];\n\t1442 -> 1372 [penwidth=1, color=black];\n\t1443 -> 1370 [penwidth=1, color=black];\n\t1443 -> 1373 [penwidth=1, color=black];\n\t1443 -> 1428 [penwidth=\"2.09861228866811\", color=black];\n\t1443 -> 1429 [penwidth=1, color=black];\n\t1443 -> 1433 [penwidth=1, color=black];\n\t1443 -> 1449 [penwidth=1, color=black];\n\t1443 -> 1450 [penwidth=1, color=black];\n\t1444 -> 1392 [penwidth=1, color=black];\n\t1444 -> 1444 [penwidth=1, color=black];\n\t1445 -> 1377 [penwidth=1, color=black];\n\t1445 -> 1433 [penwidth=1, color=black];\n\t1446 -> 1372 [penwidth=1, color=black];\n\t1446 -> 1373 [penwidth=1, color=black];\n\t1446 -> 1433 [penwidth=\"1.6931471805599454\", color=black];\n\t1447 -> 1443 [penwidth=1, color=black];\n\t1447 -> 1444 [penwidth=1, color=black];\n\t1447 -> 1450 [penwidth=1, color=black];\n\t1448 -> 1373 [penwidth=1, color=black];\n\t1448 -> 1377 [penwidth=1, color=black];\n\t1448 -> 1379 [penwidth=1, color=black];\n\t1449 -> 1373 [penwidth=1, color=black];\n\t1449 -> 1379 [penwidth=1, color=black];\n\t1450 -> 1445 [penwidth=1, color=black];\n\t1450 -> 1446 [penwidth=1, color=black];\n\t1450 -> 1448 [penwidth=1, color=black];\n\t1450 -> 1449 [penwidth=1, color=black];\n\t1451 -> 1432 [penwidth=1, color=black];\n\t1451 -> 1447 [penwidth=1, color=black];\n\t1453 -> 1462 [penwidth=1, color=black];\n\t1453 -> 1871 [penwidth=1, color=black];\n\t1454 -> 1457 [penwidth=1, color=black];\n\t1454 -> 1468 [penwidth=1, color=black];\n\t1454 -> 1489 [penwidth=1, color=black];\n\t1455 -> 1475 [penwidth=\"1.6931471805599454\", color=black];\n\t1460 -> 1467 [penwidth=1, color=chartreuse];\n\t1462 -> 1876 [penwidth=1, color=black];\n\t1462 -> 1878 [penwidth=1, color=black];\n\t1462 -> 1879 [penwidth=1, color=black];\n\t1463 -> 1452 [penwidth=1, color=black];\n\t1463 -> 1453 [penwidth=1, color=black];\n\t1464 -> 1470 [penwidth=1, color=black];\n\t1465 -> 1469 [penwidth=1, color=black];\n\t1465 -> 1470 [penwidth=1, color=black];\n\t1466 -> 1882 [penwidth=1, color=black];\n\t1467 -> 1463 [penwidth=1, color=black];\n\t1472 -> 1466 [penwidth=1, color=chartreuse];\n\t1483 -> 1452 [penwidth=1, color=black];\n\t1486 -> 1488 [penwidth=1, color=chartreuse];\n\t1488 -> 1483 [penwidth=1, color=black];\n\t1492 -> 1502 [penwidth=1, color=black];\n\t1492 -> 1503 [penwidth=1, color=black];\n\t1492 -> 1504 [penwidth=1, color=black];\n\t1492 -> 1505 [penwidth=1, color=black];\n\t1492 -> 1506 [penwidth=1, color=black];\n\t1492 -> 1507 [penwidth=1, color=black];\n\t1492 -> 1508 [penwidth=1, color=black];\n\t1492 -> 1509 [penwidth=1, color=black];\n\t1492 -> 1510 [penwidth=1, color=black];\n\t1492 -> 1511 [penwidth=1, color=black];\n\t1492 -> 1512 [penwidth=1, color=black];\n\t1492 -> 1514 [penwidth=1, color=black];\n\t1492 -> 1515 [penwidth=1, color=black];\n\t1492 -> 1516 [penwidth=1, color=black];\n\t1492 -> 1517 [penwidth=1, color=black];\n\t1497 -> 1491 [penwidth=1, color=black];\n\t1497 -> 1499 [penwidth=1, color=black];\n\t1497 -> 1500 [penwidth=1, color=black];\n\t1498 -> 1491 [penwidth=\"2.386294361119891\", color=black];\n\t1498 -> 1493 [penwidth=1, color=black];\n\t1498 -> 1494 [penwidth=1, color=black];\n\t1498 -> 1496 [penwidth=1, color=black];\n\t1498 -> 1501 [penwidth=1, color=black];\n\t1499 -> 1498 [penwidth=1, color=black];\n\t1499 -> 1500 [penwidth=1, color=black];\n\t1500 -> 1491 [penwidth=1, color=black];\n\t1502 -> 1490 [penwidth=1, color=black];\n\t1502 -> 1493 [penwidth=1, color=black];\n\t1502 -> 1495 [penwidth=1, color=black];\n\t1502 -> 1496 [penwidth=1, color=black];\n\t1502 -> 1501 [penwidth=1, color=black];\n\t1503 -> 1490 [penwidth=1, color=black];\n\t1503 -> 1493 [penwidth=1, color=black];\n\t1503 -> 1495 [penwidth=1, color=black];\n\t1503 -> 1496 [penwidth=1, color=black];\n\t1503 -> 1501 [penwidth=1, color=black];\n\t1504 -> 1490 [penwidth=1, color=black];\n\t1504 -> 1493 [penwidth=1, color=black];\n\t1504 -> 1495 [penwidth=1, color=black];\n\t1504 -> 1496 [penwidth=1, color=black];\n\t1504 -> 1501 [penwidth=1, color=black];\n\t1505 -> 1490 [penwidth=1, color=black];\n\t1505 -> 1493 [penwidth=1, color=black];\n\t1505 -> 1495 [penwidth=1, color=black];\n\t1505 -> 1496 [penwidth=1, color=black];\n\t1505 -> 1501 [penwidth=1, color=black];\n\t1506 -> 1490 [penwidth=1, color=black];\n\t1506 -> 1493 [penwidth=1, color=black];\n\t1506 -> 1495 [penwidth=1, color=black];\n\t1506 -> 1496 [penwidth=1, color=black];\n\t1506 -> 1501 [penwidth=1, color=black];\n\t1507 -> 1490 [penwidth=1, color=black];\n\t1507 -> 1493 [penwidth=1, color=black];\n\t1507 -> 1495 [penwidth=1, color=black];\n\t1507 -> 1496 [penwidth=1, color=black];\n\t1507 -> 1501 [penwidth=1, color=black];\n\t1508 -> 1490 [penwidth=1, color=black];\n\t1508 -> 1493 [penwidth=1, color=black];\n\t1508 -> 1495 [penwidth=1, color=black];\n\t1508 -> 1496 [penwidth=1, color=black];\n\t1508 -> 1501 [penwidth=1, color=black];\n\t1509 -> 1490 [penwidth=1, color=black];\n\t1509 -> 1493 [penwidth=1, color=black];\n\t1509 -> 1495 [penwidth=1, color=black];\n\t1509 -> 1496 [penwidth=1, color=black];\n\t1509 -> 1501 [penwidth=1, color=black];\n\t1510 -> 1490 [penwidth=1, color=black];\n\t1510 -> 1493 [penwidth=1, color=black];\n\t1510 -> 1495 [penwidth=1, color=black];\n\t1510 -> 1496 [penwidth=1, color=black];\n\t1510 -> 1501 [penwidth=1, color=black];\n\t1511 -> 1490 [penwidth=1, color=black];\n\t1511 -> 1493 [penwidth=1, color=black];\n\t1511 -> 1495 [penwidth=1, color=black];\n\t1511 -> 1496 [penwidth=1, color=black];\n\t1511 -> 1501 [penwidth=1, color=black];\n\t1512 -> 1490 [penwidth=1, color=black];\n\t1512 -> 1493 [penwidth=1, color=black];\n\t1512 -> 1495 [penwidth=1, color=black];\n\t1512 -> 1496 [penwidth=1, color=black];\n\t1512 -> 1501 [penwidth=1, color=black];\n\t1513 -> 1490 [penwidth=1, color=black];\n\t1513 -> 1493 [penwidth=1, color=black];\n\t1513 -> 1495 [penwidth=1, color=black];\n\t1513 -> 1496 [penwidth=1, color=black];\n\t1513 -> 1501 [penwidth=1, color=black];\n\t1514 -> 1490 [penwidth=1, color=black];\n\t1514 -> 1493 [penwidth=1, color=black];\n\t1514 -> 1495 [penwidth=1, color=black];\n\t1514 -> 1496 [penwidth=1, color=black];\n\t1514 -> 1501 [penwidth=1, color=black];\n\t1515 -> 1490 [penwidth=1, color=black];\n\t1515 -> 1493 [penwidth=1, color=black];\n\t1515 -> 1495 [penwidth=1, color=black];\n\t1515 -> 1496 [penwidth=1, color=black];\n\t1515 -> 1501 [penwidth=1, color=black];\n\t1516 -> 1490 [penwidth=1, color=black];\n\t1516 -> 1493 [penwidth=1, color=black];\n\t1516 -> 1495 [penwidth=1, color=black];\n\t1516 -> 1496 [penwidth=1, color=black];\n\t1516 -> 1501 [penwidth=1, color=black];\n\t1517 -> 1490 [penwidth=1, color=black];\n\t1517 -> 1493 [penwidth=1, color=black];\n\t1517 -> 1495 [penwidth=1, color=black];\n\t1517 -> 1496 [penwidth=1, color=black];\n\t1517 -> 1501 [penwidth=1, color=black];\n\t1519 -> 1889 [penwidth=\"2.386294361119891\", color=black];\n\t1520 -> 152 [penwidth=1, color=black];\n\t1520 -> 161 [penwidth=1, color=black];\n\t1520 -> 225 [penwidth=1, color=black];\n\t1520 -> 304 [penwidth=1, color=black];\n\t1520 -> 1520 [penwidth=1, color=black];\n\t1520 -> 1528 [penwidth=\"1.6931471805599454\", color=black];\n\t1520 -> 1871 [penwidth=1, color=black];\n\t1520 -> 1889 [penwidth=\"1.6931471805599454\", color=black];\n\t1521 -> 1527 [penwidth=1, color=black];\n\t1521 -> 1778 [penwidth=1, color=black];\n\t1522 -> 1266 [penwidth=1, color=black];\n\t1522 -> 1268 [penwidth=1, color=black];\n\t1522 -> 1524 [penwidth=1, color=black];\n\t1522 -> 1889 [penwidth=1, color=black];\n\t1523 -> 1250 [penwidth=1, color=black];\n\t1523 -> 1257 [penwidth=1, color=black];\n\t1523 -> 1265 [penwidth=1, color=black];\n\t1523 -> 1524 [penwidth=1, color=orange];\n\t1523 -> 1528 [penwidth=1, color=black];\n\t1523 -> 1889 [penwidth=\"1.6931471805599454\", color=black];\n\t1524 -> 1523 [penwidth=1, color=orange];\n\t1524 -> 1661 [penwidth=1, color=chartreuse];\n\t1525 -> 1606 [penwidth=1, color=black];\n\t1526 -> 431 [penwidth=1, color=black];\n\t1526 -> 1528 [penwidth=1, color=black];\n\t1527 -> 1889 [penwidth=1, color=black];\n\t1528 -> 1606 [penwidth=1, color=black];\n\t1529 -> 1528 [penwidth=1, color=black];\n\t1533 -> 1519 [penwidth=1, color=black];\n\t1534 -> 1519 [penwidth=1, color=black];\n\t1535 -> 1602 [penwidth=1, color=black];\n\t1535 -> 1776 [penwidth=1, color=black];\n\t1536 -> 1773 [penwidth=1, color=black];\n\t1536 -> 1774 [penwidth=1, color=black];\n\t1536 -> 1775 [penwidth=1, color=black];\n\t1536 -> 1778 [penwidth=1, color=black];\n\t1537 -> 1521 [penwidth=1, color=black];\n\t1537 -> 1777 [penwidth=1, color=black];\n\t1538 -> 1518 [penwidth=1, color=black];\n\t1539 -> 84 [penwidth=1, color=black];\n\t1540 -> 1518 [penwidth=1, color=black];\n\t1541 -> 1518 [penwidth=1, color=black];\n\t1542 -> 82 [penwidth=1, color=black];\n\t1542 -> 1527 [penwidth=1, color=black];\n\t1543 -> 316 [penwidth=1, color=black];\n\t1543 -> 317 [penwidth=1, color=black];\n\t1543 -> 1612 [penwidth=1, color=black];\n\t1544 -> 85 [penwidth=1, color=black];\n\t1544 -> 86 [penwidth=1, color=black];\n\t1544 -> 87 [penwidth=1, color=black];\n\t1544 -> 88 [penwidth=1, color=black];\n\t1544 -> 93 [penwidth=1, color=black];\n\t1544 -> 94 [penwidth=1, color=black];\n\t1544 -> 104 [penwidth=1, color=black];\n\t1544 -> 105 [penwidth=1, color=black];\n\t1544 -> 108 [penwidth=1, color=black];\n\t1544 -> 109 [penwidth=1, color=black];\n\t1544 -> 110 [penwidth=1, color=black];\n\t1544 -> 111 [penwidth=1, color=black];\n\t1544 -> 113 [penwidth=1, color=black];\n\t1544 -> 117 [penwidth=1, color=black];\n\t1544 -> 118 [penwidth=1, color=black];\n\t1544 -> 121 [penwidth=1, color=black];\n\t1544 -> 123 [penwidth=1, color=black];\n\t1544 -> 125 [penwidth=1, color=black];\n\t1544 -> 126 [penwidth=1, color=black];\n\t1544 -> 130 [penwidth=1, color=black];\n\t1544 -> 131 [penwidth=1, color=black];\n\t1544 -> 132 [penwidth=1, color=black];\n\t1544 -> 133 [penwidth=1, color=black];\n\t1544 -> 134 [penwidth=1, color=black];\n\t1544 -> 141 [penwidth=1, color=black];\n\t1544 -> 143 [penwidth=1, color=black];\n\t1544 -> 144 [penwidth=1, color=black];\n\t1544 -> 145 [penwidth=1, color=black];\n\t1544 -> 149 [penwidth=1, color=black];\n\t1544 -> 154 [penwidth=1, color=black];\n\t1544 -> 160 [penwidth=1, color=black];\n\t1544 -> 163 [penwidth=1, color=black];\n\t1544 -> 164 [penwidth=1, color=black];\n\t1544 -> 165 [penwidth=1, color=black];\n\t1544 -> 166 [penwidth=1, color=black];\n\t1544 -> 167 [penwidth=1, color=black];\n\t1544 -> 175 [penwidth=1, color=black];\n\t1544 -> 176 [penwidth=1, color=black];\n\t1544 -> 177 [penwidth=1, color=black];\n\t1544 -> 178 [penwidth=1, color=black];\n\t1544 -> 179 [penwidth=1, color=black];\n\t1544 -> 180 [penwidth=1, color=black];\n\t1544 -> 181 [penwidth=1, color=black];\n\t1544 -> 182 [penwidth=1, color=black];\n\t1544 -> 188 [penwidth=1, color=black];\n\t1544 -> 189 [penwidth=1, color=black];\n\t1544 -> 190 [penwidth=1, color=black];\n\t1544 -> 202 [penwidth=1, color=black];\n\t1544 -> 205 [penwidth=1, color=black];\n\t1544 -> 207 [penwidth=1, color=black];\n\t1544 -> 212 [penwidth=1, color=black];\n\t1544 -> 213 [penwidth=1, color=black];\n\t1544 -> 214 [penwidth=1, color=black];\n\t1544 -> 215 [penwidth=1, color=black];\n\t1544 -> 216 [penwidth=1, color=black];\n\t1544 -> 217 [penwidth=1, color=black];\n\t1544 -> 218 [penwidth=1, color=black];\n\t1544 -> 219 [penwidth=1, color=black];\n\t1544 -> 220 [penwidth=1, color=black];\n\t1544 -> 221 [penwidth=1, color=black];\n\t1544 -> 222 [penwidth=1, color=black];\n\t1544 -> 223 [penwidth=1, color=black];\n\t1544 -> 224 [penwidth=1, color=black];\n\t1544 -> 226 [penwidth=1, color=black];\n\t1544 -> 227 [penwidth=1, color=black];\n\t1544 -> 228 [penwidth=1, color=black];\n\t1544 -> 229 [penwidth=1, color=black];\n\t1544 -> 230 [penwidth=1, color=black];\n\t1544 -> 233 [penwidth=1, color=black];\n\t1544 -> 234 [penwidth=1, color=black];\n\t1544 -> 235 [penwidth=1, color=black];\n\t1544 -> 239 [penwidth=1, color=black];\n\t1544 -> 245 [penwidth=1, color=black];\n\t1544 -> 246 [penwidth=1, color=black];\n\t1544 -> 248 [penwidth=1, color=black];\n\t1544 -> 249 [penwidth=1, color=black];\n\t1544 -> 251 [penwidth=1, color=black];\n\t1544 -> 252 [penwidth=1, color=black];\n\t1544 -> 253 [penwidth=1, color=black];\n\t1544 -> 259 [penwidth=1, color=black];\n\t1544 -> 265 [penwidth=1, color=black];\n\t1544 -> 269 [penwidth=1, color=black];\n\t1544 -> 272 [penwidth=1, color=black];\n\t1544 -> 273 [penwidth=1, color=black];\n\t1544 -> 276 [penwidth=1, color=black];\n\t1544 -> 277 [penwidth=1, color=black];\n\t1544 -> 278 [penwidth=1, color=black];\n\t1544 -> 279 [penwidth=1, color=black];\n\t1544 -> 280 [penwidth=1, color=black];\n\t1544 -> 282 [penwidth=1, color=black];\n\t1544 -> 287 [penwidth=1, color=black];\n\t1544 -> 289 [penwidth=1, color=black];\n\t1544 -> 290 [penwidth=1, color=black];\n\t1544 -> 291 [penwidth=1, color=black];\n\t1544 -> 293 [penwidth=1, color=black];\n\t1544 -> 294 [penwidth=1, color=black];\n\t1544 -> 296 [penwidth=1, color=black];\n\t1544 -> 297 [penwidth=1, color=black];\n\t1544 -> 305 [penwidth=1, color=black];\n\t1544 -> 308 [penwidth=1, color=black];\n\t1544 -> 309 [penwidth=1, color=black];\n\t1544 -> 312 [penwidth=1, color=black];\n\t1544 -> 313 [penwidth=1, color=black];\n\t1544 -> 314 [penwidth=1, color=black];\n\t1544 -> 315 [penwidth=1, color=black];\n\t1544 -> 319 [penwidth=1, color=black];\n\t1544 -> 323 [penwidth=1, color=black];\n\t1544 -> 324 [penwidth=1, color=black];\n\t1544 -> 327 [penwidth=1, color=black];\n\t1544 -> 329 [penwidth=1, color=black];\n\t1544 -> 330 [penwidth=1, color=black];\n\t1544 -> 334 [penwidth=1, color=black];\n\t1544 -> 336 [penwidth=1, color=black];\n\t1544 -> 337 [penwidth=1, color=black];\n\t1544 -> 340 [penwidth=1, color=black];\n\t1544 -> 342 [penwidth=1, color=black];\n\t1544 -> 344 [penwidth=1, color=black];\n\t1544 -> 345 [penwidth=1, color=black];\n\t1544 -> 347 [penwidth=1, color=black];\n\t1544 -> 348 [penwidth=1, color=black];\n\t1544 -> 350 [penwidth=1, color=black];\n\t1544 -> 351 [penwidth=1, color=black];\n\t1544 -> 352 [penwidth=1, color=black];\n\t1544 -> 354 [penwidth=1, color=black];\n\t1544 -> 359 [penwidth=1, color=black];\n\t1544 -> 361 [penwidth=1, color=black];\n\t1544 -> 366 [penwidth=1, color=black];\n\t1544 -> 367 [penwidth=1, color=black];\n\t1544 -> 370 [penwidth=1, color=black];\n\t1544 -> 371 [penwidth=1, color=black];\n\t1544 -> 372 [penwidth=1, color=black];\n\t1544 -> 373 [penwidth=1, color=black];\n\t1544 -> 374 [penwidth=1, color=black];\n\t1544 -> 375 [penwidth=1, color=black];\n\t1544 -> 376 [penwidth=1, color=black];\n\t1544 -> 379 [penwidth=1, color=black];\n\t1544 -> 385 [penwidth=1, color=black];\n\t1544 -> 386 [penwidth=1, color=black];\n\t1544 -> 388 [penwidth=1, color=black];\n\t1544 -> 394 [penwidth=1, color=black];\n\t1544 -> 395 [penwidth=1, color=black];\n\t1544 -> 396 [penwidth=1, color=black];\n\t1544 -> 398 [penwidth=1, color=black];\n\t1544 -> 399 [penwidth=1, color=black];\n\t1544 -> 401 [penwidth=1, color=black];\n\t1544 -> 1525 [penwidth=1, color=black];\n\t1544 -> 1527 [penwidth=\"2.386294361119891\", color=black];\n\t1544 -> 1528 [penwidth=\"4.49650756146648\", color=black];\n\t1544 -> 1664 [penwidth=1, color=black];\n\t1545 -> 1518 [penwidth=1, color=black];\n\t1546 -> 1518 [penwidth=1, color=black];\n\t1547 -> 644 [penwidth=1, color=black];\n\t1547 -> 873 [penwidth=1, color=black];\n\t1547 -> 1074 [penwidth=1, color=black];\n\t1547 -> 1075 [penwidth=1, color=black];\n\t1547 -> 1188 [penwidth=1, color=black];\n\t1548 -> 645 [penwidth=1, color=black];\n\t1548 -> 1187 [penwidth=1, color=black];\n\t1549 -> 1518 [penwidth=1, color=black];\n\t1550 -> 1518 [penwidth=1, color=black];\n\t1551 -> 122 [penwidth=1, color=black];\n\t1551 -> 281 [penwidth=1, color=black];\n\t1551 -> 1611 [penwidth=1, color=black];\n\t1552 -> 1518 [penwidth=1, color=black];\n\t1553 -> 1518 [penwidth=1, color=black];\n\t1554 -> 263 [penwidth=1, color=black];\n\t1554 -> 400 [penwidth=1, color=black];\n\t1554 -> 1528 [penwidth=1, color=black];\n\t1555 -> 1527 [penwidth=\"2.09861228866811\", color=black];\n\t1556 -> 1528 [penwidth=1, color=black];\n\t1556 -> 1608 [penwidth=1, color=black];\n\t1557 -> 1518 [penwidth=1, color=black];\n\t1558 -> 1236 [penwidth=1, color=black];\n\t1558 -> 1237 [penwidth=1, color=black];\n\t1558 -> 1238 [penwidth=1, color=black];\n\t1558 -> 1239 [penwidth=1, color=black];\n\t1558 -> 1240 [penwidth=1, color=black];\n\t1558 -> 1241 [penwidth=1, color=black];\n\t1558 -> 1242 [penwidth=1, color=black];\n\t1558 -> 1243 [penwidth=1, color=black];\n\t1558 -> 1244 [penwidth=1, color=black];\n\t1558 -> 1248 [penwidth=1, color=black];\n\t1558 -> 1249 [penwidth=1, color=black];\n\t1558 -> 1251 [penwidth=1, color=black];\n\t1558 -> 1252 [penwidth=1, color=black];\n\t1558 -> 1258 [penwidth=1, color=black];\n\t1558 -> 1259 [penwidth=1, color=black];\n\t1558 -> 1261 [penwidth=1, color=black];\n\t1558 -> 1262 [penwidth=1, color=black];\n\t1558 -> 1264 [penwidth=1, color=black];\n\t1558 -> 1267 [penwidth=1, color=black];\n\t1558 -> 1269 [penwidth=1, color=black];\n\t1558 -> 1270 [penwidth=1, color=black];\n\t1558 -> 1271 [penwidth=1, color=black];\n\t1558 -> 1528 [penwidth=\"2.6094379124341005\", color=black];\n\t1559 -> 1254 [penwidth=1, color=black];\n\t1559 -> 1255 [penwidth=1, color=black];\n\t1559 -> 1522 [penwidth=1, color=black];\n\t1560 -> 1253 [penwidth=1, color=black];\n\t1561 -> 1522 [penwidth=1, color=black];\n\t1562 -> 1260 [penwidth=1, color=black];\n\t1562 -> 1527 [penwidth=1, color=black];\n\t1563 -> 1518 [penwidth=1, color=black];\n\t1564 -> 1233 [penwidth=1, color=black];\n\t1564 -> 1527 [penwidth=1, color=black];\n\t1565 -> 1523 [penwidth=1, color=chartreuse];\n\t1566 -> 1518 [penwidth=1, color=black];\n\t1567 -> 1518 [penwidth=1, color=black];\n\t1568 -> 187 [penwidth=1, color=black];\n\t1568 -> 321 [penwidth=1, color=black];\n\t1568 -> 365 [penwidth=1, color=black];\n\t1568 -> 1527 [penwidth=1, color=black];\n\t1568 -> 1528 [penwidth=1, color=black];\n\t1568 -> 1610 [penwidth=1, color=black];\n\t1569 -> 83 [penwidth=1, color=black];\n\t1569 -> 209 [penwidth=1, color=black];\n\t1569 -> 210 [penwidth=1, color=black];\n\t1569 -> 1526 [penwidth=1, color=black];\n\t1569 -> 1603 [penwidth=1, color=black];\n\t1570 -> 206 [penwidth=1, color=black];\n\t1570 -> 210 [penwidth=1, color=black];\n\t1571 -> 208 [penwidth=1, color=black];\n\t1571 -> 211 [penwidth=1, color=black];\n\t1572 -> 1518 [penwidth=1, color=black];\n\t1573 -> 1518 [penwidth=1, color=black];\n\t1574 -> 1518 [penwidth=1, color=black];\n\t1575 -> 115 [penwidth=1, color=black];\n\t1575 -> 197 [penwidth=1, color=black];\n\t1575 -> 204 [penwidth=1, color=black];\n\t1575 -> 307 [penwidth=1, color=black];\n\t1575 -> 326 [penwidth=1, color=black];\n\t1575 -> 338 [penwidth=1, color=black];\n\t1575 -> 339 [penwidth=1, color=black];\n\t1575 -> 397 [penwidth=1, color=black];\n\t1576 -> 135 [penwidth=1, color=black];\n\t1576 -> 136 [penwidth=1, color=black];\n\t1576 -> 286 [penwidth=1, color=black];\n\t1577 -> 283 [penwidth=1, color=black];\n\t1577 -> 284 [penwidth=1, color=black];\n\t1577 -> 285 [penwidth=1, color=black];\n\t1577 -> 288 [penwidth=1, color=black];\n\t1578 -> 1518 [penwidth=1, color=black];\n\t1579 -> 299 [penwidth=1, color=black];\n\t1579 -> 1612 [penwidth=\"2.09861228866811\", color=black];\n\t1580 -> 1528 [penwidth=1, color=black];\n\t1580 -> 1607 [penwidth=1, color=black];\n\t1582 -> 300 [penwidth=1, color=black];\n\t1582 -> 358 [penwidth=1, color=black];\n\t1582 -> 1527 [penwidth=1, color=black];\n\t1582 -> 1662 [penwidth=1, color=black];\n\t1583 -> 1518 [penwidth=1, color=black];\n\t1584 -> 1518 [penwidth=1, color=black];\n\t1585 -> 1518 [penwidth=1, color=black];\n\t1586 -> 89 [penwidth=1, color=black];\n\t1586 -> 90 [penwidth=1, color=black];\n\t1586 -> 116 [penwidth=1, color=black];\n\t1586 -> 150 [penwidth=1, color=black];\n\t1586 -> 156 [penwidth=1, color=black];\n\t1586 -> 1612 [penwidth=1, color=black];\n\t1587 -> 1520 [penwidth=1, color=chartreuse];\n\t1588 -> 322 [penwidth=1, color=black];\n\t1588 -> 1611 [penwidth=\"1.6931471805599454\", color=black];\n\t1589 -> 198 [penwidth=1, color=black];\n\t1589 -> 264 [penwidth=1, color=black];\n\t1589 -> 270 [penwidth=1, color=black];\n\t1589 -> 1528 [penwidth=1, color=black];\n\t1590 -> 1518 [penwidth=1, color=black];\n\t1591 -> 1518 [penwidth=1, color=black];\n\t1592 -> 1518 [penwidth=1, color=black];\n\t1593 -> 1518 [penwidth=1, color=black];\n\t1594 -> 356 [penwidth=1, color=black];\n\t1595 -> 362 [penwidth=1, color=black];\n\t1595 -> 363 [penwidth=1, color=black];\n\t1595 -> 364 [penwidth=1, color=black];\n\t1596 -> 333 [penwidth=1, color=black];\n\t1596 -> 1529 [penwidth=1, color=black];\n\t1597 -> 96 [penwidth=1, color=black];\n\t1597 -> 120 [penwidth=1, color=black];\n\t1597 -> 124 [penwidth=1, color=black];\n\t1597 -> 127 [penwidth=1, color=black];\n\t1597 -> 138 [penwidth=1, color=black];\n\t1597 -> 158 [penwidth=1, color=black];\n\t1597 -> 195 [penwidth=1, color=black];\n\t1597 -> 331 [penwidth=1, color=black];\n\t1597 -> 1529 [penwidth=1, color=black];\n\t1598 -> 1518 [penwidth=1, color=black];\n\t1599 -> 391 [penwidth=1, color=black];\n\t1600 -> 1518 [penwidth=1, color=black];\n\t1602 -> 1521 [penwidth=1, color=black];\n\t1604 -> 1657 [penwidth=1, color=black];\n\t1605 -> 1658 [penwidth=1, color=black];\n\t1607 -> 1356 [penwidth=1, color=black];\n\t1610 -> 152 [penwidth=1, color=black];\n\t1611 -> 407 [penwidth=1, color=black];\n\t1611 -> 1612 [penwidth=\"1.6931471805599454\", color=black];\n\t1612 -> 1601 [penwidth=1, color=black];\n\t1612 -> 1889 [penwidth=1, color=black];\n\t1614 -> 1657 [penwidth=1, color=black];\n\t1616 -> 1657 [penwidth=1, color=black];\n\t1617 -> 1613 [penwidth=1, color=black];\n\t1617 -> 1656 [penwidth=\"2.386294361119891\", color=black];\n\t1619 -> 1655 [penwidth=1, color=black];\n\t1619 -> 1776 [penwidth=\"1.6931471805599454\", color=black];\n\t1620 -> 1773 [penwidth=\"1.6931471805599454\", color=black];\n\t1620 -> 1774 [penwidth=\"1.6931471805599454\", color=black];\n\t1620 -> 1775 [penwidth=\"1.6931471805599454\", color=black];\n\t1620 -> 1778 [penwidth=\"1.6931471805599454\", color=black];\n\t1621 -> 1655 [penwidth=1, color=black];\n\t1621 -> 1777 [penwidth=\"1.6931471805599454\", color=black];\n\t1622 -> 82 [penwidth=\"1.6931471805599454\", color=black];\n\t1622 -> 1604 [penwidth=1, color=black];\n\t1623 -> 316 [penwidth=\"1.6931471805599454\", color=black];\n\t1623 -> 317 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 85 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 86 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 87 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 88 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 93 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 94 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 104 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 105 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 108 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 109 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 110 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 111 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 113 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 117 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 118 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 121 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 123 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 125 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 126 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 130 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 131 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 132 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 133 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 134 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 141 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 143 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 144 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 145 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 149 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 154 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 160 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 163 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 164 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 165 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 166 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 167 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 175 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 176 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 177 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 178 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 179 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 180 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 181 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 182 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 188 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 189 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 190 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 202 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 205 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 207 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 212 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 213 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 214 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 215 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 216 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 217 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 218 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 219 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 220 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 221 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 222 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 223 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 224 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 226 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 227 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 228 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 229 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 230 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 233 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 234 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 235 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 239 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 245 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 246 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 248 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 249 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 251 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 252 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 253 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 259 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 265 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 269 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 272 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 273 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 276 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 277 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 278 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 279 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 280 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 282 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 287 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 289 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 290 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 291 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 293 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 294 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 296 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 297 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 305 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 308 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 309 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 312 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 313 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 314 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 315 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 319 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 323 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 324 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 327 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 329 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 330 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 334 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 336 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 337 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 340 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 342 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 344 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 345 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 347 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 348 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 350 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 351 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 352 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 354 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 359 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 361 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 366 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 367 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 370 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 371 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 372 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 373 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 374 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 375 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 376 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 379 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 385 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 386 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 388 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 394 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 395 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 396 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 398 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 399 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 401 [penwidth=\"1.6931471805599454\", color=black];\n\t1624 -> 1604 [penwidth=\"2.386294361119891\", color=black];\n\t1624 -> 1660 [penwidth=\"4.526360524616162\", color=black];\n\t1624 -> 1664 [penwidth=1, color=black];\n\t1625 -> 644 [penwidth=\"1.6931471805599454\", color=black];\n\t1625 -> 1074 [penwidth=\"2.09861228866811\", color=black];\n\t1625 -> 1075 [penwidth=\"1.6931471805599454\", color=black];\n\t1626 -> 645 [penwidth=\"1.6931471805599454\", color=black];\n\t1627 -> 122 [penwidth=\"1.6931471805599454\", color=black];\n\t1627 -> 281 [penwidth=\"1.6931471805599454\", color=black];\n\t1628 -> 263 [penwidth=\"1.6931471805599454\", color=black];\n\t1628 -> 400 [penwidth=\"1.6931471805599454\", color=black];\n\t1628 -> 1660 [penwidth=1, color=black];\n\t1629 -> 1604 [penwidth=\"2.09861228866811\", color=black];\n\t1630 -> 1608 [penwidth=1, color=black];\n\t1630 -> 1660 [penwidth=1, color=black];\n\t1631 -> 1236 [penwidth=\"1.6931471805599454\", color=black];\n\t1631 -> 1237 [penwidth=\"1.6931471805599454\", color=black];\n\t1631 -> 1238 [penwidth=\"1.6931471805599454\", color=black];\n\t1631 -> 1239 [penwidth=\"1.6931471805599454\", color=black];\n\t1631 -> 1240 [penwidth=\"1.6931471805599454\", color=black];\n\t1631 -> 1241 [penwidth=\"1.6931471805599454\", color=black];\n\t1631 -> 1242 [penwidth=\"1.6931471805599454\", color=black];\n\t1631 -> 1243 [penwidth=\"1.6931471805599454\", color=black];\n\t1631 -> 1244 [penwidth=\"1.6931471805599454\", color=black];\n\t1631 -> 1248 [penwidth=\"1.6931471805599454\", color=black];\n\t1631 -> 1249 [penwidth=\"1.6931471805599454\", color=black];\n\t1631 -> 1251 [penwidth=\"1.6931471805599454\", color=black];\n\t1631 -> 1252 [penwidth=\"1.6931471805599454\", color=black];\n\t1631 -> 1258 [penwidth=\"1.6931471805599454\", color=black];\n\t1631 -> 1259 [penwidth=\"1.6931471805599454\", color=black];\n\t1631 -> 1261 [penwidth=\"1.6931471805599454\", color=black];\n\t1631 -> 1262 [penwidth=\"1.6931471805599454\", color=black];\n\t1631 -> 1264 [penwidth=\"1.6931471805599454\", color=black];\n\t1631 -> 1267 [penwidth=\"1.6931471805599454\", color=black];\n\t1631 -> 1269 [penwidth=\"1.6931471805599454\", color=black];\n\t1631 -> 1270 [penwidth=\"1.6931471805599454\", color=black];\n\t1631 -> 1271 [penwidth=\"1.6931471805599454\", color=black];\n\t1632 -> 1254 [penwidth=\"1.6931471805599454\", color=black];\n\t1632 -> 1255 [penwidth=\"1.6931471805599454\", color=black];\n\t1632 -> 1613 [penwidth=1, color=black];\n\t1633 -> 1266 [penwidth=\"1.6931471805599454\", color=black];\n\t1633 -> 1268 [penwidth=\"1.6931471805599454\", color=black];\n\t1633 -> 1656 [penwidth=1, color=black];\n\t1634 -> 1260 [penwidth=\"1.6931471805599454\", color=black];\n\t1634 -> 1656 [penwidth=1, color=black];\n\t1635 -> 1233 [penwidth=\"1.6931471805599454\", color=black];\n\t1635 -> 1656 [penwidth=1, color=black];\n\t1636 -> 1250 [penwidth=\"1.6931471805599454\", color=black];\n\t1636 -> 1257 [penwidth=\"1.6931471805599454\", color=black];\n\t1636 -> 1265 [penwidth=\"1.6931471805599454\", color=black];\n\t1636 -> 1613 [penwidth=1, color=black];\n\t1636 -> 1656 [penwidth=1, color=black];\n\t1636 -> 1660 [penwidth=1, color=black];\n\t1637 -> 187 [penwidth=\"1.6931471805599454\", color=black];\n\t1637 -> 321 [penwidth=\"1.6931471805599454\", color=black];\n\t1637 -> 365 [penwidth=\"1.6931471805599454\", color=black];\n\t1637 -> 1610 [penwidth=1, color=black];\n\t1637 -> 1657 [penwidth=1, color=black];\n\t1637 -> 1660 [penwidth=1, color=black];\n\t1638 -> 83 [penwidth=1, color=black];\n\t1638 -> 209 [penwidth=\"1.6931471805599454\", color=black];\n\t1638 -> 210 [penwidth=\"1.6931471805599454\", color=black];\n\t1638 -> 1603 [penwidth=1, color=black];\n\t1638 -> 1660 [penwidth=1, color=black];\n\t1639 -> 206 [penwidth=\"1.6931471805599454\", color=black];\n\t1639 -> 1604 [penwidth=1, color=black];\n\t1640 -> 208 [penwidth=\"2.386294361119891\", color=black];\n\t1640 -> 211 [penwidth=1, color=black];\n\t1641 -> 307 [penwidth=\"1.6931471805599454\", color=black];\n\t1642 -> 286 [penwidth=\"1.6931471805599454\", color=black];\n\t1643 -> 283 [penwidth=\"1.6931471805599454\", color=black];\n\t1644 -> 299 [penwidth=1, color=black];\n\t1644 -> 607 [penwidth=1, color=black];\n\t1644 -> 608 [penwidth=1, color=black];\n\t1644 -> 609 [penwidth=1, color=black];\n\t1644 -> 1659 [penwidth=1, color=black];\n\t1645 -> 1607 [penwidth=1, color=black];\n\t1645 -> 1660 [penwidth=1, color=black];\n\t1647 -> 300 [penwidth=\"1.6931471805599454\", color=black];\n\t1647 -> 358 [penwidth=\"1.6931471805599454\", color=black];\n\t1647 -> 1604 [penwidth=1, color=black];\n\t1647 -> 1662 [penwidth=1, color=black];\n\t1648 -> 89 [penwidth=\"1.6931471805599454\", color=black];\n\t1648 -> 1601 [penwidth=1, color=black];\n\t1649 -> 152 [penwidth=\"2.09861228866811\", color=black];\n\t1649 -> 161 [penwidth=\"1.6931471805599454\", color=black];\n\t1649 -> 225 [penwidth=1, color=black];\n\t1649 -> 304 [penwidth=\"2.09861228866811\", color=black];\n\t1649 -> 1657 [penwidth=1, color=black];\n\t1649 -> 1660 [penwidth=1, color=black];\n\t1650 -> 322 [penwidth=\"1.6931471805599454\", color=black];\n\t1651 -> 264 [penwidth=\"1.6931471805599454\", color=black];\n\t1651 -> 1660 [penwidth=1, color=black];\n\t1652 -> 356 [penwidth=\"2.386294361119891\", color=black];\n\t1652 -> 1659 [penwidth=\"1.6931471805599454\", color=black];\n\t1653 -> 362 [penwidth=\"1.6931471805599454\", color=black];\n\t1653 -> 363 [penwidth=1, color=black];\n\t1653 -> 364 [penwidth=\"1.6931471805599454\", color=black];\n\t1654 -> 391 [penwidth=\"1.6931471805599454\", color=black];\n\t1654 -> 1659 [penwidth=1, color=black];\n\t1655 -> 1900 [penwidth=1, color=black];\n\t1656 -> 1657 [penwidth=1, color=black];\n\t1657 -> 1658 [penwidth=1, color=black];\n\t1657 -> 1900 [penwidth=1, color=black];\n\t1659 -> 1900 [penwidth=1, color=black];\n\t1660 -> 1605 [penwidth=1, color=black];\n\t1660 -> 1663 [penwidth=1, color=black];\n\t1661 -> 1250 [penwidth=\"1.6931471805599454\", color=black];\n\t1661 -> 1257 [penwidth=\"1.6931471805599454\", color=black];\n\t1661 -> 1265 [penwidth=\"1.6931471805599454\", color=black];\n\t1662 -> 356 [penwidth=1, color=black];\n\t1663 -> 1606 [penwidth=1, color=black];\n\t1663 -> 1609 [penwidth=1, color=black];\n\t1665 -> 1885 [penwidth=1, color=black];\n\t1671 -> 1668 [penwidth=\"2.386294361119891\", color=black];\n\t1671 -> 1670 [penwidth=\"2.386294361119891\", color=black];\n\t1672 -> 1667 [penwidth=1, color=black];\n\t1672 -> 1668 [penwidth=1, color=black];\n\t1672 -> 1669 [penwidth=1, color=black];\n\t1672 -> 1670 [penwidth=1, color=black];\n\t1672 -> 1672 [penwidth=1, color=black];\n\t1673 -> 1672 [penwidth=1, color=black];\n\t1673 -> 1674 [penwidth=1, color=black];\n\t1673 -> 1678 [penwidth=1, color=black];\n\t1674 -> 1668 [penwidth=\"1.6931471805599454\", color=black];\n\t1674 -> 1670 [penwidth=1, color=black];\n\t1674 -> 1671 [penwidth=1, color=black];\n\t1674 -> 1674 [penwidth=1, color=black];\n\t1674 -> 1675 [penwidth=1, color=black];\n\t1674 -> 1676 [penwidth=1, color=black];\n\t1675 -> 1668 [penwidth=1, color=black];\n\t1675 -> 1670 [penwidth=1, color=black];\n\t1676 -> 1668 [penwidth=\"1.6931471805599454\", color=black];\n\t1676 -> 1670 [penwidth=\"1.6931471805599454\", color=black];\n\t1677 -> 1668 [penwidth=1, color=black];\n\t1677 -> 1670 [penwidth=1, color=black];\n\t1677 -> 1678 [penwidth=1, color=orange];\n\t1678 -> 1677 [penwidth=1, color=orange];\n\t1693 -> 1692 [penwidth=1, color=black];\n\t1694 -> 600 [penwidth=1, color=black];\n\t1694 -> 602 [penwidth=1, color=black];\n\t1694 -> 603 [penwidth=1, color=black];\n\t1694 -> 1682 [penwidth=1, color=black];\n\t1694 -> 1684 [penwidth=\"1.6931471805599454\", color=black];\n\t1694 -> 1687 [penwidth=1, color=black];\n\t1696 -> 1695 [penwidth=1, color=black];\n\t1698 -> 1697 [penwidth=1, color=black];\n\t1703 -> 1701 [penwidth=\"1.6931471805599454\", color=black];\n\t1703 -> 1702 [penwidth=\"1.6931471805599454\", color=black];\n\t1704 -> 1714 [penwidth=\"1.6931471805599454\", color=black];\n\t1705 -> 601 [penwidth=1, color=black];\n\t1705 -> 1683 [penwidth=1, color=black];\n\t1705 -> 1700 [penwidth=1, color=black];\n\t1705 -> 1701 [penwidth=1, color=black];\n\t1705 -> 1702 [penwidth=1, color=black];\n\t1706 -> 601 [penwidth=1, color=black];\n\t1706 -> 603 [penwidth=1, color=black];\n\t1706 -> 1682 [penwidth=1, color=black];\n\t1706 -> 1683 [penwidth=1, color=black];\n\t1706 -> 1684 [penwidth=1, color=black];\n\t1706 -> 1685 [penwidth=1, color=black];\n\t1706 -> 1687 [penwidth=1, color=black];\n\t1706 -> 1688 [penwidth=1, color=black];\n\t1707 -> 603 [penwidth=1, color=black];\n\t1707 -> 1688 [penwidth=1, color=black];\n\t1707 -> 1713 [penwidth=1, color=black];\n\t1707 -> 1714 [penwidth=1, color=black];\n\t1711 -> 178 [penwidth=1, color=black];\n\t1711 -> 372 [penwidth=1, color=black];\n\t1711 -> 1680 [penwidth=1, color=black];\n\t1711 -> 1690 [penwidth=\"1.6931471805599454\", color=black];\n\t1712 -> 1711 [penwidth=1, color=black];\n\t1718 -> 1760 [penwidth=1, color=black];\n\t1719 -> 1387 [penwidth=1, color=black];\n\t1719 -> 1439 [penwidth=1, color=black];\n\t1719 -> 1441 [penwidth=1, color=black];\n\t1720 -> 1719 [penwidth=1, color=black];\n\t1720 -> 1734 [penwidth=1, color=black];\n\t1721 -> 1393 [penwidth=1, color=black];\n\t1721 -> 1441 [penwidth=1, color=black];\n\t1721 -> 1442 [penwidth=1, color=black];\n\t1722 -> 1711 [penwidth=1, color=black];\n\t1722 -> 1724 [penwidth=\"1.6931471805599454\", color=black];\n\t1722 -> 1726 [penwidth=1, color=black];\n\t1723 -> 1712 [penwidth=1, color=black];\n\t1723 -> 1719 [penwidth=1, color=black];\n\t1723 -> 1725 [penwidth=\"1.6931471805599454\", color=black];\n\t1723 -> 1726 [penwidth=1, color=black];\n\t1724 -> 1359 [penwidth=1, color=black];\n\t1724 -> 1373 [penwidth=1, color=black];\n\t1724 -> 1387 [penwidth=1, color=black];\n\t1725 -> 1393 [penwidth=1, color=black];\n\t1725 -> 1442 [penwidth=1, color=black];\n\t1725 -> 1724 [penwidth=\"1.6931471805599454\", color=black];\n\t1725 -> 1734 [penwidth=1, color=black];\n\t1726 -> 1435 [penwidth=\"1.6931471805599454\", color=black];\n\t1726 -> 1442 [penwidth=1, color=black];\n\t1726 -> 1695 [penwidth=1, color=black];\n\t1726 -> 1762 [penwidth=1, color=black];\n\t1727 -> 1435 [penwidth=\"2.09861228866811\", color=black];\n\t1727 -> 1682 [penwidth=1, color=black];\n\t1727 -> 1684 [penwidth=1, color=black];\n\t1727 -> 1687 [penwidth=1, color=black];\n\t1728 -> 1371 [penwidth=1, color=black];\n\t1728 -> 1387 [penwidth=1, color=black];\n\t1728 -> 1391 [penwidth=\"2.09861228866811\", color=black];\n\t1728 -> 1433 [penwidth=1, color=black];\n\t1728 -> 1435 [penwidth=\"1.6931471805599454\", color=black];\n\t1728 -> 1697 [penwidth=1, color=black];\n\t1728 -> 1758 [penwidth=1, color=black];\n\t1728 -> 1764 [penwidth=1, color=black];\n\t1732 -> 1373 [penwidth=1, color=black];\n\t1732 -> 1387 [penwidth=1, color=black];\n\t1732 -> 1681 [penwidth=1, color=black];\n\t1732 -> 1726 [penwidth=1, color=black];\n\t1733 -> 1373 [penwidth=1, color=black];\n\t1733 -> 1387 [penwidth=1, color=black];\n\t1733 -> 1391 [penwidth=1, color=black];\n\t1733 -> 1432 [penwidth=1, color=black];\n\t1733 -> 1435 [penwidth=1, color=black];\n\t1733 -> 1689 [penwidth=\"1.6931471805599454\", color=black];\n\t1733 -> 1692 [penwidth=1, color=black];\n\t1733 -> 1760 [penwidth=1, color=black];\n\t1734 -> 1378 [penwidth=1, color=black];\n\t1734 -> 1441 [penwidth=1, color=black];\n\t1734 -> 1757 [penwidth=\"1.6931471805599454\", color=black];\n\t1735 -> 1721 [penwidth=1, color=black];\n\t1736 -> 1433 [penwidth=1, color=black];\n\t1736 -> 1440 [penwidth=1, color=black];\n\t1736 -> 1733 [penwidth=1, color=black];\n\t1736 -> 1755 [penwidth=1, color=black];\n\t1737 -> 1719 [penwidth=1, color=black];\n\t1737 -> 1722 [penwidth=1, color=black];\n\t1738 -> 1719 [penwidth=1, color=black];\n\t1738 -> 1732 [penwidth=1, color=black];\n\t1739 -> 1441 [penwidth=1, color=black];\n\t1739 -> 1694 [penwidth=1, color=black];\n\t1739 -> 1727 [penwidth=1, color=black];\n\t1740 -> 1760 [penwidth=1, color=black];\n\t1741 -> 1723 [penwidth=1, color=black];\n\t1741 -> 1734 [penwidth=1, color=black];\n\t1742 -> 1720 [penwidth=1, color=black];\n\t1742 -> 1732 [penwidth=1, color=black];\n\t1743 -> 1734 [penwidth=1, color=black];\n\t1744 -> 1470 [penwidth=1, color=black];\n\t1745 -> 1744 [penwidth=1, color=black];\n\t1747 -> 1470 [penwidth=\"1.6931471805599454\", color=black];\n\t1747 -> 1696 [penwidth=1, color=black];\n\t1747 -> 1699 [penwidth=1, color=black];\n\t1747 -> 1701 [penwidth=1, color=black];\n\t1747 -> 1702 [penwidth=1, color=black];\n\t1747 -> 1763 [penwidth=1, color=black];\n\t1747 -> 1871 [penwidth=1, color=black];\n\t1748 -> 1682 [penwidth=1, color=black];\n\t1748 -> 1684 [penwidth=1, color=black];\n\t1748 -> 1687 [penwidth=1, color=black];\n\t1749 -> 1470 [penwidth=1, color=black];\n\t1749 -> 1698 [penwidth=1, color=black];\n\t1749 -> 1759 [penwidth=1, color=black];\n\t1749 -> 1765 [penwidth=1, color=black];\n\t1749 -> 1871 [penwidth=\"1.6931471805599454\", color=black];\n\t1750 -> 1470 [penwidth=1, color=black];\n\t1750 -> 1714 [penwidth=1, color=black];\n\t1751 -> 1469 [penwidth=1, color=black];\n\t1751 -> 1470 [penwidth=\"1.6931471805599454\", color=black];\n\t1751 -> 1475 [penwidth=1, color=black];\n\t1751 -> 1689 [penwidth=1, color=black];\n\t1751 -> 1692 [penwidth=1, color=black];\n\t1751 -> 1871 [penwidth=1, color=black];\n\t1752 -> 1746 [penwidth=1, color=chartreuse];\n\t1753 -> 1752 [penwidth=1, color=black];\n\t1754 -> 1693 [penwidth=1, color=black];\n\t1754 -> 1751 [penwidth=1, color=black];\n\t1754 -> 1756 [penwidth=1, color=black];\n\t1754 -> 1871 [penwidth=1, color=black];\n\t1756 -> 1755 [penwidth=1, color=black];\n\t1757 -> 1373 [penwidth=1, color=black];\n\t1757 -> 1379 [penwidth=1, color=black];\n\t1757 -> 1380 [penwidth=1, color=black];\n\t1757 -> 1440 [penwidth=1, color=black];\n\t1757 -> 1441 [penwidth=1, color=black];\n\t1759 -> 1758 [penwidth=1, color=black];\n\t1760 -> 1679 [penwidth=1, color=black];\n\t1760 -> 1686 [penwidth=1, color=black];\n\t1760 -> 1689 [penwidth=1, color=black];\n\t1760 -> 1883 [penwidth=1, color=black];\n\t1760 -> 1884 [penwidth=1, color=black];\n\t1761 -> 1689 [penwidth=1, color=black];\n\t1763 -> 1762 [penwidth=1, color=black];\n\t1765 -> 1764 [penwidth=1, color=black];\n\t1766 -> 1700 [penwidth=1, color=black];\n\t1766 -> 1744 [penwidth=1, color=black];\n\t1766 -> 1747 [penwidth=1, color=black];\n\t1767 -> 1713 [penwidth=1, color=black];\n\t1767 -> 1744 [penwidth=1, color=black];\n\t1767 -> 1750 [penwidth=1, color=black];\n\t1768 -> 1691 [penwidth=1, color=black];\n\t1768 -> 1748 [penwidth=1, color=black];\n\t1769 -> 1679 [penwidth=1, color=black];\n\t1769 -> 1686 [penwidth=1, color=black];\n\t1769 -> 1689 [penwidth=1, color=black];\n\t1770 -> 1700 [penwidth=1, color=black];\n\t1770 -> 1745 [penwidth=1, color=black];\n\t1770 -> 1747 [penwidth=1, color=black];\n\t1771 -> 1713 [penwidth=1, color=black];\n\t1771 -> 1745 [penwidth=1, color=black];\n\t1771 -> 1750 [penwidth=1, color=black];\n\t1772 -> 1691 [penwidth=1, color=black];\n\t1772 -> 1745 [penwidth=1, color=black];\n\t1772 -> 1748 [penwidth=1, color=black];\n\t1779 -> 1785 [penwidth=1, color=black];\n\t1779 -> 1815 [penwidth=1, color=black];\n\t1779 -> 1846 [penwidth=1, color=black];\n\t1780 -> 1785 [penwidth=\"1.6931471805599454\", color=black];\n\t1781 -> 1773 [penwidth=\"1.6931471805599454\", color=black];\n\t1781 -> 1774 [penwidth=\"1.6931471805599454\", color=black];\n\t1781 -> 1775 [penwidth=\"1.6931471805599454\", color=black];\n\t1781 -> 1778 [penwidth=\"1.6931471805599454\", color=black];\n\t1782 -> 1789 [penwidth=\"1.6931471805599454\", color=black];\n\t1790 -> 1776 [penwidth=1, color=black];\n\t1790 -> 1783 [penwidth=1, color=black];\n\t1790 -> 1784 [penwidth=1, color=black];\n\t1790 -> 1785 [penwidth=1, color=black];\n\t1790 -> 1787 [penwidth=1, color=black];\n\t1790 -> 1791 [penwidth=1, color=black];\n\t1791 -> 1773 [penwidth=1, color=black];\n\t1791 -> 1774 [penwidth=1, color=black];\n\t1791 -> 1775 [penwidth=1, color=black];\n\t1791 -> 1778 [penwidth=1, color=black];\n\t1791 -> 1792 [penwidth=1, color=orange];\n\t1792 -> 1777 [penwidth=1, color=black];\n\t1792 -> 1786 [penwidth=1, color=black];\n\t1792 -> 1788 [penwidth=1, color=black];\n\t1792 -> 1789 [penwidth=1, color=black];\n\t1792 -> 1791 [penwidth=1, color=orange];\n\t1793 -> 1784 [penwidth=1, color=black];\n\t1794 -> 1783 [penwidth=1, color=black];\n\t1795 -> 1787 [penwidth=1, color=black];\n\t1796 -> 1785 [penwidth=1, color=black];\n\t1796 -> 1817 [penwidth=1, color=black];\n\t1796 -> 1848 [penwidth=1, color=black];\n\t1799 -> 1787 [penwidth=1, color=black];\n\t1800 -> 1785 [penwidth=1, color=black];\n\t1800 -> 1816 [penwidth=1, color=black];\n\t1800 -> 1849 [penwidth=1, color=black];\n\t1804 -> 1387 [penwidth=1, color=black];\n\t1807 -> 1728 [penwidth=1, color=black];\n\t1807 -> 1735 [penwidth=1, color=black];\n\t1807 -> 1776 [penwidth=1, color=black];\n\t1807 -> 1804 [penwidth=1, color=black];\n\t1808 -> 1773 [penwidth=1, color=black];\n\t1808 -> 1774 [penwidth=1, color=black];\n\t1808 -> 1775 [penwidth=1, color=black];\n\t1808 -> 1778 [penwidth=1, color=black];\n\t1809 -> 1721 [penwidth=1, color=black];\n\t1809 -> 1735 [penwidth=1, color=black];\n\t1809 -> 1736 [penwidth=1, color=black];\n\t1809 -> 1777 [penwidth=\"1.6931471805599454\", color=black];\n\t1809 -> 1804 [penwidth=\"1.6931471805599454\", color=black];\n\t1810 -> 1442 [penwidth=1, color=black];\n\t1810 -> 1723 [penwidth=1, color=black];\n\t1810 -> 1734 [penwidth=1, color=black];\n\t1810 -> 1773 [penwidth=1, color=black];\n\t1811 -> 1380 [penwidth=1, color=black];\n\t1811 -> 1441 [penwidth=1, color=black];\n\t1812 -> 1470 [penwidth=1, color=black];\n\t1813 -> 1754 [penwidth=1, color=black];\n\t1813 -> 1786 [penwidth=1, color=black];\n\t1813 -> 1788 [penwidth=1, color=black];\n\t1814 -> 1784 [penwidth=1, color=black];\n\t1815 -> 1818 [penwidth=1, color=orange];\n\t1816 -> 1819 [penwidth=1, color=orange];\n\t1817 -> 1820 [penwidth=1, color=orange];\n\t1818 -> 1773 [penwidth=1, color=black];\n\t1818 -> 1775 [penwidth=1, color=black];\n\t1818 -> 1778 [penwidth=1, color=black];\n\t1818 -> 1815 [penwidth=1, color=orange];\n\t1818 -> 1826 [penwidth=1, color=black];\n\t1818 -> 1832 [penwidth=1, color=black];\n\t1818 -> 1833 [penwidth=1, color=black];\n\t1818 -> 1861 [penwidth=1, color=black];\n\t1819 -> 1773 [penwidth=1, color=black];\n\t1819 -> 1774 [penwidth=1, color=black];\n\t1819 -> 1775 [penwidth=1, color=black];\n\t1819 -> 1778 [penwidth=1, color=black];\n\t1819 -> 1816 [penwidth=1, color=orange];\n\t1819 -> 1826 [penwidth=1, color=black];\n\t1819 -> 1834 [penwidth=1, color=black];\n\t1819 -> 1837 [penwidth=1, color=black];\n\t1819 -> 1838 [penwidth=1, color=black];\n\t1819 -> 1861 [penwidth=1, color=black];\n\t1820 -> 1775 [penwidth=1, color=black];\n\t1820 -> 1778 [penwidth=1, color=black];\n\t1820 -> 1817 [penwidth=1, color=orange];\n\t1820 -> 1826 [penwidth=1, color=black];\n\t1820 -> 1836 [penwidth=1, color=black];\n\t1820 -> 1839 [penwidth=1, color=black];\n\t1821 -> 1749 [penwidth=1, color=black];\n\t1821 -> 1752 [penwidth=1, color=black];\n\t1821 -> 1783 [penwidth=1, color=black];\n\t1821 -> 1784 [penwidth=1, color=black];\n\t1821 -> 1785 [penwidth=1, color=black];\n\t1821 -> 1787 [penwidth=1, color=black];\n\t1821 -> 1812 [penwidth=1, color=black];\n\t1822 -> 1773 [penwidth=1, color=black];\n\t1822 -> 1774 [penwidth=1, color=black];\n\t1822 -> 1775 [penwidth=1, color=black];\n\t1822 -> 1778 [penwidth=1, color=black];\n\t1823 -> 1752 [penwidth=1, color=black];\n\t1823 -> 1789 [penwidth=1, color=black];\n\t1823 -> 1812 [penwidth=1, color=black];\n\t1823 -> 1813 [penwidth=1, color=black];\n\t1825 -> 1753 [penwidth=1, color=black];\n\t1825 -> 1789 [penwidth=1, color=black];\n\t1825 -> 1812 [penwidth=1, color=black];\n\t1825 -> 1813 [penwidth=1, color=black];\n\t1826 -> 1786 [penwidth=1, color=black];\n\t1826 -> 1788 [penwidth=1, color=black];\n\t1826 -> 1789 [penwidth=1, color=black];\n\t1826 -> 1871 [penwidth=1, color=black];\n\t1827 -> 517 [penwidth=1, color=black];\n\t1827 -> 1845 [penwidth=1, color=black];\n\t1831 -> 1854 [penwidth=1, color=black];\n\t1831 -> 1860 [penwidth=1, color=black];\n\t1831 -> 1862 [penwidth=1, color=black];\n\t1832 -> 1680 [penwidth=1, color=black];\n\t1832 -> 1700 [penwidth=\"1.6931471805599454\", color=black];\n\t1832 -> 1847 [penwidth=1, color=black];\n\t1832 -> 1860 [penwidth=1, color=black];\n\t1832 -> 1863 [penwidth=1, color=black];\n\t1832 -> 1867 [penwidth=1, color=black];\n\t1832 -> 1868 [penwidth=1, color=black];\n\t1833 -> 1682 [penwidth=1, color=black];\n\t1833 -> 1835 [penwidth=1, color=black];\n\t1834 -> 1680 [penwidth=1, color=black];\n\t1834 -> 1847 [penwidth=1, color=black];\n\t1834 -> 1850 [penwidth=1, color=black];\n\t1834 -> 1856 [penwidth=1, color=black];\n\t1835 -> 1858 [penwidth=1, color=black];\n\t1835 -> 1868 [penwidth=1, color=black];\n\t1835 -> 1869 [penwidth=1, color=black];\n\t1836 -> 1684 [penwidth=1, color=black];\n\t1836 -> 1835 [penwidth=1, color=black];\n\t1837 -> 1681 [penwidth=1, color=black];\n\t1837 -> 1847 [penwidth=1, color=black];\n\t1837 -> 1850 [penwidth=1, color=black];\n\t1837 -> 1856 [penwidth=1, color=black];\n\t1838 -> 1687 [penwidth=1, color=black];\n\t1838 -> 1835 [penwidth=1, color=black];\n\t1839 -> 1831 [penwidth=1, color=black];\n\t1839 -> 1847 [penwidth=1, color=black];\n\t1839 -> 1850 [penwidth=1, color=black];\n\t1839 -> 1861 [penwidth=1, color=black];\n\t1842 -> 1845 [penwidth=1, color=black];\n\t1842 -> 1888 [penwidth=1, color=black];\n\t1846 -> 1830 [penwidth=1, color=black];\n\t1846 -> 1843 [penwidth=1, color=black];\n\t1846 -> 1865 [penwidth=1, color=black];\n\t1846 -> 1870 [penwidth=1, color=black];\n\t1847 -> 1851 [penwidth=1, color=black];\n\t1848 -> 1684 [penwidth=1, color=black];\n\t1848 -> 1830 [penwidth=1, color=black];\n\t1848 -> 1851 [penwidth=1, color=black];\n\t1848 -> 1865 [penwidth=1, color=black];\n\t1848 -> 1867 [penwidth=1, color=black];\n\t1848 -> 1870 [penwidth=1, color=black];\n\t1849 -> 1830 [penwidth=1, color=black];\n\t1849 -> 1841 [penwidth=1, color=black];\n\t1849 -> 1844 [penwidth=1, color=black];\n\t1849 -> 1853 [penwidth=1, color=black];\n\t1849 -> 1867 [penwidth=1, color=black];\n\t1849 -> 1870 [penwidth=1, color=black];\n\t1850 -> 1852 [penwidth=1, color=black];\n\t1854 -> 1840 [penwidth=1, color=chartreuse];\n\t1855 -> 1828 [penwidth=\"2.09861228866811\", color=black];\n\t1855 -> 1857 [penwidth=1, color=black];\n\t1856 -> 1828 [penwidth=1, color=black];\n\t1856 -> 1855 [penwidth=1, color=black];\n\t1856 -> 1860 [penwidth=1, color=black];\n\t1856 -> 1866 [penwidth=1, color=black];\n\t1857 -> 1888 [penwidth=1, color=black];\n\t1858 -> 1830 [penwidth=1, color=black];\n\t1858 -> 1851 [penwidth=\"1.6931471805599454\", color=black];\n\t1859 -> 1830 [penwidth=1, color=black];\n\t1859 -> 1852 [penwidth=\"1.6931471805599454\", color=black];\n\t1860 -> 1830 [penwidth=1, color=black];\n\t1860 -> 1870 [penwidth=\"1.6931471805599454\", color=black];\n\t1861 -> 1847 [penwidth=1, color=black];\n\t1861 -> 1850 [penwidth=1, color=black];\n\t1861 -> 1858 [penwidth=1, color=black];\n\t1861 -> 1859 [penwidth=\"1.6931471805599454\", color=black];\n\t1864 -> 1681 [penwidth=1, color=black];\n\t1866 -> 1829 [penwidth=1, color=black];\n\t1867 -> 1845 [penwidth=1, color=black];\n\t1868 -> 1829 [penwidth=1, color=black];\n\t1872 -> 1872 [penwidth=\"1.6931471805599454\", color=black];\n\t1873 -> 1873 [penwidth=\"1.6931471805599454\", color=black];\n\t1876 -> 1874 [penwidth=1, color=black];\n\t1876 -> 1882 [penwidth=1, color=black];\n\t1877 -> 1883 [penwidth=1, color=black];\n\t1878 -> 1881 [penwidth=1, color=chartreuse];\n\t1879 -> 1877 [penwidth=1, color=chartreuse];\n\t1882 -> 1874 [penwidth=1, color=black];\n\t1885 -> 1886 [penwidth=1, color=black];\n\t1886 -> 1875 [penwidth=1, color=chartreuse];\n\t1887 -> 144 [penwidth=1, color=black];\n\t1887 -> 219 [penwidth=\"1.6931471805599454\", color=black];\n\t1887 -> 348 [penwidth=1, color=black];\n\t1887 -> 367 [penwidth=1, color=black];\n}\n"
diff --git a/utils/TestParsing.hs b/utils/TestParsing.hs
--- a/utils/TestParsing.hs
+++ b/utils/TestParsing.hs
@@ -18,7 +18,7 @@
 
 import Data.GraphViz
 import qualified Data.GraphViz.Types.Generalised as G
-import Data.GraphViz.Parsing(runParser, parse)
+import Data.GraphViz.Parsing(runParser)
 import Data.GraphViz.PreProcessing(preProcess)
 import Data.GraphViz.Commands.IO(hGetStrict, toUTF8)
 import Data.GraphViz.Exception
@@ -26,7 +26,7 @@
 import qualified Data.Text.Lazy as T
 import Data.Text.Lazy(Text)
 import qualified Data.ByteString.Lazy as B
-import Control.Exception.Extensible(try, IOException)
+import Control.Exception(try, evaluate, SomeException)
 import Control.Monad(liftM, filterM)
 import System.Directory
 import System.FilePath
@@ -58,27 +58,30 @@
 
 withParse :: (PPDotRepr dg n) => (a -> IO Text) -> (dg n -> IO ())
              -> (ErrMsg -> String) -> a -> IO ()
-withParse toStr withDG cmbErr a = do dc <- toStr a
-                                     edg <- tryParse dc
-                                     case edg of
-                                       (Right dg) -> withDG dg
-                                       (Left err) -> do putStrLn "Parsing problem!"
-                                                        putStrLn $ cmbErr err
-                                                        putStrLn  ""
+withParse toStr withDG cmbErr a = do dc <- liftM getMsg . try $ toStr a
+                                     case dc of
+                                       Right dc' -> do edg <- tryParse dc'
+                                                       case edg of
+                                                         (Right dg) -> withDG dg
+                                                         (Left err) -> do putStrLn "Parsing problem!"
+                                                                          putStrLn $ cmbErr err
+                                                                          putStrLn  ""
+                                       Left err  -> do putStrLn "IO problem!"
+                                                       putStrLn err
+                                                       putStrLn ""
+  where
+    getMsg :: Either SomeException Text -> Either ErrMsg Text
+    getMsg = either (Left . show) Right
 
 type DG = DotGraph Text
 type GDG = G.DotGraph Text
 type ErrMsg = String
 
 tryParseFile    :: FilePath -> IO ()
-tryParseFile fp = readFile' fp >>= maybeParse
-  where
-    maybeParse (Left err)  = putStrLn $ "Error parsing \"" ++ fp ++ "\":\n\t"
-                                        ++ err ++ "\n"
-    maybeParse (Right dot) = withParse (const $ return dot)
-                                       (tryParseCanon fp)
-                                       ("Cannot parse as a G.DotGraph: "++)
-                                       fp
+tryParseFile fp = withParse readFile'
+                            (tryParseCanon fp)
+                            ("Cannot parse as a G.DotGraph: "++)
+                            fp
 
 tryParseCanon    :: FilePath -> GDG -> IO ()
 tryParseCanon fp = withParse prettyPrint
@@ -95,16 +98,16 @@
               $ let (dg, rst) = runParser parse $ preProcess dc
                 in T.length rst `seq` return dg
   where
-    getErr :: GraphvizException -> IO (Either ErrMsg a)
+    getErr :: SomeException -> IO (Either ErrMsg a)
     getErr = return . Left . show
 
-readFile' :: FilePath -> IO (Either ErrMsg Text)
+readFile' :: FilePath -> IO Text
 readFile' fp = do putStr fp
                   putStr " - "
-                  liftM getMsg . try $ readUTF8File fp
-  where
-    getMsg :: Either IOException Text -> Either ErrMsg Text
-    getMsg = either (Left . show) Right
+                  readUTF8File fp
 
-readUTF8File :: FilePath -> IO Text
-readUTF8File = liftM toUTF8 . B.readFile
+-- Force any encoding errors into the IO section rather than when parsing.
+readUTF8File    :: FilePath -> IO Text
+readUTF8File fp = do cnts <- liftM toUTF8 $ B.readFile fp
+                     _ <- evaluate $ T.length cnts
+                     return cnts
