Fix for 4017033, CSS is being parsed twice. Make sure to always validate the style...
authorhyatt <hyatt@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 21 Feb 2005 23:36:16 +0000 (23:36 +0000)
committerhyatt <hyatt@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 21 Feb 2005 23:36:16 +0000 (23:36 +0000)
initially parsed.  Add code to clean up decls when the style attribute is completely removed.  Add a new
synchronizing boolean that avoids reparsing the style declaration when the attribute is simply
being synced up to the declaration.

        Reviewed by John

        * khtml/css/css_valueimpl.cpp:
        (DOM::CSSMutableStyleDeclarationImpl::setChanged):
        * khtml/html/html_elementimpl.cpp:
        (HTMLElementImpl::invalidateStyleAttribute):
        (HTMLElementImpl::updateStyleAttributeIfNeeded):
        (HTMLElementImpl::HTMLElementImpl):
        (HTMLElementImpl::~HTMLElementImpl):
        (HTMLElementImpl::destroyInlineStyleDecl):
        (HTMLElementImpl::mapToEntry):
        (HTMLElementImpl::parseHTMLAttribute):
        * khtml/html/html_elementimpl.h:
        * khtml/xml/dom_elementimpl.cpp:
        (ElementImpl::ElementImpl):
        (ElementImpl::setAttribute):
        * khtml/xml/dom_elementimpl.h:
        (DOM::ElementImpl::updateStyleAttributeIfNeeded):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8656 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog-2005-08-23
WebCore/khtml/css/css_valueimpl.cpp
WebCore/khtml/css/cssproperties.c
WebCore/khtml/css/cssstyleselector.cpp
WebCore/khtml/css/cssvalues.c
WebCore/khtml/html/html_elementimpl.cpp
WebCore/khtml/html/html_elementimpl.h
WebCore/khtml/xml/dom_elementimpl.cpp
WebCore/khtml/xml/dom_elementimpl.h

index a6cfe88a2a7415713b988d305edad62c01ba6bf4..79e3fc4acb71d08d9fe18ceabf3a7f00fda557a5 100644 (file)
@@ -1,3 +1,29 @@
+2005-02-21  David Hyatt  <hyatt@apple.com>
+
+       Fix for 4017033, CSS is being parsed twice.  Make sure to always validate the style attribute when it is
+       initially parsed.  Add code to clean up decls when the style attribute is completely removed.  Add a new
+       synchronizing boolean that avoids reparsing the style declaration when the attribute is simply
+       being synced up to the declaration.
+
+        Reviewed by John
+
+        * khtml/css/css_valueimpl.cpp:
+        (DOM::CSSMutableStyleDeclarationImpl::setChanged):
+        * khtml/html/html_elementimpl.cpp:
+        (HTMLElementImpl::invalidateStyleAttribute):
+        (HTMLElementImpl::updateStyleAttributeIfNeeded):
+        (HTMLElementImpl::HTMLElementImpl):
+        (HTMLElementImpl::~HTMLElementImpl):
+        (HTMLElementImpl::destroyInlineStyleDecl):
+        (HTMLElementImpl::mapToEntry):
+        (HTMLElementImpl::parseHTMLAttribute):
+        * khtml/html/html_elementimpl.h:
+        * khtml/xml/dom_elementimpl.cpp:
+        (ElementImpl::ElementImpl):
+        (ElementImpl::setAttribute):
+        * khtml/xml/dom_elementimpl.h:
+        (DOM::ElementImpl::updateStyleAttributeIfNeeded):
+
 === Safari-188 ===
 
 2005-02-21  Darin Adler  <darin@apple.com>
index 853bbc69eb066e626ea85e04dc2d23f0d69f785a..b4a8a850f912f476b6e6cfc6336f2bd9d27125a5 100644 (file)
@@ -277,10 +277,8 @@ void CSSMutableStyleDeclarationImpl::setChanged()
         // FIXME: Ideally, this should be factored better and there
         // should be a subclass of CSSMutableStyleDeclarationImpl just
         // for inline style declarations that handles this
-        if (m_node->isHTMLElement() && this == static_cast<HTMLElementImpl *>(m_node)->inlineStyleDecl()) {
+        if (m_node->isHTMLElement() && this == static_cast<HTMLElementImpl *>(m_node)->inlineStyleDecl())
             static_cast<HTMLElementImpl *>(m_node)->invalidateStyleAttribute();
-        }
-
         return;
     }
 
index d03546bd3c44295d0c0d6b3154e643a49fcb11f5..12f70ec800078798de7d5aa6942c7cd1bed43322 100644 (file)
@@ -1,44 +1,13 @@
-/* ANSI-C code produced by gperf version 3.0.1 */
+/* ANSI-C code produced by gperf version 2.7.2 */
 /* Command-line: gperf -a -L ANSI-C -E -C -c -o -t -k '*' -NfindProp -Hhash_prop -Wwordlist_prop -D -s 2 cssproperties.gperf  */
-
-#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
-      && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
-      && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
-      && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
-      && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
-      && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
-      && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
-      && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
-      && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
-      && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
-      && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
-      && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
-      && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
-      && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
-      && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
-      && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
-      && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
-      && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
-      && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
-      && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
-      && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
-      && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
-      && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
-/* The character set is not based on ISO-646.  */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
-#endif
-
-#line 1 "cssproperties.gperf"
-
 /* This file is automatically generated from cssproperties.in by makeprop, do not edit */
 /* Copyright 1999 W. Bastian */
 #include "cssproperties.h"
-#line 6 "cssproperties.gperf"
 struct props {
     const char *name;
     int id;
 };
-/* maximum key range = 514, duplicates = 0 */
+/* maximum key range = 1104, duplicates = 0 */
 
 #ifdef __GNUC__
 __inline
@@ -52,160 +21,120 @@ hash_prop (register const char *str, register unsigned int len)
 {
   static const unsigned short asso_values[] =
     {
-      517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
-      517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
-      517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
-      517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
-      517, 517, 517, 517, 517,   0, 517, 517, 517, 517,
-      517,   5, 517, 517, 517, 517, 517, 517, 517, 517,
-      517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
-      517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
-      517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
-      517, 517, 517, 517, 517, 517, 517,   0,   0,   0,
-        0,   5, 135,  25,  15,   0,   5,  25,   0,   0,
-        0,   0,   0,  45,   0,  25,   0,  70,  40, 205,
-      110, 210,  15, 517, 517, 517, 517, 517, 517, 517,
-      517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
-      517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
-      517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
-      517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
-      517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
-      517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
-      517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
-      517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
-      517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
-      517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
-      517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
-      517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
-      517, 517, 517, 517, 517, 517
+      1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
+      1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
+      1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
+      1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
+      1109, 1109, 1109, 1109, 1109,    0, 1109, 1109, 1109, 1109,
+      1109,    0, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
+      1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
+      1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
+      1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
+      1109, 1109, 1109, 1109, 1109, 1109, 1109,   10,   30,  220,
+         0,    0,  140,  110,    0,    0,    0,    5,    0,    5,
+        40,    0,  110,   85,    0,    5,    0,   15,    0,    0,
+       250,  335,    5, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
+      1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
+      1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
+      1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
+      1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
+      1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
+      1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
+      1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
+      1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
+      1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
+      1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
+      1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
+      1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
+      1109, 1109, 1109, 1109, 1109, 1109
     };
   register int hval = len;
 
   switch (hval)
     {
       default:
+      case 42:
         hval += asso_values[(unsigned char)str[41]];
-      /*FALLTHROUGH*/
       case 41:
         hval += asso_values[(unsigned char)str[40]];
-      /*FALLTHROUGH*/
       case 40:
         hval += asso_values[(unsigned char)str[39]];
-      /*FALLTHROUGH*/
       case 39:
         hval += asso_values[(unsigned char)str[38]];
-      /*FALLTHROUGH*/
       case 38:
         hval += asso_values[(unsigned char)str[37]];
-      /*FALLTHROUGH*/
       case 37:
         hval += asso_values[(unsigned char)str[36]];
-      /*FALLTHROUGH*/
       case 36:
         hval += asso_values[(unsigned char)str[35]];
-      /*FALLTHROUGH*/
       case 35:
         hval += asso_values[(unsigned char)str[34]];
-      /*FALLTHROUGH*/
       case 34:
         hval += asso_values[(unsigned char)str[33]];
-      /*FALLTHROUGH*/
       case 33:
         hval += asso_values[(unsigned char)str[32]];
-      /*FALLTHROUGH*/
       case 32:
         hval += asso_values[(unsigned char)str[31]];
-      /*FALLTHROUGH*/
       case 31:
         hval += asso_values[(unsigned char)str[30]];
-      /*FALLTHROUGH*/
       case 30:
         hval += asso_values[(unsigned char)str[29]];
-      /*FALLTHROUGH*/
       case 29:
         hval += asso_values[(unsigned char)str[28]];
-      /*FALLTHROUGH*/
       case 28:
         hval += asso_values[(unsigned char)str[27]];
-      /*FALLTHROUGH*/
       case 27:
         hval += asso_values[(unsigned char)str[26]];
-      /*FALLTHROUGH*/
       case 26:
         hval += asso_values[(unsigned char)str[25]];
-      /*FALLTHROUGH*/
       case 25:
         hval += asso_values[(unsigned char)str[24]];
-      /*FALLTHROUGH*/
       case 24:
         hval += asso_values[(unsigned char)str[23]];
-      /*FALLTHROUGH*/
       case 23:
         hval += asso_values[(unsigned char)str[22]];
-      /*FALLTHROUGH*/
       case 22:
         hval += asso_values[(unsigned char)str[21]];
-      /*FALLTHROUGH*/
       case 21:
         hval += asso_values[(unsigned char)str[20]];
-      /*FALLTHROUGH*/
       case 20:
         hval += asso_values[(unsigned char)str[19]];
-      /*FALLTHROUGH*/
       case 19:
         hval += asso_values[(unsigned char)str[18]];
-      /*FALLTHROUGH*/
       case 18:
         hval += asso_values[(unsigned char)str[17]];
-      /*FALLTHROUGH*/
       case 17:
         hval += asso_values[(unsigned char)str[16]];
-      /*FALLTHROUGH*/
       case 16:
         hval += asso_values[(unsigned char)str[15]];
-      /*FALLTHROUGH*/
       case 15:
         hval += asso_values[(unsigned char)str[14]];
-      /*FALLTHROUGH*/
       case 14:
         hval += asso_values[(unsigned char)str[13]];
-      /*FALLTHROUGH*/
       case 13:
         hval += asso_values[(unsigned char)str[12]];
-      /*FALLTHROUGH*/
       case 12:
         hval += asso_values[(unsigned char)str[11]];
-      /*FALLTHROUGH*/
       case 11:
         hval += asso_values[(unsigned char)str[10]];
-      /*FALLTHROUGH*/
       case 10:
         hval += asso_values[(unsigned char)str[9]];
-      /*FALLTHROUGH*/
       case 9:
         hval += asso_values[(unsigned char)str[8]];
-      /*FALLTHROUGH*/
       case 8:
         hval += asso_values[(unsigned char)str[7]];
-      /*FALLTHROUGH*/
       case 7:
         hval += asso_values[(unsigned char)str[6]];
-      /*FALLTHROUGH*/
       case 6:
         hval += asso_values[(unsigned char)str[5]];
-      /*FALLTHROUGH*/
       case 5:
         hval += asso_values[(unsigned char)str[4]];
-      /*FALLTHROUGH*/
       case 4:
         hval += asso_values[(unsigned char)str[3]];
-      /*FALLTHROUGH*/
       case 3:
         hval += asso_values[(unsigned char)str[2]];
-      /*FALLTHROUGH*/
       case 2:
         hval += asso_values[(unsigned char)str[1]];
-      /*FALLTHROUGH*/
       case 1:
         hval += asso_values[(unsigned char)str[0]];
         break;
@@ -224,388 +153,287 @@ findProp (register const char *str, register unsigned int len)
       TOTAL_KEYWORDS = 160,
       MIN_WORD_LENGTH = 3,
       MAX_WORD_LENGTH = 42,
-      MIN_HASH_VALUE = 3,
-      MAX_HASH_VALUE = 516
+      MIN_HASH_VALUE = 5,
+      MAX_HASH_VALUE = 1108
     };
 
   static const struct props wordlist_prop[] =
     {
-#line 136 "cssproperties.gperf"
+      {"width", CSS_PROP_WIDTH},
+      {"widows", CSS_PROP_WIDOWS},
+      {"size", CSS_PROP_SIZE},
+      {"border", CSS_PROP_BORDER},
+      {"bottom", CSS_PROP_BOTTOM},
+      {"border-width", CSS_PROP_BORDER_WIDTH},
+      {"min-width", CSS_PROP_MIN_WIDTH},
+      {"outline", CSS_PROP_OUTLINE},
+      {"outline-width", CSS_PROP_OUTLINE_WIDTH},
+      {"border-bottom", CSS_PROP_BORDER_BOTTOM},
+      {"border-bottom-width", CSS_PROP_BORDER_BOTTOM_WIDTH},
+      {"quotes", CSS_PROP_QUOTES},
+      {"-khtml-line-break", CSS_PROP__KHTML_LINE_BREAK},
       {"top", CSS_PROP_TOP},
-#line 46 "cssproperties.gperf"
-      {"clip", CSS_PROP_CLIP},
-#line 47 "cssproperties.gperf"
+      {"right", CSS_PROP_RIGHT},
+      {"height", CSS_PROP_HEIGHT},
+      {"word-wrap", CSS_PROP_WORD_WRAP},
+      {"-khtml-marquee", CSS_PROP__KHTML_MARQUEE},
+      {"left", CSS_PROP_LEFT},
+      {"overflow", CSS_PROP_OVERFLOW},
+      {"border-top", CSS_PROP_BORDER_TOP},
+      {"border-right", CSS_PROP_BORDER_RIGHT},
+      {"float", CSS_PROP_FLOAT},
+      {"border-top-width", CSS_PROP_BORDER_TOP_WIDTH},
+      {"border-right-width", CSS_PROP_BORDER_RIGHT_WIDTH},
+      {"line-height", CSS_PROP_LINE_HEIGHT},
+      {"position", CSS_PROP_POSITION},
+      {"min-height", CSS_PROP_MIN_HEIGHT},
+      {"-khtml-user-drag", CSS_PROP__KHTML_USER_DRAG},
+      {"margin", CSS_PROP_MARGIN},
+      {"orphans", CSS_PROP_ORPHANS},
+      {"border-left", CSS_PROP_BORDER_LEFT},
+      {"font", CSS_PROP_FONT},
+      {"border-left-width", CSS_PROP_BORDER_LEFT_WIDTH},
+      {"font-size", CSS_PROP_FONT_SIZE},
+      {"-khtml-margin-start", CSS_PROP__KHTML_MARGIN_START},
+      {"margin-bottom", CSS_PROP_MARGIN_BOTTOM},
+      {"-khtml-nbsp-mode", CSS_PROP__KHTML_NBSP_MODE},
       {"color", CSS_PROP_COLOR},
-#line 35 "cssproperties.gperf"
-      {"bottom", CSS_PROP_BOTTOM},
-#line 45 "cssproperties.gperf"
+      {"-khtml-font-size-delta", CSS_PROP__KHTML_FONT_SIZE_DELTA},
+      {"page", CSS_PROP_PAGE},
       {"clear", CSS_PROP_CLEAR},
-#line 150 "cssproperties.gperf"
-      {"border", CSS_PROP_BORDER},
-#line 48 "cssproperties.gperf"
-      {"content", CSS_PROP_CONTENT},
-#line 52 "cssproperties.gperf"
-      {"direction", CSS_PROP_DIRECTION},
-#line 153 "cssproperties.gperf"
-      {"border-top", CSS_PROP_BORDER_TOP},
-#line 151 "cssproperties.gperf"
+      {"-khtml-binding", CSS_PROP__KHTML_BINDING},
+      {"cursor", CSS_PROP_CURSOR},
+      {"font-variant", CSS_PROP_FONT_VARIANT},
+      {"-khtml-marquee-speed", CSS_PROP__KHTML_MARQUEE_SPEED},
       {"border-color", CSS_PROP_BORDER_COLOR},
-#line 155 "cssproperties.gperf"
-      {"border-bottom", CSS_PROP_BORDER_BOTTOM},
-#line 23 "cssproperties.gperf"
-      {"border-top-color", CSS_PROP_BORDER_TOP_COLOR},
-#line 25 "cssproperties.gperf"
-      {"border-bottom-color", CSS_PROP_BORDER_BOTTOM_COLOR},
-#line 66 "cssproperties.gperf"
-      {"-apple-line-clamp", CSS_PROP__APPLE_LINE_CLAMP},
-#line 160 "cssproperties.gperf"
-      {"margin", CSS_PROP_MARGIN},
-#line 162 "cssproperties.gperf"
+      {"direction", CSS_PROP_DIRECTION},
+      {"-khtml-user-select", CSS_PROP__KHTML_USER_SELECT},
+      {"max-width", CSS_PROP_MAX_WIDTH},
+      {"text-shadow", CSS_PROP_TEXT_SHADOW},
       {"padding", CSS_PROP_PADDING},
-#line 108 "cssproperties.gperf"
-      {"position", CSS_PROP_POSITION},
-#line 104 "cssproperties.gperf"
-      {"page", CSS_PROP_PAGE},
-#line 71 "cssproperties.gperf"
       {"margin-top", CSS_PROP_MARGIN_TOP},
-#line 99 "cssproperties.gperf"
-      {"padding-top", CSS_PROP_PADDING_TOP},
-#line 73 "cssproperties.gperf"
-      {"margin-bottom", CSS_PROP_MARGIN_BOTTOM},
-#line 101 "cssproperties.gperf"
-      {"padding-bottom", CSS_PROP_PADDING_BOTTOM},
-#line 44 "cssproperties.gperf"
-      {"caption-side", CSS_PROP_CAPTION_SIDE},
-#line 110 "cssproperties.gperf"
-      {"right", CSS_PROP_RIGHT},
-#line 93 "cssproperties.gperf"
-      {"orphans", CSS_PROP_ORPHANS},
-#line 111 "cssproperties.gperf"
-      {"size", CSS_PROP_SIZE},
-#line 19 "cssproperties.gperf"
-      {"border-collapse", CSS_PROP_BORDER_COLLAPSE},
-#line 154 "cssproperties.gperf"
-      {"border-right", CSS_PROP_BORDER_RIGHT},
-#line 24 "cssproperties.gperf"
-      {"border-right-color", CSS_PROP_BORDER_RIGHT_COLOR},
-#line 63 "cssproperties.gperf"
-      {"height", CSS_PROP_HEIGHT},
-#line 20 "cssproperties.gperf"
-      {"border-spacing", CSS_PROP_BORDER_SPACING},
-#line 89 "cssproperties.gperf"
-      {"min-height", CSS_PROP_MIN_HEIGHT},
-#line 168 "cssproperties.gperf"
-      {"scrollbar-track-color", CSS_PROP_SCROLLBAR_TRACK_COLOR},
-#line 65 "cssproperties.gperf"
-      {"letter-spacing", CSS_PROP_LETTER_SPACING},
-#line 67 "cssproperties.gperf"
-      {"line-height", CSS_PROP_LINE_HEIGHT},
-#line 72 "cssproperties.gperf"
       {"margin-right", CSS_PROP_MARGIN_RIGHT},
-#line 100 "cssproperties.gperf"
-      {"padding-right", CSS_PROP_PADDING_RIGHT},
-#line 18 "cssproperties.gperf"
-      {"-khtml-binding", CSS_PROP__KHTML_BINDING},
-#line 161 "cssproperties.gperf"
-      {"outline", CSS_PROP_OUTLINE},
-#line 141 "cssproperties.gperf"
-      {"vertical-align", CSS_PROP_VERTICAL_ALIGN},
-#line 91 "cssproperties.gperf"
-      {"-khtml-nbsp-mode", CSS_PROP__KHTML_NBSP_MODE},
-#line 137 "cssproperties.gperf"
-      {"unicode-bidi", CSS_PROP_UNICODE_BIDI},
-#line 94 "cssproperties.gperf"
       {"outline-color", CSS_PROP_OUTLINE_COLOR},
-#line 75 "cssproperties.gperf"
-      {"-khtml-line-break", CSS_PROP__KHTML_LINE_BREAK},
-#line 166 "cssproperties.gperf"
-      {"scrollbar-3dlight-color", CSS_PROP_SCROLLBAR_3DLIGHT_COLOR},
-#line 135 "cssproperties.gperf"
-      {"-apple-dashboard-region", CSS_PROP__APPLE_DASHBOARD_REGION},
-#line 51 "cssproperties.gperf"
-      {"cursor", CSS_PROP_CURSOR},
-#line 49 "cssproperties.gperf"
-      {"counter-increment", CSS_PROP_COUNTER_INCREMENT},
-#line 107 "cssproperties.gperf"
-      {"page-break-inside", CSS_PROP_PAGE_BREAK_INSIDE},
-#line 79 "cssproperties.gperf"
-      {"-khtml-margin-start", CSS_PROP__KHTML_MARGIN_START},
-#line 103 "cssproperties.gperf"
-      {"-khtml-padding-start", CSS_PROP__KHTML_PADDING_START},
-#line 76 "cssproperties.gperf"
-      {"-khtml-margin-collapse", CSS_PROP__KHTML_MARGIN_COLLAPSE},
-#line 77 "cssproperties.gperf"
-      {"-khtml-margin-top-collapse", CSS_PROP__KHTML_MARGIN_TOP_COLLAPSE},
-#line 50 "cssproperties.gperf"
       {"counter-reset", CSS_PROP_COUNTER_RESET},
-#line 78 "cssproperties.gperf"
-      {"-khtml-margin-bottom-collapse", CSS_PROP__KHTML_MARGIN_BOTTOM_COLLAPSE},
-#line 149 "cssproperties.gperf"
-      {"background", CSS_PROP_BACKGROUND},
-#line 115 "cssproperties.gperf"
-      {"text-indent", CSS_PROP_TEXT_INDENT},
-#line 114 "cssproperties.gperf"
-      {"text-decoration", CSS_PROP_TEXT_DECORATION},
-#line 11 "cssproperties.gperf"
-      {"background-color", CSS_PROP_BACKGROUND_COLOR},
-#line 148 "cssproperties.gperf"
+      {"-khtml-marquee-repetition", CSS_PROP__KHTML_MARQUEE_REPETITION},
+      {"font-weight", CSS_PROP_FONT_WEIGHT},
       {"z-index", CSS_PROP_Z_INDEX},
-#line 158 "cssproperties.gperf"
-      {"font", CSS_PROP_FONT},
-#line 55 "cssproperties.gperf"
-      {"float", CSS_PROP_FLOAT},
-#line 64 "cssproperties.gperf"
-      {"left", CSS_PROP_LEFT},
-#line 165 "cssproperties.gperf"
-      {"scrollbar-highlight-color", CSS_PROP_SCROLLBAR_HIGHLIGHT_COLOR},
-#line 13 "cssproperties.gperf"
-      {"background-repeat", CSS_PROP_BACKGROUND_REPEAT},
-#line 113 "cssproperties.gperf"
-      {"text-align", CSS_PROP_TEXT_ALIGN},
-#line 109 "cssproperties.gperf"
-      {"quotes", CSS_PROP_QUOTES},
-#line 156 "cssproperties.gperf"
-      {"border-left", CSS_PROP_BORDER_LEFT},
-#line 21 "cssproperties.gperf"
-      {"-khtml-border-horizontal-spacing", CSS_PROP__KHTML_BORDER_HORIZONTAL_SPACING},
-#line 14 "cssproperties.gperf"
-      {"background-attachment", CSS_PROP_BACKGROUND_ATTACHMENT},
-#line 26 "cssproperties.gperf"
-      {"border-left-color", CSS_PROP_BORDER_LEFT_COLOR},
-#line 15 "cssproperties.gperf"
-      {"background-position", CSS_PROP_BACKGROUND_POSITION},
-#line 12 "cssproperties.gperf"
-      {"background-image", CSS_PROP_BACKGROUND_IMAGE},
-#line 22 "cssproperties.gperf"
-      {"-khtml-border-vertical-spacing", CSS_PROP__KHTML_BORDER_VERTICAL_SPACING},
-#line 42 "cssproperties.gperf"
-      {"-khtml-box-orient", CSS_PROP__KHTML_BOX_ORIENT},
-#line 37 "cssproperties.gperf"
-      {"-khtml-box-direction", CSS_PROP__KHTML_BOX_DIRECTION},
-#line 74 "cssproperties.gperf"
-      {"margin-left", CSS_PROP_MARGIN_LEFT},
-#line 102 "cssproperties.gperf"
-      {"padding-left", CSS_PROP_PADDING_LEFT},
-#line 122 "cssproperties.gperf"
       {"text-overline", CSS_PROP_TEXT_OVERLINE},
-#line 80 "cssproperties.gperf"
-      {"-khtml-marquee", CSS_PROP__KHTML_MARQUEE},
-#line 87 "cssproperties.gperf"
-      {"max-height", CSS_PROP_MAX_HEIGHT},
-#line 138 "cssproperties.gperf"
-      {"-khtml-user-drag", CSS_PROP__KHTML_USER_DRAG},
-#line 123 "cssproperties.gperf"
-      {"text-overline-color", CSS_PROP_TEXT_OVERLINE_COLOR},
-#line 163 "cssproperties.gperf"
-      {"scrollbar-face-color", CSS_PROP_SCROLLBAR_FACE_COLOR},
-#line 61 "cssproperties.gperf"
-      {"font-variant", CSS_PROP_FONT_VARIANT},
-#line 124 "cssproperties.gperf"
+      {"border-bottom-color", CSS_PROP_BORDER_BOTTOM_COLOR},
+      {"content", CSS_PROP_CONTENT},
+      {"text-overline-width", CSS_PROP_TEXT_OVERLINE_WIDTH},
       {"text-overline-mode", CSS_PROP_TEXT_OVERLINE_MODE},
-#line 57 "cssproperties.gperf"
-      {"font-size", CSS_PROP_FONT_SIZE},
-#line 43 "cssproperties.gperf"
-      {"-khtml-box-pack", CSS_PROP__KHTML_BOX_PACK},
-#line 36 "cssproperties.gperf"
-      {"-khtml-box-align", CSS_PROP__KHTML_BOX_ALIGN},
-#line 59 "cssproperties.gperf"
-      {"font-stretch", CSS_PROP_FONT_STRETCH},
-#line 140 "cssproperties.gperf"
-      {"-khtml-user-select", CSS_PROP__KHTML_USER_SELECT},
-#line 81 "cssproperties.gperf"
-      {"-khtml-marquee-direction", CSS_PROP__KHTML_MARQUEE_DIRECTION},
-#line 40 "cssproperties.gperf"
+      {"-khtml-padding-start", CSS_PROP__KHTML_PADDING_START},
+      {"margin-left", CSS_PROP_MARGIN_LEFT},
+      {"unicode-bidi", CSS_PROP_UNICODE_BIDI},
+      {"padding-bottom", CSS_PROP_PADDING_BOTTOM},
+      {"clip", CSS_PROP_CLIP},
+      {"page-break-inside", CSS_PROP_PAGE_BREAK_INSIDE},
+      {"text-indent", CSS_PROP_TEXT_INDENT},
+      {"-khtml-box-orient", CSS_PROP__KHTML_BOX_ORIENT},
       {"-khtml-box-lines", CSS_PROP__KHTML_BOX_LINES},
-#line 82 "cssproperties.gperf"
-      {"-khtml-marquee-increment", CSS_PROP__KHTML_MARQUEE_INCREMENT},
-#line 83 "cssproperties.gperf"
-      {"-khtml-marquee-repetition", CSS_PROP__KHTML_MARQUEE_REPETITION},
-#line 129 "cssproperties.gperf"
+      {"outline-offset", CSS_PROP_OUTLINE_OFFSET},
+      {"list-style", CSS_PROP_LIST_STYLE},
+      {"white-space", CSS_PROP_WHITE_SPACE},
       {"text-underline", CSS_PROP_TEXT_UNDERLINE},
-#line 130 "cssproperties.gperf"
-      {"text-underline-color", CSS_PROP_TEXT_UNDERLINE_COLOR},
-#line 105 "cssproperties.gperf"
-      {"page-break-after", CSS_PROP_PAGE_BREAK_AFTER},
-#line 92 "cssproperties.gperf"
-      {"opacity", CSS_PROP_OPACITY},
-#line 131 "cssproperties.gperf"
+      {"text-underline-width", CSS_PROP_TEXT_UNDERLINE_WIDTH},
       {"text-underline-mode", CSS_PROP_TEXT_UNDERLINE_MODE},
-#line 84 "cssproperties.gperf"
-      {"-khtml-marquee-speed", CSS_PROP__KHTML_MARQUEE_SPEED},
-#line 106 "cssproperties.gperf"
-      {"page-break-before", CSS_PROP_PAGE_BREAK_BEFORE},
-#line 145 "cssproperties.gperf"
-      {"width", CSS_PROP_WIDTH},
-#line 90 "cssproperties.gperf"
-      {"min-width", CSS_PROP_MIN_WIDTH},
-#line 157 "cssproperties.gperf"
-      {"border-width", CSS_PROP_BORDER_WIDTH},
-#line 31 "cssproperties.gperf"
-      {"border-top-width", CSS_PROP_BORDER_TOP_WIDTH},
-#line 53 "cssproperties.gperf"
-      {"display", CSS_PROP_DISPLAY},
-#line 33 "cssproperties.gperf"
-      {"border-bottom-width", CSS_PROP_BORDER_BOTTOM_WIDTH},
-#line 58 "cssproperties.gperf"
-      {"-khtml-font-size-delta", CSS_PROP__KHTML_FONT_SIZE_DELTA},
-#line 169 "cssproperties.gperf"
-      {"scrollbar-arrow-color", CSS_PROP_SCROLLBAR_ARROW_COLOR},
-#line 54 "cssproperties.gperf"
-      {"empty-cells", CSS_PROP_EMPTY_CELLS},
-#line 152 "cssproperties.gperf"
+      {"border-top-color", CSS_PROP_BORDER_TOP_COLOR},
+      {"border-right-color", CSS_PROP_BORDER_RIGHT_COLOR},
+      {"visibility", CSS_PROP_VISIBILITY},
       {"border-style", CSS_PROP_BORDER_STYLE},
-#line 27 "cssproperties.gperf"
-      {"border-top-style", CSS_PROP_BORDER_TOP_STYLE},
-#line 116 "cssproperties.gperf"
-      {"text-line-through", CSS_PROP_TEXT_LINE_THROUGH},
-#line 29 "cssproperties.gperf"
+      {"max-height", CSS_PROP_MAX_HEIGHT},
+      {"border-collapse", CSS_PROP_BORDER_COLLAPSE},
+      {"padding-top", CSS_PROP_PADDING_TOP},
+      {"padding-right", CSS_PROP_PADDING_RIGHT},
+      {"caption-side", CSS_PROP_CAPTION_SIDE},
+      {"text-overflow", CSS_PROP_TEXT_OVERFLOW},
+      {"vertical-align", CSS_PROP_VERTICAL_ALIGN},
+      {"border-left-color", CSS_PROP_BORDER_LEFT_COLOR},
+      {"outline-style", CSS_PROP_OUTLINE_STYLE},
+      {"-khtml-marquee-direction", CSS_PROP__KHTML_MARQUEE_DIRECTION},
+      {"table-layout", CSS_PROP_TABLE_LAYOUT},
+      {"font-stretch", CSS_PROP_FONT_STRETCH},
+      {"text-align", CSS_PROP_TEXT_ALIGN},
+      {"padding-left", CSS_PROP_PADDING_LEFT},
       {"border-bottom-style", CSS_PROP_BORDER_BOTTOM_STYLE},
-#line 143 "cssproperties.gperf"
-      {"white-space", CSS_PROP_WHITE_SPACE},
-#line 147 "cssproperties.gperf"
-      {"word-spacing", CSS_PROP_WORD_SPACING},
-#line 117 "cssproperties.gperf"
-      {"text-line-through-color", CSS_PROP_TEXT_LINE_THROUGH_COLOR},
-#line 41 "cssproperties.gperf"
-      {"-khtml-box-ordinal-group", CSS_PROP__KHTML_BOX_ORDINAL_GROUP},
-#line 118 "cssproperties.gperf"
+      {"text-line-through", CSS_PROP_TEXT_LINE_THROUGH},
+      {"text-line-through-width", CSS_PROP_TEXT_LINE_THROUGH_WIDTH},
+      {"background", CSS_PROP_BACKGROUND},
+      {"page-break-after", CSS_PROP_PAGE_BREAK_AFTER},
       {"text-line-through-mode", CSS_PROP_TEXT_LINE_THROUGH_MODE},
-#line 159 "cssproperties.gperf"
-      {"list-style", CSS_PROP_LIST_STYLE},
-#line 16 "cssproperties.gperf"
-      {"background-position-x", CSS_PROP_BACKGROUND_POSITION_X},
-#line 86 "cssproperties.gperf"
-      {"-khtml-match-nearest-mail-blockquote-color", CSS_PROP__KHTML_MATCH_NEAREST_MAIL_BLOCKQUOTE_COLOR},
-#line 32 "cssproperties.gperf"
-      {"border-right-width", CSS_PROP_BORDER_RIGHT_WIDTH},
-#line 142 "cssproperties.gperf"
-      {"visibility", CSS_PROP_VISIBILITY},
-#line 134 "cssproperties.gperf"
-      {"-apple-text-size-adjust", CSS_PROP__APPLE_TEXT_SIZE_ADJUST},
-#line 128 "cssproperties.gperf"
+      {"-khtml-marquee-increment", CSS_PROP__KHTML_MARQUEE_INCREMENT},
+      {"-apple-dashboard-region", CSS_PROP__APPLE_DASHBOARD_REGION},
+      {"page-break-before", CSS_PROP_PAGE_BREAK_BEFORE},
       {"text-transform", CSS_PROP_TEXT_TRANSFORM},
-#line 164 "cssproperties.gperf"
-      {"scrollbar-shadow-color", CSS_PROP_SCROLLBAR_SHADOW_COLOR},
-#line 112 "cssproperties.gperf"
-      {"table-layout", CSS_PROP_TABLE_LAYOUT},
-#line 28 "cssproperties.gperf"
+      {"-khtml-box-align", CSS_PROP__KHTML_BOX_ALIGN},
+      {"display", CSS_PROP_DISPLAY},
+      {"-khtml-marquee-style", CSS_PROP__KHTML_MARQUEE_STYLE},
+      {"list-style-image", CSS_PROP_LIST_STYLE_IMAGE},
+      {"border-top-style", CSS_PROP_BORDER_TOP_STYLE},
       {"border-right-style", CSS_PROP_BORDER_RIGHT_STYLE},
-#line 97 "cssproperties.gperf"
-      {"outline-width", CSS_PROP_OUTLINE_WIDTH},
-#line 69 "cssproperties.gperf"
+      {"word-spacing", CSS_PROP_WORD_SPACING},
+      {"letter-spacing", CSS_PROP_LETTER_SPACING},
+      {"scrollbar-arrow-color", CSS_PROP_SCROLLBAR_ARROW_COLOR},
       {"list-style-position", CSS_PROP_LIST_STYLE_POSITION},
-#line 68 "cssproperties.gperf"
-      {"list-style-image", CSS_PROP_LIST_STYLE_IMAGE},
-#line 167 "cssproperties.gperf"
-      {"scrollbar-darkshadow-color", CSS_PROP_SCROLLBAR_DARKSHADOW_COLOR},
-#line 96 "cssproperties.gperf"
-      {"outline-style", CSS_PROP_OUTLINE_STYLE},
-#line 88 "cssproperties.gperf"
-      {"max-width", CSS_PROP_MAX_WIDTH},
-#line 127 "cssproperties.gperf"
-      {"text-shadow", CSS_PROP_TEXT_SHADOW},
-#line 17 "cssproperties.gperf"
-      {"background-position-y", CSS_PROP_BACKGROUND_POSITION_Y},
-#line 34 "cssproperties.gperf"
-      {"border-left-width", CSS_PROP_BORDER_LEFT_WIDTH},
-#line 60 "cssproperties.gperf"
-      {"font-style", CSS_PROP_FONT_STYLE},
-#line 95 "cssproperties.gperf"
-      {"outline-offset", CSS_PROP_OUTLINE_OFFSET},
-#line 98 "cssproperties.gperf"
-      {"overflow", CSS_PROP_OVERFLOW},
-#line 62 "cssproperties.gperf"
-      {"font-weight", CSS_PROP_FONT_WEIGHT},
-#line 30 "cssproperties.gperf"
+      {"scrollbar-shadow-color", CSS_PROP_SCROLLBAR_SHADOW_COLOR},
       {"border-left-style", CSS_PROP_BORDER_LEFT_STYLE},
-#line 126 "cssproperties.gperf"
-      {"text-overline-width", CSS_PROP_TEXT_OVERLINE_WIDTH},
-#line 38 "cssproperties.gperf"
-      {"-khtml-box-flex", CSS_PROP__KHTML_BOX_FLEX},
-#line 146 "cssproperties.gperf"
-      {"word-wrap", CSS_PROP_WORD_WRAP},
-#line 125 "cssproperties.gperf"
+      {"-khtml-user-modify", CSS_PROP__KHTML_USER_MODIFY},
+      {"text-overline-color", CSS_PROP_TEXT_OVERLINE_COLOR},
+      {"font-style", CSS_PROP_FONT_STYLE},
+      {"text-decoration", CSS_PROP_TEXT_DECORATION},
+      {"border-spacing", CSS_PROP_BORDER_SPACING},
+      {"scrollbar-darkshadow-color", CSS_PROP_SCROLLBAR_DARKSHADOW_COLOR},
+      {"-khtml-margin-collapse", CSS_PROP__KHTML_MARGIN_COLLAPSE},
+      {"-apple-text-size-adjust", CSS_PROP__APPLE_TEXT_SIZE_ADJUST},
+      {"background-repeat", CSS_PROP_BACKGROUND_REPEAT},
+      {"-khtml-box-direction", CSS_PROP__KHTML_BOX_DIRECTION},
+      {"background-image", CSS_PROP_BACKGROUND_IMAGE},
+      {"-khtml-margin-bottom-collapse", CSS_PROP__KHTML_MARGIN_BOTTOM_COLLAPSE},
+      {"text-underline-color", CSS_PROP_TEXT_UNDERLINE_COLOR},
+      {"counter-increment", CSS_PROP_COUNTER_INCREMENT},
+      {"-khtml-box-ordinal-group", CSS_PROP__KHTML_BOX_ORDINAL_GROUP},
+      {"background-position", CSS_PROP_BACKGROUND_POSITION},
+      {"scrollbar-3dlight-color", CSS_PROP_SCROLLBAR_3DLIGHT_COLOR},
+      {"-khtml-border-horizontal-spacing", CSS_PROP__KHTML_BORDER_HORIZONTAL_SPACING},
+      {"-apple-line-clamp", CSS_PROP__APPLE_LINE_CLAMP},
       {"text-overline-style", CSS_PROP_TEXT_OVERLINE_STYLE},
-#line 85 "cssproperties.gperf"
-      {"-khtml-marquee-style", CSS_PROP__KHTML_MARQUEE_STYLE},
-#line 133 "cssproperties.gperf"
-      {"text-underline-width", CSS_PROP_TEXT_UNDERLINE_WIDTH},
-#line 144 "cssproperties.gperf"
-      {"widows", CSS_PROP_WIDOWS},
-#line 132 "cssproperties.gperf"
-      {"text-underline-style", CSS_PROP_TEXT_UNDERLINE_STYLE},
-#line 120 "cssproperties.gperf"
-      {"text-line-through-width", CSS_PROP_TEXT_LINE_THROUGH_WIDTH},
-#line 56 "cssproperties.gperf"
+      {"-khtml-box-pack", CSS_PROP__KHTML_BOX_PACK},
+      {"-khtml-margin-top-collapse", CSS_PROP__KHTML_MARGIN_TOP_COLLAPSE},
+      {"text-line-through-color", CSS_PROP_TEXT_LINE_THROUGH_COLOR},
+      {"background-color", CSS_PROP_BACKGROUND_COLOR},
       {"font-family", CSS_PROP_FONT_FAMILY},
-#line 70 "cssproperties.gperf"
-      {"list-style-type", CSS_PROP_LIST_STYLE_TYPE},
-#line 170 "cssproperties.gperf"
-      {"-khtml-text-decorations-in-effect", CSS_PROP__KHTML_TEXT_DECORATIONS_IN_EFFECT},
-#line 139 "cssproperties.gperf"
-      {"-khtml-user-modify", CSS_PROP__KHTML_USER_MODIFY},
-#line 119 "cssproperties.gperf"
+      {"opacity", CSS_PROP_OPACITY},
+      {"empty-cells", CSS_PROP_EMPTY_CELLS},
+      {"-khtml-box-flex", CSS_PROP__KHTML_BOX_FLEX},
+      {"text-underline-style", CSS_PROP_TEXT_UNDERLINE_STYLE},
+      {"scrollbar-highlight-color", CSS_PROP_SCROLLBAR_HIGHLIGHT_COLOR},
+      {"background-attachment", CSS_PROP_BACKGROUND_ATTACHMENT},
+      {"scrollbar-track-color", CSS_PROP_SCROLLBAR_TRACK_COLOR},
       {"text-line-through-style", CSS_PROP_TEXT_LINE_THROUGH_STYLE},
-#line 121 "cssproperties.gperf"
-      {"text-overflow", CSS_PROP_TEXT_OVERFLOW},
-#line 39 "cssproperties.gperf"
-      {"-khtml-box-flex-group", CSS_PROP__KHTML_BOX_FLEX_GROUP}
+      {"-khtml-border-vertical-spacing", CSS_PROP__KHTML_BORDER_VERTICAL_SPACING},
+      {"list-style-type", CSS_PROP_LIST_STYLE_TYPE},
+      {"background-position-x", CSS_PROP_BACKGROUND_POSITION_X},
+      {"scrollbar-face-color", CSS_PROP_SCROLLBAR_FACE_COLOR},
+      {"-khtml-match-nearest-mail-blockquote-color", CSS_PROP__KHTML_MATCH_NEAREST_MAIL_BLOCKQUOTE_COLOR},
+      {"-khtml-box-flex-group", CSS_PROP__KHTML_BOX_FLEX_GROUP},
+      {"background-position-y", CSS_PROP_BACKGROUND_POSITION_Y},
+      {"-khtml-text-decorations-in-effect", CSS_PROP__KHTML_TEXT_DECORATIONS_IN_EFFECT}
     };
 
   static const short lookup[] =
     {
-       -1,  -1,  -1,   0,   1,   2,   3,  -1,  -1,  -1,
-        4,   5,   6,  -1,   7,   8,  -1,   9,  10,  -1,
-       -1,  11,  -1,  -1,  12,  -1,  -1,  13,  -1,  -1,
-       -1,  14,  15,  16,  17,  18,  19,  -1,  20,  21,
-       -1,  -1,  22,  -1,  -1,  23,  -1,  24,  -1,  25,
-       26,  -1,  -1,  -1,  -1,  -1,  -1,  27,  -1,  -1,
-       -1,  -1,  -1,  28,  -1,  -1,  29,  -1,  -1,  30,
-       31,  32,  -1,  -1,  33,  -1,  34,  35,  36,  37,
-       -1,  -1,  38,  -1,  39,  -1,  40,  41,  42,  -1,
-       -1,  -1,  43,  44,  -1,  -1,  -1,  -1,  45,  -1,
-       -1,  46,  47,  -1,  -1,  -1,  -1,  48,  -1,  49,
-       50,  -1,  -1,  -1,  -1,  -1,  -1,  51,  -1,  -1,
-       -1,  52,  -1,  53,  54,  -1,  -1,  -1,  -1,  -1,
-       55,  56,  -1,  -1,  -1,  57,  58,  59,  -1,  60,
-       61,  -1,  -1,  -1,  62,  63,  -1,  64,  -1,  -1,
-       65,  66,  -1,  -1,  -1,  -1,  67,  68,  -1,  -1,
-       -1,  69,  70,  -1,  71,  -1,  72,  -1,  -1,  -1,
-       73,  -1,  74,  -1,  -1,  75,  76,  77,  78,  79,
-       80,  81,  -1,  -1,  82,  83,  -1,  84,  85,  86,
-       87,  88,  89,  90,  91,  -1,  92,  -1,  -1,  93,
-       94,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  95,
-       -1,  -1,  -1,  -1,  -1,  96,  97,  98,  -1,  99,
-      100,  -1, 101,  -1,  -1, 102,  -1,  -1,  -1, 103,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1, 104,  -1,  -1,
-       -1, 105, 106,  -1, 107,  -1,  -1, 108,  -1,  -1,
-       -1, 109,  -1,  -1,  -1,  -1, 110, 111,  -1,  -1,
-       -1, 112, 113,  -1, 114,  -1, 115, 116, 117, 118,
-       -1,  -1, 119,  -1,  -1, 120, 121, 122,  -1,  -1,
-       -1,  -1,  -1, 123,  -1, 124,  -1,  -1, 125, 126,
-       -1,  -1, 127,  -1,  -1,  -1,  -1, 128,  -1,  -1,
-       -1,  -1,  -1, 129,  -1,  -1,  -1,  -1, 130, 131,
-       -1, 132,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1, 133,  -1,  -1,  -1,  -1,  -1,  -1, 134,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 135,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1, 136,  -1,  -1,  -1,  -1, 137,  -1,  -1,  -1,
-       -1,  -1, 138,  -1,  -1, 139,  -1,  -1,  -1, 140,
-       -1,  -1,  -1, 141,  -1,  -1, 142,  -1,  -1,  -1,
-       -1,  -1, 143,  -1, 144,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1, 145,  -1,  -1,  -1, 146,
-       -1,  -1,  -1,  -1, 147, 148,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1, 149,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,   0,  -1,  -1,  -1,  -1,
+       -1,   1,  -1,  -1,   2,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,   3,  -1,  -1,  -1,
+       -1,   4,   5,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,   6,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,   7,  -1,  -1,  -1,  -1,  -1,   8,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,   9,  -1,
+       -1,  -1,  -1,  -1,  10,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  11,  12,  13,  -1,  14,  15,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  16,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  17,
+       -1,  -1,  -1,  -1,  18,  -1,  -1,  -1,  19,  -1,
+       20,  -1,  21,  -1,  -1,  22,  23,  -1,  24,  -1,
+       -1,  25,  -1,  26,  -1,  27,  28,  -1,  -1,  -1,
+       -1,  29,  30,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  31,  -1,  -1,  32,  -1,  -1,  33,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  34,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  35,
+       -1,  -1,  -1,  36,  -1,  -1,  37,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  38,  -1,  -1,  -1,  -1,
+       -1,  -1,  39,  -1,  40,  41,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  42,  -1,  43,  -1,  -1,  -1,
+       -1,  -1,  44,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       45,  -1,  46,  -1,  -1,  -1,  -1,  -1,  -1,  47,
+       -1,  -1,  -1,  48,  49,  -1,  50,  51,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  52,  -1,  53,  54,  -1,
+       -1,  -1,  -1,  55,  -1,  -1,  -1,  -1,  -1,  -1,
+       56,  57,  58,  59,  60,  -1,  -1,  61,  -1,  62,
+       -1,  -1,  -1,  63,  -1,  64,  65,  66,  -1,  67,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  68,  -1,  -1,  69,  -1,  -1,
+       -1,  70,  -1,  -1,  -1,  -1,  -1,  71,  -1,  -1,
+       -1,  72,  -1,  -1,  73,  74,  75,  -1,  -1,  76,
+       -1,  -1,  -1,  -1,  -1,  77,  -1,  -1,  -1,  78,
+       -1,  -1,  -1,  -1,  -1,  -1,  79,  -1,  80,  -1,
+       81,  -1,  82,  -1,  -1,  83,  -1,  -1,  -1,  -1,
+       84,  85,  -1,  86,  -1,  -1,  -1,  87,  -1,  -1,
+       -1,  -1,  -1,  88,  89,  -1,  -1,  90,  91,  92,
+       -1,  -1,  93,  -1,  -1,  -1,  -1,  94,  -1,  -1,
+       95,  -1,  96,  -1,  97,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  98,  -1,  -1,  -1,  -1,  -1,  99,  -1,
+      100, 101, 102,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1, 103,  -1,  -1,  -1, 104,  -1,
+       -1,  -1, 105,  -1, 106,  -1, 107, 108,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1, 109, 110,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1, 111,  -1, 112,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1, 113,  -1, 114,
+       -1,  -1,  -1,  -1,  -1,  -1, 115,  -1,  -1, 116,
+       -1,  -1, 117,  -1,  -1,  -1,  -1, 118, 119, 120,
+      121,  -1,  -1,  -1,  -1, 122,  -1,  -1,  -1, 123,
+       -1, 124, 125, 126,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1, 127,  -1,  -1,
+      128, 129,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1, 130, 131,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1, 132,  -1, 133,
+       -1,  -1,  -1,  -1, 134,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 135,  -1,
+       -1,  -1, 136,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1, 137,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 138,
+      139,  -1,  -1,  -1,  -1,  -1, 140,  -1, 141,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1, 142,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1, 143, 144,  -1,  -1,  -1, 145,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1, 146,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1, 147,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+      148,  -1,  -1,  -1,  -1,  -1, 149,  -1,  -1,  -1,
        -1, 150,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1, 151,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 152,  -1,
-       -1, 153,  -1,  -1,  -1, 154,  -1,  -1, 155,  -1,
-       -1,  -1,  -1, 156,  -1,  -1,  -1,  -1, 157,  -1,
-       -1,  -1,  -1, 158,  -1,  -1, 159
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 151,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1, 152,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1, 153,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1, 154,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1, 155,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1, 156,  -1,  -1,  -1, 157,  -1,  -1,  -1,
+       -1, 158,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 159
     };
 
   if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
@@ -627,8 +455,6 @@ findProp (register const char *str, register unsigned int len)
     }
   return 0;
 }
-#line 171 "cssproperties.gperf"
-
 static const char * const propertyList[] = {
 "",
 "background-color", 
index 6a7756f3d6cdbf924e4fce1999ccd1d7c671d21c..5cd71eae208168b05997934d59bf45fc04ad6113 100644 (file)
@@ -908,9 +908,11 @@ void CSSStyleSelector::adjustRenderStyle(RenderStyle* style, DOM::ElementImpl *e
         }
 
         // Frames and framesets never honor position:relative or position:absolute.  This is necessary to
-        // fix a crash where a site tries to position these objects.
-        if (e && (e->id() == ID_FRAME || e->id() == ID_FRAMESET))
+        // fix a crash where a site tries to position these objects.  They also never honor display.
+        if (e && (e->id() == ID_FRAME || e->id() == ID_FRAMESET)) {
             style->setPosition(STATIC);
+            style->setDisplay(BLOCK);
+        }
 
         // Table headers with a text-align of auto will change the text-align to center.
         if (e && e->id() == ID_TH && style->textAlign() == TAAUTO)
index 0d04d047008e6be4f9c08f98e48f2b96bab00ad2..989b5457b6807da1f4111cc6ed450fa6deaa04ff 100644 (file)
@@ -1,44 +1,13 @@
-/* ANSI-C code produced by gperf version 3.0.1 */
+/* ANSI-C code produced by gperf version 2.7.2 */
 /* Command-line: gperf -L ANSI-C -E -C -n -o -t -k '*' -NfindValue -Hhash_val -Wwordlist_value -D cssvalues.gperf  */
-
-#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
-      && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
-      && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
-      && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
-      && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
-      && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
-      && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
-      && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
-      && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
-      && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
-      && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
-      && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
-      && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
-      && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
-      && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
-      && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
-      && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
-      && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
-      && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
-      && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
-      && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
-      && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
-      && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
-/* The character set is not based on ISO-646.  */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
-#endif
-
-#line 1 "cssvalues.gperf"
-
 /* This file is automatically generated from cssvalues.in by makevalues, do not edit */
 /* Copyright 1999 W. Bastian */
 #include "cssvalues.h"
-#line 6 "cssvalues.gperf"
 struct css_value {
     const char *name;
     int id;
 };
-/* maximum key range = 3201, duplicates = 0 */
+/* maximum key range = 2468, duplicates = 1 */
 
 #ifdef __GNUC__
 __inline
@@ -52,100 +21,80 @@ hash_val (register const char *str, register unsigned int len)
 {
   static const unsigned short asso_values[] =
     {
-      3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201,
-      3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201,
-      3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201,
-      3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201,
-      3201, 3201, 3201, 3201, 3201,  200,  490, 3201,    0,    0,
-       115,  110,   95,   70,   65,   60,   25,   20, 3201, 3201,
-      3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201,
-      3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201,
-      3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201,
-      3201, 3201, 3201, 3201, 3201, 3201, 3201,   60,  265,    5,
-       360,    0,   68,  475,  460,    5,  440,  160,   20,   95,
-        10,   35,  150,  153,    5,   20,    0,   25,    8,    8,
-         3,   68,    5, 3201, 3201, 3201, 3201, 3201, 3201, 3201,
-      3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201,
-      3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201,
-      3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201,
-      3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201,
-      3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201,
-      3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201,
-      3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201,
-      3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201,
-      3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201,
-      3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201,
-      3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201,
-      3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201,
-      3201, 3201, 3201, 3201, 3201, 3201, 3201
+      2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468,
+      2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468,
+      2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468,
+      2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468,
+      2468, 2468, 2468, 2468, 2468,   15, 2468, 2468,    0,    5,
+        10,   15,   20,   25,   30,   35,   40,    0, 2468, 2468,
+      2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468,
+      2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468,
+      2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468,
+      2468, 2468, 2468, 2468, 2468, 2468, 2468,    0,  328,    3,
+       400,  300,  133,  240,   42,   35,    0,  175,    0,   21,
+        55,    5,   13,   35,   65,   10,    0,  275,  113,   65,
+       278,  105,  110, 2468, 2468, 2468, 2468, 2468, 2468, 2468,
+      2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468,
+      2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468,
+      2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468,
+      2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468,
+      2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468,
+      2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468,
+      2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468,
+      2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468,
+      2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468,
+      2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468,
+      2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468,
+      2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468, 2468,
+      2468, 2468, 2468, 2468, 2468, 2468
     };
   register int hval = 0;
 
   switch (len)
     {
       default:
+      case 22:
         hval += asso_values[(unsigned char)str[21]];
-      /*FALLTHROUGH*/
       case 21:
         hval += asso_values[(unsigned char)str[20]];
-      /*FALLTHROUGH*/
       case 20:
         hval += asso_values[(unsigned char)str[19]];
-      /*FALLTHROUGH*/
       case 19:
         hval += asso_values[(unsigned char)str[18]];
-      /*FALLTHROUGH*/
       case 18:
         hval += asso_values[(unsigned char)str[17]];
-      /*FALLTHROUGH*/
       case 17:
         hval += asso_values[(unsigned char)str[16]];
-      /*FALLTHROUGH*/
       case 16:
         hval += asso_values[(unsigned char)str[15]];
-      /*FALLTHROUGH*/
       case 15:
         hval += asso_values[(unsigned char)str[14]];
-      /*FALLTHROUGH*/
       case 14:
         hval += asso_values[(unsigned char)str[13]];
-      /*FALLTHROUGH*/
       case 13:
         hval += asso_values[(unsigned char)str[12]];
-      /*FALLTHROUGH*/
       case 12:
         hval += asso_values[(unsigned char)str[11]];
-      /*FALLTHROUGH*/
       case 11:
         hval += asso_values[(unsigned char)str[10]];
-      /*FALLTHROUGH*/
       case 10:
         hval += asso_values[(unsigned char)str[9]];
-      /*FALLTHROUGH*/
       case 9:
         hval += asso_values[(unsigned char)str[8]];
-      /*FALLTHROUGH*/
       case 8:
         hval += asso_values[(unsigned char)str[7]];
-      /*FALLTHROUGH*/
       case 7:
         hval += asso_values[(unsigned char)str[6]];
-      /*FALLTHROUGH*/
       case 6:
         hval += asso_values[(unsigned char)str[5]];
-      /*FALLTHROUGH*/
       case 5:
         hval += asso_values[(unsigned char)str[4]];
-      /*FALLTHROUGH*/
       case 4:
         hval += asso_values[(unsigned char)str[3]];
-      /*FALLTHROUGH*/
       case 3:
-        hval += asso_values[(unsigned char)str[2]+1];
-      /*FALLTHROUGH*/
+        hval += asso_values[(unsigned char)str[2]];
       case 2:
         hval += asso_values[(unsigned char)str[1]];
-      /*FALLTHROUGH*/
       case 1:
         hval += asso_values[(unsigned char)str[0]];
         break;
@@ -165,880 +114,596 @@ findValue (register const char *str, register unsigned int len)
       MIN_WORD_LENGTH = 2,
       MAX_WORD_LENGTH = 22,
       MIN_HASH_VALUE = 0,
-      MAX_HASH_VALUE = 3200
+      MAX_HASH_VALUE = 2467
     };
 
   static const struct css_value wordlist_value[] =
     {
-#line 36 "cssvalues.gperf"
-      {"100", CSS_VAL_100},
-#line 83 "cssvalues.gperf"
-      {"red", CSS_VAL_RED},
-#line 248 "cssvalues.gperf"
-      {"end", CSS_VAL_END},
-#line 15 "cssvalues.gperf"
-      {"inset", CSS_VAL_INSET},
-#line 55 "cssvalues.gperf"
-      {"wider", CSS_VAL_WIDER},
-#line 44 "cssvalues.gperf"
       {"900", CSS_VAL_900},
-#line 43 "cssvalues.gperf"
+      {"100", CSS_VAL_100},
+      {"200", CSS_VAL_200},
+      {"300", CSS_VAL_300},
+      {"top", CSS_VAL_TOP},
+      {"400", CSS_VAL_400},
+      {"500", CSS_VAL_500},
+      {"600", CSS_VAL_600},
+      {"small", CSS_VAL_SMALL},
+      {"700", CSS_VAL_700},
       {"800", CSS_VAL_800},
-#line 221 "cssvalues.gperf"
-      {"invert", CSS_VAL_INVERT},
-#line 11 "cssvalues.gperf"
-      {"inherit", CSS_VAL_INHERIT},
-#line 77 "cssvalues.gperf"
-      {"lime", CSS_VAL_LIME},
-#line 249 "cssvalues.gperf"
-      {"reverse", CSS_VAL_REVERSE},
-#line 198 "cssvalues.gperf"
+      {"compact", CSS_VAL_COMPACT},
+      {"static", CSS_VAL_STATIC},
+      {"clip", CSS_VAL_CLIP},
       {"ltr", CSS_VAL_LTR},
-#line 137 "cssvalues.gperf"
-      {"center", CSS_VAL_CENTER},
-#line 223 "cssvalues.gperf"
-      {"level", CSS_VAL_LEVEL},
-#line 127 "cssvalues.gperf"
-      {"sub", CSS_VAL_SUB},
-#line 145 "cssvalues.gperf"
-      {"circle", CSS_VAL_CIRCLE},
-#line 42 "cssvalues.gperf"
-      {"700", CSS_VAL_700},
-#line 226 "cssvalues.gperf"
-      {"lower", CSS_VAL_LOWER},
-#line 41 "cssvalues.gperf"
-      {"600", CSS_VAL_600},
-#line 195 "cssvalues.gperf"
-      {"text", CSS_VAL_TEXT},
-#line 40 "cssvalues.gperf"
-      {"500", CSS_VAL_500},
-#line 244 "cssvalues.gperf"
-      {"underline", CSS_VAL_UNDERLINE},
-#line 277 "cssvalues.gperf"
-      {"wave", CSS_VAL_WAVE},
-#line 13 "cssvalues.gperf"
-      {"none", CSS_VAL_NONE},
-#line 67 "cssvalues.gperf"
-      {"cursive", CSS_VAL_CURSIVE},
-#line 170 "cssvalues.gperf"
-      {"table", CSS_VAL_TABLE},
-#line 270 "cssvalues.gperf"
-      {"intrinsic", CSS_VAL_INTRINSIC},
-#line 39 "cssvalues.gperf"
-      {"400", CSS_VAL_400},
-#line 199 "cssvalues.gperf"
       {"rtl", CSS_VAL_RTL},
-#line 18 "cssvalues.gperf"
-      {"outset", CSS_VAL_OUTSET},
-#line 38 "cssvalues.gperf"
-      {"300", CSS_VAL_300},
-#line 65 "cssvalues.gperf"
-      {"serif", CSS_VAL_SERIF},
-#line 37 "cssvalues.gperf"
-      {"200", CSS_VAL_200},
-#line 251 "cssvalues.gperf"
-      {"vertical", CSS_VAL_VERTICAL},
-#line 238 "cssvalues.gperf"
-      {"scroll", CSS_VAL_SCROLL},
-#line 164 "cssvalues.gperf"
-      {"inline", CSS_VAL_INLINE},
-#line 262 "cssvalues.gperf"
-      {"fast", CSS_VAL_FAST},
-#line 84 "cssvalues.gperf"
-      {"silver", CSS_VAL_SILVER},
-#line 186 "cssvalues.gperf"
-      {"move", CSS_VAL_MOVE},
-#line 56 "cssvalues.gperf"
-      {"narrower", CSS_VAL_NARROWER},
-#line 182 "cssvalues.gperf"
-      {"auto", CSS_VAL_AUTO},
-#line 79 "cssvalues.gperf"
-      {"navy", CSS_VAL_NAVY},
-#line 202 "cssvalues.gperf"
-      {"lowercase", CSS_VAL_LOWERCASE},
-#line 234 "cssvalues.gperf"
-      {"overline", CSS_VAL_OVERLINE},
-#line 25 "cssvalues.gperf"
-      {"menu", CSS_VAL_MENU},
-#line 109 "cssvalues.gperf"
-      {"menutext", CSS_VAL_MENUTEXT},
-#line 157 "cssvalues.gperf"
-      {"armenian", CSS_VAL_ARMENIAN},
-#line 228 "cssvalues.gperf"
-      {"mix", CSS_VAL_MIX},
-#line 24 "cssvalues.gperf"
-      {"icon", CSS_VAL_ICON},
-#line 237 "cssvalues.gperf"
-      {"relative", CSS_VAL_RELATIVE},
-#line 259 "cssvalues.gperf"
-      {"up", CSS_VAL_UP},
-#line 265 "cssvalues.gperf"
-      {"alternate", CSS_VAL_ALTERNATE},
-#line 131 "cssvalues.gperf"
-      {"top", CSS_VAL_TOP},
-#line 269 "cssvalues.gperf"
-      {"element", CSS_VAL_ELEMENT},
-#line 278 "cssvalues.gperf"
-      {"continuous", CSS_VAL_CONTINUOUS},
-#line 261 "cssvalues.gperf"
+      {"match", CSS_VAL_MATCH},
+      {"small-caps", CSS_VAL_SMALL_CAPS},
+      {"italic", CSS_VAL_ITALIC},
+      {"start", CSS_VAL_START},
       {"slow", CSS_VAL_SLOW},
-#line 215 "cssvalues.gperf"
+      {"scroll", CSS_VAL_SCROLL},
+      {"crop", CSS_VAL_CROP},
       {"cross", CSS_VAL_CROSS},
-#line 128 "cssvalues.gperf"
-      {"super", CSS_VAL_SUPER},
-#line 121 "cssvalues.gperf"
-      {"repeat", CSS_VAL_REPEAT},
-#line 48 "cssvalues.gperf"
-      {"medium", CSS_VAL_MEDIUM},
-#line 236 "cssvalues.gperf"
-      {"pre", CSS_VAL_PRE},
-#line 87 "cssvalues.gperf"
-      {"yellow", CSS_VAL_YELLOW},
-#line 207 "cssvalues.gperf"
-      {"always", CSS_VAL_ALWAYS},
-#line 32 "cssvalues.gperf"
+      {"icon", CSS_VAL_ICON},
+      {"wait", CSS_VAL_WAIT},
+      {"caption", CSS_VAL_CAPTION},
+      {"show", CSS_VAL_SHOW},
+      {"thin", CSS_VAL_THIN},
+      {"fast", CSS_VAL_FAST},
       {"normal", CSS_VAL_NORMAL},
-#line 146 "cssvalues.gperf"
-      {"square", CSS_VAL_SQUARE},
-#line 187 "cssvalues.gperf"
-      {"e-resize", CSS_VAL_E_RESIZE},
-#line 78 "cssvalues.gperf"
       {"maroon", CSS_VAL_MAROON},
-#line 194 "cssvalues.gperf"
-      {"w-resize", CSS_VAL_W_RESIZE},
-#line 190 "cssvalues.gperf"
-      {"n-resize", CSS_VAL_N_RESIZE},
-#line 231 "cssvalues.gperf"
-      {"nowrap", CSS_VAL_NOWRAP},
-#line 233 "cssvalues.gperf"
-      {"overlay", CSS_VAL_OVERLAY},
-#line 168 "cssvalues.gperf"
-      {"compact", CSS_VAL_COMPACT},
-#line 23 "cssvalues.gperf"
-      {"caption", CSS_VAL_CAPTION},
-#line 193 "cssvalues.gperf"
-      {"s-resize", CSS_VAL_S_RESIZE},
-#line 99 "cssvalues.gperf"
-      {"captiontext", CSS_VAL_CAPTIONTEXT},
-#line 235 "cssvalues.gperf"
+      {"small-caption", CSS_VAL_SMALL_CAPTION},
+      {"initial", CSS_VAL_INITIAL},
+      {"always", CSS_VAL_ALWAYS},
       {"portrait", CSS_VAL_PORTRAIT},
-#line 167 "cssvalues.gperf"
-      {"run-in", CSS_VAL_RUN_IN},
-#line 71 "cssvalues.gperf"
-      {"aqua", CSS_VAL_AQUA},
-#line 85 "cssvalues.gperf"
+      {"nowrap", CSS_VAL_NOWRAP},
+      {"crosshair", CSS_VAL_CROSSHAIR},
+      {"thick", CSS_VAL_THICK},
+      {"navy", CSS_VAL_NAVY},
+      {"auto", CSS_VAL_AUTO},
+      {"up", CSS_VAL_UP},
+      {"intrinsic", CSS_VAL_INTRINSIC},
       {"teal", CSS_VAL_TEAL},
-#line 247 "cssvalues.gperf"
-      {"start", CSS_VAL_START},
-#line 73 "cssvalues.gperf"
-      {"blue", CSS_VAL_BLUE},
-#line 241 "cssvalues.gperf"
-      {"static", CSS_VAL_STATIC},
-#line 239 "cssvalues.gperf"
-      {"separate", CSS_VAL_SEPARATE},
-#line 29 "cssvalues.gperf"
-      {"italic", CSS_VAL_ITALIC},
-#line 203 "cssvalues.gperf"
-      {"visible", CSS_VAL_VISIBLE},
-#line 214 "cssvalues.gperf"
-      {"crop", CSS_VAL_CROP},
-#line 68 "cssvalues.gperf"
       {"fantasy", CSS_VAL_FANTASY},
-#line 200 "cssvalues.gperf"
-      {"capitalize", CSS_VAL_CAPITALIZE},
-#line 273 "cssvalues.gperf"
-      {"ellipsis", CSS_VAL_ELLIPSIS},
-#line 166 "cssvalues.gperf"
-      {"list-item", CSS_VAL_LIST_ITEM},
-#line 178 "cssvalues.gperf"
-      {"table-cell", CSS_VAL_TABLE_CELL},
-#line 175 "cssvalues.gperf"
-      {"table-row", CSS_VAL_TABLE_ROW},
-#line 227 "cssvalues.gperf"
-      {"marquee", CSS_VAL_MARQUEE},
-#line 153 "cssvalues.gperf"
-      {"lower-latin", CSS_VAL_LOWER_LATIN},
-#line 125 "cssvalues.gperf"
-      {"baseline", CSS_VAL_BASELINE},
-#line 98 "cssvalues.gperf"
-      {"buttontext", CSS_VAL_BUTTONTEXT},
-#line 82 "cssvalues.gperf"
-      {"purple", CSS_VAL_PURPLE},
-#line 92 "cssvalues.gperf"
-      {"activecaption", CSS_VAL_ACTIVECAPTION},
-#line 144 "cssvalues.gperf"
-      {"disc", CSS_VAL_DISC},
-#line 143 "cssvalues.gperf"
-      {"inside", CSS_VAL_INSIDE},
-#line 204 "cssvalues.gperf"
-      {"collapse", CSS_VAL_COLLAPSE},
-#line 255 "cssvalues.gperf"
-      {"multiple", CSS_VAL_MULTIPLE},
-#line 46 "cssvalues.gperf"
+      {"aqua", CSS_VAL_AQUA},
+      {"horizontal", CSS_VAL_HORIZONTAL},
       {"x-small", CSS_VAL_X_SMALL},
-#line 271 "cssvalues.gperf"
-      {"min-intrinsic", CSS_VAL_MIN_INTRINSIC},
-#line 209 "cssvalues.gperf"
-      {"below", CSS_VAL_BELOW},
-#line 206 "cssvalues.gperf"
-      {"absolute", CSS_VAL_ABSOLUTE},
-#line 260 "cssvalues.gperf"
-      {"down", CSS_VAL_DOWN},
-#line 252 "cssvalues.gperf"
-      {"inline-axis", CSS_VAL_INLINE_AXIS},
-#line 201 "cssvalues.gperf"
-      {"uppercase", CSS_VAL_UPPERCASE},
-#line 47 "cssvalues.gperf"
-      {"small", CSS_VAL_SMALL},
-#line 122 "cssvalues.gperf"
-      {"repeat-x", CSS_VAL_REPEAT_X},
-#line 225 "cssvalues.gperf"
-      {"loud", CSS_VAL_LOUD},
-#line 53 "cssvalues.gperf"
-      {"smaller", CSS_VAL_SMALLER},
-#line 66 "cssvalues.gperf"
-      {"sans-serif", CSS_VAL_SANS_SERIF},
-#line 69 "cssvalues.gperf"
-      {"monospace", CSS_VAL_MONOSPACE},
-#line 281 "cssvalues.gperf"
       {"space", CSS_VAL_SPACE},
-#line 110 "cssvalues.gperf"
-      {"scrollbar", CSS_VAL_SCROLLBAR},
-#line 116 "cssvalues.gperf"
-      {"window", CSS_VAL_WINDOW},
-#line 129 "cssvalues.gperf"
-      {"text-top", CSS_VAL_TEXT_TOP},
-#line 118 "cssvalues.gperf"
-      {"windowtext", CSS_VAL_WINDOWTEXT},
-#line 132 "cssvalues.gperf"
+      {"collapse", CSS_VAL_COLLAPSE},
+      {"mix", CSS_VAL_MIX},
+      {"help", CSS_VAL_HELP},
+      {"lime", CSS_VAL_LIME},
       {"bottom", CSS_VAL_BOTTOM},
-#line 216 "cssvalues.gperf"
-      {"embed", CSS_VAL_EMBED},
-#line 219 "cssvalues.gperf"
-      {"hide", CSS_VAL_HIDE},
-#line 149 "cssvalues.gperf"
-      {"lower-roman", CSS_VAL_LOWER_ROMAN},
-#line 142 "cssvalues.gperf"
-      {"outside", CSS_VAL_OUTSIDE},
-#line 177 "cssvalues.gperf"
-      {"table-column", CSS_VAL_TABLE_COLUMN},
-#line 156 "cssvalues.gperf"
-      {"hebrew", CSS_VAL_HEBREW},
-#line 126 "cssvalues.gperf"
-      {"middle", CSS_VAL_MIDDLE},
-#line 205 "cssvalues.gperf"
-      {"above", CSS_VAL_ABOVE},
-#line 17 "cssvalues.gperf"
-      {"ridge", CSS_VAL_RIDGE},
-#line 123 "cssvalues.gperf"
-      {"repeat-y", CSS_VAL_REPEAT_Y},
-#line 95 "cssvalues.gperf"
-      {"buttonface", CSS_VAL_BUTTONFACE},
-#line 135 "cssvalues.gperf"
-      {"left", CSS_VAL_LEFT},
-#line 217 "cssvalues.gperf"
-      {"fixed", CSS_VAL_FIXED},
-#line 80 "cssvalues.gperf"
-      {"olive", CSS_VAL_OLIVE},
-#line 246 "cssvalues.gperf"
+      {"both", CSS_VAL_BOTH},
+      {"pre", CSS_VAL_PRE},
+      {"right", CSS_VAL_RIGHT},
+      {"smaller", CSS_VAL_SMALLER},
+      {"inset", CSS_VAL_INSET},
+      {"ellipsis", CSS_VAL_ELLIPSIS},
+      {"katakana", CSS_VAL_KATAKANA},
+      {"circle", CSS_VAL_CIRCLE},
+      {"gray", CSS_VAL_GRAY},
+      {"monospace", CSS_VAL_MONOSPACE},
+      {"none", CSS_VAL_NONE},
+      {"list-item", CSS_VAL_LIST_ITEM},
+      {"min-intrinsic", CSS_VAL_MIN_INTRINSIC},
       {"stretch", CSS_VAL_STRETCH},
-#line 196 "cssvalues.gperf"
-      {"wait", CSS_VAL_WAIT},
-#line 263 "cssvalues.gperf"
-      {"infinite", CSS_VAL_INFINITE},
-#line 21 "cssvalues.gperf"
+      {"left", CSS_VAL_LEFT},
+      {"lower", CSS_VAL_LOWER},
+      {"hiragana", CSS_VAL_HIRAGANA},
+      {"move", CSS_VAL_MOVE},
+      {"white", CSS_VAL_WHITE},
+      {"disc", CSS_VAL_DISC},
       {"solid", CSS_VAL_SOLID},
-#line 88 "cssvalues.gperf"
+      {"olive", CSS_VAL_OLIVE},
+      {"-khtml-nowrap", CSS_VAL__KHTML_NOWRAP},
+      {"pointer", CSS_VAL_POINTER},
+      {"yellow", CSS_VAL_YELLOW},
+      {"scrollbar", CSS_VAL_SCROLLBAR},
+      {"wave", CSS_VAL_WAVE},
+      {"inline", CSS_VAL_INLINE},
+      {"capitalize", CSS_VAL_CAPITALIZE},
+      {"hand", CSS_VAL_HAND},
+      {"fuchsia", CSS_VAL_FUCHSIA},
+      {"run-in", CSS_VAL_RUN_IN},
+      {"lower-alpha", CSS_VAL_LOWER_ALPHA},
+      {"black", CSS_VAL_BLACK},
+      {"block", CSS_VAL_BLOCK},
+      {"vertical", CSS_VAL_VERTICAL},
+      {"silver", CSS_VAL_SILVER},
+      {"down", CSS_VAL_DOWN},
+      {"armenian", CSS_VAL_ARMENIAN},
+      {"inherit", CSS_VAL_INHERIT},
+      {"-khtml-link", CSS_VAL__KHTML_LINK},
+      {"lower-latin", CSS_VAL_LOWER_LATIN},
+      {"serif", CSS_VAL_SERIF},
+      {"-khtml-auto", CSS_VAL__KHTML_AUTO},
+      {"avoid", CSS_VAL_AVOID},
+      {"justify", CSS_VAL_JUSTIFY},
+      {"activecaption", CSS_VAL_ACTIVECAPTION},
       {"transparent", CSS_VAL_TRANSPARENT},
-#line 107 "cssvalues.gperf"
-      {"infotext", CSS_VAL_INFOTEXT},
-#line 188 "cssvalues.gperf"
-      {"ne-resize", CSS_VAL_NE_RESIZE},
-#line 12 "cssvalues.gperf"
-      {"initial", CSS_VAL_INITIAL},
-#line 189 "cssvalues.gperf"
-      {"nw-resize", CSS_VAL_NW_RESIZE},
-#line 191 "cssvalues.gperf"
-      {"se-resize", CSS_VAL_SE_RESIZE},
-#line 179 "cssvalues.gperf"
-      {"table-caption", CSS_VAL_TABLE_CAPTION},
-#line 192 "cssvalues.gperf"
-      {"sw-resize", CSS_VAL_SW_RESIZE},
-#line 254 "cssvalues.gperf"
+      {"katakana-iroha", CSS_VAL_KATAKANA_IROHA},
+      {"invert", CSS_VAL_INVERT},
+      {"text", CSS_VAL_TEXT},
+      {"overlay", CSS_VAL_OVERLAY},
+      {"outset", CSS_VAL_OUTSET},
+      {"blink", CSS_VAL_BLINK},
+      {"lower-roman", CSS_VAL_LOWER_ROMAN},
+      {"hiragana-iroha", CSS_VAL_HIRAGANA_IROHA},
+      {"xx-small", CSS_VAL_XX_SMALL},
+      {"large", CSS_VAL_LARGE},
+      {"text-top", CSS_VAL_TEXT_TOP},
+      {"sub", CSS_VAL_SUB},
+      {"narrower", CSS_VAL_NARROWER},
+      {"window", CSS_VAL_WINDOW},
+      {"table", CSS_VAL_TABLE},
+      {"sans-serif", CSS_VAL_SANS_SERIF},
       {"single", CSS_VAL_SINGLE},
-#line 76 "cssvalues.gperf"
-      {"green", CSS_VAL_GREEN},
-#line 266 "cssvalues.gperf"
-      {"unfurl", CSS_VAL_UNFURL},
-#line 104 "cssvalues.gperf"
+      {"multiple", CSS_VAL_MULTIPLE},
+      {"infinite", CSS_VAL_INFINITE},
+      {"-khtml-right", CSS_VAL__KHTML_RIGHT},
+      {"menu", CSS_VAL_MENU},
       {"inactivecaption", CSS_VAL_INACTIVECAPTION},
-#line 105 "cssvalues.gperf"
-      {"inactivecaptiontext", CSS_VAL_INACTIVECAPTIONTEXT},
-#line 49 "cssvalues.gperf"
-      {"large", CSS_VAL_LARGE},
-#line 256 "cssvalues.gperf"
-      {"forwards", CSS_VAL_FORWARDS},
-#line 30 "cssvalues.gperf"
-      {"oblique", CSS_VAL_OBLIQUE},
-#line 54 "cssvalues.gperf"
+      {"appworkspace", CSS_VAL_APPWORKSPACE},
+      {"super", CSS_VAL_SUPER},
+      {"orange", CSS_VAL_ORANGE},
+      {"purple", CSS_VAL_PURPLE},
       {"larger", CSS_VAL_LARGER},
-#line 208 "cssvalues.gperf"
-      {"avoid", CSS_VAL_AVOID},
-#line 161 "cssvalues.gperf"
-      {"katakana", CSS_VAL_KATAKANA},
-#line 165 "cssvalues.gperf"
-      {"block", CSS_VAL_BLOCK},
-#line 138 "cssvalues.gperf"
-      {"justify", CSS_VAL_JUSTIFY},
-#line 213 "cssvalues.gperf"
-      {"close-quote", CSS_VAL_CLOSE_QUOTE},
-#line 272 "cssvalues.gperf"
-      {"clip", CSS_VAL_CLIP},
-#line 119 "cssvalues.gperf"
+      {"highlight", CSS_VAL_HIGHLIGHT},
+      {"repeat", CSS_VAL_REPEAT},
+      {"loud", CSS_VAL_LOUD},
+      {"lighter", CSS_VAL_LIGHTER},
+      {"square", CSS_VAL_SQUARE},
+      {"separate", CSS_VAL_SEPARATE},
+      {"captiontext", CSS_VAL_CAPTIONTEXT},
+      {"below", CSS_VAL_BELOW},
+      {"-khtml-left", CSS_VAL__KHTML_LEFT},
+      {"status-bar", CSS_VAL_STATUS_BAR},
       {"grey", CSS_VAL_GREY},
-#line 155 "cssvalues.gperf"
-      {"upper-latin", CSS_VAL_UPPER_LATIN},
-#line 240 "cssvalues.gperf"
-      {"show", CSS_VAL_SHOW},
-#line 185 "cssvalues.gperf"
-      {"pointer", CSS_VAL_POINTER},
-#line 108 "cssvalues.gperf"
-      {"match", CSS_VAL_MATCH},
-#line 250 "cssvalues.gperf"
-      {"horizontal", CSS_VAL_HORIZONTAL},
-#line 171 "cssvalues.gperf"
-      {"inline-table", CSS_VAL_INLINE_TABLE},
-#line 16 "cssvalues.gperf"
+      {"level", CSS_VAL_LEVEL},
+      {"continuous", CSS_VAL_CONTINUOUS},
+      {"alternate", CSS_VAL_ALTERNATE},
+      {"center", CSS_VAL_CENTER},
+      {"higher", CSS_VAL_HIGHER},
       {"groove", CSS_VAL_GROOVE},
-#line 232 "cssvalues.gperf"
-      {"open-quote", CSS_VAL_OPEN_QUOTE},
-#line 117 "cssvalues.gperf"
-      {"windowframe", CSS_VAL_WINDOWFRAME},
-#line 120 "cssvalues.gperf"
+      {"bold", CSS_VAL_BOLD},
+      {"upper-alpha", CSS_VAL_UPPER_ALPHA},
+      {"ahead", CSS_VAL_AHEAD},
+      {"forwards", CSS_VAL_FORWARDS},
+      {"slide", CSS_VAL_SLIDE},
+      {"above", CSS_VAL_ABOVE},
+      {"lowercase", CSS_VAL_LOWERCASE},
+      {"no-repeat", CSS_VAL_NO_REPEAT},
+      {"table-caption", CSS_VAL_TABLE_CAPTION},
+      {"end", CSS_VAL_END},
+      {"decimal", CSS_VAL_DECIMAL},
+      {"red", CSS_VAL_RED},
+      {"upper-latin", CSS_VAL_UPPER_LATIN},
+      {"hide", CSS_VAL_HIDE},
+      {"table-row", CSS_VAL_TABLE_ROW},
+      {"landscape", CSS_VAL_LANDSCAPE},
+      {"repeat-y", CSS_VAL_REPEAT_Y},
+      {"cursive", CSS_VAL_CURSIVE},
+      {"unfurl", CSS_VAL_UNFURL},
+      {"infotext", CSS_VAL_INFOTEXT},
+      {"relative", CSS_VAL_RELATIVE},
+      {"inline-axis", CSS_VAL_INLINE_AXIS},
+      {"visible", CSS_VAL_VISIBLE},
+      {"upper-roman", CSS_VAL_UPPER_ROMAN},
+      {"inside", CSS_VAL_INSIDE},
+      {"s-resize", CSS_VAL_S_RESIZE},
       {"-khtml-text", CSS_VAL__KHTML_TEXT},
-#line 22 "cssvalues.gperf"
-      {"double", CSS_VAL_DOUBLE},
-#line 130 "cssvalues.gperf"
+      {"block-axis", CSS_VAL_BLOCK_AXIS},
+      {"wider", CSS_VAL_WIDER},
+      {"dot-dash", CSS_VAL_DOT_DASH},
+      {"overline", CSS_VAL_OVERLINE},
+      {"-khtml-box", CSS_VAL__KHTML_BOX},
+      {"n-resize", CSS_VAL_N_RESIZE},
+      {"x-large", CSS_VAL_X_LARGE},
+      {"w-resize", CSS_VAL_W_RESIZE},
+      {"blue", CSS_VAL_BLUE},
+      {"sw-resize", CSS_VAL_SW_RESIZE},
+      {"discard", CSS_VAL_DISCARD},
+      {"absolute", CSS_VAL_ABSOLUTE},
+      {"georgian", CSS_VAL_GEORGIAN},
+      {"read-only", CSS_VAL_READ_ONLY},
+      {"table-cell", CSS_VAL_TABLE_CELL},
+      {"close-quote", CSS_VAL_CLOSE_QUOTE},
       {"text-bottom", CSS_VAL_TEXT_BOTTOM},
-#line 141 "cssvalues.gperf"
+      {"nw-resize", CSS_VAL_NW_RESIZE},
+      {"green", CSS_VAL_GREEN},
+      {"repeat-x", CSS_VAL_REPEAT_X},
+      {"element", CSS_VAL_ELEMENT},
+      {"oblique", CSS_VAL_OBLIQUE},
+      {"uppercase", CSS_VAL_UPPERCASE},
+      {"-khtml-activelink", CSS_VAL__KHTML_ACTIVELINK},
+      {"graytext", CSS_VAL_GRAYTEXT},
       {"-khtml-center", CSS_VAL__KHTML_CENTER},
-#line 197 "cssvalues.gperf"
-      {"help", CSS_VAL_HELP},
-#line 222 "cssvalues.gperf"
-      {"landscape", CSS_VAL_LANDSCAPE},
-#line 45 "cssvalues.gperf"
-      {"xx-small", CSS_VAL_XX_SMALL},
-#line 72 "cssvalues.gperf"
-      {"black", CSS_VAL_BLACK},
-#line 183 "cssvalues.gperf"
-      {"crosshair", CSS_VAL_CROSSHAIR},
-#line 150 "cssvalues.gperf"
-      {"upper-roman", CSS_VAL_UPPER_ROMAN},
-#line 124 "cssvalues.gperf"
-      {"no-repeat", CSS_VAL_NO_REPEAT},
-#line 33 "cssvalues.gperf"
-      {"bold", CSS_VAL_BOLD},
-#line 34 "cssvalues.gperf"
+      {"marquee", CSS_VAL_MARQUEE},
+      {"table-column", CSS_VAL_TABLE_COLUMN},
+      {"open-quote", CSS_VAL_OPEN_QUOTE},
+      {"inline-block", CSS_VAL_INLINE_BLOCK},
+      {"no-close-quote", CSS_VAL_NO_CLOSE_QUOTE},
+      {"outside", CSS_VAL_OUTSIDE},
+      {"baseline", CSS_VAL_BASELINE},
+      {"skip-white-space", CSS_VAL_SKIP_WHITE_SPACE},
+      {"ridge", CSS_VAL_RIDGE},
+      {"backwards", CSS_VAL_BACKWARDS},
+      {"medium", CSS_VAL_MEDIUM},
+      {"line-through", CSS_VAL_LINE_THROUGH},
+      {"no-open-quote", CSS_VAL_NO_OPEN_QUOTE},
       {"bolder", CSS_VAL_BOLDER},
-#line 139 "cssvalues.gperf"
-      {"-khtml-left", CSS_VAL__KHTML_LEFT},
-#line 91 "cssvalues.gperf"
-      {"activeborder", CSS_VAL_ACTIVEBORDER},
-#line 19 "cssvalues.gperf"
+      {"buttonface", CSS_VAL_BUTTONFACE},
+      {"hebrew", CSS_VAL_HEBREW},
       {"dotted", CSS_VAL_DOTTED},
-#line 212 "cssvalues.gperf"
-      {"both", CSS_VAL_BOTH},
-#line 81 "cssvalues.gperf"
-      {"orange", CSS_VAL_ORANGE},
-#line 274 "cssvalues.gperf"
-      {"discard", CSS_VAL_DISCARD},
-#line 134 "cssvalues.gperf"
-      {"-khtml-auto", CSS_VAL__KHTML_AUTO},
-#line 93 "cssvalues.gperf"
-      {"appworkspace", CSS_VAL_APPWORKSPACE},
-#line 169 "cssvalues.gperf"
-      {"inline-block", CSS_VAL_INLINE_BLOCK},
-#line 75 "cssvalues.gperf"
-      {"gray", CSS_VAL_GRAY},
-#line 100 "cssvalues.gperf"
-      {"graytext", CSS_VAL_GRAYTEXT},
-#line 59 "cssvalues.gperf"
-      {"condensed", CSS_VAL_CONDENSED},
-#line 14 "cssvalues.gperf"
+      {"-khtml-body", CSS_VAL__KHTML_BODY},
+      {"default", CSS_VAL_DEFAULT},
+      {"inline-table", CSS_VAL_INLINE_TABLE},
+      {"e-resize", CSS_VAL_E_RESIZE},
+      {"windowframe", CSS_VAL_WINDOWFRAME},
+      {"se-resize", CSS_VAL_SE_RESIZE},
+      {"fixed", CSS_VAL_FIXED},
+      {"dashed", CSS_VAL_DASHED},
+      {"reverse", CSS_VAL_REVERSE},
+      {"middle", CSS_VAL_MIDDLE},
+      {"xx-large", CSS_VAL_XX_LARGE},
+      {"buttonshadow", CSS_VAL_BUTTONSHADOW},
+      {"ne-resize", CSS_VAL_NE_RESIZE},
+      {"windowtext", CSS_VAL_WINDOWTEXT},
+      {"menutext", CSS_VAL_MENUTEXT},
+      {"inactivecaptiontext", CSS_VAL_INACTIVECAPTIONTEXT},
       {"hidden", CSS_VAL_HIDDEN},
-#line 50 "cssvalues.gperf"
-      {"x-large", CSS_VAL_X_LARGE},
-#line 264 "cssvalues.gperf"
-      {"slide", CSS_VAL_SLIDE},
-#line 268 "cssvalues.gperf"
+      {"buttontext", CSS_VAL_BUTTONTEXT},
       {"read-write", CSS_VAL_READ_WRITE},
-#line 31 "cssvalues.gperf"
-      {"small-caps", CSS_VAL_SMALL_CAPS},
-#line 28 "cssvalues.gperf"
-      {"status-bar", CSS_VAL_STATUS_BAR},
-#line 89 "cssvalues.gperf"
-      {"-khtml-link", CSS_VAL__KHTML_LINK},
-#line 27 "cssvalues.gperf"
-      {"small-caption", CSS_VAL_SMALL_CAPTION},
-#line 253 "cssvalues.gperf"
-      {"block-axis", CSS_VAL_BLOCK_AXIS},
-#line 210 "cssvalues.gperf"
-      {"bidi-override", CSS_VAL_BIDI_OVERRIDE},
-#line 211 "cssvalues.gperf"
-      {"blink", CSS_VAL_BLINK},
-#line 147 "cssvalues.gperf"
-      {"decimal", CSS_VAL_DECIMAL},
-#line 151 "cssvalues.gperf"
+      {"highlighttext", CSS_VAL_HIGHLIGHTTEXT},
+      {"dot-dot-dash", CSS_VAL_DOT_DOT_DASH},
+      {"after-white-space", CSS_VAL_AFTER_WHITE_SPACE},
+      {"double", CSS_VAL_DOUBLE},
+      {"cjk-ideographic", CSS_VAL_CJK_IDEOGRAPHIC},
+      {"buttonhighlight", CSS_VAL_BUTTONHIGHLIGHT},
+      {"embed", CSS_VAL_EMBED},
+      {"-khtml-inline-box", CSS_VAL__KHTML_INLINE_BOX},
+      {"table-row-group", CSS_VAL_TABLE_ROW_GROUP},
+      {"break-word", CSS_VAL_BREAK_WORD},
+      {"underline", CSS_VAL_UNDERLINE},
+      {"message-box", CSS_VAL_MESSAGE_BOX},
+      {"condensed", CSS_VAL_CONDENSED},
       {"lower-greek", CSS_VAL_LOWER_GREEK},
-#line 86 "cssvalues.gperf"
-      {"white", CSS_VAL_WHITE},
-#line 243 "cssvalues.gperf"
-      {"thin", CSS_VAL_THIN},
-#line 218 "cssvalues.gperf"
-      {"hand", CSS_VAL_HAND},
-#line 136 "cssvalues.gperf"
-      {"right", CSS_VAL_RIGHT},
-#line 184 "cssvalues.gperf"
-      {"default", CSS_VAL_DEFAULT},
-#line 62 "cssvalues.gperf"
-      {"expanded", CSS_VAL_EXPANDED},
-#line 245 "cssvalues.gperf"
-      {"-khtml-nowrap", CSS_VAL__KHTML_NOWRAP},
-#line 35 "cssvalues.gperf"
-      {"lighter", CSS_VAL_LIGHTER},
-#line 90 "cssvalues.gperf"
-      {"-khtml-activelink", CSS_VAL__KHTML_ACTIVELINK},
-#line 267 "cssvalues.gperf"
-      {"read-only", CSS_VAL_READ_ONLY},
-#line 103 "cssvalues.gperf"
-      {"inactiveborder", CSS_VAL_INACTIVEBORDER},
-#line 112 "cssvalues.gperf"
       {"threedface", CSS_VAL_THREEDFACE},
-#line 180 "cssvalues.gperf"
-      {"-khtml-box", CSS_VAL__KHTML_BOX},
-#line 74 "cssvalues.gperf"
-      {"fuchsia", CSS_VAL_FUCHSIA},
-#line 258 "cssvalues.gperf"
-      {"ahead", CSS_VAL_AHEAD},
-#line 152 "cssvalues.gperf"
-      {"lower-alpha", CSS_VAL_LOWER_ALPHA},
-#line 229 "cssvalues.gperf"
-      {"no-close-quote", CSS_VAL_NO_CLOSE_QUOTE},
-#line 60 "cssvalues.gperf"
-      {"semi-condensed", CSS_VAL_SEMI_CONDENSED},
-#line 51 "cssvalues.gperf"
-      {"xx-large", CSS_VAL_XX_LARGE},
-#line 242 "cssvalues.gperf"
-      {"thick", CSS_VAL_THICK},
-#line 58 "cssvalues.gperf"
-      {"extra-condensed", CSS_VAL_EXTRA_CONDENSED},
-#line 57 "cssvalues.gperf"
-      {"ultra-condensed", CSS_VAL_ULTRA_CONDENSED},
-#line 230 "cssvalues.gperf"
-      {"no-open-quote", CSS_VAL_NO_OPEN_QUOTE},
-#line 160 "cssvalues.gperf"
-      {"hiragana", CSS_VAL_HIRAGANA},
-#line 26 "cssvalues.gperf"
-      {"message-box", CSS_VAL_MESSAGE_BOX},
-#line 280 "cssvalues.gperf"
-      {"break-word", CSS_VAL_BREAK_WORD},
-#line 61 "cssvalues.gperf"
-      {"semi-expanded", CSS_VAL_SEMI_EXPANDED},
-#line 158 "cssvalues.gperf"
-      {"georgian", CSS_VAL_GEORGIAN},
-#line 172 "cssvalues.gperf"
-      {"table-row-group", CSS_VAL_TABLE_ROW_GROUP},
-#line 181 "cssvalues.gperf"
-      {"-khtml-inline-box", CSS_VAL__KHTML_INLINE_BOX},
-#line 63 "cssvalues.gperf"
-      {"extra-expanded", CSS_VAL_EXTRA_EXPANDED},
-#line 20 "cssvalues.gperf"
-      {"dashed", CSS_VAL_DASHED},
-#line 282 "cssvalues.gperf"
-      {"after-white-space", CSS_VAL_AFTER_WHITE_SPACE},
-#line 64 "cssvalues.gperf"
-      {"ultra-expanded", CSS_VAL_ULTRA_EXPANDED},
-#line 154 "cssvalues.gperf"
-      {"upper-alpha", CSS_VAL_UPPER_ALPHA},
-#line 257 "cssvalues.gperf"
-      {"backwards", CSS_VAL_BACKWARDS},
-#line 97 "cssvalues.gperf"
-      {"buttonshadow", CSS_VAL_BUTTONSHADOW},
-#line 174 "cssvalues.gperf"
-      {"table-footer-group", CSS_VAL_TABLE_FOOTER_GROUP},
-#line 163 "cssvalues.gperf"
-      {"katakana-iroha", CSS_VAL_KATAKANA_IROHA},
-#line 176 "cssvalues.gperf"
-      {"table-column-group", CSS_VAL_TABLE_COLUMN_GROUP},
-#line 220 "cssvalues.gperf"
-      {"higher", CSS_VAL_HIGHER},
-#line 70 "cssvalues.gperf"
-      {"-khtml-body", CSS_VAL__KHTML_BODY},
-#line 52 "cssvalues.gperf"
-      {"-khtml-xxx-large", CSS_VAL__KHTML_XXX_LARGE},
-#line 275 "cssvalues.gperf"
-      {"dot-dash", CSS_VAL_DOT_DASH},
-#line 140 "cssvalues.gperf"
-      {"-khtml-right", CSS_VAL__KHTML_RIGHT},
-#line 224 "cssvalues.gperf"
-      {"line-through", CSS_VAL_LINE_THROUGH},
-#line 94 "cssvalues.gperf"
       {"background", CSS_VAL_BACKGROUND},
-#line 115 "cssvalues.gperf"
+      {"activeborder", CSS_VAL_ACTIVEBORDER},
+      {"table-column-group", CSS_VAL_TABLE_COLUMN_GROUP},
       {"threedshadow", CSS_VAL_THREEDSHADOW},
-#line 279 "cssvalues.gperf"
-      {"skip-white-space", CSS_VAL_SKIP_WHITE_SPACE},
-#line 162 "cssvalues.gperf"
-      {"hiragana-iroha", CSS_VAL_HIRAGANA_IROHA},
-#line 106 "cssvalues.gperf"
+      {"inactiveborder", CSS_VAL_INACTIVEBORDER},
+      {"-khtml-xxx-large", CSS_VAL__KHTML_XXX_LARGE},
+      {"expanded", CSS_VAL_EXPANDED},
+      {"table-footer-group", CSS_VAL_TABLE_FOOTER_GROUP},
       {"infobackground", CSS_VAL_INFOBACKGROUND},
-#line 173 "cssvalues.gperf"
-      {"table-header-group", CSS_VAL_TABLE_HEADER_GROUP},
-#line 133 "cssvalues.gperf"
-      {"-khtml-baseline-middle", CSS_VAL__KHTML_BASELINE_MIDDLE},
-#line 276 "cssvalues.gperf"
-      {"dot-dot-dash", CSS_VAL_DOT_DOT_DASH},
-#line 159 "cssvalues.gperf"
-      {"cjk-ideographic", CSS_VAL_CJK_IDEOGRAPHIC},
-#line 148 "cssvalues.gperf"
-      {"decimal-leading-zero", CSS_VAL_DECIMAL_LEADING_ZERO},
-#line 101 "cssvalues.gperf"
-      {"highlight", CSS_VAL_HIGHLIGHT},
-#line 102 "cssvalues.gperf"
-      {"highlighttext", CSS_VAL_HIGHLIGHTTEXT},
-#line 111 "cssvalues.gperf"
-      {"threeddarkshadow", CSS_VAL_THREEDDARKSHADOW},
-#line 96 "cssvalues.gperf"
-      {"buttonhighlight", CSS_VAL_BUTTONHIGHLIGHT},
-#line 114 "cssvalues.gperf"
+      {"threedhighlight", CSS_VAL_THREEDHIGHLIGHT},
+      {"ultra-condensed", CSS_VAL_ULTRA_CONDENSED},
+      {"semi-condensed", CSS_VAL_SEMI_CONDENSED},
       {"threedlightshadow", CSS_VAL_THREEDLIGHTSHADOW},
-#line 113 "cssvalues.gperf"
-      {"threedhighlight", CSS_VAL_THREEDHIGHLIGHT}
+      {"bidi-override", CSS_VAL_BIDI_OVERRIDE},
+      {"ultra-expanded", CSS_VAL_ULTRA_EXPANDED},
+      {"semi-expanded", CSS_VAL_SEMI_EXPANDED},
+      {"extra-condensed", CSS_VAL_EXTRA_CONDENSED},
+      {"threeddarkshadow", CSS_VAL_THREEDDARKSHADOW},
+      {"decimal-leading-zero", CSS_VAL_DECIMAL_LEADING_ZERO},
+      {"table-header-group", CSS_VAL_TABLE_HEADER_GROUP},
+      {"extra-expanded", CSS_VAL_EXTRA_EXPANDED},
+      {"-khtml-baseline-middle", CSS_VAL__KHTML_BASELINE_MIDDLE}
     };
 
   static const short lookup[] =
     {
-        0,  -1,  -1,  -1,  -1,   1,  -1,  -1,  -1,  -1,
-        2,  -1,  -1,  -1,  -1,   3,  -1,  -1,   4,  -1,
-        5,  -1,  -1,  -1,  -1,   6,  -1,  -1,   7,  -1,
-        8,  -1,  -1,  -1,  -1,   9,  -1,  -1,  10,  -1,
-       11,  -1,  -1,  -1,  -1,  12,  -1,  -1,  13,  -1,
-       14,  -1,  -1,  -1,  -1,  15,  -1,  -1,  -1,  -1,
-       16,  -1,  -1,  17,  -1,  18,  -1,  -1,  19,  -1,
-       20,  -1,  -1,  -1,  -1,  21,  22,  -1,  -1,  -1,
-       23,  -1,  -1,  24,  -1,  25,  -1,  -1,  -1,  -1,
-       26,  -1,  -1,  -1,  -1,  27,  -1,  -1,  -1,  -1,
-       28,  -1,  -1,  -1,  -1,  29,  -1,  -1,  -1,  -1,
-       30,  -1,  -1,  31,  -1,  32,  -1,  -1,  33,  -1,
-       34,  -1,  -1,  -1,  -1,  35,  -1,  -1,  36,  -1,
-       -1,  -1,  -1,  37,  -1,  -1,  -1,  -1,  38,  -1,
-       -1,  -1,  -1,  39,  -1,  40,  41,  -1,  42,  -1,
-       -1,  43,  -1,  -1,  -1,  44,  -1,  -1,  45,  -1,
-       46,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  47,  -1,
-       48,  -1,  -1,  49,  -1,  50,  -1,  -1,  -1,  -1,
-       51,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  52,  -1,
-       -1,  -1,  -1,  53,  -1,  54,  -1,  -1,  55,  -1,
-       56,  -1,  -1,  57,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  58,  -1,
-       59,  -1,  -1,  60,  -1,  -1,  61,  -1,  -1,  -1,
-       -1,  62,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       63,  -1,  -1,  -1,  -1,  -1,  64,  -1,  -1,  -1,
-       65,  -1,  -1,  -1,  -1,  66,  -1,  -1,  67,  -1,
-       68,  -1,  -1,  69,  70,  71,  -1,  -1,  72,  -1,
-       73,  74,  -1,  -1,  -1,  75,  -1,  -1,  -1,  -1,
-       76,  77,  -1,  -1,  -1,  78,  -1,  -1,  -1,  -1,
-       79,  -1,  -1,  80,  -1,  81,  -1,  -1,  82,  -1,
-       83,  -1,  -1,  84,  -1,  -1,  -1,  -1,  -1,  -1,
-       85,  86,  -1,  87,  -1,  88,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  89,  -1,  -1,  -1,  -1,
-       90,  -1,  -1,  91,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  92,  -1,  -1,  -1,  -1,  93,  -1,
-       94,  -1,  -1,  95,  -1,  96,  -1,  -1,  97,  -1,
-       98,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       99,  -1,  -1,  -1,  -1, 100,  -1,  -1,  -1,  -1,
-      101,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 102,  -1,
-      103,  -1,  -1, 104,  -1, 105,  -1,  -1, 106,  -1,
-       -1,  -1,  -1, 107,  -1,  -1,  -1,  -1, 108,  -1,
-      109, 110,  -1, 111,  -1, 112,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1, 113,  -1, 114,  -1,  -1,  -1,  -1,
-      115,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-      116, 117,  -1, 118, 119, 120,  -1,  -1,  -1,  -1,
-      121,  -1,  -1,  -1,  -1, 122,  -1,  -1, 123,  -1,
-      124,  -1,  -1,  -1,  -1, 125,  -1,  -1, 126,  -1,
-      127,  -1,  -1, 128,  -1, 129, 130,  -1,  -1,  -1,
-       -1,  -1,  -1, 131,  -1, 132,  -1,  -1,  -1,  -1,
-       -1, 133,  -1, 134,  -1, 135,  -1,  -1, 136,  -1,
-      137,  -1,  -1,  -1,  -1, 138,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1, 139,  -1,  -1, 140,  -1,
-       -1,  -1,  -1,  -1,  -1, 141,  -1,  -1,  -1,  -1,
-      142,  -1,  -1, 143,  -1, 144,  -1,  -1,  -1,  -1,
-      145,  -1,  -1, 146,  -1, 147,  -1,  -1, 148,  -1,
-      149,  -1,  -1, 150,  -1,  -1, 151,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1, 152, 153,  -1, 154,  -1,
-      155,  -1,  -1, 156,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1, 157,  -1,  -1,  -1,  -1,
-      158,  -1,  -1,  -1,  -1,  -1, 159,  -1, 160,  -1,
-       -1,  -1,  -1,  -1,  -1, 161, 162,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 163,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 164,  -1,
-      165,  -1,  -1,  -1,  -1, 166,  -1,  -1,  -1,  -1,
-      167,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-      168,  -1,  -1, 169,  -1,  -1, 170,  -1,  -1, 171,
-       -1,  -1,  -1, 172,  -1,  -1,  -1,  -1, 173,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 174,  -1,
-      175,  -1,  -1,  -1,  -1, 176,  -1,  -1,  -1,  -1,
-      177, 178,  -1,  -1,  -1, 179,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-      180,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 181,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-      182,  -1,  -1,  -1,  -1, 183,  -1,  -1,  -1,  -1,
-      184,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 185,  -1,
-       -1,  -1,  -1, 186,  -1,  -1,  -1,  -1,  -1,  -1,
-      187,  -1,  -1,  -1,  -1, 188,  -1,  -1,  -1,  -1,
-      189,  -1,  -1,  -1,  -1, 190,  -1,  -1,  -1,  -1,
-      191,  -1,  -1,  -1,  -1,  -1, 192,  -1,  -1,  -1,
-      193,  -1,  -1, 194,  -1,  -1, 195,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1, 196,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1, 197,  -1,  -1, 198,  -1,
-      199,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 200,  -1,
-       -1,  -1,  -1,  -1,  -1, 201,  -1,  -1,  -1,  -1,
-      202,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1, 203,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1, 204,  -1,  -1, 205,  -1,
-       -1,  -1,  -1, 206,  -1, 207,  -1,  -1,  -1,  -1,
-      208,  -1,  -1, 209,  -1,  -1,  -1,  -1, 210,  -1,
-      211,  -1,  -1,  -1,  -1, 212,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-      213,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-      214,  -1,  -1,  -1,  -1,  -1, 215,  -1, 216,  -1,
-      217,  -1,  -1, 218,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1, 219,  -1,  -1,  -1,  -1, 220,  -1,
-       -1,  -1,  -1, 221,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1, 222,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 223,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 224,  -1,
-       -1,  -1,  -1, 225,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 226,  -1,
-       -1,  -1,  -1,  -1,  -1, 227,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1, 228,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1, 229,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1, 230,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1, 231,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1, 232,  -1,  -1,  -1,  -1,  -1,  -1,
-      233,  -1,  -1, 234,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1, 235,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 236,  -1,
-      237,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1, 238,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1, 239,  -1,  -1, 240,  -1,  -1,  -1,
-      241,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1, 242,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 243,  -1,
-       -1,  -1,  -1, 244,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 245,  -1,
-       -1,  -1,  -1, 246,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 247,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-      248,  -1,  -1,  -1,  -1, 249,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-      250,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 251,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 252,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-      253,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1, 254,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-      255,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1, 256,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1, 257,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 258,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1, 259,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1, 260,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-      261,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-      262,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1, 263,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1, 264,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1, 265,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1, 266,  -1,  -1, 267,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 268,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-      269,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1, 270,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-      271
+         0,   -1,   -1,   -1,   -1,    1,   -1,   -1,
+        -1,   -1,    2,   -1,   -1,   -1,   -1,    3,
+        -1,   -1,    4,   -1,    5,   -1,   -1,   -1,
+        -1,    6,   -1,   -1,   -1,   -1,    7,    8,
+        -1,   -1,   -1,    9,   -1,   -1,   -1,   -1,
+        10,   -1,   -1,   -1,   -1,   11,   -1,   -1,
+        12,   -1,   -1,   13,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1, -340,   16, -258,   -2,   -1,   -1,   -1,
+        17,   18,   -1,   19,   -1,   -1,   -1,   -1,
+        20,   -1,   -1,   21,   -1,   -1,   22,   -1,
+        -1,   -1,   -1,   -1,   -1,   23,   -1,   -1,
+        -1,   -1,   24,   -1,   25,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   26,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   27,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   28,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   29,
+        -1,   -1,   30,   -1,   -1,   -1,   -1,   31,
+        -1,   -1,   -1,   -1,   -1,   32,   -1,   -1,
+        33,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   34,   -1,   -1,   35,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   36,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   37,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   38,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   39,   -1,   -1,   -1,   -1,   -1,   -1,
+        40,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        41,   -1,   -1,   -1,   -1,   42,   -1,   -1,
+        -1,   -1,   -1,   -1,   43,   -1,   -1,   44,
+        -1,   -1,   -1,   -1,   -1,   -1,   45,   -1,
+        -1,   -1,   -1,   -1,   -1,   46,   -1,   -1,
+        -1,   -1,   -1,   -1,   47,   -1,   48,   -1,
+        -1,   -1,   -1,   49,   -1,   -1,   50,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   51,   52,   -1,   -1,   53,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   54,
+        -1,   -1,   55,   -1,   -1,   -1,   56,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   57,   -1,   -1,   -1,
+        58,   -1,   -1,   59,   -1,   60,   61,   -1,
+        -1,   -1,   62,   -1,   63,   -1,   -1,   64,
+        65,   -1,   -1,   66,   67,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   68,   -1,   69,   -1,   70,   -1,   71,
+        -1,   -1,   72,   -1,   -1,   -1,   -1,   -1,
+        73,   -1,   74,   -1,   -1,   75,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   76,
+        -1,   77,   -1,   78,   79,   -1,   80,   -1,
+        81,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        82,   83,   84,   -1,   85,   -1,   -1,   -1,
+        -1,   86,   87,   -1,   -1,   -1,   -1,   88,
+        -1,   -1,   -1,   -1,   89,   -1,   -1,   -1,
+        -1,   -1,   -1,   90,   -1,   91,   -1,   -1,
+        -1,   -1,   -1,   92,   93,   94,   -1,   -1,
+        -1,   -1,   -1,   -1,   95,   -1,   -1,   96,
+        -1,   -1,   -1,   -1,   97,   -1,   -1,   -1,
+        -1,   98,   -1,   -1,   -1,   -1,   99,   -1,
+        -1,   -1,  100,  101,   -1,   -1,   -1,  102,
+       103,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,  104,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,  105,   -1,  106,   -1,
+        -1,  107,   -1,   -1,  108,   -1,   -1,  109,
+        -1,   -1,  110,   -1,   -1,  111,   -1,   -1,
+        -1,   -1,   -1,  112,   -1,  113,   -1,   -1,
+        -1,   -1,   -1,   -1,  114,   -1,   -1,   -1,
+        -1,  115,   -1,   -1,  116,   -1,   -1,   -1,
+        -1,  117,   -1,   -1,   -1,   -1,   -1,   -1,
+       118,   -1,   -1,   -1,  119,   -1,   -1,   -1,
+       120,   -1,  121,  122,  123,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,  124,  125,
+        -1,  126,  127,   -1,   -1,   -1,  128,   -1,
+        -1,   -1,   -1,   -1,  129,   -1,  130,   -1,
+       131,   -1,  132,   -1,   -1,  133,   -1,   -1,
+       134,  135,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,  136,   -1,   -1,  137,   -1,  138,
+        -1,   -1,   -1,   -1,   -1,   -1,  139,   -1,
+        -1,  140,   -1,   -1,   -1,   -1,  141,   -1,
+       142,   -1,   -1,  143,  144,   -1,   -1,   -1,
+       145,   -1,   -1,   -1,   -1,  146,   -1,   -1,
+       147,   -1,   -1,   -1,   -1,   -1,  148,  149,
+        -1,  150,  151,   -1,  152,   -1,   -1,   -1,
+        -1,  153,  154,  155,   -1,   -1,   -1,  156,
+        -1,   -1,   -1,   -1,   -1,  157,   -1,   -1,
+        -1,   -1,   -1,  158,   -1,   -1,   -1,   -1,
+        -1,  159,  160,   -1,   -1,  161,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,  162,   -1,
+        -1,  163,   -1,  164,   -1,   -1,  165,   -1,
+        -1,   -1,   -1,   -1,   -1,  166,   -1,   -1,
+        -1,   -1,  167,   -1,   -1,  168,   -1,   -1,
+        -1,   -1,   -1,  169,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,  170,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,  171,  172,   -1,
+        -1,  173,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,  174,   -1,   -1,   -1,   -1,   -1,   -1,
+       175,  176,   -1,   -1,   -1,   -1,   -1,  177,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,  178,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,  179,   -1,  180,   -1,   -1,  181,
+        -1,   -1,   -1,   -1,   -1,   -1,  182,   -1,
+        -1,  183,   -1,   -1,   -1,   -1,  184,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,  185,   -1,   -1,   -1,
+        -1,  186,  187,   -1,  188,   -1,   -1,   -1,
+       189,   -1,   -1,  190,   -1,   -1,   -1,   -1,
+       191,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,  192,   -1,   -1,   -1,   -1,
+       193,   -1,  194,  195,   -1,   -1,   -1,   -1,
+       196,   -1,   -1,   -1,  197,   -1,   -1,  198,
+        -1,   -1,   -1,   -1,  199,   -1,   -1,   -1,
+        -1,   -1,  200,  201,   -1,   -1,  202,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,  203,
+        -1,  204,   -1,   -1,  205,   -1,   -1,  206,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+       207,   -1,   -1,   -1,   -1,   -1,  208,   -1,
+        -1,   -1,   -1,   -1,  209,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,  210,   -1,   -1,   -1,  211,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,  212,  213,  214,   -1,   -1,   -1,
+        -1,  215,  216,   -1,  217,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,  218,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,  219,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+       220,  221,  222,   -1,   -1,   -1,   -1,   -1,
+       223,  224,   -1,   -1,  225,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+       226,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,  227,   -1,   -1,   -1,   -1,  228,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,  229,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,  230,  231,   -1,
+       232,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,  233,   -1,   -1,   -1,  234,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,  235,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,  236,   -1,   -1,   -1,
+       237,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,  238,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,  239,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,  240,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,  241,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,  242,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,  243,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,  244,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,  245,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,  246,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+       247,   -1,  248,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,  249,
+        -1,   -1,  250,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,  251,  252,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,  253,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+       254,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,  255,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,  256,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,  257,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,  258,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,  259,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,  260,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,  261,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,  262,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+       263,   -1,   -1,   -1,   -1,  264,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,  265,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,  266,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,  267,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,  268,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,  269,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,  270,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,  271
     };
 
   if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
@@ -1056,12 +721,25 @@ findValue (register const char *str, register unsigned int len)
               if (*str == *s && !strcmp (str + 1, s + 1))
                 return &wordlist_value[index];
             }
+          else if (index < -TOTAL_KEYWORDS)
+            {
+              register int offset = - 1 - TOTAL_KEYWORDS - index;
+              register const struct css_value *wordptr = &wordlist_value[TOTAL_KEYWORDS + lookup[offset]];
+              register const struct css_value *wordendptr = wordptr + -lookup[offset + 1];
+
+              while (wordptr < wordendptr)
+                {
+                  register const char *s = wordptr->name;
+
+                  if (*str == *s && !strcmp (str + 1, s + 1))
+                    return wordptr;
+                  wordptr++;
+                }
+            }
         }
     }
   return 0;
 }
-#line 283 "cssvalues.gperf"
-
 static const char * const valueList[] = {
 "",
 "inherit", 
index 0eeba82bd151e0fd70ae5ed2f92a9717b794d1dd..95c22ac683b64d4b20c4fefbfaea278345e340cf 100644 (file)
@@ -115,15 +115,18 @@ void HTMLElementImpl::removeMappedAttributeDecl(MappedAttributeEntry entryType,
 
 void HTMLElementImpl::invalidateStyleAttribute()
 {
-    setStyleAttributeValid(false);
+    m_isStyleAttributeValid = false;
 }
 
-void HTMLElementImpl::updateStyleAttribute()
+void HTMLElementImpl::updateStyleAttributeIfNeeded() const
 {
-    // we need to say teh attribute is valid before setting it to avoid the
-    // possibility of an infinite loop
-    setStyleAttributeValid(true);
-    setAttribute(ATTR_STYLE, getInlineStyleDecl()->cssText());
+    if (!m_isStyleAttributeValid) {
+        m_isStyleAttributeValid = true;
+        m_synchronizingStyleAttribute = true;
+        if (m_inlineStyleDecl)
+            const_cast<HTMLElementImpl*>(this)->setAttribute(ATTR_STYLE, m_inlineStyleDecl->cssText());
+        m_synchronizingStyleAttribute = false;
+    }
 }
 
 HTMLAttributeImpl::~HTMLAttributeImpl()
@@ -222,15 +225,13 @@ HTMLElementImpl::HTMLElementImpl(DocumentPtr *doc)
     : ElementImpl(doc)
 {
     m_inlineStyleDecl = 0;
+    m_isStyleAttributeValid = true;
+    m_synchronizingStyleAttribute = false;
 }
 
 HTMLElementImpl::~HTMLElementImpl()
 {
-    if (m_inlineStyleDecl) {
-        m_inlineStyleDecl->setNode(0);
-        m_inlineStyleDecl->setParent(0);
-        m_inlineStyleDecl->deref();
-    }
+    destroyInlineStyleDecl();
 }
 
 AttributeImpl* HTMLElementImpl::createAttribute(NodeImpl::Id id, DOMStringImpl* value)
@@ -289,6 +290,16 @@ void HTMLElementImpl::createInlineStyleDecl()
     m_inlineStyleDecl->setStrictParsing(!getDocument()->inCompatMode());
 }
 
+void HTMLElementImpl::destroyInlineStyleDecl()
+{
+    if (m_inlineStyleDecl) {
+        m_inlineStyleDecl->setNode(0);
+        m_inlineStyleDecl->setParent(0);
+        m_inlineStyleDecl->deref();
+        m_inlineStyleDecl = 0;
+    }
+}
+
 NodeImpl *HTMLElementImpl::cloneNode(bool deep)
 {
     HTMLElementImpl *n = static_cast<HTMLElementImpl *>(ElementImpl::cloneNode(deep));
@@ -354,6 +365,9 @@ bool HTMLElementImpl::mapToEntry(NodeImpl::Id attr, MappedAttributeEntry& result
         case ATTR_DIR:
             result = eUniversal;
             return false;
+        case ATTR_STYLE:
+            result = eNone;
+            return !m_synchronizingStyleAttribute;
         default:
             break;
     }
@@ -397,8 +411,12 @@ void HTMLElementImpl::parseHTMLAttribute(HTMLAttributeImpl *attr)
         setContentEditable(attr);
         break;
     case ATTR_STYLE:
-        setHasStyle();
-        getInlineStyleDecl()->parseDeclaration(attr->value());
+        setHasStyle(!attr->isNull());
+        if (attr->isNull())
+            destroyInlineStyleDecl();
+        else
+            getInlineStyleDecl()->parseDeclaration(attr->value());
+        m_isStyleAttributeValid = true;
         setChanged();
         break;
     case ATTR_TABINDEX:
index 214fa16f961f2bf496989d6b0108da83eb206569..8adbbbcf5ddb7a08fb847a465ccce6387ff22f93 100644 (file)
@@ -171,7 +171,8 @@ public:
     virtual CSSMutableStyleDeclarationImpl* additionalAttributeStyleDecl();
     CSSMutableStyleDeclarationImpl* getInlineStyleDecl();
     void createInlineStyleDecl();
-     
+    void destroyInlineStyleDecl();
+
     virtual AttributeImpl* createAttribute(NodeImpl::Id id, DOMStringImpl* value);
 
 #if APPLE_CHANGES
@@ -186,13 +187,16 @@ public:
     static QPtrDict<QPtrDict<QPtrDict<CSSMappedAttributeDeclarationImpl> > >* m_mappedAttributeDecls;
 
     void invalidateStyleAttribute();
-    void updateStyleAttribute();
+    virtual void updateStyleAttributeIfNeeded() const;
+
 protected:
 
     // for IMG, OBJECT and APPLET
     void addHTMLAlignment(HTMLAttributeImpl* htmlAttr);
 
     CSSMutableStyleDeclarationImpl* m_inlineStyleDecl;
+    mutable bool m_isStyleAttributeValid : 1;
+    mutable bool m_synchronizingStyleAttribute : 1;
 };
 
 class HTMLGenericElementImpl : public HTMLElementImpl
index 41484934bb3d87014c5e4026edf57e6002c8ce50..33b988a3694eba2d10b68f2cad5c837b7cf0a64a 100644 (file)
@@ -194,7 +194,6 @@ ElementImpl::ElementImpl(DocumentPtr *doc)
 {
     namedAttrMap = 0;
     m_prefix = 0;
-    m_isStyleAttributeValid = true;
 }
 
 ElementImpl::~ElementImpl()
@@ -224,13 +223,6 @@ void ElementImpl::setAttribute(NodeImpl::Id id, const DOMString &value)
     setAttribute(id,value.implementation(),exceptioncode);
 }
 
-void ElementImpl::updateStyleAttributeIfNeeded() const
-{
-    if (!m_isStyleAttributeValid && isHTMLElement()) {
-        static_cast<HTMLElementImpl *>(const_cast<ElementImpl *>(this))->updateStyleAttribute();
-    }
-}
-
 NamedAttrMapImpl* ElementImpl::attributes(bool readonly) const
 {
     updateStyleAttributeIfNeeded();
index fb2ea7b7810a2a8389b731c982636277ad182721..277e1d022fdec4ac1cd069014a89836c8fbd3155 100644 (file)
@@ -229,18 +229,14 @@ protected:
     virtual void createAttributeMap() const;
     DOMString openTagStartToString() const;
 
-    bool isStyleAttributeValid() const { return m_isStyleAttributeValid; }
-    void setStyleAttributeValid(bool valid) { m_isStyleAttributeValid = valid; }
-
 private:
     void updateId(const AtomicString& oldId, const AtomicString& newId);
 
-    void updateStyleAttributeIfNeeded() const;
+    virtual void updateStyleAttributeIfNeeded() const {};
 
 protected: // member variables
     mutable NamedAttrMapImpl *namedAttrMap;
     DOMStringImpl *m_prefix;
-    bool m_isStyleAttributeValid;
 };