<!-- =====================================================================
  This is the DTD for SVG 1.0.

  The specification for SVG that corresponds to this DTD is available at:

    http://www.w3.org/TR/2001/REC-SVG-20010904/

  Copyright (c) 2000 W3C (MIT, INRIA, Keio), All Rights Reserved.

  For SVG 1.0:

    Namespace:
      http://www.w3.org/2000/svg  

    Public identifier:
      PUBLIC "-//W3C//DTD SVG 1.0//EN"

    URI for the DTD:
      http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd
============================================================================= -->
<!-- ==============================================================
     ENTITY DECLARATIONS: Data types 
     ============================================================== -->
<!ENTITY % BaselineShiftValue "CDATA">
<!-- 'baseline-shift' property/attribute value (e.g., 'baseline', 'sub', etc.) -->
<!ENTITY % Boolean "(false | true)">
<!-- feature specification -->
<!ENTITY % ClassList "CDATA">
<!-- list of classes -->
<!ENTITY % ClipValue "CDATA">
<!-- 'clip' property/attribute value (e.g., 'auto', rect(...)) -->
<!ENTITY % ClipPathValue "CDATA">
<!-- 'clip-path' property/attribute value (e.g., 'none', %URI;) -->
<!ENTITY % ClipFillRule "(nonzero | evenodd | inherit)">
<!-- 'clip-rule' or fill-rule property/attribute value -->
<!ENTITY % ContentType "CDATA">
<!-- media type, as per [RFC2045] -->
<!ENTITY % Coordinate "CDATA">
<!-- a <coordinate> -->
<!ENTITY % Coordinates "CDATA">
<!-- a list of <coordinate>s -->
<!ENTITY % Color "CDATA">
<!-- a <color> value -->
<!ENTITY % CursorValue "CDATA">
<!-- 'cursor' property/attribute value (e.g., 'crosshair', %URI;) -->
<!ENTITY % EnableBackgroundValue "CDATA">
<!-- 'enable-background' property/attribute value (e.g., 'new', 'accumulate') -->
<!ENTITY % ExtensionList "CDATA">
<!-- extension list specification -->
<!ENTITY % FeatureList "CDATA">
<!-- feature list specification -->
<!ENTITY % FilterValue "CDATA">
<!-- 'filter' property/attribute value (e.g., 'none', %URI;) -->
<!ENTITY % FontFamilyValue "CDATA">
<!-- 'font-family' property/attribute value (i.e., list of fonts) -->
<!ENTITY % FontSizeValue "CDATA">
<!-- 'font-size' property/attribute value -->
<!ENTITY % FontSizeAdjustValue "CDATA">
<!-- 'font-size-adjust' property/attribute value -->
<!ENTITY % GlyphOrientationHorizontalValue "CDATA">
<!-- 'glyph-orientation-horizontal' property/attribute value (e.g., <angle>) -->
<!ENTITY % GlyphOrientationVerticalValue "CDATA">
<!-- 'glyph-orientation-vertical' property/attribute value (e.g., 'auto', <angle>) -->
<!ENTITY % Integer "CDATA">
<!-- a <integer> -->
<!ENTITY % KerningValue "CDATA">
<!-- 'kerning' property/attribute value (e.g., auto | <length>) -->
<!ENTITY % LanguageCode "NMTOKEN">
<!-- a language code, as per [RFC3066] -->
<!ENTITY % LanguageCodes "CDATA">
<!-- comma-separated list of language codes, as per [RFC3066] -->
<!ENTITY % Length "CDATA">
<!-- a <length> -->
<!ENTITY % Lengths "CDATA">
<!-- a list of <length>s -->
<!ENTITY % LinkTarget "NMTOKEN">
<!-- link to this target -->
<!ENTITY % MarkerValue "CDATA">
<!-- 'marker' property/attribute value (e.g., 'none', %URI;) -->
<!ENTITY % MaskValue "CDATA">
<!-- 'mask' property/attribute value (e.g., 'none', %URI;) -->
<!ENTITY % MediaDesc "CDATA">
<!-- comma-separated list of media descriptors. -->
<!ENTITY % Number "CDATA">
<!-- a <number> -->
<!ENTITY % NumberOptionalNumber "CDATA">
<!-- list of <number>s, but at least one and at most two -->
<!ENTITY % NumberOrPercentage "CDATA">
<!-- a <number> or a  <percentage> -->
<!ENTITY % Numbers "CDATA">
<!-- a list of <number>s -->
<!ENTITY % OpacityValue "CDATA">
<!-- opacity value (e.g., <number>) -->
<!ENTITY % Paint "CDATA">
<!-- a 'fill' or 'stroke' property/attribute value: <paint> -->
<!ENTITY % PathData "CDATA">
<!-- a path data specification -->
<!ENTITY % Points "CDATA">
<!-- a list of points -->
<!ENTITY % PreserveAspectRatioSpec "CDATA">
<!-- 'preserveAspectRatio' attribute specification -->
<!ENTITY % Script "CDATA">
<!-- script expression -->
<!ENTITY % SpacingValue "CDATA">
<!-- 'letter-spacing' or 'word-spacing' property/attribute value (e.g., normal | <length>) -->
<!ENTITY % StrokeDashArrayValue "CDATA">
<!-- 'stroke-dasharray' property/attribute value (e.g., 'none', list of <number>s) -->
<!ENTITY % StrokeDashOffsetValue "CDATA">
<!-- 'stroke-dashoffset' property/attribute value (e.g., 'none', <legnth>) -->
<!ENTITY % StrokeMiterLimitValue "CDATA">
<!-- 'stroke-miterlimit' property/attribute value (e.g., <number>) -->
<!ENTITY % StrokeWidthValue "CDATA">
<!-- 'stroke-width' property/attribute value (e.g., <length>) -->
<!ENTITY % StructuredText "content CDATA #FIXED 'structured text'">
<!ENTITY % StyleSheet "CDATA">
<!-- style sheet data -->
<!ENTITY % SVGColor "CDATA">
<!-- An SVG color value (RGB plus optional ICC) -->
<!ENTITY % Text "CDATA">
<!-- arbitrary text string -->
<!ENTITY % TextDecorationValue "CDATA">
<!-- 'text-decoration' property/attribute value (e.g., 'none', 'underline') -->
<!ENTITY % TransformList "CDATA">
<!-- list of transforms -->
<!ENTITY % URI "CDATA">
<!-- a Uniform Resource Identifier, see [URI] -->
<!ENTITY % ViewBoxSpec "CDATA">
<!-- 'viewBox' attribute specification -->
<!-- ==============================================================
     ENTITY DECLARATIONS: Collections of common attributes 
     ============================================================== -->
<!-- All elements have an ID. -->
<!ENTITY % stdAttrs "id ID #IMPLIED
  xml:base %URI; #IMPLIED">
<!-- Common attributes for elements that might contain character data content. -->
<!ENTITY % langSpaceAttrs "xml:lang %LanguageCode; #IMPLIED
  xml:space (default|preserve) #IMPLIED">
<!-- Common attributes to check for system capabilities. -->
<!ENTITY % testAttrs "requiredFeatures %FeatureList; #IMPLIED
  requiredExtensions %ExtensionList; #IMPLIED
  systemLanguage %LanguageCodes; #IMPLIED">
<!-- For most uses of URI referencing:
        standard XLink attributes other than xlink:href. -->
<!ENTITY % xlinkRefAttrs "xmlns:xlink CDATA #FIXED 'http://www.w3.org/1999/xlink'
  xlink:type (simple) #FIXED 'simple' 
  xlink:role %URI; #IMPLIED
  xlink:arcrole %URI; #IMPLIED
  xlink:title CDATA #IMPLIED
  xlink:show (other) 'other'
  xlink:actuate (onLoad) #FIXED 'onLoad'">
<!-- Standard XLink attributes for uses of URI referencing where xlink:show is 'embed' -->
<!ENTITY % xlinkRefAttrsEmbed "xmlns:xlink CDATA #FIXED 'http://www.w3.org/1999/xlink'
  xlink:type (simple) #FIXED 'simple' 
  xlink:role %URI; #IMPLIED
  xlink:arcrole %URI; #IMPLIED
  xlink:title CDATA #IMPLIED
  xlink:show (embed) 'embed'
  xlink:actuate (onLoad) #FIXED 'onLoad'">
<!ENTITY % graphicsElementEvents "onfocusin %Script; #IMPLIED
   onfocusout %Script; #IMPLIED
   onactivate %Script; #IMPLIED
   onclick %Script; #IMPLIED
   onmousedown %Script; #IMPLIED
   onmouseup %Script; #IMPLIED
   onmouseover %Script; #IMPLIED
   onmousemove %Script; #IMPLIED
   onmouseout %Script; #IMPLIED
   onload %Script; #IMPLIED">
<!ENTITY % documentEvents "onunload %Script; #IMPLIED
   onabort %Script; #IMPLIED
   onerror %Script; #IMPLIED
   onresize %Script; #IMPLIED
   onscroll %Script; #IMPLIED
   onzoom %Script; #IMPLIED">
<!ENTITY % animationEvents "onbegin %Script; #IMPLIED
   onend %Script; #IMPLIED
   onrepeat %Script; #IMPLIED">
<!-- This entity allows for at most one of desc, title and metadata,
     supplied in any order -->
<!ENTITY % descTitleMetadata "(((desc,((title,metadata?)|(metadata,title?))?)|
          (title,((desc,metadata?)|(metadata,desc?))?)|
          (metadata,((desc,title?)|(title,desc?))?))?)">
<!-- ==============================================================
     ENTITY DECLARATIONS: Collections of presentation attributes 
     ============================================================== -->
<!-- The following presentation attributes have to do with specifying color. -->
<!ENTITY % PresentationAttributes-Color "color %Color; #IMPLIED
   color-interpolation (auto | sRGB | linearRGB | inherit) #IMPLIED
   color-rendering (auto | optimizeSpeed | optimizeQuality | inherit) #IMPLIED ">
<!-- The following presentation attributes apply to container elements. -->
<!ENTITY % PresentationAttributes-Containers "enable-background %EnableBackgroundValue; #IMPLIED ">
<!-- The following presentation attributes apply to 'feFlood' elements. -->
<!ENTITY % PresentationAttributes-feFlood "flood-color %SVGColor; #IMPLIED
   flood-opacity %OpacityValue; #IMPLIED ">
<!-- The following presentation attributes apply to filling and stroking operations. -->
<!ENTITY % PresentationAttributes-FillStroke "fill %Paint; #IMPLIED
   fill-opacity %OpacityValue; #IMPLIED
   fill-rule %ClipFillRule; #IMPLIED
   stroke %Paint; #IMPLIED
   stroke-dasharray %StrokeDashArrayValue; #IMPLIED
   stroke-dashoffset %StrokeDashOffsetValue; #IMPLIED
   stroke-linecap (butt | round | square | inherit) #IMPLIED
   stroke-linejoin (miter | round | bevel | inherit) #IMPLIED
   stroke-miterlimit %StrokeMiterLimitValue; #IMPLIED
   stroke-opacity %OpacityValue; #IMPLIED
   stroke-width %StrokeWidthValue; #IMPLIED ">
<!-- The following presentation attributes apply to filter primitives. -->
<!ENTITY % PresentationAttributes-FilterPrimitives "color-interpolation-filters (auto | sRGB | linearRGB | inherit) #IMPLIED ">
<!-- The following presentation attributes have to do with selecting a font to use. -->
<!ENTITY % PresentationAttributes-FontSpecification "font-family %FontFamilyValue; #IMPLIED
   font-size %FontSizeValue; #IMPLIED
   font-size-adjust %FontSizeAdjustValue; #IMPLIED
   font-stretch (normal | wider | narrower | ultra-condensed | extra-condensed |
                 condensed | semi-condensed | semi-expanded | expanded |
                 extra-expanded | ultra-expanded | inherit) #IMPLIED
   font-style (normal | italic | oblique | inherit) #IMPLIED
   font-variant (normal | small-caps | inherit) #IMPLIED
   font-weight (normal | bold | bolder | lighter | 100 | 200 | 300 |
               400 | 500 | 600 | 700 | 800 | 900 | inherit) #IMPLIED ">
<!-- The following presentation attributes apply to gradient 'stop' elements. -->
<!ENTITY % PresentationAttributes-Gradients "stop-color %SVGColor; #IMPLIED
   stop-opacity %OpacityValue; #IMPLIED ">
<!-- The following presentation attributes apply to graphics elements. -->
<!ENTITY % PresentationAttributes-Graphics "clip-path %ClipPathValue; #IMPLIED
   clip-rule %ClipFillRule; #IMPLIED
   cursor %CursorValue; #IMPLIED
   display (inline | block | list-item | run-in | compact | marker |
            table | inline-table | table-row-group | table-header-group |
            table-footer-group | table-row | table-column-group | table-column |
            table-cell | table-caption | none | inherit) #IMPLIED
   filter %FilterValue; #IMPLIED
   image-rendering (auto | optimizeSpeed | optimizeQuality | inherit) #IMPLIED
   mask %MaskValue; #IMPLIED
   opacity %OpacityValue; #IMPLIED
   pointer-events (visiblePainted | visibleFill | visibleStroke | visible |
                   painted | fill | stroke | all | none | inherit) #IMPLIED
   shape-rendering (auto | optimizeSpeed | crispEdges | geometricPrecision | inherit) #IMPLIED
   text-rendering (auto | optimizeSpeed | optimizeLegibility | geometricPrecision | inherit) #IMPLIED
   visibility (visible | hidden | inherit) #IMPLIED ">
<!-- The following presentation attributes apply to 'image' elements. -->
<!ENTITY % PresentationAttributes-Images "color-profile CDATA #IMPLIED ">
<!--The following presentation attributes apply to 'feDiffuseLighting' and 'feSpecularLighting' elements. -->
<!ENTITY % PresentationAttributes-LightingEffects "lighting-color %SVGColor; #IMPLIED ">
<!-- The following presentation attributes apply to marker operations. -->
<!ENTITY % PresentationAttributes-Markers "marker-start %MarkerValue; #IMPLIED
   marker-mid %MarkerValue; #IMPLIED
   marker-end %MarkerValue; #IMPLIED ">
<!-- The following presentation attributes apply to text content elements. -->
<!ENTITY % PresentationAttributes-TextContentElements "alignment-baseline (baseline | top | before-edge | text-top | text-before-edge |
                        middle | bottom | after-edge | text-bottom | text-after-edge |
                        ideographic | lower | hanging | mathematical | inherit) #IMPLIED
   baseline-shift %BaselineShiftValue; #IMPLIED
   direction (ltr | rtl | inherit) #IMPLIED
   dominant-baseline (auto | autosense-script | no-change | reset|
                      ideographic | lower | hanging | mathematical | inherit ) #IMPLIED
   glyph-orientation-horizontal %GlyphOrientationHorizontalValue; #IMPLIED
   glyph-orientation-vertical %GlyphOrientationVerticalValue; #IMPLIED
   kerning %KerningValue; #IMPLIED
   letter-spacing %SpacingValue; #IMPLIED
   text-anchor (start | middle | end | inherit) #IMPLIED
   text-decoration %TextDecorationValue; #IMPLIED
   unicode-bidi (normal | embed | bidi-override | inherit) #IMPLIED
   word-spacing %SpacingValue; #IMPLIED ">
<!-- The following presentation attributes apply to 'text' elements. -->
<!ENTITY % PresentationAttributes-TextElements "writing-mode (lr-tb | rl-tb | tb-rl | lr | rl | tb | inherit) #IMPLIED ">
<!-- The following presentation attributes apply to elements that establish viewports. -->
<!ENTITY % PresentationAttributes-Viewports "clip %ClipValue; #IMPLIED
   overflow (visible | hidden | scroll | auto | inherit) #IMPLIED ">
<!--The following represents the complete list of presentation attributes. -->
<!ENTITY % PresentationAttributes-All "%PresentationAttributes-Color;
   %PresentationAttributes-Containers;
   %PresentationAttributes-feFlood;
   %PresentationAttributes-FillStroke;
   %PresentationAttributes-FilterPrimitives;
   %PresentationAttributes-FontSpecification;
   %PresentationAttributes-Gradients;
   %PresentationAttributes-Graphics;
   %PresentationAttributes-Images;
   %PresentationAttributes-LightingEffects;
   %PresentationAttributes-Markers;
   %PresentationAttributes-TextContentElements;
   %PresentationAttributes-TextElements;
   %PresentationAttributes-Viewports;">
<!-- ==============================================================
     ENTITY DECLARATIONS: DTD extensions 
     ============================================================== -->
<!-- Allow for extending the DTD with internal subset for 
     container and graphics elements -->
<!ENTITY % ceExt "">
<!ENTITY % geExt "">
<!-- ==============================================================
     DECLARATIONS CORRESPONDING TO: Document Structure 
     ============================================================== -->
<!ENTITY % svgExt "">
<!ELEMENT svg (desc|title|metadata|defs|
                   path|text|rect|circle|ellipse|line|polyline|polygon|
                   use|image|svg|g|view|switch|a|altGlyphDef|
                   script|style|symbol|marker|clipPath|mask|
                   linearGradient|radialGradient|pattern|filter|cursor|font|
                   animate|set|animateMotion|animateColor|animateTransform|
                   color-profile|font-face
                   %ceExt;%svgExt;)* >
<!ATTLIST svg
	xmlns CDATA #FIXED "http://www.w3.org/2000/svg"
    xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"
	%stdAttrs; 
	%testAttrs; 
	%langSpaceAttrs; 
	externalResourcesRequired %Boolean; #IMPLIED
	class %ClassList; #IMPLIED
	style %StyleSheet; #IMPLIED
	%PresentationAttributes-All; 
	viewBox %ViewBoxSpec; #IMPLIED
	preserveAspectRatio %PreserveAspectRatioSpec; "xMidYMid meet"
	zoomAndPan (disable | magnify) "magnify"
	%graphicsElementEvents; 
	%documentEvents; 
	version %Number; #FIXED "1.0"
	x %Coordinate; #IMPLIED
	y %Coordinate; #IMPLIED
	width %Length; #IMPLIED
	height %Length; #IMPLIED
	contentScriptType %ContentType; "text/ecmascript"
	contentStyleType %ContentType; "text/css"
>
<!ENTITY % gExt "">
<!ELEMENT g (desc|title|metadata|defs|
                   path|text|rect|circle|ellipse|line|polyline|polygon|
                   use|image|svg|g|view|switch|a|altGlyphDef|
                   script|style|symbol|marker|clipPath|mask|
                   linearGradient|radialGradient|pattern|filter|cursor|font|
                   animate|set|animateMotion|animateColor|animateTransform|
                   color-profile|font-face
                   %ceExt;%gExt;)* >
<!ATTLIST g
	%stdAttrs; 
	%testAttrs; 
	%langSpaceAttrs; 
	externalResourcesRequired %Boolean; #IMPLIED
	class %ClassList; #IMPLIED
	style %StyleSheet; #IMPLIED
	%PresentationAttributes-All; 
	transform %TransformList; #IMPLIED
	%graphicsElementEvents; 
>
<!ENTITY % defsExt "">
<!ELEMENT defs (desc|title|metadata|defs|
                   path|text|rect|circle|ellipse|line|polyline|polygon|
                   use|image|svg|g|view|switch|a|altGlyphDef|
                   script|style|symbol|marker|clipPath|mask|
                   linearGradient|radialGradient|pattern|filter|cursor|font|
                   animate|set|animateMotion|animateColor|animateTransform|
                   color-profile|font-face
                   %ceExt;%defsExt;)* >
<!ATTLIST defs
	%stdAttrs; 
	%testAttrs; 
	%langSpaceAttrs; 
	externalResourcesRequired %Boolean; #IMPLIED
	class %ClassList; #IMPLIED
	style %StyleSheet; #IMPLIED
	%PresentationAttributes-All; 
	transform %TransformList; #IMPLIED
	%graphicsElementEvents; 
>
<!ENTITY % descExt "">
<!ELEMENT desc (#PCDATA %descExt;)* >
<!ATTLIST desc
	%stdAttrs; 
	%langSpaceAttrs; 
	class %ClassList; #IMPLIED
	style %StyleSheet; #IMPLIED
	%StructuredText; 
>
<!ENTITY % titleExt "">
<!ELEMENT title (#PCDATA %titleExt;)* >
<!ATTLIST title
	%stdAttrs; 
	%langSpaceAttrs; 
	class %ClassList; #IMPLIED
	style %StyleSheet; #IMPLIED
	%StructuredText; 
>
<!ENTITY % symbolExt "">
<!ELEMENT symbol (desc|title|metadata|defs|
                   path|text|rect|circle|ellipse|line|polyline|polygon|
                   use|image|svg|g|view|switch|a|altGlyphDef|
                   script|style|symbol|marker|clipPath|mask|
                   linearGradient|radialGradient|pattern|filter|cursor|font|
                   animate|set|animateMotion|animateColor|animateTransform|
                   color-profile|font-face
                   %ceExt;%symbolExt;)* >
<!ATTLIST symbol
	%stdAttrs; 
	%langSpaceAttrs; 
	externalResourcesRequired %Boolean; #IMPLIED
	class %ClassList; #IMPLIED
	style %StyleSheet; #IMPLIED
	%PresentationAttributes-All; 
	viewBox %ViewBoxSpec; #IMPLIED
	preserveAspectRatio %PreserveAspectRatioSpec; "xMidYMid meet"
	%graphicsElementEvents; 
>
<!ENTITY % useExt "">
<!ELEMENT use (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
                   %geExt;%useExt;)*) >
<!ATTLIST use
	%stdAttrs; 
	%xlinkRefAttrsEmbed; 
	xlink:href %URI; #REQUIRED
	%testAttrs; 
	%langSpaceAttrs; 
	externalResourcesRequired %Boolean; #IMPLIED
	class %ClassList; #IMPLIED
	style %StyleSheet; #IMPLIED
	%PresentationAttributes-All; 
	transform %TransformList; #IMPLIED
	%graphicsElementEvents; 
	x %Coordinate; #IMPLIED
	y %Coordinate; #IMPLIED
	width %Length; #IMPLIED
	height %Length; #IMPLIED
>
<!ENTITY % imageExt "">
<!ELEMENT image (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
                   %geExt;%imageExt;)*) >
<!ATTLIST image
	%stdAttrs; 
	%xlinkRefAttrsEmbed; 
	xlink:href %URI; #REQUIRED
	%testAttrs; 
	%langSpaceAttrs; 
	externalResourcesRequired %Boolean; #IMPLIED
	class %ClassList; #IMPLIED
	style %StyleSheet; #IMPLIED
	%PresentationAttributes-Color; 
	%PresentationAttributes-Graphics; 
	%PresentationAttributes-Images; 
	%PresentationAttributes-Viewports; 
	transform %TransformList; #IMPLIED
	preserveAspectRatio %PreserveAspectRatioSpec; "xMidYMid meet"
	%graphicsElementEvents; 
	x %Coordinate; #IMPLIED
	y %Coordinate; #IMPLIED
	width %Length; #REQUIRED
	height %Length; #REQUIRED
>
<!ENTITY % switchExt "">
<!ELEMENT switch (%descTitleMetadata;,
                  (path|text|rect|circle|ellipse|line|polyline|polygon|
                   use|image|svg|g|switch|a|foreignObject|
                   animate|set|animateMotion|animateColor|animateTransform
                   %ceExt;%switchExt;)*) >
<!ATTLIST switch
	%stdAttrs; 
	%testAttrs; 
	%langSpaceAttrs; 
	externalResourcesRequired %Boolean; #IMPLIED
	class %ClassList; #IMPLIED
	style %StyleSheet; #IMPLIED
	%PresentationAttributes-All; 
	transform %TransformList; #IMPLIED
	%graphicsElementEvents; 
>
<!-- ==============================================================
     DECLARATIONS CORRESPONDING TO: Styling 
     ============================================================== -->
<!ELEMENT style (#PCDATA)>
<!ATTLIST style
	%stdAttrs; 
	xml:space (preserve) #FIXED "preserve"
	type %ContentType; #REQUIRED
	media %MediaDesc; #IMPLIED
	title %Text; #IMPLIED
>
<!-- ==============================================================
     DECLARATIONS CORRESPONDING TO: Paths
     ============================================================== -->
<!ENTITY % pathExt "">
<!ELEMENT path (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
                %geExt;%pathExt;)*) >
<!ATTLIST path
	%stdAttrs; 
	%testAttrs; 
	%langSpaceAttrs; 
	externalResourcesRequired %Boolean; #IMPLIED
	class %ClassList; #IMPLIED
	style %StyleSheet; #IMPLIED
	%PresentationAttributes-Color; 
	%PresentationAttributes-FillStroke; 
	%PresentationAttributes-Graphics; 
	%PresentationAttributes-Markers; 
	transform %TransformList; #IMPLIED
	%graphicsElementEvents; 
	d %PathData; #REQUIRED
	pathLength %Number; #IMPLIED
>
<!-- ==============================================================
     DECLARATIONS CORRESPONDING TO: Basic Shapes
     ============================================================== -->
<!ENTITY % rectExt "">
<!ELEMENT rect (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
                %geExt;%rectExt;)*) >
<!ATTLIST rect
	%stdAttrs; 
	%testAttrs; 
	%langSpaceAttrs; 
	externalResourcesRequired %Boolean; #IMPLIED
	class %ClassList; #IMPLIED
	style %StyleSheet; #IMPLIED
	%PresentationAttributes-Color; 
	%PresentationAttributes-FillStroke; 
	%PresentationAttributes-Graphics; 
	transform %TransformList; #IMPLIED
	%graphicsElementEvents; 
	x %Coordinate; #IMPLIED
	y %Coordinate; #IMPLIED
	width %Length; #REQUIRED
	height %Length; #REQUIRED
	rx %Length; #IMPLIED
	ry %Length; #IMPLIED
>
<!ENTITY % circleExt "">
<!ELEMENT circle (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
                %geExt;%circleExt;)*) >
<!ATTLIST circle
	%stdAttrs; 
	%testAttrs; 
	%langSpaceAttrs; 
	externalResourcesRequired %Boolean; #IMPLIED
	class %ClassList; #IMPLIED
	style %StyleSheet; #IMPLIED
	%PresentationAttributes-Color; 
	%PresentationAttributes-FillStroke; 
	%PresentationAttributes-Graphics; 
	transform %TransformList; #IMPLIED
	%graphicsElementEvents; 
	cx %Coordinate; #IMPLIED
	cy %Coordinate; #IMPLIED
	r %Length; #REQUIRED
>
<!ENTITY % ellipseExt "">
<!ELEMENT ellipse (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
                %geExt;%ellipseExt;)*) >
<!ATTLIST ellipse
	%stdAttrs; 
	%testAttrs; 
	%langSpaceAttrs; 
	externalResourcesRequired %Boolean; #IMPLIED
	class %ClassList; #IMPLIED
	style %StyleSheet; #IMPLIED
	%PresentationAttributes-Color; 
	%PresentationAttributes-FillStroke; 
	%PresentationAttributes-Graphics; 
	transform %TransformList; #IMPLIED
	%graphicsElementEvents; 
	cx %Coordinate; #IMPLIED
	cy %Coordinate; #IMPLIED
	rx %Length; #REQUIRED
	ry %Length; #REQUIRED
>
<!ENTITY % lineExt "">
<!ELEMENT line (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
                %geExt;%lineExt;)*) >
<!ATTLIST line
	%stdAttrs; 
	%testAttrs; 
	%langSpaceAttrs; 
	externalResourcesRequired %Boolean; #IMPLIED
	class %ClassList; #IMPLIED
	style %StyleSheet; #IMPLIED
	%PresentationAttributes-Color; 
	%PresentationAttributes-FillStroke; 
	%PresentationAttributes-Graphics; 
	%PresentationAttributes-Markers; 
	transform %TransformList; #IMPLIED
	%graphicsElementEvents; 
	x1 %Coordinate; #IMPLIED
	y1 %Coordinate; #IMPLIED
	x2 %Coordinate; #IMPLIED
	y2 %Coordinate; #IMPLIED
>
<!ENTITY % polylineExt "">
<!ELEMENT polyline (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
                %geExt;%polylineExt;)*) >
<!ATTLIST polyline
	%stdAttrs; 
	%testAttrs; 
	%langSpaceAttrs; 
	externalResourcesRequired %Boolean; #IMPLIED
	class %ClassList; #IMPLIED
	style %StyleSheet; #IMPLIED
	%PresentationAttributes-Color; 
	%PresentationAttributes-FillStroke; 
	%PresentationAttributes-Graphics; 
	%PresentationAttributes-Markers; 
	transform %TransformList; #IMPLIED
	%graphicsElementEvents; 
	points %Points; #REQUIRED
>
<!ENTITY % polygonExt "">
<!ELEMENT polygon (%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
                %geExt;%polygonExt;)*) >
<!ATTLIST polygon
	%stdAttrs; 
	%testAttrs; 
	%langSpaceAttrs; 
	externalResourcesRequired %Boolean; #IMPLIED
	class %ClassList; #IMPLIED
	style %StyleSheet; #IMPLIED
	%PresentationAttributes-Color; 
	%PresentationAttributes-FillStroke; 
	%PresentationAttributes-Graphics; 
	%PresentationAttributes-Markers; 
	transform %TransformList; #IMPLIED
	%graphicsElementEvents; 
	points %Points; #REQUIRED
>
<!-- ==============================================================
     DECLARATIONS CORRESPONDING TO: Text
     ============================================================== -->
<!ENTITY % textExt "">
<!ELEMENT text (#PCDATA|desc|title|metadata|
                tspan|tref|textPath|altGlyph|a|animate|set|
                animateMotion|animateColor|animateTransform
                %geExt;%textExt;)* >
<!ATTLIST text
	%stdAttrs; 
	%testAttrs; 
	%langSpaceAttrs; 
	externalResourcesRequired %Boolean; #IMPLIED
	class %ClassList; #IMPLIED
	style %StyleSheet; #IMPLIED
	%PresentationAttributes-Color; 
	%PresentationAttributes-FillStroke; 
	%PresentationAttributes-FontSpecification; 
	%PresentationAttributes-Graphics; 
	%PresentationAttributes-TextContentElements; 
	%PresentationAttributes-TextElements; 
	transform %TransformList; #IMPLIED
	%graphicsElementEvents; 
	x %Coordinates; #IMPLIED
	y %Coordinates; #IMPLIED
	dx %Lengths; #IMPLIED
	dy %Lengths; #IMPLIED
	rotate %Numbers; #IMPLIED
	textLength %Length; #IMPLIED
	lengthAdjust (spacing | spacingAndGlyphs) #IMPLIED
>
<!ENTITY % tspanExt "">
<!ELEMENT tspan (#PCDATA|desc|title|metadata|tspan|tref|altGlyph|a|animate|set|animateColor
                %tspanExt;)* >
<!ATTLIST tspan
	%stdAttrs; 
	%testAttrs; 
	%langSpaceAttrs; 
	externalResourcesRequired %Boolean; #IMPLIED
	class %ClassList; #IMPLIED
	style %StyleSheet; #IMPLIED
	%PresentationAttributes-Color; 
	%PresentationAttributes-FillStroke; 
	%PresentationAttributes-FontSpecification; 
	%PresentationAttributes-Graphics; 
	%PresentationAttributes-TextContentElements; 
	%graphicsElementEvents; 
	x %Coordinates; #IMPLIED
	y %Coordinates; #IMPLIED
	dx %Lengths; #IMPLIED
	dy %Lengths; #IMPLIED
	rotate %Numbers; #IMPLIED
	textLength %Length; #IMPLIED
	lengthAdjust (spacing | spacingAndGlyphs) #IMPLIED
>
<!ENTITY % trefExt "">
<!ELEMENT tref (desc|title|metadata|animate|set|animateColor
                %trefExt;)* >
<!ATTLIST tref
	%stdAttrs; 
	%xlinkRefAttrs; 
	xlink:href %URI; #REQUIRED
	%testAttrs; 
	%langSpaceAttrs; 
	externalResourcesRequired %Boolean; #IMPLIED
	class %ClassList; #IMPLIED
	style %StyleSheet; #IMPLIED
	%PresentationAttributes-Color; 
	%PresentationAttributes-FillStroke; 
	%PresentationAttributes-FontSpecification; 
	%PresentationAttributes-Graphics; 
	%PresentationAttributes-TextContentElements; 
	%graphicsElementEvents; 
	x %Coordinates; #IMPLIED
	y %Coordinates; #IMPLIED
	dx %Lengths; #IMPLIED
	dy %Lengths; #IMPLIED
	rotate %Numbers; #IMPLIED
	textLength %Length; #IMPLIED
	lengthAdjust (spacing | spacingAndGlyphs) #IMPLIED
>
<!ENTITY % textPathExt "">
<!ELEMENT textPath (#PCDATA|desc|title|metadata|tspan|tref|altGlyph|a|animate|set|animateColor
                %textPathExt;)* >
<!ATTLIST textPath
	%stdAttrs; 
	%xlinkRefAttrs; 
	xlink:href %URI; #REQUIRED
	%langSpaceAttrs; 
	%testAttrs; 
	externalResourcesRequired %Boolean; #IMPLIED
	class %ClassList; #IMPLIED
	style %StyleSheet; #IMPLIED
	%PresentationAttributes-Color; 
	%PresentationAttributes-FillStroke; 
	%PresentationAttributes-FontSpecification; 
	%PresentationAttributes-Graphics; 
	%PresentationAttributes-TextContentElements; 
	%graphicsElementEvents; 
	startOffset %Length; #IMPLIED
	textLength %Length; #IMPLIED
	lengthAdjust (spacing | spacingAndGlyphs) #IMPLIED
	method (align | stretch) #IMPLIED
	spacing (auto | exact) #IMPLIED
>
<!ENTITY % altGlyphExt "">
<!ELEMENT altGlyph (#PCDATA %altGlyphExt;)* >
<!ATTLIST altGlyph
	%stdAttrs; 
	%xlinkRefAttrs; 
	xlink:href %URI; #IMPLIED
	glyphRef CDATA #IMPLIED
	format CDATA #IMPLIED
	%testAttrs; 
	%langSpaceAttrs; 
	externalResourcesRequired %Boolean; #IMPLIED
	class %ClassList; #IMPLIED
	style %StyleSheet; #IMPLIED
	%PresentationAttributes-Color; 
	%PresentationAttributes-FillStroke; 
	%PresentationAttributes-FontSpecification; 
	%PresentationAttributes-Graphics; 
	%PresentationAttributes-TextContentElements; 
	%graphicsElementEvents; 
	x %Coordinates; #IMPLIED
	y %Coordinates; #IMPLIED
	dx %Lengths; #IMPLIED
	dy %Lengths; #IMPLIED
	rotate %Numbers; #IMPLIED
>
<!ENTITY % altGlyphDefExt "">
<!ELEMENT altGlyphDef ((glyphRef+|altGlyphItem+) %altGlyphDefExt;) >
<!ATTLIST altGlyphDef
	%stdAttrs; 
>
<!ENTITY % altGlyphItemExt "">
<!ELEMENT altGlyphItem (glyphRef+ %altGlyphItemExt;) >
<!ATTLIST altGlyphItem
	%stdAttrs; 
>
<!ELEMENT glyphRef EMPTY>
<!ATTLIST glyphRef
	%stdAttrs; 
	%xlinkRefAttrs; 
	xlink:href %URI; #IMPLIED
	class %ClassList; #IMPLIED
	style %StyleSheet; #IMPLIED
	%PresentationAttributes-FontSpecification; 
	glyphRef CDATA #IMPLIED
	format CDATA #IMPLIED
	x %Number; #IMPLIED
	y %Number; #IMPLIED
	dx %Number; #IMPLIED
	dy %Number; #IMPLIED
>
<!-- ==============================================================
     DECLARATIONS CORRESPONDING TO: Painting: Filling, Stroking and Marker Symbols 
     ============================================================== -->
<!ENTITY % markerExt "">
<!ELEMENT marker (desc|title|metadata|defs|
                   path|text|rect|circle|ellipse|line|polyline|polygon|
                   use|image|svg|g|view|switch|a|altGlyphDef|
                   script|style|symbol|marker|clipPath|mask|
                   linearGradient|radialGradient|pattern|filter|cursor|font|
                   animate|set|animateMotion|animateColor|animateTransform|
                   color-profile|font-face
                   %ceExt;%markerExt;)* >
<!ATTLIST marker
	%stdAttrs; 
	%langSpaceAttrs; 
	externalResourcesRequired %Boolean; #IMPLIED
	class %ClassList; #IMPLIED
	style %StyleSheet; #IMPLIED
	%PresentationAttributes-All; 
	viewBox %ViewBoxSpec; #IMPLIED
	preserveAspectRatio %PreserveAspectRatioSpec; "xMidYMid meet"
	refX %Coordinate; #IMPLIED
	refY %Coordinate; #IMPLIED
	markerUnits (strokeWidth | userSpaceOnUse) #IMPLIED
	markerWidth %Length; #IMPLIED
	markerHeight %Length; #IMPLIED
	orient CDATA #IMPLIED
>
<!-- ==============================================================
     DECLARATIONS CORRESPONDING TO: Color 
     ============================================================== -->
<!ELEMENT color-profile (%descTitleMetadata;)>
<!ATTLIST color-profile
	%stdAttrs; 
	%xlinkRefAttrs; 
	xlink:href %URI; #IMPLIED
	local CDATA #IMPLIED
	name CDATA #REQUIRED
	rendering-intent (auto | perceptual | relative-colorimetric | saturation | absolute-colorimetric) "auto"
>
<!-- ==============================================================
     DECLARATIONS CORRESPONDING TO: Gradients and Patterns 
     ============================================================== -->
<!ENTITY % linearGradientExt "">
<!ELEMENT linearGradient (%descTitleMetadata;,(stop|animate|set|animateTransform
                   %linearGradientExt;)*) >
<!ATTLIST linearGradient
	%stdAttrs; 
	%xlinkRefAttrs; 
	xlink:href %URI; #IMPLIED
	externalResourcesRequired %Boolean; #IMPLIED
	class %ClassList; #IMPLIED
	style %StyleSheet; #IMPLIED
	%PresentationAttributes-Color; 
	%PresentationAttributes-Gradients; 
	gradientUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
	gradientTransform %TransformList; #IMPLIED
	x1 %Coordinate; #IMPLIED
	y1 %Coordinate; #IMPLIED
	x2 %Coordinate; #IMPLIED
	y2 %Coordinate; #IMPLIED
	spreadMethod (pad | reflect | repeat) #IMPLIED
>
<!ENTITY % radialGradientExt "">
<!ELEMENT radialGradient (%descTitleMetadata;,(stop|animate|set|animateTransform
                   %radialGradientExt;)*) >
<!ATTLIST radialGradient
	%stdAttrs; 
	%xlinkRefAttrs; 
	xlink:href %URI; #IMPLIED
	externalResourcesRequired %Boolean; #IMPLIED
	class %ClassList; #IMPLIED
	style %StyleSheet; #IMPLIED
	%PresentationAttributes-Color; 
	%PresentationAttributes-Gradients; 
	gradientUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
	gradientTransform %TransformList; #IMPLIED
	cx %Coordinate; #IMPLIED
	cy %Coordinate; #IMPLIED
	r %Length; #IMPLIED
	fx %Coordinate; #IMPLIED
	fy %Coordinate; #IMPLIED
	spreadMethod (pad | reflect | repeat) #IMPLIED
>
<!ENTITY % stopExt "">
<!ELEMENT stop (animate|set|animateColor
                   %stopExt;)* >
<!ATTLIST stop
	%stdAttrs; 
	class %ClassList; #IMPLIED
	style %StyleSheet; #IMPLIED
	%PresentationAttributes-Color; 
	%PresentationAttributes-Gradients; 
	offset %NumberOrPercentage; #REQUIRED
>
<!ENTITY % patternExt "">
<!ELEMENT pattern (desc|title|metadata|defs|
                   path|text|rect|circle|ellipse|line|polyline|polygon|
                   use|image|svg|g|view|switch|a|altGlyphDef|
                   script|style|symbol|marker|clipPath|mask|
                   linearGradient|radialGradient|pattern|filter|cursor|font|
                   animate|set|animateMotion|animateColor|animateTransform|
                   color-profile|font-face
                   %ceExt;%patternExt;)* >
<!ATTLIST pattern
	%stdAttrs; 
	%xlinkRefAttrs; 
	xlink:href %URI; #IMPLIED
	%testAttrs; 
	%langSpaceAttrs; 
	externalResourcesRequired %Boolean; #IMPLIED
	class %ClassList; #IMPLIED
	style %StyleSheet; #IMPLIED
	%PresentationAttributes-All; 
	viewBox %ViewBoxSpec; #IMPLIED
	preserveAspectRatio %PreserveAspectRatioSpec; "xMidYMid meet"
	patternUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
	patternContentUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
	patternTransform %TransformList; #IMPLIED
	x %Coordinate; #IMPLIED
	y %Coordinate; #IMPLIED
	width %Length; #IMPLIED
	height %Length; #IMPLIED
>
<!-- ==============================================================
     DECLARATIONS CORRESPONDING TO: Clipping, Masking and Compositing 
     ============================================================== -->
<!ENTITY % clipPathExt "">
<!ELEMENT clipPath (%descTitleMetadata;,
                    (path|text|rect|circle|ellipse|line|polyline|polygon|
                     use|animate|set|animateMotion|animateColor|animateTransform
                     %ceExt;%clipPathExt;)*) >
<!ATTLIST clipPath
	%stdAttrs; 
	%testAttrs; 
	%langSpaceAttrs; 
	externalResourcesRequired %Boolean; #IMPLIED
	class %ClassList; #IMPLIED
	style %StyleSheet; #IMPLIED
	%PresentationAttributes-Color; 
	%PresentationAttributes-FillStroke; 
	%PresentationAttributes-FontSpecification; 
	%PresentationAttributes-Graphics; 
	%PresentationAttributes-TextContentElements; 
	%PresentationAttributes-TextElements; 
	transform %TransformList; #IMPLIED
	clipPathUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
>
<!ENTITY % maskExt "">
<!ELEMENT mask (desc|title|metadata|defs|
                   path|text|rect|circle|ellipse|line|polyline|polygon|
                   use|image|svg|g|view|switch|a|altGlyphDef|
                   script|style|symbol|marker|clipPath|mask|
                   linearGradient|radialGradient|pattern|filter|cursor|font|
                   animate|set|animateMotion|animateColor|animateTransform|
                   color-profile|font-face
                   %ceExt;%maskExt;)*  >
<!ATTLIST mask
	%stdAttrs; 
	%testAttrs; 
	%langSpaceAttrs; 
	externalResourcesRequired %Boolean; #IMPLIED
	class %ClassList; #IMPLIED
	style %StyleSheet; #IMPLIED
	%PresentationAttributes-All; 
	maskUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
	maskContentUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
	x %Coordinate; #IMPLIED
	y %Coordinate; #IMPLIED
	width %Length; #IMPLIED
	height %Length; #IMPLIED
>
<!-- ==============================================================
     DECLARATIONS CORRESPONDING TO: Filter Effects
     ============================================================== -->
<!ENTITY % filterExt "">
<!ELEMENT filter (%descTitleMetadata;,(feBlend|feFlood|
  feColorMatrix|feComponentTransfer|
  feComposite|feConvolveMatrix|feDiffuseLighting|feDisplacementMap|
  feGaussianBlur|feImage|feMerge|
  feMorphology|feOffset|feSpecularLighting|
  feTile|feTurbulence|
  animate|set
  %filterExt;)*) >
<!ATTLIST filter
	%stdAttrs; 
	%xlinkRefAttrs; 
	xlink:href %URI; #IMPLIED
	%langSpaceAttrs; 
	externalResourcesRequired %Boolean; #IMPLIED
	class %ClassList; #IMPLIED
	style %StyleSheet; #IMPLIED
	%PresentationAttributes-All; 
	filterUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
	primitiveUnits (userSpaceOnUse | objectBoundingBox) #IMPLIED
	x %Coordinate; #IMPLIED
	y %Coordinate; #IMPLIED
	width %Length; #IMPLIED
	height %Length; #IMPLIED
	filterRes %NumberOptionalNumber; #IMPLIED
>
<!ENTITY % filter_primitive_attributes "x %Coordinate; #IMPLIED
   y %Coordinate; #IMPLIED
   width %Length; #IMPLIED
   height %Length; #IMPLIED
   result CDATA #IMPLIED">
<!ENTITY % filter_primitive_attributes_with_in "%filter_primitive_attributes;
   in CDATA #IMPLIED">
<!ELEMENT feDistantLight (animate | set)*>
<!ATTLIST feDistantLight
	%stdAttrs; 
	azimuth %Number; #IMPLIED
	elevation %Number; #IMPLIED
>
<!ELEMENT fePointLight (animate | set)*>
<!ATTLIST fePointLight
	%stdAttrs; 
	x %Number; #IMPLIED
	y %Number; #IMPLIED
	z %Number; #IMPLIED
>
<!ELEMENT feSpotLight (animate | set)*>
<!ATTLIST feSpotLight
	%stdAttrs; 
	x %Number; #IMPLIED
	y %Number; #IMPLIED
	z %Number; #IMPLIED
	pointsAtX %Number; #IMPLIED
	pointsAtY %Number; #IMPLIED
	pointsAtZ %Number; #IMPLIED
	specularExponent %Number; #IMPLIED
	limitingConeAngle %Number; #IMPLIED
>
<!ELEMENT feBlend (animate | set)*>
<!ATTLIST feBlend
	%stdAttrs; 
	%PresentationAttributes-FilterPrimitives; 
	%filter_primitive_attributes_with_in; 
	in2 CDATA #REQUIRED
	mode (normal | multiply | screen | darken | lighten) "normal"
>
<!ELEMENT feColorMatrix (animate | set)*>
<!ATTLIST feColorMatrix
	%stdAttrs; 
	%PresentationAttributes-FilterPrimitives; 
	%filter_primitive_attributes_with_in; 
	type (matrix | saturate | hueRotate | luminanceToAlpha) "matrix"
	values CDATA #IMPLIED
>
<!ELEMENT feComponentTransfer (feFuncR?, feFuncG?, feFuncB?, feFuncA?)>
<!ATTLIST feComponentTransfer
	%stdAttrs; 
	%PresentationAttributes-FilterPrimitives; 
	%filter_primitive_attributes_with_in; 
>
<!ENTITY % component_transfer_function_attributes "type (identity | table | discrete | linear | gamma) #REQUIRED
   tableValues CDATA #IMPLIED
   slope %Number; #IMPLIED
   intercept %Number; #IMPLIED
   amplitude %Number; #IMPLIED
   exponent %Number; #IMPLIED
   offset %Number; #IMPLIED">
<!ELEMENT feFuncR (animate | set)*>
<!ATTLIST feFuncR
	%stdAttrs; 
	%component_transfer_function_attributes; 
>
<!ELEMENT feFuncG (animate | set)*>
<!ATTLIST feFuncG
	%stdAttrs; 
	%component_transfer_function_attributes; 
>
<!ELEMENT feFuncB (animate | set)*>
<!ATTLIST feFuncB
	%stdAttrs; 
	%component_transfer_function_attributes; 
>
<!ELEMENT feFuncA (animate | set)*>
<!ATTLIST feFuncA
	%stdAttrs; 
	%component_transfer_function_attributes; 
>
<!ELEMENT feComposite (animate | set)*>
<!ATTLIST feComposite
	%stdAttrs; 
	%PresentationAttributes-FilterPrimitives; 
	%filter_primitive_attributes_with_in; 
	in2 CDATA #REQUIRED
	operator (over | in | out | atop | xor | arithmetic) "over"
	k1 %Number; #IMPLIED
	k2 %Number; #IMPLIED
	k3 %Number; #IMPLIED
	k4 %Number; #IMPLIED
>
<!ELEMENT feConvolveMatrix (animate | set)*>
<!ATTLIST feConvolveMatrix
	%stdAttrs; 
	%PresentationAttributes-FilterPrimitives; 
	%filter_primitive_attributes_with_in; 
	order %NumberOptionalNumber; #REQUIRED
	kernelMatrix CDATA #REQUIRED
	divisor %Number; #IMPLIED
	bias %Number; #IMPLIED
	targetX %Integer; #IMPLIED
	targetY %Integer; #IMPLIED
	edgeMode (duplicate | wrap | none) "duplicate"
	kernelUnitLength %NumberOptionalNumber; #IMPLIED
	preserveAlpha %Boolean; #IMPLIED
>
<!ELEMENT feDiffuseLighting ((feDistantLight | fePointLight | feSpotLight), (animate | set | animateColor)*)>
<!ATTLIST feDiffuseLighting
	%stdAttrs; 
	class %ClassList; #IMPLIED
	style %StyleSheet; #IMPLIED
	%PresentationAttributes-Color; 
	%PresentationAttributes-FilterPrimitives; 
	%PresentationAttributes-LightingEffects; 
	%filter_primitive_attributes_with_in; 
	surfaceScale %Number; #IMPLIED
	diffuseConstant %Number; #IMPLIED
	kernelUnitLength %NumberOptionalNumber; #IMPLIED
>
<!ELEMENT feDisplacementMap (animate | set)*>
<!ATTLIST feDisplacementMap
	%stdAttrs; 
	%PresentationAttributes-FilterPrimitives; 
	%filter_primitive_attributes_with_in; 
	in2 CDATA #REQUIRED
	scale %Number; #IMPLIED
	xChannelSelector (R | G | B | A) "A"
	yChannelSelector (R | G | B | A) "A"
>
<!ELEMENT feFlood (animate | set | animateColor)*>
<!ATTLIST feFlood
	%stdAttrs; 
	class %ClassList; #IMPLIED
	style %StyleSheet; #IMPLIED
	%PresentationAttributes-Color; 
	%PresentationAttributes-feFlood; 
	%PresentationAttributes-FilterPrimitives; 
	%filter_primitive_attributes_with_in; 
>
<!ELEMENT feGaussianBlur (animate | set)*>
<!ATTLIST feGaussianBlur
	%stdAttrs; 
	%PresentationAttributes-FilterPrimitives; 
	%filter_primitive_attributes_with_in; 
	stdDeviation %NumberOptionalNumber; #IMPLIED
>
<!ELEMENT feImage (animate | set | animateTransform)*>
<!ATTLIST feImage
	%stdAttrs; 
	%xlinkRefAttrsEmbed; 
	xlink:href %URI; #REQUIRED
	%langSpaceAttrs; 
	externalResourcesRequired %Boolean; #IMPLIED
	class %ClassList; #IMPLIED
	style %StyleSheet; #IMPLIED
	%PresentationAttributes-All; 
	%filter_primitive_attributes;
>
<!ELEMENT feMerge (feMergeNode)*>
<!ATTLIST feMerge
	%stdAttrs; 
	%PresentationAttributes-FilterPrimitives; 
	%filter_primitive_attributes; 
>
<!ELEMENT feMergeNode (animate | set)*>
<!ATTLIST feMergeNode
	%stdAttrs; 
	in CDATA #IMPLIED
>
<!ELEMENT feMorphology (animate | set)*>
<!ATTLIST feMorphology
	%stdAttrs; 
	%PresentationAttributes-FilterPrimitives; 
	%filter_primitive_attributes_with_in; 
	operator (erode | dilate) "erode"
	radius %NumberOptionalNumber; #IMPLIED
>
<!ELEMENT feOffset (animate | set)*>
<!ATTLIST feOffset
	%stdAttrs; 
	%PresentationAttributes-FilterPrimitives; 
	%filter_primitive_attributes_with_in; 
	dx %Number; #IMPLIED
	dy %Number; #IMPLIED
>
<!ELEMENT feSpecularLighting ((feDistantLight | fePointLight | feSpotLight), (animate | set | animateColor)*)>
<!ATTLIST feSpecularLighting
	%stdAttrs; 
	class %ClassList; #IMPLIED
	style %StyleSheet; #IMPLIED
	%PresentationAttributes-Color; 
	%PresentationAttributes-FilterPrimitives; 
	%PresentationAttributes-LightingEffects; 
	%filter_primitive_attributes_with_in; 
	surfaceScale %Number; #IMPLIED
	specularConstant %Number; #IMPLIED
	specularExponent %Number; #IMPLIED
	kernelUnitLength %NumberOptionalNumber; #IMPLIED
>
<!ELEMENT feTile (animate | set)*>
<!ATTLIST feTile
	%stdAttrs; 
	%PresentationAttributes-FilterPrimitives; 
	%filter_primitive_attributes_with_in; 
>
<!ELEMENT feTurbulence (animate | set)*>
<!ATTLIST feTurbulence
	%stdAttrs; 
	%PresentationAttributes-FilterPrimitives; 
	%filter_primitive_attributes; 
	baseFrequency %NumberOptionalNumber; #IMPLIED
	numOctaves %Integer; #IMPLIED
	seed %Number; #IMPLIED
	stitchTiles (stitch | noStitch) "noStitch"
	type (fractalNoise | turbulence) "turbulence"
>
<!-- ==============================================================
     DECLARATIONS CORRESPONDING TO: Interactivity 
     ============================================================== -->
<!ELEMENT cursor (%descTitleMetadata;)>
<!ATTLIST cursor
	%stdAttrs; 
	%xlinkRefAttrs; 
	xlink:href %URI; #REQUIRED
	%testAttrs; 
	externalResourcesRequired %Boolean; #IMPLIED
	x %Coordinate; #IMPLIED
	y %Coordinate; #IMPLIED
>
<!-- ==============================================================
     DECLARATIONS CORRESPONDING TO: Linking
     ============================================================== -->
<!ENTITY % aExt "">
<!ELEMENT a (#PCDATA|desc|title|metadata|defs|
                   path|text|rect|circle|ellipse|line|polyline|polygon|
                   use|image|svg|g|view|switch|a|altGlyphDef|
                   script|style|symbol|marker|clipPath|mask|
                   linearGradient|radialGradient|pattern|filter|cursor|font|
                   animate|set|animateMotion|animateColor|animateTransform|
                   color-profile|font-face
                   %ceExt;%aExt;)* >
<!ATTLIST a
	%stdAttrs; 
	xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"
	xlink:type (simple) #FIXED "simple"
	xlink:role %URI; #IMPLIED
	xlink:arcrole %URI; #IMPLIED
	xlink:title CDATA #IMPLIED
	xlink:show (new | replace) "replace"
	xlink:actuate (onRequest) #FIXED "onRequest"
	xlink:href %URI; #REQUIRED
	%testAttrs; 
	%langSpaceAttrs; 
	externalResourcesRequired %Boolean; #IMPLIED
	class %ClassList; #IMPLIED
	style %StyleSheet; #IMPLIED
	%PresentationAttributes-All; 
	transform %TransformList; #IMPLIED
	%graphicsElementEvents; 
	target %LinkTarget; #IMPLIED
>
<!ENTITY % viewExt "">
<!ELEMENT view (%descTitleMetadata;%viewExt;) >
<!ATTLIST view
	%stdAttrs; 
	externalResourcesRequired %Boolean; #IMPLIED
	viewBox %ViewBoxSpec; #IMPLIED
	preserveAspectRatio %PreserveAspectRatioSpec; "xMidYMid meet"
	zoomAndPan (disable | magnify) "magnify"
	viewTarget CDATA #IMPLIED
>
<!-- ==============================================================
     DECLARATIONS CORRESPONDING TO: Scripting 
     ============================================================== -->
<!ELEMENT script (#PCDATA)>
<!ATTLIST script
	%stdAttrs; 
	%xlinkRefAttrs; 
	xlink:href %URI; #IMPLIED
	externalResourcesRequired %Boolean; #IMPLIED
	type %ContentType; #REQUIRED
>
<!-- ==============================================================
     DECLARATIONS CORRESPONDING TO: Animation 
     ============================================================== -->
<!ENTITY % animElementAttrs "%xlinkRefAttrs;
  xlink:href %URI; #IMPLIED">
<!ENTITY % animAttributeAttrs "attributeName  CDATA  #REQUIRED
  attributeType  CDATA  #IMPLIED">
<!ENTITY % animTimingAttrs "begin CDATA #IMPLIED 
  dur CDATA #IMPLIED
  end CDATA #IMPLIED
  min CDATA #IMPLIED
  max CDATA #IMPLIED
  restart (always | never | whenNotActive) 'always'
  repeatCount CDATA #IMPLIED 
  repeatDur CDATA #IMPLIED
  fill (remove | freeze) 'remove'">
<!ENTITY % animValueAttrs "calcMode (discrete | linear | paced | spline) 'linear'
  values CDATA #IMPLIED
  keyTimes CDATA #IMPLIED
  keySplines CDATA #IMPLIED
  from CDATA #IMPLIED
  to CDATA #IMPLIED
  by CDATA #IMPLIED">
<!ENTITY % animAdditionAttrs "additive       (replace | sum) 'replace'
  accumulate     (none | sum) 'none'">
<!ENTITY % animateExt "">
<!ELEMENT animate (%descTitleMetadata;%animateExt;) >
<!ATTLIST animate
	%stdAttrs; 
	%testAttrs; 
	externalResourcesRequired %Boolean; #IMPLIED
	%animationEvents; 
	%animElementAttrs; 
	%animAttributeAttrs; 
	%animTimingAttrs; 
	%animValueAttrs; 
	%animAdditionAttrs; 
>
<!ENTITY % setExt "">
<!ELEMENT set (%descTitleMetadata;%setExt;) >
<!ATTLIST set
	%stdAttrs; 
	%testAttrs; 
	externalResourcesRequired %Boolean; #IMPLIED
	%animationEvents; 
	%animElementAttrs; 
	%animAttributeAttrs; 
	%animTimingAttrs; 
	to CDATA #IMPLIED
>
<!ENTITY % animateMotionExt "">
<!ELEMENT animateMotion (%descTitleMetadata;,mpath? %animateMotionExt;) >
<!ATTLIST animateMotion
	%stdAttrs; 
	%testAttrs; 
	externalResourcesRequired %Boolean; #IMPLIED
	%animationEvents; 
	%animElementAttrs; 
	%animTimingAttrs; 
	calcMode (discrete | linear | paced | spline) "paced"
	values CDATA #IMPLIED
	keyTimes CDATA #IMPLIED
	keySplines CDATA #IMPLIED
	from CDATA #IMPLIED
	to CDATA #IMPLIED
	by CDATA #IMPLIED
	%animAdditionAttrs; 
	path CDATA #IMPLIED
	keyPoints CDATA #IMPLIED
	rotate CDATA #IMPLIED
	origin CDATA #IMPLIED
>
<!ENTITY % mpathExt "">
<!ELEMENT mpath (%descTitleMetadata;%mpathExt;) >
<!ATTLIST mpath
	%stdAttrs; 
	%xlinkRefAttrs; 
	xlink:href %URI; #REQUIRED
	externalResourcesRequired %Boolean; #IMPLIED
>
<!ENTITY % animateColorExt "">
<!ELEMENT animateColor (%descTitleMetadata;%animateColorExt;) >
<!ATTLIST animateColor
	%stdAttrs; 
	%testAttrs; 
	externalResourcesRequired %Boolean; #IMPLIED
	%animationEvents; 
	%animElementAttrs; 
	%animAttributeAttrs; 
	%animTimingAttrs; 
	%animValueAttrs; 
	%animAdditionAttrs; 
>
<!ENTITY % animateTransformExt "">
<!ELEMENT animateTransform (%descTitleMetadata;%animateTransformExt;) >
<!ATTLIST animateTransform
	%stdAttrs; 
	%testAttrs; 
	externalResourcesRequired %Boolean; #IMPLIED
	%animationEvents; 
	%animElementAttrs; 
	%animAttributeAttrs; 
	%animTimingAttrs; 
	%animValueAttrs; 
	%animAdditionAttrs; 
	type (translate | scale | rotate | skewX | skewY) "translate"
>
<!-- ==============================================================
     DECLARATIONS CORRESPONDING TO: Fonts 
     ============================================================== -->
<!ENTITY % fontExt "">
<!ELEMENT font (%descTitleMetadata;,font-face,
                   missing-glyph,(glyph|hkern|vkern %fontExt;)*) >
<!ATTLIST font
	%stdAttrs; 
	externalResourcesRequired %Boolean; #IMPLIED
	class %ClassList; #IMPLIED
	style %StyleSheet; #IMPLIED
	%PresentationAttributes-All; 
	horiz-origin-x %Number; #IMPLIED
	horiz-origin-y %Number; #IMPLIED
	horiz-adv-x %Number; #REQUIRED
	vert-origin-x %Number; #IMPLIED
	vert-origin-y %Number; #IMPLIED
	vert-adv-y %Number; #IMPLIED
>
<!ENTITY % glyphExt "">
<!ELEMENT glyph (desc|title|metadata|defs|
                   path|text|rect|circle|ellipse|line|polyline|polygon|
                   use|image|svg|g|view|switch|a|altGlyphDef|
                   script|style|symbol|marker|clipPath|mask|
                   linearGradient|radialGradient|pattern|filter|cursor|font|
                   animate|set|animateMotion|animateColor|animateTransform|
                   color-profile|font-face
                   %glyphExt;)* >
<!ATTLIST glyph
	%stdAttrs; 
	class %ClassList; #IMPLIED
	style %StyleSheet; #IMPLIED
	%PresentationAttributes-All; 
	unicode CDATA #IMPLIED
	glyph-name CDATA #IMPLIED
	d %PathData; #IMPLIED
	orientation CDATA #IMPLIED
	arabic-form CDATA #IMPLIED
	lang %LanguageCodes; #IMPLIED
	horiz-adv-x %Number; #IMPLIED
	vert-origin-x %Number; #IMPLIED
	vert-origin-y %Number; #IMPLIED
	vert-adv-y %Number; #IMPLIED
>
<!ENTITY % missing-glyphExt "">
<!ELEMENT missing-glyph (desc|title|metadata|defs|
                   path|text|rect|circle|ellipse|line|polyline|polygon|
                   use|image|svg|g|view|switch|a|altGlyphDef|
                   script|style|symbol|marker|clipPath|mask|
                   linearGradient|radialGradient|pattern|filter|cursor|font|
                   animate|set|animateMotion|animateColor|animateTransform|
                   color-profile|font-face
                   %missing-glyphExt;)* >
<!ATTLIST missing-glyph
	%stdAttrs; 
	class %ClassList; #IMPLIED
	style %StyleSheet; #IMPLIED
	%PresentationAttributes-All; 
	d %PathData; #IMPLIED
	horiz-adv-x %Number; #IMPLIED
	vert-origin-x %Number; #IMPLIED
	vert-origin-y %Number; #IMPLIED
	vert-adv-y %Number; #IMPLIED
>
<!ELEMENT hkern EMPTY>
<!ATTLIST hkern
	%stdAttrs; 
	u1 CDATA #IMPLIED
	g1 CDATA #IMPLIED
	u2 CDATA #IMPLIED
	g2 CDATA #IMPLIED
	k %Number; #REQUIRED
>
<!ELEMENT vkern EMPTY>
<!ATTLIST vkern
	%stdAttrs; 
	u1 CDATA #IMPLIED
	g1 CDATA #IMPLIED
	u2 CDATA #IMPLIED
	g2 CDATA #IMPLIED
	k %Number; #REQUIRED
>
<!ELEMENT font-face (%descTitleMetadata;, font-face-src?, definition-src?)>
<!ATTLIST font-face
	%stdAttrs; 
	font-family CDATA #IMPLIED
	font-style CDATA #IMPLIED
	font-variant CDATA #IMPLIED
	font-weight CDATA #IMPLIED
	font-stretch CDATA #IMPLIED
	font-size CDATA #IMPLIED
	unicode-range CDATA #IMPLIED
	units-per-em %Number; #IMPLIED
	panose-1 CDATA #IMPLIED
	stemv %Number; #IMPLIED
	stemh %Number; #IMPLIED
	slope %Number; #IMPLIED
	cap-height %Number; #IMPLIED
	x-height %Number; #IMPLIED
	accent-height %Number; #IMPLIED
	ascent %Number; #IMPLIED
	descent %Number; #IMPLIED
	widths CDATA #IMPLIED
	bbox CDATA #IMPLIED
	ideographic %Number; #IMPLIED
	alphabetic %Number; #IMPLIED
	mathematical %Number; #IMPLIED
	hanging %Number; #IMPLIED
	v-ideographic %Number; #IMPLIED
	v-alphabetic %Number; #IMPLIED
	v-mathematical %Number; #IMPLIED
	v-hanging %Number; #IMPLIED
	underline-position %Number; #IMPLIED
	underline-thickness %Number; #IMPLIED
	strikethrough-position %Number; #IMPLIED
	strikethrough-thickness %Number; #IMPLIED
	overline-position %Number; #IMPLIED
	overline-thickness %Number; #IMPLIED
>
<!ELEMENT font-face-src (font-face-uri | font-face-name)+>
<!ATTLIST font-face-src
	%stdAttrs; 
>
<!ELEMENT font-face-uri (font-face-format*)>
<!ATTLIST font-face-uri
	%stdAttrs; 
	%xlinkRefAttrs; 
	xlink:href %URI; #REQUIRED
>
<!ELEMENT font-face-format EMPTY>
<!ATTLIST font-face-format
	%stdAttrs; 
	string CDATA #IMPLIED
>
<!ELEMENT font-face-name EMPTY>
<!ATTLIST font-face-name
	%stdAttrs; 
	name CDATA #IMPLIED
>
<!ELEMENT definition-src EMPTY>
<!ATTLIST definition-src
	%stdAttrs; 
	%xlinkRefAttrs; 
	xlink:href %URI; #REQUIRED
>
<!-- ==============================================================
     DECLARATIONS CORRESPONDING TO: Metadata 
     ============================================================== -->
<!ENTITY % metadataExt "">
<!ELEMENT metadata (#PCDATA %metadataExt;)* >
<!ATTLIST metadata
	%stdAttrs; 
>
<!-- ==============================================================
     DECLARATIONS CORRESPONDING TO: Extensibility 
     ============================================================== -->
<!ENTITY % foreignObjectExt "">
<!ELEMENT foreignObject (#PCDATA %ceExt;%foreignObjectExt;)* >
<!ATTLIST foreignObject
	%stdAttrs; 
	%testAttrs; 
	%langSpaceAttrs; 
	externalResourcesRequired %Boolean; #IMPLIED
	class %ClassList; #IMPLIED
	style %StyleSheet; #IMPLIED
	%PresentationAttributes-All; 
	transform %TransformList; #IMPLIED
	%graphicsElementEvents; 
	x %Coordinate; #IMPLIED
	y %Coordinate; #IMPLIED
	width %Length; #REQUIRED
	height %Length; #REQUIRED
	%StructuredText; 
>
