{-# LANGUAGE  MultiParamTypeClasses,  FunctionalDependencies #-}

-- | 
-- Module      : Text.CHXHtml.XHtml1_frameset
-- Copyright   : (c) Paul Talaga 2010,
--
-- License     : BSD-style
--
-- Maintainer  : paul@fuzzpault.com
-- Stability   : experimental
-- Portability : portable
--
--  Description : CHXHtml (Compliant Haskell XHtml) produces W3C valid XHTML1 strict content by building a datastructure based on the DTD.  
--  Nesting and allowed tags are limited at compile time by recursive types.  Required children and child ordering can be reported at runtime by the
--  @chidErrors function.
--
--  To simplify usage, type classes are used to substitute the correct constructor for the given context, or throw a type error if the tag is not allowed in that context.
--  As a result, a single function exists per tag as well as attribute names.
--
--  Each tag has two variants, one with and one without taking parameters, specified as @_{tag} [{children tags}]@ or @{tag}_ [{attributes}] [{children tags}]@.
--  Underscores prevents namespace conflicts with @Prelude@ as well as cleaning up the syntax otherwise present using import qualified.
--
--  Textual data is entered with the function @pcdata "String"@ wherever pcdata is allowed.  pcdata is HTML excaped for safety.
--  For speed the variant @pcdata_bs "Data.ByteString"@ can be used which bypasses excaping.
--  A handful of character entities (",&,<,>,©,®, ,) can also be used wherever pcdata is allowed by using 
--  the functions: @ce_quot@,@ce_amp@,@ce_lt@,@ce_gt@,@ce_copy@,@ce_reg@,@ce_nbsp@,
--
--  Attributes are specified by the functions  @{attribute name}_att@, followed by its value of the correct type.  See below for specifics.
--  For W3C compliance only the last attribute will be used if duplicate names exist.
--
--  Rendering to a "String" is done with the 'render' function, or to a "Data.ByteString" via the 'render_bs' function.  Note that "Data.ByteString" is significatly faster than Strings.
--
--  Under the hood we use a myriad of datatypes for tags and attributes whos details have been omitted below for brevity.  To assist in selecting allowed tags and attributes
--  'htmlHelp' is provided which produces allowed children and attributes given a tag's nesting position.  See 'htmlHelp' below for usage.
--
--
module Text.CHXHtml.XHtml1_frameset(  
    -- * Validation
 childErrors,
    -- * Tag & Attribute Help
 htmlHelp,
    -- * Rendering
 render, render_bs,    -- * Tags
pcdata, pcdata_bs,s2b, _html, html_,_a ,a_ ,_abbr ,abbr_ ,_acronym ,acronym_ ,_address ,address_ ,_applet ,applet_ ,_area ,area_ ,_b ,b_ ,_base ,base_ ,_basefont ,basefont_ ,_bdo ,bdo_ ,_big ,big_ ,_blockquote ,blockquote_ ,_body ,body_ ,_br ,br_ ,_button ,button_ ,_caption ,caption_ ,_center ,center_ ,_cite ,cite_ ,_code ,code_ ,_col ,col_ ,_colgroup ,colgroup_ ,_dd ,dd_ ,_del ,del_ ,_dfn ,dfn_ ,_dir ,dir_ ,_div ,div_ ,_dl ,dl_ ,_dt ,dt_ ,_em ,em_ ,_fieldset ,fieldset_ ,_font ,font_ ,_form ,form_ ,_frame ,frame_ ,_frameset ,frameset_ ,_h1 ,h1_ ,_h2 ,h2_ ,_h3 ,h3_ ,_h4 ,h4_ ,_h5 ,h5_ ,_h6 ,h6_ ,_head ,head_ ,_hr ,hr_ ,_i ,i_ ,_iframe ,iframe_ ,_img ,img_ ,_input ,input_ ,_ins ,ins_ ,_isindex ,isindex_ ,_kbd ,kbd_ ,_label ,label_ ,_legend ,legend_ ,_li ,li_ ,_link ,link_ ,_map ,map_ ,_menu ,menu_ ,_meta ,meta_ ,_noframes ,noframes_ ,_noscript ,noscript_ ,_object ,object_ ,_ol ,ol_ ,_optgroup ,optgroup_ ,_option ,option_ ,_p ,p_ ,_param ,param_ ,_pre ,pre_ ,_q ,q_ ,_s ,s_ ,_samp ,samp_ ,_script ,script_ ,_select ,select_ ,_small ,small_ ,_span ,span_ ,_strike ,strike_ ,_strong ,strong_ ,_style ,style_ ,_sub ,sub_ ,_sup ,sup_ ,_table ,table_ ,_tbody ,tbody_ ,_td ,td_ ,_textarea ,textarea_ ,_tfoot ,tfoot_ ,_th ,th_ ,_thead ,thead_ ,_title ,title_ ,_tr ,tr_ ,_tt ,tt_ ,_u ,u_ ,_ul ,ul_ ,_var ,var_ ,
    -- * Attributes
http_equiv_att, http_equiv_att_bs,nohref_att, onkeydown_att, onkeydown_att_bs,target_att, target_att_bs,onkeyup_att, onkeyup_att_bs,onreset_att, onreset_att_bs,code_att, code_att_bs,valign_att, name_att, name_att_bs,charset_att, charset_att_bs,prompt_att, prompt_att_bs,accept_charset_att, accept_charset_att_bs,rev_att, rev_att_bs,title_att, title_att_bs,start_att, start_att_bs,enctype_att, enctype_att_bs,usemap_att, usemap_att_bs,nowrap_att, coords_att, coords_att_bs,onblur_att, onblur_att_bs,datetime_att, datetime_att_bs,dir_att, color_att, color_att_bs,vspace_att, vspace_att_bs,background_att, background_att_bs,height_att, height_att_bs,char_att, char_att_bs,codebase_att, codebase_att_bs,profile_att, profile_att_bs,rel_att, rel_att_bs,onsubmit_att, onsubmit_att_bs,marginwidth_att, marginwidth_att_bs,abbr_att, abbr_att_bs,onchange_att, onchange_att_bs,href_att, href_att_bs,id_att, id_att_bs,value_att, value_att_bs,data_att, data_att_bs,declare_att, type_att, type_att_bs,headers_att, headers_att_bs,object_att, object_att_bs,noresize_att, rowspan_att, rowspan_att_bs,defer_att, cellspacing_att, cellspacing_att_bs,charoff_att, charoff_att_bs,accept_att, accept_att_bs,alt_att, alt_att_bs,onmouseout_att, onmouseout_att_bs,border_att, border_att_bs,onunload_att, onunload_att_bs,cellpadding_att, cellpadding_att_bs,valuetype_att, content_att, content_att_bs,clear_att, onmouseup_att, onmouseup_att_bs,scope_att, onmouseover_att, onmouseover_att_bs,lang_att, lang_att_bs,align_att, scheme_att, scheme_att_bs,frameborder_att, onmousedown_att, onmousedown_att_bs,onclick_att, onclick_att_bs,span_att, span_att_bs,width_att, width_att_bs,vlink_att, vlink_att_bs,ismap_att, frame_att, size_att, size_att_bs,face_att, face_att_bs,bgcolor_att, bgcolor_att_bs,summary_att, summary_att_bs,text_att, text_att_bs,method_att, language_att, language_att_bs,tabindex_att, tabindex_att_bs,standby_att, standby_att_bs,onmousemove_att, onmousemove_att_bs,style_att, style_att_bs,codetype_att, codetype_att_bs,multiple_att, xmlns_att, xmlns_att_bs,ondblclick_att, ondblclick_att_bs,axis_att, axis_att_bs,cols_att, cols_att_bs,readonly_att, media_att, media_att_bs,compact_att, src_att, src_att_bs,for_att, for_att_bs,hreflang_att, hreflang_att_bs,checked_att, onkeypress_att, onkeypress_att_bs,class_att, class_att_bs,shape_att, label_att, label_att_bs,accesskey_att, accesskey_att_bs,disabled_att, scrolling_att, rows_att, rows_att_bs,rules_att, onfocus_att, onfocus_att_bs,alink_att, alink_att_bs,colspan_att, colspan_att_bs,cite_att, cite_att_bs,marginheight_att, marginheight_att_bs,link_att, link_att_bs,maxlength_att, maxlength_att_bs,onselect_att, onselect_att_bs,archive_att, archive_att_bs,longdesc_att, longdesc_att_bs,classid_att, classid_att_bs,space_att, noshade_att, hspace_att, hspace_att_bs,onload_att, onload_att_bs,action_att, action_att_bs,selected_att, 
    -- ** Enumerated Attribute Values
RulesEnum(..),ScrollingEnum(..),ShapeEnum(..),MethodEnum(..),FrameEnum(..),FrameborderEnum(..),AlignEnum(..),ScopeEnum(..),ClearEnum(..),ValuetypeEnum(..),DirEnum(..),ValignEnum(..),
    -- ** Character Entities (just a few until I can find a more elegant implementation)
ce_quot,ce_amp,ce_lt,ce_gt,ce_copy,ce_reg,ce_nbsp,
  ) where 

import qualified Data.ByteString.Lazy as B
import qualified Data.ByteString.Lazy.UTF8 as U
import Data.List (nubBy,sort,intersperse)
import Data.Char
import Text.Regex.Posix
-- | 'htmlHelp' provides a way of finding allowed children tags and attributes.  For example a @h1@ inside a @body@ tag inside an @html@ tag is queried with
--
-- > htmlHelp ["html","body","h1"]
--
-- > = [["a","abbr",..,"tt","var"],["alt_att","class_att","dir_att",..,"usemap_att","width_att"]]
--
-- which returns a list of 2 elements, each their own list.  The first is the allowed children tags, in this case 34.  The second is a list of allowed attributes for
-- the @h1@ tag.  Remember to add a @_@ as a prefix or suffix of all tags, as well as @_bs@ if providing a 'Data.ByteString' to an attribute.
--
htmlHelp :: [String] -> [[String]]
htmlHelp (x:xs) 
    | (map toLower x) == "html" = htmlHelp2 0 (toNdx "html") xs
    | otherwise = [["First tag needs to be \"html\"!"],[]]
    
htmlHelp2 :: Int -> Int -> [String] -> [[String]]
htmlHelp2 i lst [] = [ (sort (map (\(t,n)->fst (tagList !! t)) (groups !! i))), sort(map (\a->a++"_att") (attList !! (snd (tagList !! lst))))]
htmlHelp2 i lst (x:xs)
    | n == -1 = [[x ++ " not a child" ],["No attributes"]]
    | n == 99999 && xs == [] = [[x ++ " can not contain any inner nodes"], sort(map (\a->a++"_att") (attList !! (snd (tagList !! (toNdx x)))))]
    | n == 99999 = [[x ++ " can not contain any inner nodes"], []]
    | otherwise = htmlHelp2 n (toNdx x) xs
    where n = getNext (groups !! i) (toNdx x)

getNext ((a,b):xs) t
    | a == t = b
    | otherwise = getNext xs t 
getNext [] t = -1

toNdx :: String -> Int
toNdx s = toNdx2 s tagList 0
toNdx2 s (x:xs) n
    | (map toLower s) == (map toLower (fst x)) = n
    | otherwise = toNdx2 s xs (n+1)
toNdx2 s [] _ = (-1)
tagList = [("html",0),("head",1),("title",2),("base",3),("meta",4),("link",6),("style",7),("script",9),("noscript",10),("frameset",11),("frame",12),("iframe",13),("noframes",10),("body",14),("div",15),("p",15),("h1",15),("h2",15),("h3",15),("h4",15),("h5",15),("h6",15),("ul",16),("ol",17),("menu",18),("dir",18),("li",19),("dl",18),("dt",10),("dd",10),("address",10),("hr",20),("pre",21),("blockquote",22),("center",10),("ins",23),("del",23),("a",24),("span",10),("bdo",10),("br",27),("em",10),("strong",10),("dfn",10),("code",10),("samp",10),("kbd",10),("var",10),("cite",10),("abbr",10),("acronym",10),("q",22),("sub",10),("sup",10),("tt",10),("i",10),("b",10),("big",10),("small",10),("u",10),("s",10),("strike",10),("basefont",28),("font",30),("object",31),("param",32),("applet",34),("img",37),("map",40),("area",42),("form",43),("label",45),("input",46),("select",47),("optgroup",48),("option",50),("textarea",51),("fieldset",10),("legend",54),("button",55),("isindex",56),("table",57),("caption",15),("thead",58),("tfoot",58),("tbody",58),("colgroup",59),("col",59),("tr",60),("th",61),("td",61),("pcdata",-1),("cdata",-1),("none",-1),("",1)]
attList = [["lang","dir","id","xmlns"],["lang","dir","id","profile"],["lang","dir","id"],["id","href","target"],["lang","dir","id","http_equiv","name","content","scheme"],["content"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","charset","href","hreflang","type","rel","rev","media","target"],["lang","dir","id","type","media","title","space"],["type"],["id","charset","type","language","src","defer","space"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup"],["id","class","style","title","rows","cols","onload","onunload"],["id","class","style","title","longdesc","name","src","frameborder","marginwidth","marginheight","noresize","scrolling"],["id","class","style","title","longdesc","name","src","frameborder","marginwidth","marginheight","scrolling","align","height","width"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","onload","onunload","background","bgcolor","text","link","vlink","alink"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","align"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","type","compact"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","type","compact","start"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","compact"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","type","value"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","align","noshade","size","width"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","width","space"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","cite"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","cite","datetime"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","accesskey","tabindex","onfocus","onblur","charset","type","name","href","hreflang","rel","rev","shape","coords","target"],["id","class","style","title","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","lang","dir"],["dir"],["id","class","style","title","clear"],["id","size","color","face"],["size"],["id","class","style","title","lang","dir","size","color","face"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","declare","classid","codebase","data","type","codetype","archive","standby","height","width","usemap","name","tabindex","align","border","hspace","vspace"],["id","name","value","valuetype","type"],["name"],["id","class","style","title","codebase","archive","code","object","alt","name","width","height","align","hspace","vspace"],["width"],["height"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","src","alt","name","longdesc","height","width","usemap","ismap","align","border","hspace","vspace"],["src"],["alt"],["lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","id","class","style","title","name"],["id"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","accesskey","tabindex","onfocus","onblur","shape","coords","href","nohref","alt","target"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","action","method","name","enctype","onsubmit","onreset","accept","accept_charset","target"],["action"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","for","accesskey","onfocus","onblur"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","accesskey","tabindex","onfocus","onblur","type","name","value","checked","disabled","readonly","size","maxlength","src","alt","usemap","onselect","onchange","accept","align"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","name","size","multiple","disabled","tabindex","onfocus","onblur","onchange"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","disabled","label"],["label"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","selected","disabled","label","value"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","accesskey","tabindex","onfocus","onblur","name","rows","cols","disabled","readonly","onselect","onchange"],["rows"],["cols"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","accesskey","align"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","accesskey","tabindex","onfocus","onblur","name","value","type","disabled"],["id","class","style","title","lang","dir","prompt"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","summary","width","border","frame","rules","cellspacing","cellpadding","align","bgcolor"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","align","char","charoff","valign"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","span","width","align","char","charoff","valign"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","align","char","charoff","valign","bgcolor"],["id","class","style","title","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup","abbr","axis","headers","scope","rowspan","colspan","align","char","charoff","valign","nowrap","bgcolor","width","height"]]
groups  = [[(1,1),(9,138)],[(2,2),(3,99999),(4,99999),(5,99999),(6,2),(7,2),(64,3),(80,99999)],[(91,99999)],[(7,2),(8,4),(11,4),(14,4),(15,5),(16,5),(17,5),(18,5),(19,5),(20,5),(21,5),(22,6),(23,6),(24,6),(25,6),(27,7),(30,8),(31,99999),(32,9),(33,4),(34,4),(35,4),(36,4),(37,10),(38,5),(39,5),(40,99999),(41,5),(42,5),(43,5),(44,5),(45,5),(46,5),(47,5),(48,5),(49,5),(50,5),(51,5),(52,5),(53,5),(54,5),(55,5),(56,5),(57,5),(58,5),(59,5),(60,5),(61,5),(62,99999),(63,5),(64,3),(65,99999),(66,3),(67,99999),(68,66),(70,67),(71,113),(72,99999),(73,130),(76,2),(77,132),(79,133),(80,99999),(81,134),(91,99999)],[(7,2),(8,4),(11,4),(14,4),(15,5),(16,5),(17,5),(18,5),(19,5),(20,5),(21,5),(22,6),(23,6),(24,6),(25,6),(27,7),(30,8),(31,99999),(32,9),(33,4),(34,4),(35,4),(36,4),(37,10),(38,5),(39,5),(40,99999),(41,5),(42,5),(43,5),(44,5),(45,5),(46,5),(47,5),(48,5),(49,5),(50,5),(51,5),(52,5),(53,5),(54,5),(55,5),(56,5),(57,5),(58,5),(59,5),(60,5),(61,5),(62,99999),(63,5),(64,3),(66,3),(67,99999),(68,66),(70,67),(71,113),(72,99999),(73,130),(76,2),(77,132),(79,133),(80,99999),(81,134),(91,99999)],[(7,2),(11,4),(35,4),(36,4),(37,10),(38,5),(39,5),(40,99999),(41,5),(42,5),(43,5),(44,5),(45,5),(46,5),(47,5),(48,5),(49,5),(50,5),(51,5),(52,5),(53,5),(54,5),(55,5),(56,5),(57,5),(58,5),(59,5),(60,5),(61,5),(62,99999),(63,5),(64,3),(66,3),(67,99999),(68,66),(71,113),(72,99999),(73,130),(76,2),(79,133),(91,99999)],[(26,4)],[(28,5),(29,4)],[(7,2),(11,4),(15,5),(35,4),(36,4),(37,10),(38,5),(39,5),(40,99999),(41,5),(42,5),(43,5),(44,5),(45,5),(46,5),(47,5),(48,5),(49,5),(50,5),(51,5),(52,5),(53,5),(54,5),(55,5),(56,5),(57,5),(58,5),(59,5),(60,5),(61,5),(62,99999),(63,5),(64,3),(66,3),(67,99999),(68,66),(71,113),(72,99999),(73,130),(76,2),(79,133),(91,99999)],[(7,2),(35,4),(36,4),(37,10),(38,5),(39,5),(40,99999),(41,5),(42,5),(43,5),(44,5),(45,5),(46,5),(47,5),(48,5),(49,5),(50,5),(51,5),(54,5),(55,5),(56,5),(59,5),(60,5),(61,5),(71,113),(72,99999),(73,130),(76,2),(79,133),(91,99999)],[(7,11),(11,12),(35,12),(36,12),(38,10),(39,10),(40,99999),(41,10),(42,10),(43,10),(44,10),(45,10),(46,10),(47,10),(48,10),(49,10),(50,10),(51,10),(52,10),(53,10),(54,10),(55,10),(56,10),(57,10),(58,10),(59,10),(60,10),(61,10),(62,99999),(63,10),(64,33),(66,33),(67,99999),(68,34),(71,35),(72,99999),(73,63),(76,11),(79,65),(91,99999)],[(91,99999)],[(7,11),(8,12),(11,12),(14,12),(15,10),(16,10),(17,10),(18,10),(19,10),(20,10),(21,10),(22,13),(23,13),(24,13),(25,13),(27,14),(30,15),(31,99999),(32,16),(33,12),(34,12),(35,12),(36,12),(38,10),(39,10),(40,99999),(41,10),(42,10),(43,10),(44,10),(45,10),(46,10),(47,10),(48,10),(49,10),(50,10),(51,10),(52,10),(53,10),(54,10),(55,10),(56,10),(57,10),(58,10),(59,10),(60,10),(61,10),(62,99999),(63,10),(64,33),(66,33),(67,99999),(68,34),(70,17),(71,35),(72,99999),(73,63),(76,11),(77,28),(79,65),(80,99999),(81,29),(91,99999)],[(26,12)],[(28,10),(29,12)],[(7,11),(11,12),(15,10),(35,12),(36,12),(38,10),(39,10),(40,99999),(41,10),(42,10),(43,10),(44,10),(45,10),(46,10),(47,10),(48,10),(49,10),(50,10),(51,10),(52,10),(53,10),(54,10),(55,10),(56,10),(57,10),(58,10),(59,10),(60,10),(61,10),(62,99999),(63,10),(64,33),(66,33),(67,99999),(68,34),(71,35),(72,99999),(73,63),(76,11),(79,65),(91,99999)],[(7,11),(35,12),(36,12),(38,10),(39,10),(40,99999),(41,10),(42,10),(43,10),(44,10),(45,10),(46,10),(47,10),(48,10),(49,10),(50,10),(51,10),(54,10),(55,10),(56,10),(59,10),(60,10),(61,10),(71,35),(72,99999),(73,63),(76,11),(79,65),(91,99999)],[(7,74),(8,17),(11,17),(14,17),(15,18),(16,18),(17,18),(18,18),(19,18),(20,18),(21,18),(22,19),(23,19),(24,19),(25,19),(27,20),(30,21),(31,99999),(32,22),(33,17),(34,17),(35,17),(36,17),(38,18),(39,18),(40,99999),(41,18),(42,18),(43,18),(44,18),(45,18),(46,18),(47,18),(48,18),(49,18),(50,18),(51,18),(52,18),(53,18),(54,18),(55,18),(56,18),(57,18),(58,18),(59,18),(60,18),(61,18),(62,99999),(63,18),(64,75),(66,75),(67,99999),(68,76),(71,43),(72,99999),(73,83),(76,74),(77,23),(79,85),(80,99999),(81,24),(91,99999)],[(7,74),(11,17),(35,17),(36,17),(38,18),(39,18),(40,99999),(41,18),(42,18),(43,18),(44,18),(45,18),(46,18),(47,18),(48,18),(49,18),(50,18),(51,18),(52,18),(53,18),(54,18),(55,18),(56,18),(57,18),(58,18),(59,18),(60,18),(61,18),(62,99999),(63,18),(64,75),(66,75),(67,99999),(68,76),(71,43),(72,99999),(73,83),(76,74),(79,85),(91,99999)],[(26,17)],[(28,18),(29,17)],[(7,74),(11,17),(15,18),(35,17),(36,17),(38,18),(39,18),(40,99999),(41,18),(42,18),(43,18),(44,18),(45,18),(46,18),(47,18),(48,18),(49,18),(50,18),(51,18),(52,18),(53,18),(54,18),(55,18),(56,18),(57,18),(58,18),(59,18),(60,18),(61,18),(62,99999),(63,18),(64,75),(66,75),(67,99999),(68,76),(71,43),(72,99999),(73,83),(76,74),(79,85),(91,99999)],[(7,74),(35,17),(36,17),(38,18),(39,18),(40,99999),(41,18),(42,18),(43,18),(44,18),(45,18),(46,18),(47,18),(48,18),(49,18),(50,18),(51,18),(54,18),(55,18),(56,18),(59,18),(60,18),(61,18),(71,43),(72,99999),(73,83),(76,74),(79,85),(91,99999)],[(7,74),(8,17),(11,17),(14,17),(15,18),(16,18),(17,18),(18,18),(19,18),(20,18),(21,18),(22,19),(23,19),(24,19),(25,19),(27,20),(30,21),(31,99999),(32,22),(33,17),(34,17),(35,17),(36,17),(38,18),(39,18),(40,99999),(41,18),(42,18),(43,18),(44,18),(45,18),(46,18),(47,18),(48,18),(49,18),(50,18),(51,18),(52,18),(53,18),(54,18),(55,18),(56,18),(57,18),(58,18),(59,18),(60,18),(61,18),(62,99999),(63,18),(64,75),(66,75),(67,99999),(68,76),(71,43),(72,99999),(73,83),(76,74),(77,23),(78,18),(79,85),(80,99999),(81,24),(91,99999)],[(82,18),(83,25),(84,25),(85,25),(86,26),(87,99999),(88,27)],[(88,27)],[(87,99999)],[(89,17),(90,17)],[(7,11),(8,12),(11,12),(14,12),(15,10),(16,10),(17,10),(18,10),(19,10),(20,10),(21,10),(22,13),(23,13),(24,13),(25,13),(27,14),(30,15),(31,99999),(32,16),(33,12),(34,12),(35,12),(36,12),(38,10),(39,10),(40,99999),(41,10),(42,10),(43,10),(44,10),(45,10),(46,10),(47,10),(48,10),(49,10),(50,10),(51,10),(52,10),(53,10),(54,10),(55,10),(56,10),(57,10),(58,10),(59,10),(60,10),(61,10),(62,99999),(63,10),(64,33),(66,33),(67,99999),(68,34),(70,17),(71,35),(72,99999),(73,63),(76,11),(77,28),(78,10),(79,65),(80,99999),(81,29),(91,99999)],[(82,10),(83,30),(84,30),(85,30),(86,31),(87,99999),(88,32)],[(88,32)],[(87,99999)],[(89,12),(90,12)],[(7,11),(8,12),(11,12),(14,12),(15,10),(16,10),(17,10),(18,10),(19,10),(20,10),(21,10),(22,13),(23,13),(24,13),(25,13),(27,14),(30,15),(31,99999),(32,16),(33,12),(34,12),(35,12),(36,12),(38,10),(39,10),(40,99999),(41,10),(42,10),(43,10),(44,10),(45,10),(46,10),(47,10),(48,10),(49,10),(50,10),(51,10),(52,10),(53,10),(54,10),(55,10),(56,10),(57,10),(58,10),(59,10),(60,10),(61,10),(62,99999),(63,10),(64,33),(65,99999),(66,33),(67,99999),(68,34),(70,17),(71,35),(72,99999),(73,63),(76,11),(77,28),(79,65),(80,99999),(81,29),(91,99999)],[(7,11),(8,12),(14,12),(15,10),(16,10),(17,10),(18,10),(19,10),(20,10),(21,10),(22,13),(23,13),(24,13),(25,13),(27,14),(30,15),(31,99999),(32,16),(33,12),(34,12),(35,12),(36,12),(69,99999),(70,17),(77,28),(80,99999),(81,29)],[(7,36),(11,37),(35,37),(36,37),(38,35),(39,35),(40,99999),(41,35),(42,35),(43,35),(44,35),(45,35),(46,35),(47,35),(48,35),(49,35),(50,35),(51,35),(52,35),(53,35),(54,35),(55,35),(56,35),(57,35),(58,35),(59,35),(60,35),(61,35),(62,99999),(63,35),(64,58),(66,58),(67,99999),(68,59),(72,99999),(73,60),(76,36),(79,62),(91,99999)],[(91,99999)],[(7,36),(8,37),(11,37),(14,37),(15,35),(16,35),(17,35),(18,35),(19,35),(20,35),(21,35),(22,38),(23,38),(24,38),(25,38),(27,39),(30,40),(31,99999),(32,41),(33,37),(34,37),(35,37),(36,37),(38,35),(39,35),(40,99999),(41,35),(42,35),(43,35),(44,35),(45,35),(46,35),(47,35),(48,35),(49,35),(50,35),(51,35),(52,35),(53,35),(54,35),(55,35),(56,35),(57,35),(58,35),(59,35),(60,35),(61,35),(62,99999),(63,35),(64,58),(66,58),(67,99999),(68,59),(70,42),(72,99999),(73,60),(76,36),(77,53),(79,62),(80,99999),(81,54),(91,99999)],[(26,37)],[(28,35),(29,37)],[(7,36),(11,37),(15,35),(35,37),(36,37),(38,35),(39,35),(40,99999),(41,35),(42,35),(43,35),(44,35),(45,35),(46,35),(47,35),(48,35),(49,35),(50,35),(51,35),(52,35),(53,35),(54,35),(55,35),(56,35),(57,35),(58,35),(59,35),(60,35),(61,35),(62,99999),(63,35),(64,58),(66,58),(67,99999),(68,59),(72,99999),(73,60),(76,36),(79,62),(91,99999)],[(7,36),(35,37),(36,37),(38,35),(39,35),(40,99999),(41,35),(42,35),(43,35),(44,35),(45,35),(46,35),(47,35),(48,35),(49,35),(50,35),(51,35),(54,35),(55,35),(56,35),(59,35),(60,35),(61,35),(72,99999),(73,60),(76,36),(79,62),(91,99999)],[(7,77),(8,42),(11,42),(14,42),(15,43),(16,43),(17,43),(18,43),(19,43),(20,43),(21,43),(22,44),(23,44),(24,44),(25,44),(27,45),(30,46),(31,99999),(32,47),(33,42),(34,42),(35,42),(36,42),(38,43),(39,43),(40,99999),(41,43),(42,43),(43,43),(44,43),(45,43),(46,43),(47,43),(48,43),(49,43),(50,43),(51,43),(52,43),(53,43),(54,43),(55,43),(56,43),(57,43),(58,43),(59,43),(60,43),(61,43),(62,99999),(63,43),(64,78),(66,78),(67,99999),(68,79),(72,99999),(73,80),(76,77),(77,48),(79,82),(80,99999),(81,49),(91,99999)],[(7,77),(11,42),(35,42),(36,42),(38,43),(39,43),(40,99999),(41,43),(42,43),(43,43),(44,43),(45,43),(46,43),(47,43),(48,43),(49,43),(50,43),(51,43),(52,43),(53,43),(54,43),(55,43),(56,43),(57,43),(58,43),(59,43),(60,43),(61,43),(62,99999),(63,43),(64,78),(66,78),(67,99999),(68,79),(72,99999),(73,80),(76,77),(79,82),(91,99999)],[(26,42)],[(28,43),(29,42)],[(7,77),(11,42),(15,43),(35,42),(36,42),(38,43),(39,43),(40,99999),(41,43),(42,43),(43,43),(44,43),(45,43),(46,43),(47,43),(48,43),(49,43),(50,43),(51,43),(52,43),(53,43),(54,43),(55,43),(56,43),(57,43),(58,43),(59,43),(60,43),(61,43),(62,99999),(63,43),(64,78),(66,78),(67,99999),(68,79),(72,99999),(73,80),(76,77),(79,82),(91,99999)],[(7,77),(35,42),(36,42),(38,43),(39,43),(40,99999),(41,43),(42,43),(43,43),(44,43),(45,43),(46,43),(47,43),(48,43),(49,43),(50,43),(51,43),(54,43),(55,43),(56,43),(59,43),(60,43),(61,43),(72,99999),(73,80),(76,77),(79,82),(91,99999)],[(7,77),(8,42),(11,42),(14,42),(15,43),(16,43),(17,43),(18,43),(19,43),(20,43),(21,43),(22,44),(23,44),(24,44),(25,44),(27,45),(30,46),(31,99999),(32,47),(33,42),(34,42),(35,42),(36,42),(38,43),(39,43),(40,99999),(41,43),(42,43),(43,43),(44,43),(45,43),(46,43),(47,43),(48,43),(49,43),(50,43),(51,43),(52,43),(53,43),(54,43),(55,43),(56,43),(57,43),(58,43),(59,43),(60,43),(61,43),(62,99999),(63,43),(64,78),(66,78),(67,99999),(68,79),(72,99999),(73,80),(76,77),(77,48),(78,43),(79,82),(80,99999),(81,49),(91,99999)],[(82,43),(83,50),(84,50),(85,50),(86,51),(87,99999),(88,52)],[(88,52)],[(87,99999)],[(89,42),(90,42)],[(7,36),(8,37),(11,37),(14,37),(15,35),(16,35),(17,35),(18,35),(19,35),(20,35),(21,35),(22,38),(23,38),(24,38),(25,38),(27,39),(30,40),(31,99999),(32,41),(33,37),(34,37),(35,37),(36,37),(38,35),(39,35),(40,99999),(41,35),(42,35),(43,35),(44,35),(45,35),(46,35),(47,35),(48,35),(49,35),(50,35),(51,35),(52,35),(53,35),(54,35),(55,35),(56,35),(57,35),(58,35),(59,35),(60,35),(61,35),(62,99999),(63,35),(64,58),(66,58),(67,99999),(68,59),(70,42),(72,99999),(73,60),(76,36),(77,53),(78,35),(79,62),(80,99999),(81,54),(91,99999)],[(82,35),(83,55),(84,55),(85,55),(86,56),(87,99999),(88,57)],[(88,57)],[(87,99999)],[(89,37),(90,37)],[(7,36),(8,37),(11,37),(14,37),(15,35),(16,35),(17,35),(18,35),(19,35),(20,35),(21,35),(22,38),(23,38),(24,38),(25,38),(27,39),(30,40),(31,99999),(32,41),(33,37),(34,37),(35,37),(36,37),(38,35),(39,35),(40,99999),(41,35),(42,35),(43,35),(44,35),(45,35),(46,35),(47,35),(48,35),(49,35),(50,35),(51,35),(52,35),(53,35),(54,35),(55,35),(56,35),(57,35),(58,35),(59,35),(60,35),(61,35),(62,99999),(63,35),(64,58),(65,99999),(66,58),(67,99999),(68,59),(70,42),(72,99999),(73,60),(76,36),(77,53),(79,62),(80,99999),(81,54),(91,99999)],[(7,36),(8,37),(14,37),(15,35),(16,35),(17,35),(18,35),(19,35),(20,35),(21,35),(22,38),(23,38),(24,38),(25,38),(27,39),(30,40),(31,99999),(32,41),(33,37),(34,37),(35,37),(36,37),(69,99999),(70,42),(77,53),(80,99999),(81,54)],[(74,61),(75,36)],[(75,36)],[(7,36),(8,37),(14,37),(15,35),(16,35),(17,35),(18,35),(19,35),(20,35),(21,35),(22,38),(23,38),(24,38),(25,38),(27,39),(30,40),(31,99999),(32,41),(33,37),(34,37),(35,37),(36,37),(38,35),(39,35),(40,99999),(41,35),(42,35),(43,35),(44,35),(45,35),(46,35),(47,35),(48,35),(49,35),(50,35),(51,35),(52,35),(53,35),(54,35),(55,35),(56,35),(57,35),(58,35),(59,35),(60,35),(61,35),(62,99999),(63,35),(64,58),(66,58),(67,99999),(68,59),(81,54),(91,99999)],[(74,64),(75,11)],[(75,11)],[(7,11),(8,12),(14,12),(15,10),(16,10),(17,10),(18,10),(19,10),(20,10),(21,10),(22,13),(23,13),(24,13),(25,13),(27,14),(30,15),(31,99999),(32,16),(33,12),(34,12),(35,12),(36,12),(38,10),(39,10),(40,99999),(41,10),(42,10),(43,10),(44,10),(45,10),(46,10),(47,10),(48,10),(49,10),(50,10),(51,10),(52,10),(53,10),(54,10),(55,10),(56,10),(57,10),(58,10),(59,10),(60,10),(61,10),(62,99999),(63,10),(64,33),(66,33),(67,99999),(68,34),(81,29),(91,99999)],[(7,2),(8,4),(14,4),(15,5),(16,5),(17,5),(18,5),(19,5),(20,5),(21,5),(22,6),(23,6),(24,6),(25,6),(27,7),(30,8),(31,99999),(32,9),(33,4),(34,4),(35,4),(36,4),(69,99999),(70,67),(77,132),(80,99999),(81,134)],[(7,68),(8,67),(11,67),(14,67),(15,69),(16,69),(17,69),(18,69),(19,69),(20,69),(21,69),(22,70),(23,70),(24,70),(25,70),(27,71),(30,72),(31,99999),(32,73),(33,67),(34,67),(35,67),(36,67),(37,18),(38,69),(39,69),(40,99999),(41,69),(42,69),(43,69),(44,69),(45,69),(46,69),(47,69),(48,69),(49,69),(50,69),(51,69),(52,69),(53,69),(54,69),(55,69),(56,69),(57,69),(58,69),(59,69),(60,69),(61,69),(62,99999),(63,69),(64,86),(66,86),(67,99999),(68,87),(71,88),(72,99999),(73,105),(76,68),(77,107),(79,108),(80,99999),(81,109),(91,99999)],[(91,99999)],[(7,68),(11,67),(35,67),(36,67),(37,18),(38,69),(39,69),(40,99999),(41,69),(42,69),(43,69),(44,69),(45,69),(46,69),(47,69),(48,69),(49,69),(50,69),(51,69),(52,69),(53,69),(54,69),(55,69),(56,69),(57,69),(58,69),(59,69),(60,69),(61,69),(62,99999),(63,69),(64,86),(66,86),(67,99999),(68,87),(71,88),(72,99999),(73,105),(76,68),(79,108),(91,99999)],[(26,67)],[(28,69),(29,67)],[(7,68),(11,67),(15,69),(35,67),(36,67),(37,18),(38,69),(39,69),(40,99999),(41,69),(42,69),(43,69),(44,69),(45,69),(46,69),(47,69),(48,69),(49,69),(50,69),(51,69),(52,69),(53,69),(54,69),(55,69),(56,69),(57,69),(58,69),(59,69),(60,69),(61,69),(62,99999),(63,69),(64,86),(66,86),(67,99999),(68,87),(71,88),(72,99999),(73,105),(76,68),(79,108),(91,99999)],[(7,68),(35,67),(36,67),(37,18),(38,69),(39,69),(40,99999),(41,69),(42,69),(43,69),(44,69),(45,69),(46,69),(47,69),(48,69),(49,69),(50,69),(51,69),(54,69),(55,69),(56,69),(59,69),(60,69),(61,69),(71,88),(72,99999),(73,105),(76,68),(79,108),(91,99999)],[(91,99999)],[(7,74),(8,17),(11,17),(14,17),(15,18),(16,18),(17,18),(18,18),(19,18),(20,18),(21,18),(22,19),(23,19),(24,19),(25,19),(27,20),(30,21),(31,99999),(32,22),(33,17),(34,17),(35,17),(36,17),(38,18),(39,18),(40,99999),(41,18),(42,18),(43,18),(44,18),(45,18),(46,18),(47,18),(48,18),(49,18),(50,18),(51,18),(52,18),(53,18),(54,18),(55,18),(56,18),(57,18),(58,18),(59,18),(60,18),(61,18),(62,99999),(63,18),(64,75),(65,99999),(66,75),(67,99999),(68,76),(71,43),(72,99999),(73,83),(76,74),(77,23),(79,85),(80,99999),(81,24),(91,99999)],[(7,74),(8,17),(14,17),(15,18),(16,18),(17,18),(18,18),(19,18),(20,18),(21,18),(22,19),(23,19),(24,19),(25,19),(27,20),(30,21),(31,99999),(32,22),(33,17),(34,17),(35,17),(36,17),(69,99999),(77,23),(80,99999),(81,24)],[(91,99999)],[(7,77),(8,42),(11,42),(14,42),(15,43),(16,43),(17,43),(18,43),(19,43),(20,43),(21,43),(22,44),(23,44),(24,44),(25,44),(27,45),(30,46),(31,99999),(32,47),(33,42),(34,42),(35,42),(36,42),(38,43),(39,43),(40,99999),(41,43),(42,43),(43,43),(44,43),(45,43),(46,43),(47,43),(48,43),(49,43),(50,43),(51,43),(52,43),(53,43),(54,43),(55,43),(56,43),(57,43),(58,43),(59,43),(60,43),(61,43),(62,99999),(63,43),(64,78),(65,99999),(66,78),(67,99999),(68,79),(72,99999),(73,80),(76,77),(77,48),(79,82),(80,99999),(81,49),(91,99999)],[(7,77),(8,42),(14,42),(15,43),(16,43),(17,43),(18,43),(19,43),(20,43),(21,43),(22,44),(23,44),(24,44),(25,44),(27,45),(30,46),(31,99999),(32,47),(33,42),(34,42),(35,42),(36,42),(69,99999),(77,48),(80,99999),(81,49)],[(74,81),(75,77)],[(75,77)],[(7,77),(8,42),(14,42),(15,43),(16,43),(17,43),(18,43),(19,43),(20,43),(21,43),(22,44),(23,44),(24,44),(25,44),(27,45),(30,46),(31,99999),(32,47),(33,42),(34,42),(35,42),(36,42),(38,43),(39,43),(40,99999),(41,43),(42,43),(43,43),(44,43),(45,43),(46,43),(47,43),(48,43),(49,43),(50,43),(51,43),(52,43),(53,43),(54,43),(55,43),(56,43),(57,43),(58,43),(59,43),(60,43),(61,43),(62,99999),(63,43),(64,78),(66,78),(67,99999),(68,79),(81,49),(91,99999)],[(74,84),(75,74)],[(75,74)],[(7,74),(8,17),(14,17),(15,18),(16,18),(17,18),(18,18),(19,18),(20,18),(21,18),(22,19),(23,19),(24,19),(25,19),(27,20),(30,21),(31,99999),(32,22),(33,17),(34,17),(35,17),(36,17),(38,18),(39,18),(40,99999),(41,18),(42,18),(43,18),(44,18),(45,18),(46,18),(47,18),(48,18),(49,18),(50,18),(51,18),(52,18),(53,18),(54,18),(55,18),(56,18),(57,18),(58,18),(59,18),(60,18),(61,18),(62,99999),(63,18),(64,75),(66,75),(67,99999),(68,76),(81,24),(91,99999)],[(7,68),(8,67),(11,67),(14,67),(15,69),(16,69),(17,69),(18,69),(19,69),(20,69),(21,69),(22,70),(23,70),(24,70),(25,70),(27,71),(30,72),(31,99999),(32,73),(33,67),(34,67),(35,67),(36,67),(37,18),(38,69),(39,69),(40,99999),(41,69),(42,69),(43,69),(44,69),(45,69),(46,69),(47,69),(48,69),(49,69),(50,69),(51,69),(52,69),(53,69),(54,69),(55,69),(56,69),(57,69),(58,69),(59,69),(60,69),(61,69),(62,99999),(63,69),(64,86),(65,99999),(66,86),(67,99999),(68,87),(71,88),(72,99999),(73,105),(76,68),(77,107),(79,108),(80,99999),(81,109),(91,99999)],[(7,68),(8,67),(14,67),(15,69),(16,69),(17,69),(18,69),(19,69),(20,69),(21,69),(22,70),(23,70),(24,70),(25,70),(27,71),(30,72),(31,99999),(32,73),(33,67),(34,67),(35,67),(36,67),(69,99999),(77,107),(80,99999),(81,109)],[(7,89),(11,90),(35,90),(36,90),(37,43),(38,88),(39,88),(40,99999),(41,88),(42,88),(43,88),(44,88),(45,88),(46,88),(47,88),(48,88),(49,88),(50,88),(51,88),(52,88),(53,88),(54,88),(55,88),(56,88),(57,88),(58,88),(59,88),(60,88),(61,88),(62,99999),(63,88),(64,100),(66,100),(67,99999),(68,101),(72,99999),(73,102),(76,89),(79,104),(91,99999)],[(91,99999)],[(7,89),(8,90),(11,90),(14,90),(15,88),(16,88),(17,88),(18,88),(19,88),(20,88),(21,88),(22,91),(23,91),(24,91),(25,91),(27,92),(30,93),(31,99999),(32,94),(33,90),(34,90),(35,90),(36,90),(37,43),(38,88),(39,88),(40,99999),(41,88),(42,88),(43,88),(44,88),(45,88),(46,88),(47,88),(48,88),(49,88),(50,88),(51,88),(52,88),(53,88),(54,88),(55,88),(56,88),(57,88),(58,88),(59,88),(60,88),(61,88),(62,99999),(63,88),(64,100),(66,100),(67,99999),(68,101),(72,99999),(73,102),(76,89),(77,95),(79,104),(80,99999),(81,96),(91,99999)],[(26,90)],[(28,88),(29,90)],[(7,89),(11,90),(15,88),(35,90),(36,90),(37,43),(38,88),(39,88),(40,99999),(41,88),(42,88),(43,88),(44,88),(45,88),(46,88),(47,88),(48,88),(49,88),(50,88),(51,88),(52,88),(53,88),(54,88),(55,88),(56,88),(57,88),(58,88),(59,88),(60,88),(61,88),(62,99999),(63,88),(64,100),(66,100),(67,99999),(68,101),(72,99999),(73,102),(76,89),(79,104),(91,99999)],[(7,89),(35,90),(36,90),(37,43),(38,88),(39,88),(40,99999),(41,88),(42,88),(43,88),(44,88),(45,88),(46,88),(47,88),(48,88),(49,88),(50,88),(51,88),(54,88),(55,88),(56,88),(59,88),(60,88),(61,88),(72,99999),(73,102),(76,89),(79,104),(91,99999)],[(7,89),(8,90),(11,90),(14,90),(15,88),(16,88),(17,88),(18,88),(19,88),(20,88),(21,88),(22,91),(23,91),(24,91),(25,91),(27,92),(30,93),(31,99999),(32,94),(33,90),(34,90),(35,90),(36,90),(37,43),(38,88),(39,88),(40,99999),(41,88),(42,88),(43,88),(44,88),(45,88),(46,88),(47,88),(48,88),(49,88),(50,88),(51,88),(52,88),(53,88),(54,88),(55,88),(56,88),(57,88),(58,88),(59,88),(60,88),(61,88),(62,99999),(63,88),(64,100),(66,100),(67,99999),(68,101),(72,99999),(73,102),(76,89),(77,95),(78,88),(79,104),(80,99999),(81,96),(91,99999)],[(82,88),(83,97),(84,97),(85,97),(86,98),(87,99999),(88,99)],[(88,99)],[(87,99999)],[(89,90),(90,90)],[(7,89),(8,90),(11,90),(14,90),(15,88),(16,88),(17,88),(18,88),(19,88),(20,88),(21,88),(22,91),(23,91),(24,91),(25,91),(27,92),(30,93),(31,99999),(32,94),(33,90),(34,90),(35,90),(36,90),(37,43),(38,88),(39,88),(40,99999),(41,88),(42,88),(43,88),(44,88),(45,88),(46,88),(47,88),(48,88),(49,88),(50,88),(51,88),(52,88),(53,88),(54,88),(55,88),(56,88),(57,88),(58,88),(59,88),(60,88),(61,88),(62,99999),(63,88),(64,100),(65,99999),(66,100),(67,99999),(68,101),(72,99999),(73,102),(76,89),(77,95),(79,104),(80,99999),(81,96),(91,99999)],[(7,89),(8,90),(14,90),(15,88),(16,88),(17,88),(18,88),(19,88),(20,88),(21,88),(22,91),(23,91),(24,91),(25,91),(27,92),(30,93),(31,99999),(32,94),(33,90),(34,90),(35,90),(36,90),(69,99999),(77,95),(80,99999),(81,96)],[(74,103),(75,89)],[(75,89)],[(7,89),(8,90),(14,90),(15,88),(16,88),(17,88),(18,88),(19,88),(20,88),(21,88),(22,91),(23,91),(24,91),(25,91),(27,92),(30,93),(31,99999),(32,94),(33,90),(34,90),(35,90),(36,90),(38,88),(39,88),(40,99999),(41,88),(42,88),(43,88),(44,88),(45,88),(46,88),(47,88),(48,88),(49,88),(50,88),(51,88),(52,88),(53,88),(54,88),(55,88),(56,88),(57,88),(58,88),(59,88),(60,88),(61,88),(62,99999),(63,88),(64,100),(66,100),(67,99999),(68,101),(81,96),(91,99999)],[(74,106),(75,68)],[(75,68)],[(7,68),(8,67),(11,67),(14,67),(15,69),(16,69),(17,69),(18,69),(19,69),(20,69),(21,69),(22,70),(23,70),(24,70),(25,70),(27,71),(30,72),(31,99999),(32,73),(33,67),(34,67),(35,67),(36,67),(37,18),(38,69),(39,69),(40,99999),(41,69),(42,69),(43,69),(44,69),(45,69),(46,69),(47,69),(48,69),(49,69),(50,69),(51,69),(52,69),(53,69),(54,69),(55,69),(56,69),(57,69),(58,69),(59,69),(60,69),(61,69),(62,99999),(63,69),(64,86),(66,86),(67,99999),(68,87),(71,88),(72,99999),(73,105),(76,68),(77,107),(78,69),(79,108),(80,99999),(81,109),(91,99999)],[(7,68),(8,67),(14,67),(15,69),(16,69),(17,69),(18,69),(19,69),(20,69),(21,69),(22,70),(23,70),(24,70),(25,70),(27,71),(30,72),(31,99999),(32,73),(33,67),(34,67),(35,67),(36,67),(38,69),(39,69),(40,99999),(41,69),(42,69),(43,69),(44,69),(45,69),(46,69),(47,69),(48,69),(49,69),(50,69),(51,69),(52,69),(53,69),(54,69),(55,69),(56,69),(57,69),(58,69),(59,69),(60,69),(61,69),(62,99999),(63,69),(64,86),(66,86),(67,99999),(68,87),(81,109),(91,99999)],[(82,69),(83,110),(84,110),(85,110),(86,111),(87,99999),(88,112)],[(88,112)],[(87,99999)],[(89,67),(90,67)],[(7,114),(11,115),(35,115),(36,115),(37,35),(38,113),(39,113),(40,99999),(41,113),(42,113),(43,113),(44,113),(45,113),(46,113),(47,113),(48,113),(49,113),(50,113),(51,113),(52,113),(53,113),(54,113),(55,113),(56,113),(57,113),(58,113),(59,113),(60,113),(61,113),(62,99999),(63,113),(64,125),(66,125),(67,99999),(68,126),(72,99999),(73,127),(76,114),(79,129),(91,99999)],[(91,99999)],[(7,114),(8,115),(11,115),(14,115),(15,113),(16,113),(17,113),(18,113),(19,113),(20,113),(21,113),(22,116),(23,116),(24,116),(25,116),(27,117),(30,118),(31,99999),(32,119),(33,115),(34,115),(35,115),(36,115),(37,35),(38,113),(39,113),(40,99999),(41,113),(42,113),(43,113),(44,113),(45,113),(46,113),(47,113),(48,113),(49,113),(50,113),(51,113),(52,113),(53,113),(54,113),(55,113),(56,113),(57,113),(58,113),(59,113),(60,113),(61,113),(62,99999),(63,113),(64,125),(66,125),(67,99999),(68,126),(70,90),(72,99999),(73,127),(76,114),(77,120),(79,129),(80,99999),(81,121),(91,99999)],[(26,115)],[(28,113),(29,115)],[(7,114),(11,115),(15,113),(35,115),(36,115),(37,35),(38,113),(39,113),(40,99999),(41,113),(42,113),(43,113),(44,113),(45,113),(46,113),(47,113),(48,113),(49,113),(50,113),(51,113),(52,113),(53,113),(54,113),(55,113),(56,113),(57,113),(58,113),(59,113),(60,113),(61,113),(62,99999),(63,113),(64,125),(66,125),(67,99999),(68,126),(72,99999),(73,127),(76,114),(79,129),(91,99999)],[(7,114),(35,115),(36,115),(37,35),(38,113),(39,113),(40,99999),(41,113),(42,113),(43,113),(44,113),(45,113),(46,113),(47,113),(48,113),(49,113),(50,113),(51,113),(54,113),(55,113),(56,113),(59,113),(60,113),(61,113),(72,99999),(73,127),(76,114),(79,129),(91,99999)],[(7,114),(8,115),(11,115),(14,115),(15,113),(16,113),(17,113),(18,113),(19,113),(20,113),(21,113),(22,116),(23,116),(24,116),(25,116),(27,117),(30,118),(31,99999),(32,119),(33,115),(34,115),(35,115),(36,115),(37,35),(38,113),(39,113),(40,99999),(41,113),(42,113),(43,113),(44,113),(45,113),(46,113),(47,113),(48,113),(49,113),(50,113),(51,113),(52,113),(53,113),(54,113),(55,113),(56,113),(57,113),(58,113),(59,113),(60,113),(61,113),(62,99999),(63,113),(64,125),(66,125),(67,99999),(68,126),(70,90),(72,99999),(73,127),(76,114),(77,120),(78,113),(79,129),(80,99999),(81,121),(91,99999)],[(82,113),(83,122),(84,122),(85,122),(86,123),(87,99999),(88,124)],[(88,124)],[(87,99999)],[(89,115),(90,115)],[(7,114),(8,115),(11,115),(14,115),(15,113),(16,113),(17,113),(18,113),(19,113),(20,113),(21,113),(22,116),(23,116),(24,116),(25,116),(27,117),(30,118),(31,99999),(32,119),(33,115),(34,115),(35,115),(36,115),(37,35),(38,113),(39,113),(40,99999),(41,113),(42,113),(43,113),(44,113),(45,113),(46,113),(47,113),(48,113),(49,113),(50,113),(51,113),(52,113),(53,113),(54,113),(55,113),(56,113),(57,113),(58,113),(59,113),(60,113),(61,113),(62,99999),(63,113),(64,125),(65,99999),(66,125),(67,99999),(68,126),(70,90),(72,99999),(73,127),(76,114),(77,120),(79,129),(80,99999),(81,121),(91,99999)],[(7,114),(8,115),(14,115),(15,113),(16,113),(17,113),(18,113),(19,113),(20,113),(21,113),(22,116),(23,116),(24,116),(25,116),(27,117),(30,118),(31,99999),(32,119),(33,115),(34,115),(35,115),(36,115),(69,99999),(70,90),(77,120),(80,99999),(81,121)],[(74,128),(75,114)],[(75,114)],[(7,114),(8,115),(14,115),(15,113),(16,113),(17,113),(18,113),(19,113),(20,113),(21,113),(22,116),(23,116),(24,116),(25,116),(27,117),(30,118),(31,99999),(32,119),(33,115),(34,115),(35,115),(36,115),(38,113),(39,113),(40,99999),(41,113),(42,113),(43,113),(44,113),(45,113),(46,113),(47,113),(48,113),(49,113),(50,113),(51,113),(52,113),(53,113),(54,113),(55,113),(56,113),(57,113),(58,113),(59,113),(60,113),(61,113),(62,99999),(63,113),(64,125),(66,125),(67,99999),(68,126),(81,121),(91,99999)],[(74,131),(75,2)],[(75,2)],[(7,2),(8,4),(11,4),(14,4),(15,5),(16,5),(17,5),(18,5),(19,5),(20,5),(21,5),(22,6),(23,6),(24,6),(25,6),(27,7),(30,8),(31,99999),(32,9),(33,4),(34,4),(35,4),(36,4),(37,10),(38,5),(39,5),(40,99999),(41,5),(42,5),(43,5),(44,5),(45,5),(46,5),(47,5),(48,5),(49,5),(50,5),(51,5),(52,5),(53,5),(54,5),(55,5),(56,5),(57,5),(58,5),(59,5),(60,5),(61,5),(62,99999),(63,5),(64,3),(66,3),(67,99999),(68,66),(70,67),(71,113),(72,99999),(73,130),(76,2),(77,132),(78,5),(79,133),(80,99999),(81,134),(91,99999)],[(7,2),(8,4),(14,4),(15,5),(16,5),(17,5),(18,5),(19,5),(20,5),(21,5),(22,6),(23,6),(24,6),(25,6),(27,7),(30,8),(31,99999),(32,9),(33,4),(34,4),(35,4),(36,4),(38,5),(39,5),(40,99999),(41,5),(42,5),(43,5),(44,5),(45,5),(46,5),(47,5),(48,5),(49,5),(50,5),(51,5),(52,5),(53,5),(54,5),(55,5),(56,5),(57,5),(58,5),(59,5),(60,5),(61,5),(62,99999),(63,5),(64,3),(66,3),(67,99999),(68,66),(81,134),(91,99999)],[(82,5),(83,135),(84,135),(85,135),(86,136),(87,99999),(88,137)],[(88,137)],[(87,99999)],[(89,4),(90,4)],[(9,138),(10,99999),(12,139)],[(13,4)],[]]



-- Bytestring conversion functions
s2b_escape = U.fromString . stringToHtmlString
stringToHtmlString = concatMap fixChar
    where
      fixChar '<' = "&lt;"
      fixChar '>' = "&gt;"
      fixChar '&' = "&amp;"
      fixChar '"' = "&quot;"
      fixChar c   = [c]
html_escape c   = c
s2b = U.fromString
lt_byte = s2b "<"
gt_byte = s2b ">"
gts_byte = s2b " />"

-- | HTML document root type
data Ent = Html [Att0] [Ent0]
    deriving (Show)

data Att61 = Id_Att_61 B.ByteString  | Class_Att_61 B.ByteString  | Style_Att_61 B.ByteString  | Title_Att_61 B.ByteString  | Lang_Att_61 B.ByteString  | Dir_Att_61 B.ByteString  | Onclick_Att_61 B.ByteString  | Ondblclick_Att_61 B.ByteString  | Onmousedown_Att_61 B.ByteString  | Onmouseup_Att_61 B.ByteString  | Onmouseover_Att_61 B.ByteString  | Onmousemove_Att_61 B.ByteString  | Onmouseout_Att_61 B.ByteString  | Onkeypress_Att_61 B.ByteString  | Onkeydown_Att_61 B.ByteString  | Onkeyup_Att_61 B.ByteString  | Abbr_Att_61 B.ByteString  | Axis_Att_61 B.ByteString  | Headers_Att_61 B.ByteString  | Scope_Att_61 B.ByteString  | Rowspan_Att_61 B.ByteString  | Colspan_Att_61 B.ByteString  | Align_Att_61 B.ByteString  | Char_Att_61 B.ByteString  | Charoff_Att_61 B.ByteString  | Valign_Att_61 B.ByteString  | Nowrap_Att_61 B.ByteString  | Bgcolor_Att_61 B.ByteString  | Width_Att_61 B.ByteString  | Height_Att_61 B.ByteString 
   deriving (Show)
data Att60 = Id_Att_60 B.ByteString  | Class_Att_60 B.ByteString  | Style_Att_60 B.ByteString  | Title_Att_60 B.ByteString  | Lang_Att_60 B.ByteString  | Dir_Att_60 B.ByteString  | Onclick_Att_60 B.ByteString  | Ondblclick_Att_60 B.ByteString  | Onmousedown_Att_60 B.ByteString  | Onmouseup_Att_60 B.ByteString  | Onmouseover_Att_60 B.ByteString  | Onmousemove_Att_60 B.ByteString  | Onmouseout_Att_60 B.ByteString  | Onkeypress_Att_60 B.ByteString  | Onkeydown_Att_60 B.ByteString  | Onkeyup_Att_60 B.ByteString  | Align_Att_60 B.ByteString  | Char_Att_60 B.ByteString  | Charoff_Att_60 B.ByteString  | Valign_Att_60 B.ByteString  | Bgcolor_Att_60 B.ByteString 
   deriving (Show)
data Att59 = Id_Att_59 B.ByteString  | Class_Att_59 B.ByteString  | Style_Att_59 B.ByteString  | Title_Att_59 B.ByteString  | Lang_Att_59 B.ByteString  | Dir_Att_59 B.ByteString  | Onclick_Att_59 B.ByteString  | Ondblclick_Att_59 B.ByteString  | Onmousedown_Att_59 B.ByteString  | Onmouseup_Att_59 B.ByteString  | Onmouseover_Att_59 B.ByteString  | Onmousemove_Att_59 B.ByteString  | Onmouseout_Att_59 B.ByteString  | Onkeypress_Att_59 B.ByteString  | Onkeydown_Att_59 B.ByteString  | Onkeyup_Att_59 B.ByteString  | Span_Att_59 B.ByteString  | Width_Att_59 B.ByteString  | Align_Att_59 B.ByteString  | Char_Att_59 B.ByteString  | Charoff_Att_59 B.ByteString  | Valign_Att_59 B.ByteString 
   deriving (Show)
data Att58 = Id_Att_58 B.ByteString  | Class_Att_58 B.ByteString  | Style_Att_58 B.ByteString  | Title_Att_58 B.ByteString  | Lang_Att_58 B.ByteString  | Dir_Att_58 B.ByteString  | Onclick_Att_58 B.ByteString  | Ondblclick_Att_58 B.ByteString  | Onmousedown_Att_58 B.ByteString  | Onmouseup_Att_58 B.ByteString  | Onmouseover_Att_58 B.ByteString  | Onmousemove_Att_58 B.ByteString  | Onmouseout_Att_58 B.ByteString  | Onkeypress_Att_58 B.ByteString  | Onkeydown_Att_58 B.ByteString  | Onkeyup_Att_58 B.ByteString  | Align_Att_58 B.ByteString  | Char_Att_58 B.ByteString  | Charoff_Att_58 B.ByteString  | Valign_Att_58 B.ByteString 
   deriving (Show)
data Att57 = Id_Att_57 B.ByteString  | Class_Att_57 B.ByteString  | Style_Att_57 B.ByteString  | Title_Att_57 B.ByteString  | Lang_Att_57 B.ByteString  | Dir_Att_57 B.ByteString  | Onclick_Att_57 B.ByteString  | Ondblclick_Att_57 B.ByteString  | Onmousedown_Att_57 B.ByteString  | Onmouseup_Att_57 B.ByteString  | Onmouseover_Att_57 B.ByteString  | Onmousemove_Att_57 B.ByteString  | Onmouseout_Att_57 B.ByteString  | Onkeypress_Att_57 B.ByteString  | Onkeydown_Att_57 B.ByteString  | Onkeyup_Att_57 B.ByteString  | Summary_Att_57 B.ByteString  | Width_Att_57 B.ByteString  | Border_Att_57 B.ByteString  | Frame_Att_57 B.ByteString  | Rules_Att_57 B.ByteString  | Cellspacing_Att_57 B.ByteString  | Cellpadding_Att_57 B.ByteString  | Align_Att_57 B.ByteString  | Bgcolor_Att_57 B.ByteString 
   deriving (Show)
data Att56 = Id_Att_56 B.ByteString  | Class_Att_56 B.ByteString  | Style_Att_56 B.ByteString  | Title_Att_56 B.ByteString  | Lang_Att_56 B.ByteString  | Dir_Att_56 B.ByteString  | Prompt_Att_56 B.ByteString 
   deriving (Show)
data Att55 = Id_Att_55 B.ByteString  | Class_Att_55 B.ByteString  | Style_Att_55 B.ByteString  | Title_Att_55 B.ByteString  | Lang_Att_55 B.ByteString  | Dir_Att_55 B.ByteString  | Onclick_Att_55 B.ByteString  | Ondblclick_Att_55 B.ByteString  | Onmousedown_Att_55 B.ByteString  | Onmouseup_Att_55 B.ByteString  | Onmouseover_Att_55 B.ByteString  | Onmousemove_Att_55 B.ByteString  | Onmouseout_Att_55 B.ByteString  | Onkeypress_Att_55 B.ByteString  | Onkeydown_Att_55 B.ByteString  | Onkeyup_Att_55 B.ByteString  | Accesskey_Att_55 B.ByteString  | Tabindex_Att_55 B.ByteString  | Onfocus_Att_55 B.ByteString  | Onblur_Att_55 B.ByteString  | Name_Att_55 B.ByteString  | Value_Att_55 B.ByteString  | Type_Att_55 B.ByteString  | Disabled_Att_55 B.ByteString 
   deriving (Show)
data Att54 = Id_Att_54 B.ByteString  | Class_Att_54 B.ByteString  | Style_Att_54 B.ByteString  | Title_Att_54 B.ByteString  | Lang_Att_54 B.ByteString  | Dir_Att_54 B.ByteString  | Onclick_Att_54 B.ByteString  | Ondblclick_Att_54 B.ByteString  | Onmousedown_Att_54 B.ByteString  | Onmouseup_Att_54 B.ByteString  | Onmouseover_Att_54 B.ByteString  | Onmousemove_Att_54 B.ByteString  | Onmouseout_Att_54 B.ByteString  | Onkeypress_Att_54 B.ByteString  | Onkeydown_Att_54 B.ByteString  | Onkeyup_Att_54 B.ByteString  | Accesskey_Att_54 B.ByteString  | Align_Att_54 B.ByteString 
   deriving (Show)
data Att53 = Cols_Att_53 B.ByteString 
   deriving (Show)
data Att52 = Rows_Att_52 B.ByteString 
   deriving (Show)
data Att51 = Id_Att_51 B.ByteString  | Class_Att_51 B.ByteString  | Style_Att_51 B.ByteString  | Title_Att_51 B.ByteString  | Lang_Att_51 B.ByteString  | Dir_Att_51 B.ByteString  | Onclick_Att_51 B.ByteString  | Ondblclick_Att_51 B.ByteString  | Onmousedown_Att_51 B.ByteString  | Onmouseup_Att_51 B.ByteString  | Onmouseover_Att_51 B.ByteString  | Onmousemove_Att_51 B.ByteString  | Onmouseout_Att_51 B.ByteString  | Onkeypress_Att_51 B.ByteString  | Onkeydown_Att_51 B.ByteString  | Onkeyup_Att_51 B.ByteString  | Accesskey_Att_51 B.ByteString  | Tabindex_Att_51 B.ByteString  | Onfocus_Att_51 B.ByteString  | Onblur_Att_51 B.ByteString  | Name_Att_51 B.ByteString  | Rows_Att_51 B.ByteString  | Cols_Att_51 B.ByteString  | Disabled_Att_51 B.ByteString  | Readonly_Att_51 B.ByteString  | Onselect_Att_51 B.ByteString  | Onchange_Att_51 B.ByteString 
   deriving (Show)
data Att50 = Id_Att_50 B.ByteString  | Class_Att_50 B.ByteString  | Style_Att_50 B.ByteString  | Title_Att_50 B.ByteString  | Lang_Att_50 B.ByteString  | Dir_Att_50 B.ByteString  | Onclick_Att_50 B.ByteString  | Ondblclick_Att_50 B.ByteString  | Onmousedown_Att_50 B.ByteString  | Onmouseup_Att_50 B.ByteString  | Onmouseover_Att_50 B.ByteString  | Onmousemove_Att_50 B.ByteString  | Onmouseout_Att_50 B.ByteString  | Onkeypress_Att_50 B.ByteString  | Onkeydown_Att_50 B.ByteString  | Onkeyup_Att_50 B.ByteString  | Selected_Att_50 B.ByteString  | Disabled_Att_50 B.ByteString  | Label_Att_50 B.ByteString  | Value_Att_50 B.ByteString 
   deriving (Show)
data Att49 = Label_Att_49 B.ByteString 
   deriving (Show)
data Att48 = Id_Att_48 B.ByteString  | Class_Att_48 B.ByteString  | Style_Att_48 B.ByteString  | Title_Att_48 B.ByteString  | Lang_Att_48 B.ByteString  | Dir_Att_48 B.ByteString  | Onclick_Att_48 B.ByteString  | Ondblclick_Att_48 B.ByteString  | Onmousedown_Att_48 B.ByteString  | Onmouseup_Att_48 B.ByteString  | Onmouseover_Att_48 B.ByteString  | Onmousemove_Att_48 B.ByteString  | Onmouseout_Att_48 B.ByteString  | Onkeypress_Att_48 B.ByteString  | Onkeydown_Att_48 B.ByteString  | Onkeyup_Att_48 B.ByteString  | Disabled_Att_48 B.ByteString  | Label_Att_48 B.ByteString 
   deriving (Show)
data Att47 = Id_Att_47 B.ByteString  | Class_Att_47 B.ByteString  | Style_Att_47 B.ByteString  | Title_Att_47 B.ByteString  | Lang_Att_47 B.ByteString  | Dir_Att_47 B.ByteString  | Onclick_Att_47 B.ByteString  | Ondblclick_Att_47 B.ByteString  | Onmousedown_Att_47 B.ByteString  | Onmouseup_Att_47 B.ByteString  | Onmouseover_Att_47 B.ByteString  | Onmousemove_Att_47 B.ByteString  | Onmouseout_Att_47 B.ByteString  | Onkeypress_Att_47 B.ByteString  | Onkeydown_Att_47 B.ByteString  | Onkeyup_Att_47 B.ByteString  | Name_Att_47 B.ByteString  | Size_Att_47 B.ByteString  | Multiple_Att_47 B.ByteString  | Disabled_Att_47 B.ByteString  | Tabindex_Att_47 B.ByteString  | Onfocus_Att_47 B.ByteString  | Onblur_Att_47 B.ByteString  | Onchange_Att_47 B.ByteString 
   deriving (Show)
data Att46 = Id_Att_46 B.ByteString  | Class_Att_46 B.ByteString  | Style_Att_46 B.ByteString  | Title_Att_46 B.ByteString  | Lang_Att_46 B.ByteString  | Dir_Att_46 B.ByteString  | Onclick_Att_46 B.ByteString  | Ondblclick_Att_46 B.ByteString  | Onmousedown_Att_46 B.ByteString  | Onmouseup_Att_46 B.ByteString  | Onmouseover_Att_46 B.ByteString  | Onmousemove_Att_46 B.ByteString  | Onmouseout_Att_46 B.ByteString  | Onkeypress_Att_46 B.ByteString  | Onkeydown_Att_46 B.ByteString  | Onkeyup_Att_46 B.ByteString  | Accesskey_Att_46 B.ByteString  | Tabindex_Att_46 B.ByteString  | Onfocus_Att_46 B.ByteString  | Onblur_Att_46 B.ByteString  | Type_Att_46 B.ByteString  | Name_Att_46 B.ByteString  | Value_Att_46 B.ByteString  | Checked_Att_46 B.ByteString  | Disabled_Att_46 B.ByteString  | Readonly_Att_46 B.ByteString  | Size_Att_46 B.ByteString  | Maxlength_Att_46 B.ByteString  | Src_Att_46 B.ByteString  | Alt_Att_46 B.ByteString  | Usemap_Att_46 B.ByteString  | Onselect_Att_46 B.ByteString  | Onchange_Att_46 B.ByteString  | Accept_Att_46 B.ByteString  | Align_Att_46 B.ByteString 
   deriving (Show)
data Att45 = Id_Att_45 B.ByteString  | Class_Att_45 B.ByteString  | Style_Att_45 B.ByteString  | Title_Att_45 B.ByteString  | Lang_Att_45 B.ByteString  | Dir_Att_45 B.ByteString  | Onclick_Att_45 B.ByteString  | Ondblclick_Att_45 B.ByteString  | Onmousedown_Att_45 B.ByteString  | Onmouseup_Att_45 B.ByteString  | Onmouseover_Att_45 B.ByteString  | Onmousemove_Att_45 B.ByteString  | Onmouseout_Att_45 B.ByteString  | Onkeypress_Att_45 B.ByteString  | Onkeydown_Att_45 B.ByteString  | Onkeyup_Att_45 B.ByteString  | For_Att_45 B.ByteString  | Accesskey_Att_45 B.ByteString  | Onfocus_Att_45 B.ByteString  | Onblur_Att_45 B.ByteString 
   deriving (Show)
data Att44 = Action_Att_44 B.ByteString 
   deriving (Show)
data Att43 = Id_Att_43 B.ByteString  | Class_Att_43 B.ByteString  | Style_Att_43 B.ByteString  | Title_Att_43 B.ByteString  | Lang_Att_43 B.ByteString  | Dir_Att_43 B.ByteString  | Onclick_Att_43 B.ByteString  | Ondblclick_Att_43 B.ByteString  | Onmousedown_Att_43 B.ByteString  | Onmouseup_Att_43 B.ByteString  | Onmouseover_Att_43 B.ByteString  | Onmousemove_Att_43 B.ByteString  | Onmouseout_Att_43 B.ByteString  | Onkeypress_Att_43 B.ByteString  | Onkeydown_Att_43 B.ByteString  | Onkeyup_Att_43 B.ByteString  | Action_Att_43 B.ByteString  | Method_Att_43 B.ByteString  | Name_Att_43 B.ByteString  | Enctype_Att_43 B.ByteString  | Onsubmit_Att_43 B.ByteString  | Onreset_Att_43 B.ByteString  | Accept_Att_43 B.ByteString  | Accept_charset_Att_43 B.ByteString  | Target_Att_43 B.ByteString 
   deriving (Show)
data Att42 = Id_Att_42 B.ByteString  | Class_Att_42 B.ByteString  | Style_Att_42 B.ByteString  | Title_Att_42 B.ByteString  | Lang_Att_42 B.ByteString  | Dir_Att_42 B.ByteString  | Onclick_Att_42 B.ByteString  | Ondblclick_Att_42 B.ByteString  | Onmousedown_Att_42 B.ByteString  | Onmouseup_Att_42 B.ByteString  | Onmouseover_Att_42 B.ByteString  | Onmousemove_Att_42 B.ByteString  | Onmouseout_Att_42 B.ByteString  | Onkeypress_Att_42 B.ByteString  | Onkeydown_Att_42 B.ByteString  | Onkeyup_Att_42 B.ByteString  | Accesskey_Att_42 B.ByteString  | Tabindex_Att_42 B.ByteString  | Onfocus_Att_42 B.ByteString  | Onblur_Att_42 B.ByteString  | Shape_Att_42 B.ByteString  | Coords_Att_42 B.ByteString  | Href_Att_42 B.ByteString  | Nohref_Att_42 B.ByteString  | Alt_Att_42 B.ByteString  | Target_Att_42 B.ByteString 
   deriving (Show)
data Att41 = Id_Att_41 B.ByteString 
   deriving (Show)
data Att40 = Lang_Att_40 B.ByteString  | Dir_Att_40 B.ByteString  | Onclick_Att_40 B.ByteString  | Ondblclick_Att_40 B.ByteString  | Onmousedown_Att_40 B.ByteString  | Onmouseup_Att_40 B.ByteString  | Onmouseover_Att_40 B.ByteString  | Onmousemove_Att_40 B.ByteString  | Onmouseout_Att_40 B.ByteString  | Onkeypress_Att_40 B.ByteString  | Onkeydown_Att_40 B.ByteString  | Onkeyup_Att_40 B.ByteString  | Id_Att_40 B.ByteString  | Class_Att_40 B.ByteString  | Style_Att_40 B.ByteString  | Title_Att_40 B.ByteString  | Name_Att_40 B.ByteString 
   deriving (Show)
data Att39 = Alt_Att_39 B.ByteString 
   deriving (Show)
data Att38 = Src_Att_38 B.ByteString 
   deriving (Show)
data Att37 = Id_Att_37 B.ByteString  | Class_Att_37 B.ByteString  | Style_Att_37 B.ByteString  | Title_Att_37 B.ByteString  | Lang_Att_37 B.ByteString  | Dir_Att_37 B.ByteString  | Onclick_Att_37 B.ByteString  | Ondblclick_Att_37 B.ByteString  | Onmousedown_Att_37 B.ByteString  | Onmouseup_Att_37 B.ByteString  | Onmouseover_Att_37 B.ByteString  | Onmousemove_Att_37 B.ByteString  | Onmouseout_Att_37 B.ByteString  | Onkeypress_Att_37 B.ByteString  | Onkeydown_Att_37 B.ByteString  | Onkeyup_Att_37 B.ByteString  | Src_Att_37 B.ByteString  | Alt_Att_37 B.ByteString  | Name_Att_37 B.ByteString  | Longdesc_Att_37 B.ByteString  | Height_Att_37 B.ByteString  | Width_Att_37 B.ByteString  | Usemap_Att_37 B.ByteString  | Ismap_Att_37 B.ByteString  | Align_Att_37 B.ByteString  | Border_Att_37 B.ByteString  | Hspace_Att_37 B.ByteString  | Vspace_Att_37 B.ByteString 
   deriving (Show)
data Att36 = Height_Att_36 B.ByteString 
   deriving (Show)
data Att35 = Width_Att_35 B.ByteString 
   deriving (Show)
data Att34 = Id_Att_34 B.ByteString  | Class_Att_34 B.ByteString  | Style_Att_34 B.ByteString  | Title_Att_34 B.ByteString  | Codebase_Att_34 B.ByteString  | Archive_Att_34 B.ByteString  | Code_Att_34 B.ByteString  | Object_Att_34 B.ByteString  | Alt_Att_34 B.ByteString  | Name_Att_34 B.ByteString  | Width_Att_34 B.ByteString  | Height_Att_34 B.ByteString  | Align_Att_34 B.ByteString  | Hspace_Att_34 B.ByteString  | Vspace_Att_34 B.ByteString 
   deriving (Show)
data Att33 = Name_Att_33 B.ByteString 
   deriving (Show)
data Att32 = Id_Att_32 B.ByteString  | Name_Att_32 B.ByteString  | Value_Att_32 B.ByteString  | Valuetype_Att_32 B.ByteString  | Type_Att_32 B.ByteString 
   deriving (Show)
data Att31 = Id_Att_31 B.ByteString  | Class_Att_31 B.ByteString  | Style_Att_31 B.ByteString  | Title_Att_31 B.ByteString  | Lang_Att_31 B.ByteString  | Dir_Att_31 B.ByteString  | Onclick_Att_31 B.ByteString  | Ondblclick_Att_31 B.ByteString  | Onmousedown_Att_31 B.ByteString  | Onmouseup_Att_31 B.ByteString  | Onmouseover_Att_31 B.ByteString  | Onmousemove_Att_31 B.ByteString  | Onmouseout_Att_31 B.ByteString  | Onkeypress_Att_31 B.ByteString  | Onkeydown_Att_31 B.ByteString  | Onkeyup_Att_31 B.ByteString  | Declare_Att_31 B.ByteString  | Classid_Att_31 B.ByteString  | Codebase_Att_31 B.ByteString  | Data_Att_31 B.ByteString  | Type_Att_31 B.ByteString  | Codetype_Att_31 B.ByteString  | Archive_Att_31 B.ByteString  | Standby_Att_31 B.ByteString  | Height_Att_31 B.ByteString  | Width_Att_31 B.ByteString  | Usemap_Att_31 B.ByteString  | Name_Att_31 B.ByteString  | Tabindex_Att_31 B.ByteString  | Align_Att_31 B.ByteString  | Border_Att_31 B.ByteString  | Hspace_Att_31 B.ByteString  | Vspace_Att_31 B.ByteString 
   deriving (Show)
data Att30 = Id_Att_30 B.ByteString  | Class_Att_30 B.ByteString  | Style_Att_30 B.ByteString  | Title_Att_30 B.ByteString  | Lang_Att_30 B.ByteString  | Dir_Att_30 B.ByteString  | Size_Att_30 B.ByteString  | Color_Att_30 B.ByteString  | Face_Att_30 B.ByteString 
   deriving (Show)
data Att29 = Size_Att_29 B.ByteString 
   deriving (Show)
data Att28 = Id_Att_28 B.ByteString  | Size_Att_28 B.ByteString  | Color_Att_28 B.ByteString  | Face_Att_28 B.ByteString 
   deriving (Show)
data Att27 = Id_Att_27 B.ByteString  | Class_Att_27 B.ByteString  | Style_Att_27 B.ByteString  | Title_Att_27 B.ByteString  | Clear_Att_27 B.ByteString 
   deriving (Show)
data Att26 = Dir_Att_26 B.ByteString 
   deriving (Show)
data Att25 = Id_Att_25 B.ByteString  | Class_Att_25 B.ByteString  | Style_Att_25 B.ByteString  | Title_Att_25 B.ByteString  | Onclick_Att_25 B.ByteString  | Ondblclick_Att_25 B.ByteString  | Onmousedown_Att_25 B.ByteString  | Onmouseup_Att_25 B.ByteString  | Onmouseover_Att_25 B.ByteString  | Onmousemove_Att_25 B.ByteString  | Onmouseout_Att_25 B.ByteString  | Onkeypress_Att_25 B.ByteString  | Onkeydown_Att_25 B.ByteString  | Onkeyup_Att_25 B.ByteString  | Lang_Att_25 B.ByteString  | Dir_Att_25 B.ByteString 
   deriving (Show)
data Att24 = Id_Att_24 B.ByteString  | Class_Att_24 B.ByteString  | Style_Att_24 B.ByteString  | Title_Att_24 B.ByteString  | Lang_Att_24 B.ByteString  | Dir_Att_24 B.ByteString  | Onclick_Att_24 B.ByteString  | Ondblclick_Att_24 B.ByteString  | Onmousedown_Att_24 B.ByteString  | Onmouseup_Att_24 B.ByteString  | Onmouseover_Att_24 B.ByteString  | Onmousemove_Att_24 B.ByteString  | Onmouseout_Att_24 B.ByteString  | Onkeypress_Att_24 B.ByteString  | Onkeydown_Att_24 B.ByteString  | Onkeyup_Att_24 B.ByteString  | Accesskey_Att_24 B.ByteString  | Tabindex_Att_24 B.ByteString  | Onfocus_Att_24 B.ByteString  | Onblur_Att_24 B.ByteString  | Charset_Att_24 B.ByteString  | Type_Att_24 B.ByteString  | Name_Att_24 B.ByteString  | Href_Att_24 B.ByteString  | Hreflang_Att_24 B.ByteString  | Rel_Att_24 B.ByteString  | Rev_Att_24 B.ByteString  | Shape_Att_24 B.ByteString  | Coords_Att_24 B.ByteString  | Target_Att_24 B.ByteString 
   deriving (Show)
data Att23 = Id_Att_23 B.ByteString  | Class_Att_23 B.ByteString  | Style_Att_23 B.ByteString  | Title_Att_23 B.ByteString  | Lang_Att_23 B.ByteString  | Dir_Att_23 B.ByteString  | Onclick_Att_23 B.ByteString  | Ondblclick_Att_23 B.ByteString  | Onmousedown_Att_23 B.ByteString  | Onmouseup_Att_23 B.ByteString  | Onmouseover_Att_23 B.ByteString  | Onmousemove_Att_23 B.ByteString  | Onmouseout_Att_23 B.ByteString  | Onkeypress_Att_23 B.ByteString  | Onkeydown_Att_23 B.ByteString  | Onkeyup_Att_23 B.ByteString  | Cite_Att_23 B.ByteString  | Datetime_Att_23 B.ByteString 
   deriving (Show)
data Att22 = Id_Att_22 B.ByteString  | Class_Att_22 B.ByteString  | Style_Att_22 B.ByteString  | Title_Att_22 B.ByteString  | Lang_Att_22 B.ByteString  | Dir_Att_22 B.ByteString  | Onclick_Att_22 B.ByteString  | Ondblclick_Att_22 B.ByteString  | Onmousedown_Att_22 B.ByteString  | Onmouseup_Att_22 B.ByteString  | Onmouseover_Att_22 B.ByteString  | Onmousemove_Att_22 B.ByteString  | Onmouseout_Att_22 B.ByteString  | Onkeypress_Att_22 B.ByteString  | Onkeydown_Att_22 B.ByteString  | Onkeyup_Att_22 B.ByteString  | Cite_Att_22 B.ByteString 
   deriving (Show)
data Att21 = Id_Att_21 B.ByteString  | Class_Att_21 B.ByteString  | Style_Att_21 B.ByteString  | Title_Att_21 B.ByteString  | Lang_Att_21 B.ByteString  | Dir_Att_21 B.ByteString  | Onclick_Att_21 B.ByteString  | Ondblclick_Att_21 B.ByteString  | Onmousedown_Att_21 B.ByteString  | Onmouseup_Att_21 B.ByteString  | Onmouseover_Att_21 B.ByteString  | Onmousemove_Att_21 B.ByteString  | Onmouseout_Att_21 B.ByteString  | Onkeypress_Att_21 B.ByteString  | Onkeydown_Att_21 B.ByteString  | Onkeyup_Att_21 B.ByteString  | Width_Att_21 B.ByteString  | Space_Att_21 B.ByteString 
   deriving (Show)
data Att20 = Id_Att_20 B.ByteString  | Class_Att_20 B.ByteString  | Style_Att_20 B.ByteString  | Title_Att_20 B.ByteString  | Lang_Att_20 B.ByteString  | Dir_Att_20 B.ByteString  | Onclick_Att_20 B.ByteString  | Ondblclick_Att_20 B.ByteString  | Onmousedown_Att_20 B.ByteString  | Onmouseup_Att_20 B.ByteString  | Onmouseover_Att_20 B.ByteString  | Onmousemove_Att_20 B.ByteString  | Onmouseout_Att_20 B.ByteString  | Onkeypress_Att_20 B.ByteString  | Onkeydown_Att_20 B.ByteString  | Onkeyup_Att_20 B.ByteString  | Align_Att_20 B.ByteString  | Noshade_Att_20 B.ByteString  | Size_Att_20 B.ByteString  | Width_Att_20 B.ByteString 
   deriving (Show)
data Att19 = Id_Att_19 B.ByteString  | Class_Att_19 B.ByteString  | Style_Att_19 B.ByteString  | Title_Att_19 B.ByteString  | Lang_Att_19 B.ByteString  | Dir_Att_19 B.ByteString  | Onclick_Att_19 B.ByteString  | Ondblclick_Att_19 B.ByteString  | Onmousedown_Att_19 B.ByteString  | Onmouseup_Att_19 B.ByteString  | Onmouseover_Att_19 B.ByteString  | Onmousemove_Att_19 B.ByteString  | Onmouseout_Att_19 B.ByteString  | Onkeypress_Att_19 B.ByteString  | Onkeydown_Att_19 B.ByteString  | Onkeyup_Att_19 B.ByteString  | Type_Att_19 B.ByteString  | Value_Att_19 B.ByteString 
   deriving (Show)
data Att18 = Id_Att_18 B.ByteString  | Class_Att_18 B.ByteString  | Style_Att_18 B.ByteString  | Title_Att_18 B.ByteString  | Lang_Att_18 B.ByteString  | Dir_Att_18 B.ByteString  | Onclick_Att_18 B.ByteString  | Ondblclick_Att_18 B.ByteString  | Onmousedown_Att_18 B.ByteString  | Onmouseup_Att_18 B.ByteString  | Onmouseover_Att_18 B.ByteString  | Onmousemove_Att_18 B.ByteString  | Onmouseout_Att_18 B.ByteString  | Onkeypress_Att_18 B.ByteString  | Onkeydown_Att_18 B.ByteString  | Onkeyup_Att_18 B.ByteString  | Compact_Att_18 B.ByteString 
   deriving (Show)
data Att17 = Id_Att_17 B.ByteString  | Class_Att_17 B.ByteString  | Style_Att_17 B.ByteString  | Title_Att_17 B.ByteString  | Lang_Att_17 B.ByteString  | Dir_Att_17 B.ByteString  | Onclick_Att_17 B.ByteString  | Ondblclick_Att_17 B.ByteString  | Onmousedown_Att_17 B.ByteString  | Onmouseup_Att_17 B.ByteString  | Onmouseover_Att_17 B.ByteString  | Onmousemove_Att_17 B.ByteString  | Onmouseout_Att_17 B.ByteString  | Onkeypress_Att_17 B.ByteString  | Onkeydown_Att_17 B.ByteString  | Onkeyup_Att_17 B.ByteString  | Type_Att_17 B.ByteString  | Compact_Att_17 B.ByteString  | Start_Att_17 B.ByteString 
   deriving (Show)
data Att16 = Id_Att_16 B.ByteString  | Class_Att_16 B.ByteString  | Style_Att_16 B.ByteString  | Title_Att_16 B.ByteString  | Lang_Att_16 B.ByteString  | Dir_Att_16 B.ByteString  | Onclick_Att_16 B.ByteString  | Ondblclick_Att_16 B.ByteString  | Onmousedown_Att_16 B.ByteString  | Onmouseup_Att_16 B.ByteString  | Onmouseover_Att_16 B.ByteString  | Onmousemove_Att_16 B.ByteString  | Onmouseout_Att_16 B.ByteString  | Onkeypress_Att_16 B.ByteString  | Onkeydown_Att_16 B.ByteString  | Onkeyup_Att_16 B.ByteString  | Type_Att_16 B.ByteString  | Compact_Att_16 B.ByteString 
   deriving (Show)
data Att15 = Id_Att_15 B.ByteString  | Class_Att_15 B.ByteString  | Style_Att_15 B.ByteString  | Title_Att_15 B.ByteString  | Lang_Att_15 B.ByteString  | Dir_Att_15 B.ByteString  | Onclick_Att_15 B.ByteString  | Ondblclick_Att_15 B.ByteString  | Onmousedown_Att_15 B.ByteString  | Onmouseup_Att_15 B.ByteString  | Onmouseover_Att_15 B.ByteString  | Onmousemove_Att_15 B.ByteString  | Onmouseout_Att_15 B.ByteString  | Onkeypress_Att_15 B.ByteString  | Onkeydown_Att_15 B.ByteString  | Onkeyup_Att_15 B.ByteString  | Align_Att_15 B.ByteString 
   deriving (Show)
data Att14 = Id_Att_14 B.ByteString  | Class_Att_14 B.ByteString  | Style_Att_14 B.ByteString  | Title_Att_14 B.ByteString  | Lang_Att_14 B.ByteString  | Dir_Att_14 B.ByteString  | Onclick_Att_14 B.ByteString  | Ondblclick_Att_14 B.ByteString  | Onmousedown_Att_14 B.ByteString  | Onmouseup_Att_14 B.ByteString  | Onmouseover_Att_14 B.ByteString  | Onmousemove_Att_14 B.ByteString  | Onmouseout_Att_14 B.ByteString  | Onkeypress_Att_14 B.ByteString  | Onkeydown_Att_14 B.ByteString  | Onkeyup_Att_14 B.ByteString  | Onload_Att_14 B.ByteString  | Onunload_Att_14 B.ByteString  | Background_Att_14 B.ByteString  | Bgcolor_Att_14 B.ByteString  | Text_Att_14 B.ByteString  | Link_Att_14 B.ByteString  | Vlink_Att_14 B.ByteString  | Alink_Att_14 B.ByteString 
   deriving (Show)
data Att13 = Id_Att_13 B.ByteString  | Class_Att_13 B.ByteString  | Style_Att_13 B.ByteString  | Title_Att_13 B.ByteString  | Longdesc_Att_13 B.ByteString  | Name_Att_13 B.ByteString  | Src_Att_13 B.ByteString  | Frameborder_Att_13 B.ByteString  | Marginwidth_Att_13 B.ByteString  | Marginheight_Att_13 B.ByteString  | Scrolling_Att_13 B.ByteString  | Align_Att_13 B.ByteString  | Height_Att_13 B.ByteString  | Width_Att_13 B.ByteString 
   deriving (Show)
data Att12 = Id_Att_12 B.ByteString  | Class_Att_12 B.ByteString  | Style_Att_12 B.ByteString  | Title_Att_12 B.ByteString  | Longdesc_Att_12 B.ByteString  | Name_Att_12 B.ByteString  | Src_Att_12 B.ByteString  | Frameborder_Att_12 B.ByteString  | Marginwidth_Att_12 B.ByteString  | Marginheight_Att_12 B.ByteString  | Noresize_Att_12 B.ByteString  | Scrolling_Att_12 B.ByteString 
   deriving (Show)
data Att11 = Id_Att_11 B.ByteString  | Class_Att_11 B.ByteString  | Style_Att_11 B.ByteString  | Title_Att_11 B.ByteString  | Rows_Att_11 B.ByteString  | Cols_Att_11 B.ByteString  | Onload_Att_11 B.ByteString  | Onunload_Att_11 B.ByteString 
   deriving (Show)
data Att10 = Id_Att_10 B.ByteString  | Class_Att_10 B.ByteString  | Style_Att_10 B.ByteString  | Title_Att_10 B.ByteString  | Lang_Att_10 B.ByteString  | Dir_Att_10 B.ByteString  | Onclick_Att_10 B.ByteString  | Ondblclick_Att_10 B.ByteString  | Onmousedown_Att_10 B.ByteString  | Onmouseup_Att_10 B.ByteString  | Onmouseover_Att_10 B.ByteString  | Onmousemove_Att_10 B.ByteString  | Onmouseout_Att_10 B.ByteString  | Onkeypress_Att_10 B.ByteString  | Onkeydown_Att_10 B.ByteString  | Onkeyup_Att_10 B.ByteString 
   deriving (Show)
data Att9 = Id_Att_9 B.ByteString  | Charset_Att_9 B.ByteString  | Type_Att_9 B.ByteString  | Language_Att_9 B.ByteString  | Src_Att_9 B.ByteString  | Defer_Att_9 B.ByteString  | Space_Att_9 B.ByteString 
   deriving (Show)
data Att8 = Type_Att_8 B.ByteString 
   deriving (Show)
data Att7 = Lang_Att_7 B.ByteString  | Dir_Att_7 B.ByteString  | Id_Att_7 B.ByteString  | Type_Att_7 B.ByteString  | Media_Att_7 B.ByteString  | Title_Att_7 B.ByteString  | Space_Att_7 B.ByteString 
   deriving (Show)
data Att6 = Id_Att_6 B.ByteString  | Class_Att_6 B.ByteString  | Style_Att_6 B.ByteString  | Title_Att_6 B.ByteString  | Lang_Att_6 B.ByteString  | Dir_Att_6 B.ByteString  | Onclick_Att_6 B.ByteString  | Ondblclick_Att_6 B.ByteString  | Onmousedown_Att_6 B.ByteString  | Onmouseup_Att_6 B.ByteString  | Onmouseover_Att_6 B.ByteString  | Onmousemove_Att_6 B.ByteString  | Onmouseout_Att_6 B.ByteString  | Onkeypress_Att_6 B.ByteString  | Onkeydown_Att_6 B.ByteString  | Onkeyup_Att_6 B.ByteString  | Charset_Att_6 B.ByteString  | Href_Att_6 B.ByteString  | Hreflang_Att_6 B.ByteString  | Type_Att_6 B.ByteString  | Rel_Att_6 B.ByteString  | Rev_Att_6 B.ByteString  | Media_Att_6 B.ByteString  | Target_Att_6 B.ByteString 
   deriving (Show)
data Att5 = Content_Att_5 B.ByteString 
   deriving (Show)
data Att4 = Lang_Att_4 B.ByteString  | Dir_Att_4 B.ByteString  | Id_Att_4 B.ByteString  | Http_equiv_Att_4 B.ByteString  | Name_Att_4 B.ByteString  | Content_Att_4 B.ByteString  | Scheme_Att_4 B.ByteString 
   deriving (Show)
data Att3 = Id_Att_3 B.ByteString  | Href_Att_3 B.ByteString  | Target_Att_3 B.ByteString 
   deriving (Show)
data Att2 = Lang_Att_2 B.ByteString  | Dir_Att_2 B.ByteString  | Id_Att_2 B.ByteString 
   deriving (Show)
data Att1 = Lang_Att_1 B.ByteString  | Dir_Att_1 B.ByteString  | Id_Att_1 B.ByteString  | Profile_Att_1 B.ByteString 
   deriving (Show)
data Att0 = Lang_Att_0 B.ByteString  | Dir_Att_0 B.ByteString  | Id_Att_0 B.ByteString  | Xmlns_Att_0 B.ByteString 
   deriving (Show)

data RulesEnum = Rules_none | Groups | Rows | Cols | Rules_all
instance Show RulesEnum where
    show Text.CHXHtml.XHtml1_frameset.Rules_none="none"
    show Text.CHXHtml.XHtml1_frameset.Groups="groups"
    show Text.CHXHtml.XHtml1_frameset.Rows="rows"
    show Text.CHXHtml.XHtml1_frameset.Cols="cols"
    show Text.CHXHtml.XHtml1_frameset.Rules_all="all"
data ScrollingEnum = Yes | No | Auto
instance Show ScrollingEnum where
    show Text.CHXHtml.XHtml1_frameset.Yes="yes"
    show Text.CHXHtml.XHtml1_frameset.No="no"
    show Text.CHXHtml.XHtml1_frameset.Auto="auto"
data ShapeEnum = Rect | Circle | Poly | Default
instance Show ShapeEnum where
    show Text.CHXHtml.XHtml1_frameset.Rect="rect"
    show Text.CHXHtml.XHtml1_frameset.Circle="circle"
    show Text.CHXHtml.XHtml1_frameset.Poly="poly"
    show Text.CHXHtml.XHtml1_frameset.Default="default"
data MethodEnum = Get | Post
instance Show MethodEnum where
    show Text.CHXHtml.XHtml1_frameset.Get="get"
    show Text.CHXHtml.XHtml1_frameset.Post="post"
data FrameEnum = Void | Above | Below | Hsides | Lhs | Rhs | Vsides | Box | Border
instance Show FrameEnum where
    show Text.CHXHtml.XHtml1_frameset.Void="void"
    show Text.CHXHtml.XHtml1_frameset.Above="above"
    show Text.CHXHtml.XHtml1_frameset.Below="below"
    show Text.CHXHtml.XHtml1_frameset.Hsides="hsides"
    show Text.CHXHtml.XHtml1_frameset.Lhs="lhs"
    show Text.CHXHtml.XHtml1_frameset.Rhs="rhs"
    show Text.CHXHtml.XHtml1_frameset.Vsides="vsides"
    show Text.CHXHtml.XHtml1_frameset.Box="box"
    show Text.CHXHtml.XHtml1_frameset.Border="border"
data FrameborderEnum = D1 | D0
instance Show FrameborderEnum where
    show Text.CHXHtml.XHtml1_frameset.D1="1"
    show Text.CHXHtml.XHtml1_frameset.D0="0"
data AlignEnum = Align_left | Center | Align_right | Justify
instance Show AlignEnum where
    show Text.CHXHtml.XHtml1_frameset.Align_left="left"
    show Text.CHXHtml.XHtml1_frameset.Center="center"
    show Text.CHXHtml.XHtml1_frameset.Align_right="right"
    show Text.CHXHtml.XHtml1_frameset.Justify="justify"
data ScopeEnum = Row | Col | Rowgroup | Colgroup
instance Show ScopeEnum where
    show Text.CHXHtml.XHtml1_frameset.Row="row"
    show Text.CHXHtml.XHtml1_frameset.Col="col"
    show Text.CHXHtml.XHtml1_frameset.Rowgroup="rowgroup"
    show Text.CHXHtml.XHtml1_frameset.Colgroup="colgroup"
data ClearEnum = Clear_left | Clear_all | Clear_right | Clear_none
instance Show ClearEnum where
    show Text.CHXHtml.XHtml1_frameset.Clear_left="left"
    show Text.CHXHtml.XHtml1_frameset.Clear_all="all"
    show Text.CHXHtml.XHtml1_frameset.Clear_right="right"
    show Text.CHXHtml.XHtml1_frameset.Clear_none="none"
data ValuetypeEnum = Data | Ref | Object
instance Show ValuetypeEnum where
    show Text.CHXHtml.XHtml1_frameset.Data="data"
    show Text.CHXHtml.XHtml1_frameset.Ref="ref"
    show Text.CHXHtml.XHtml1_frameset.Object="object"
data DirEnum = Ltr | Rtl
instance Show DirEnum where
    show Text.CHXHtml.XHtml1_frameset.Ltr="ltr"
    show Text.CHXHtml.XHtml1_frameset.Rtl="rtl"
data ValignEnum = Top | Middle | Bottom | Baseline
instance Show ValignEnum where
    show Text.CHXHtml.XHtml1_frameset.Top="top"
    show Text.CHXHtml.XHtml1_frameset.Middle="middle"
    show Text.CHXHtml.XHtml1_frameset.Bottom="bottom"
    show Text.CHXHtml.XHtml1_frameset.Baseline="baseline"

class A_Http_equiv a where
    http_equiv_att :: String -> a
    http_equiv_att_bs :: B.ByteString -> a
instance A_Http_equiv Att4 where
    http_equiv_att s =  Http_equiv_Att_4 (s2b_escape s)
    http_equiv_att_bs =  Http_equiv_Att_4 

class A_Nohref a where
    nohref_att :: String -> a
instance A_Nohref Att42 where
    nohref_att s =  Nohref_Att_42 (s2b (show s))

class A_Onkeydown a where
    onkeydown_att :: String -> a
    onkeydown_att_bs :: B.ByteString -> a
instance A_Onkeydown Att61 where
    onkeydown_att s =  Onkeydown_Att_61 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_61 
instance A_Onkeydown Att60 where
    onkeydown_att s =  Onkeydown_Att_60 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_60 
instance A_Onkeydown Att59 where
    onkeydown_att s =  Onkeydown_Att_59 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_59 
instance A_Onkeydown Att58 where
    onkeydown_att s =  Onkeydown_Att_58 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_58 
instance A_Onkeydown Att57 where
    onkeydown_att s =  Onkeydown_Att_57 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_57 
instance A_Onkeydown Att55 where
    onkeydown_att s =  Onkeydown_Att_55 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_55 
instance A_Onkeydown Att54 where
    onkeydown_att s =  Onkeydown_Att_54 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_54 
instance A_Onkeydown Att51 where
    onkeydown_att s =  Onkeydown_Att_51 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_51 
instance A_Onkeydown Att50 where
    onkeydown_att s =  Onkeydown_Att_50 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_50 
instance A_Onkeydown Att48 where
    onkeydown_att s =  Onkeydown_Att_48 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_48 
instance A_Onkeydown Att47 where
    onkeydown_att s =  Onkeydown_Att_47 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_47 
instance A_Onkeydown Att46 where
    onkeydown_att s =  Onkeydown_Att_46 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_46 
instance A_Onkeydown Att45 where
    onkeydown_att s =  Onkeydown_Att_45 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_45 
instance A_Onkeydown Att43 where
    onkeydown_att s =  Onkeydown_Att_43 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_43 
instance A_Onkeydown Att42 where
    onkeydown_att s =  Onkeydown_Att_42 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_42 
instance A_Onkeydown Att40 where
    onkeydown_att s =  Onkeydown_Att_40 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_40 
instance A_Onkeydown Att37 where
    onkeydown_att s =  Onkeydown_Att_37 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_37 
instance A_Onkeydown Att31 where
    onkeydown_att s =  Onkeydown_Att_31 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_31 
instance A_Onkeydown Att25 where
    onkeydown_att s =  Onkeydown_Att_25 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_25 
instance A_Onkeydown Att24 where
    onkeydown_att s =  Onkeydown_Att_24 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_24 
instance A_Onkeydown Att23 where
    onkeydown_att s =  Onkeydown_Att_23 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_23 
instance A_Onkeydown Att22 where
    onkeydown_att s =  Onkeydown_Att_22 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_22 
instance A_Onkeydown Att21 where
    onkeydown_att s =  Onkeydown_Att_21 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_21 
instance A_Onkeydown Att20 where
    onkeydown_att s =  Onkeydown_Att_20 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_20 
instance A_Onkeydown Att19 where
    onkeydown_att s =  Onkeydown_Att_19 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_19 
instance A_Onkeydown Att18 where
    onkeydown_att s =  Onkeydown_Att_18 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_18 
instance A_Onkeydown Att17 where
    onkeydown_att s =  Onkeydown_Att_17 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_17 
instance A_Onkeydown Att16 where
    onkeydown_att s =  Onkeydown_Att_16 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_16 
instance A_Onkeydown Att15 where
    onkeydown_att s =  Onkeydown_Att_15 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_15 
instance A_Onkeydown Att14 where
    onkeydown_att s =  Onkeydown_Att_14 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_14 
instance A_Onkeydown Att10 where
    onkeydown_att s =  Onkeydown_Att_10 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_10 
instance A_Onkeydown Att6 where
    onkeydown_att s =  Onkeydown_Att_6 (s2b_escape s)
    onkeydown_att_bs =  Onkeydown_Att_6 

class A_Target a where
    target_att :: String -> a
    target_att_bs :: B.ByteString -> a
instance A_Target Att43 where
    target_att s =  Target_Att_43 (s2b_escape s)
    target_att_bs =  Target_Att_43 
instance A_Target Att42 where
    target_att s =  Target_Att_42 (s2b_escape s)
    target_att_bs =  Target_Att_42 
instance A_Target Att24 where
    target_att s =  Target_Att_24 (s2b_escape s)
    target_att_bs =  Target_Att_24 
instance A_Target Att6 where
    target_att s =  Target_Att_6 (s2b_escape s)
    target_att_bs =  Target_Att_6 
instance A_Target Att3 where
    target_att s =  Target_Att_3 (s2b_escape s)
    target_att_bs =  Target_Att_3 

class A_Onkeyup a where
    onkeyup_att :: String -> a
    onkeyup_att_bs :: B.ByteString -> a
instance A_Onkeyup Att61 where
    onkeyup_att s =  Onkeyup_Att_61 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_61 
instance A_Onkeyup Att60 where
    onkeyup_att s =  Onkeyup_Att_60 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_60 
instance A_Onkeyup Att59 where
    onkeyup_att s =  Onkeyup_Att_59 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_59 
instance A_Onkeyup Att58 where
    onkeyup_att s =  Onkeyup_Att_58 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_58 
instance A_Onkeyup Att57 where
    onkeyup_att s =  Onkeyup_Att_57 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_57 
instance A_Onkeyup Att55 where
    onkeyup_att s =  Onkeyup_Att_55 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_55 
instance A_Onkeyup Att54 where
    onkeyup_att s =  Onkeyup_Att_54 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_54 
instance A_Onkeyup Att51 where
    onkeyup_att s =  Onkeyup_Att_51 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_51 
instance A_Onkeyup Att50 where
    onkeyup_att s =  Onkeyup_Att_50 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_50 
instance A_Onkeyup Att48 where
    onkeyup_att s =  Onkeyup_Att_48 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_48 
instance A_Onkeyup Att47 where
    onkeyup_att s =  Onkeyup_Att_47 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_47 
instance A_Onkeyup Att46 where
    onkeyup_att s =  Onkeyup_Att_46 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_46 
instance A_Onkeyup Att45 where
    onkeyup_att s =  Onkeyup_Att_45 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_45 
instance A_Onkeyup Att43 where
    onkeyup_att s =  Onkeyup_Att_43 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_43 
instance A_Onkeyup Att42 where
    onkeyup_att s =  Onkeyup_Att_42 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_42 
instance A_Onkeyup Att40 where
    onkeyup_att s =  Onkeyup_Att_40 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_40 
instance A_Onkeyup Att37 where
    onkeyup_att s =  Onkeyup_Att_37 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_37 
instance A_Onkeyup Att31 where
    onkeyup_att s =  Onkeyup_Att_31 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_31 
instance A_Onkeyup Att25 where
    onkeyup_att s =  Onkeyup_Att_25 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_25 
instance A_Onkeyup Att24 where
    onkeyup_att s =  Onkeyup_Att_24 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_24 
instance A_Onkeyup Att23 where
    onkeyup_att s =  Onkeyup_Att_23 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_23 
instance A_Onkeyup Att22 where
    onkeyup_att s =  Onkeyup_Att_22 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_22 
instance A_Onkeyup Att21 where
    onkeyup_att s =  Onkeyup_Att_21 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_21 
instance A_Onkeyup Att20 where
    onkeyup_att s =  Onkeyup_Att_20 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_20 
instance A_Onkeyup Att19 where
    onkeyup_att s =  Onkeyup_Att_19 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_19 
instance A_Onkeyup Att18 where
    onkeyup_att s =  Onkeyup_Att_18 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_18 
instance A_Onkeyup Att17 where
    onkeyup_att s =  Onkeyup_Att_17 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_17 
instance A_Onkeyup Att16 where
    onkeyup_att s =  Onkeyup_Att_16 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_16 
instance A_Onkeyup Att15 where
    onkeyup_att s =  Onkeyup_Att_15 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_15 
instance A_Onkeyup Att14 where
    onkeyup_att s =  Onkeyup_Att_14 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_14 
instance A_Onkeyup Att10 where
    onkeyup_att s =  Onkeyup_Att_10 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_10 
instance A_Onkeyup Att6 where
    onkeyup_att s =  Onkeyup_Att_6 (s2b_escape s)
    onkeyup_att_bs =  Onkeyup_Att_6 

class A_Onreset a where
    onreset_att :: String -> a
    onreset_att_bs :: B.ByteString -> a
instance A_Onreset Att43 where
    onreset_att s =  Onreset_Att_43 (s2b_escape s)
    onreset_att_bs =  Onreset_Att_43 

class A_Code a where
    code_att :: String -> a
    code_att_bs :: B.ByteString -> a
instance A_Code Att34 where
    code_att s =  Code_Att_34 (s2b_escape s)
    code_att_bs =  Code_Att_34 

class A_Valign a where
    valign_att :: ValignEnum -> a
instance A_Valign Att61 where
    valign_att s =  Valign_Att_61 (s2b (show s))
instance A_Valign Att60 where
    valign_att s =  Valign_Att_60 (s2b (show s))
instance A_Valign Att59 where
    valign_att s =  Valign_Att_59 (s2b (show s))
instance A_Valign Att58 where
    valign_att s =  Valign_Att_58 (s2b (show s))

class A_Name a where
    name_att :: String -> a
    name_att_bs :: B.ByteString -> a
instance A_Name Att55 where
    name_att s =  Name_Att_55 (s2b_escape s)
    name_att_bs =  Name_Att_55 
instance A_Name Att51 where
    name_att s =  Name_Att_51 (s2b_escape s)
    name_att_bs =  Name_Att_51 
instance A_Name Att47 where
    name_att s =  Name_Att_47 (s2b_escape s)
    name_att_bs =  Name_Att_47 
instance A_Name Att46 where
    name_att s =  Name_Att_46 (s2b_escape s)
    name_att_bs =  Name_Att_46 
instance A_Name Att43 where
    name_att s =  Name_Att_43 (s2b_escape s)
    name_att_bs =  Name_Att_43 
instance A_Name Att40 where
    name_att s =  Name_Att_40 (s2b_escape s)
    name_att_bs =  Name_Att_40 
instance A_Name Att37 where
    name_att s =  Name_Att_37 (s2b_escape s)
    name_att_bs =  Name_Att_37 
instance A_Name Att34 where
    name_att s =  Name_Att_34 (s2b_escape s)
    name_att_bs =  Name_Att_34 
instance A_Name Att33 where
    name_att s =  Name_Att_33 (s2b_escape s)
    name_att_bs =  Name_Att_33 
instance A_Name Att32 where
    name_att s =  Name_Att_32 (s2b_escape s)
    name_att_bs =  Name_Att_32 
instance A_Name Att31 where
    name_att s =  Name_Att_31 (s2b_escape s)
    name_att_bs =  Name_Att_31 
instance A_Name Att24 where
    name_att s =  Name_Att_24 (s2b_escape s)
    name_att_bs =  Name_Att_24 
instance A_Name Att13 where
    name_att s =  Name_Att_13 (s2b_escape s)
    name_att_bs =  Name_Att_13 
instance A_Name Att12 where
    name_att s =  Name_Att_12 (s2b_escape s)
    name_att_bs =  Name_Att_12 
instance A_Name Att4 where
    name_att s =  Name_Att_4 (s2b_escape s)
    name_att_bs =  Name_Att_4 

class A_Charset a where
    charset_att :: String -> a
    charset_att_bs :: B.ByteString -> a
instance A_Charset Att24 where
    charset_att s =  Charset_Att_24 (s2b_escape s)
    charset_att_bs =  Charset_Att_24 
instance A_Charset Att9 where
    charset_att s =  Charset_Att_9 (s2b_escape s)
    charset_att_bs =  Charset_Att_9 
instance A_Charset Att6 where
    charset_att s =  Charset_Att_6 (s2b_escape s)
    charset_att_bs =  Charset_Att_6 

class A_Prompt a where
    prompt_att :: String -> a
    prompt_att_bs :: B.ByteString -> a
instance A_Prompt Att56 where
    prompt_att s =  Prompt_Att_56 (s2b_escape s)
    prompt_att_bs =  Prompt_Att_56 

class A_Accept_charset a where
    accept_charset_att :: String -> a
    accept_charset_att_bs :: B.ByteString -> a
instance A_Accept_charset Att43 where
    accept_charset_att s =  Accept_charset_Att_43 (s2b_escape s)
    accept_charset_att_bs =  Accept_charset_Att_43 

class A_Rev a where
    rev_att :: String -> a
    rev_att_bs :: B.ByteString -> a
instance A_Rev Att24 where
    rev_att s =  Rev_Att_24 (s2b_escape s)
    rev_att_bs =  Rev_Att_24 
instance A_Rev Att6 where
    rev_att s =  Rev_Att_6 (s2b_escape s)
    rev_att_bs =  Rev_Att_6 

class A_Title a where
    title_att :: String -> a
    title_att_bs :: B.ByteString -> a
instance A_Title Att61 where
    title_att s =  Title_Att_61 (s2b_escape s)
    title_att_bs =  Title_Att_61 
instance A_Title Att60 where
    title_att s =  Title_Att_60 (s2b_escape s)
    title_att_bs =  Title_Att_60 
instance A_Title Att59 where
    title_att s =  Title_Att_59 (s2b_escape s)
    title_att_bs =  Title_Att_59 
instance A_Title Att58 where
    title_att s =  Title_Att_58 (s2b_escape s)
    title_att_bs =  Title_Att_58 
instance A_Title Att57 where
    title_att s =  Title_Att_57 (s2b_escape s)
    title_att_bs =  Title_Att_57 
instance A_Title Att56 where
    title_att s =  Title_Att_56 (s2b_escape s)
    title_att_bs =  Title_Att_56 
instance A_Title Att55 where
    title_att s =  Title_Att_55 (s2b_escape s)
    title_att_bs =  Title_Att_55 
instance A_Title Att54 where
    title_att s =  Title_Att_54 (s2b_escape s)
    title_att_bs =  Title_Att_54 
instance A_Title Att51 where
    title_att s =  Title_Att_51 (s2b_escape s)
    title_att_bs =  Title_Att_51 
instance A_Title Att50 where
    title_att s =  Title_Att_50 (s2b_escape s)
    title_att_bs =  Title_Att_50 
instance A_Title Att48 where
    title_att s =  Title_Att_48 (s2b_escape s)
    title_att_bs =  Title_Att_48 
instance A_Title Att47 where
    title_att s =  Title_Att_47 (s2b_escape s)
    title_att_bs =  Title_Att_47 
instance A_Title Att46 where
    title_att s =  Title_Att_46 (s2b_escape s)
    title_att_bs =  Title_Att_46 
instance A_Title Att45 where
    title_att s =  Title_Att_45 (s2b_escape s)
    title_att_bs =  Title_Att_45 
instance A_Title Att43 where
    title_att s =  Title_Att_43 (s2b_escape s)
    title_att_bs =  Title_Att_43 
instance A_Title Att42 where
    title_att s =  Title_Att_42 (s2b_escape s)
    title_att_bs =  Title_Att_42 
instance A_Title Att40 where
    title_att s =  Title_Att_40 (s2b_escape s)
    title_att_bs =  Title_Att_40 
instance A_Title Att37 where
    title_att s =  Title_Att_37 (s2b_escape s)
    title_att_bs =  Title_Att_37 
instance A_Title Att34 where
    title_att s =  Title_Att_34 (s2b_escape s)
    title_att_bs =  Title_Att_34 
instance A_Title Att31 where
    title_att s =  Title_Att_31 (s2b_escape s)
    title_att_bs =  Title_Att_31 
instance A_Title Att30 where
    title_att s =  Title_Att_30 (s2b_escape s)
    title_att_bs =  Title_Att_30 
instance A_Title Att27 where
    title_att s =  Title_Att_27 (s2b_escape s)
    title_att_bs =  Title_Att_27 
instance A_Title Att25 where
    title_att s =  Title_Att_25 (s2b_escape s)
    title_att_bs =  Title_Att_25 
instance A_Title Att24 where
    title_att s =  Title_Att_24 (s2b_escape s)
    title_att_bs =  Title_Att_24 
instance A_Title Att23 where
    title_att s =  Title_Att_23 (s2b_escape s)
    title_att_bs =  Title_Att_23 
instance A_Title Att22 where
    title_att s =  Title_Att_22 (s2b_escape s)
    title_att_bs =  Title_Att_22 
instance A_Title Att21 where
    title_att s =  Title_Att_21 (s2b_escape s)
    title_att_bs =  Title_Att_21 
instance A_Title Att20 where
    title_att s =  Title_Att_20 (s2b_escape s)
    title_att_bs =  Title_Att_20 
instance A_Title Att19 where
    title_att s =  Title_Att_19 (s2b_escape s)
    title_att_bs =  Title_Att_19 
instance A_Title Att18 where
    title_att s =  Title_Att_18 (s2b_escape s)
    title_att_bs =  Title_Att_18 
instance A_Title Att17 where
    title_att s =  Title_Att_17 (s2b_escape s)
    title_att_bs =  Title_Att_17 
instance A_Title Att16 where
    title_att s =  Title_Att_16 (s2b_escape s)
    title_att_bs =  Title_Att_16 
instance A_Title Att15 where
    title_att s =  Title_Att_15 (s2b_escape s)
    title_att_bs =  Title_Att_15 
instance A_Title Att14 where
    title_att s =  Title_Att_14 (s2b_escape s)
    title_att_bs =  Title_Att_14 
instance A_Title Att13 where
    title_att s =  Title_Att_13 (s2b_escape s)
    title_att_bs =  Title_Att_13 
instance A_Title Att12 where
    title_att s =  Title_Att_12 (s2b_escape s)
    title_att_bs =  Title_Att_12 
instance A_Title Att11 where
    title_att s =  Title_Att_11 (s2b_escape s)
    title_att_bs =  Title_Att_11 
instance A_Title Att10 where
    title_att s =  Title_Att_10 (s2b_escape s)
    title_att_bs =  Title_Att_10 
instance A_Title Att7 where
    title_att s =  Title_Att_7 (s2b_escape s)
    title_att_bs =  Title_Att_7 
instance A_Title Att6 where
    title_att s =  Title_Att_6 (s2b_escape s)
    title_att_bs =  Title_Att_6 

class A_Start a where
    start_att :: String -> a
    start_att_bs :: B.ByteString -> a
instance A_Start Att17 where
    start_att s =  Start_Att_17 (s2b_escape s)
    start_att_bs =  Start_Att_17 

class A_Enctype a where
    enctype_att :: String -> a
    enctype_att_bs :: B.ByteString -> a
instance A_Enctype Att43 where
    enctype_att s =  Enctype_Att_43 (s2b_escape s)
    enctype_att_bs =  Enctype_Att_43 

class A_Usemap a where
    usemap_att :: String -> a
    usemap_att_bs :: B.ByteString -> a
instance A_Usemap Att46 where
    usemap_att s =  Usemap_Att_46 (s2b_escape s)
    usemap_att_bs =  Usemap_Att_46 
instance A_Usemap Att37 where
    usemap_att s =  Usemap_Att_37 (s2b_escape s)
    usemap_att_bs =  Usemap_Att_37 
instance A_Usemap Att31 where
    usemap_att s =  Usemap_Att_31 (s2b_escape s)
    usemap_att_bs =  Usemap_Att_31 

class A_Nowrap a where
    nowrap_att :: String -> a
instance A_Nowrap Att61 where
    nowrap_att s =  Nowrap_Att_61 (s2b (show s))

class A_Coords a where
    coords_att :: String -> a
    coords_att_bs :: B.ByteString -> a
instance A_Coords Att42 where
    coords_att s =  Coords_Att_42 (s2b_escape s)
    coords_att_bs =  Coords_Att_42 
instance A_Coords Att24 where
    coords_att s =  Coords_Att_24 (