PAIR *createPair(RDS *rds, CODE left, CODE right, uint f_pos)
{
  PAIR *pair = (PAIR*)malloc(sizeof(PAIR));
  uint h;
  PAIR *q;
  uint i;

  pair->left  = left;
  pair->right = right;
  pair->freq = 1;
  pair->f_pos = pair->b_pos = f_pos;
  pair->p_prev = pair->p_next = NULL;

  rds->num_pairs++;

  if (rds->num_pairs >= primes[rds->h_num]) {
    reconstructHash(rds);
  }

  h = hash_val(rds->h_num, left, right);
  q = rds->h_first[h];
  rds->h_first[h] = pair;
  pair->h_next = q;
  
  insertPair_PQ(rds, pair, 1);

  return pair;
}
Exemple #2
0
static
void rehash(CRDS *crds, PCODE pcode)
{
  PAIR *p, *q;
  PQUE *p_que = crds->p_que[pcode];
  uint i, h_num, h;
  
  h_num = ++p_que->h_num;
  p_que->h_entry = 
    (PAIR **)realloc(p_que->h_entry, sizeof(PAIR *) * primes[h_num]);
  for (i = 0; i < primes[h_num]; i++) {
    p_que->h_entry[i] = NULL;
  }
  for (i = 1; ; i++) {
    if (i == p_que->p_max) i = 0;
    p = p_que->p_head[i];
    while (p != NULL) {
      p->h_next = NULL;
      h = hash_val(h_num, p->left, p->right);
      q = p_que->h_entry[h];
      p_que->h_entry[h] = p;
      p->h_next = q;
      p = p->p_next;
    }
    if (i == 0) break;
  }
}
void reconstructHash(RDS *rds)
{
  PAIR *p, *q;
  uint i, h;

  rds->h_num++;
  rds->h_first =  
    (PAIR**)realloc(rds->h_first, sizeof(PAIR*)*primes[rds->h_num]);
  for (i = 0; i < primes[rds->h_num]; i++) {
    rds->h_first[i] = NULL;
  }
  for (i = 1; ; i++) {
    if (i == rds->p_max) i = 0;
    p = rds->p_que[i];
    while (p != NULL) {
      p->h_next = NULL;
      h = hash_val(rds->h_num, p->left, p->right);
      q = rds->h_first[h];
      rds->h_first[h] = p;
      p->h_next = q;
      p = p->p_next;
    }
    if (i == 0) break;
  }
}
Exemple #4
0
void hash_del (hash *table, void *key)
{
    if (table == NULL || key == NULL)
        return;

    unsigned long _key = hash_val (table->type, key);
    size_t index = _key % table->capacity;
    hash_elem_t *el = table->elements[index];
    hash_elem_t *prev;

    if (el == NULL)
        return;

    if (el != NULL && match(table->type, el->key, key, strlen (key))) {
        table->elements[index] = el->next;
        free (el->value);
        free (el);
        return;
    }

    while (el) {
        if (match(table->type, el->key, key, strlen (key))) {
            prev->next = el->next;
            free (el->value);
            free (el);
        }
        prev = el;
        el = el->next;
    }
}
Exemple #5
0
/**
 * Create a canonical form
 *
 * \param canon The canonical name
 * \param mibenum The MIB enum value
 * \return Pointer to struct canon or NULL on error
 */
struct canon *create_canon(const char *canon, short mibenum)
{
	struct canon *c;
	int hash, len;

	if (!canon)
		return NULL;

	len = strlen(canon);

	c = malloc(sizeof(struct canon) + len + 1);
	if (!c)
		return NULL;

	c->mib_enum = mibenum;
	c->name_len = len;
	strcpy(c->name, canon);
	c->name[len] = '\0';

	hash = hash_val(canon);

	c->next = canon_tab[hash];
	canon_tab[hash] = c;

	return c;
}
Exemple #6
0
static INLINE
void destructPair(CRDS *crds, PAIR *target)
{
  PQUE *p_que = crds->p_que[target->pcode];
  uint  h = hash_val(p_que->h_num, target->left, target->right);
  PAIR *p = p_que->h_entry[h];
  PAIR *q = NULL;

  removePair(crds, target);

  while (p != NULL) {
    if (p->pcode == target->pcode && 
	p->left  == target->left  && 
	p->right == target->right) {
      break;
    }
    q = p;
    p = p->h_next;
  }

  if (q == NULL) {
    p_que->h_entry[h] = p->h_next;
  }
  else {
    q->h_next = p->h_next;
  }
  free(target);
  p_que->num_pairs--;
}
Exemple #7
0
/**
 * Retrieve the canonical form of an alias name
 *
 * \param alias The alias name
 * \return Pointer to struct canon or NULL if not found
 */
struct canon *alias_canonicalise(const char *alias)
{
	int hash, len;
	struct canon *c;
	struct alias *a;

	if (!alias)
		return NULL;

	hash = hash_val(alias);
	len = strlen(alias);

	for (c = canon_tab[hash]; c; c = c->next)
		if (c->name_len == len && strcasecmp(c->name, alias) == 0)
			break;
	if (c)
		return c;

	for (a = alias_tab[hash]; a; a = a->next)
		if (a->name_len == len && strcasecmp(a->name, alias) == 0)
			break;
	if (a)
		return a->canon;

	return NULL;
}
void destructPair(RDS *rds, PAIR *target)
{
  uint h = hash_val(rds->h_num, target->left, target->right);
  PAIR *p = rds->h_first[h];
  PAIR *q = NULL;

  removePair_PQ(rds, target, target->freq);

  while (p != NULL) {
    if (p->left == target->left && p->right == target->right) {
      break;
    }
    q = p;
    p = p->h_next;
  }

  assert(p != NULL);

  if (q == NULL) {
    rds->h_first[h] = p->h_next;
  }
  else {
    q->h_next = p->h_next;
  }
  free(target);
  rds->num_pairs--;
}
Exemple #9
0
static INLINE
PAIR *createPair(CRDS *crds, PCODE pcode, CODE left, CODE right, uint f_pos)
{
  PAIR *pair = (PAIR *)malloc(sizeof(PAIR));
  uint h;
  PAIR *q;
  PQUE *p_que = crds->p_que[pcode];

  pair->pcode  = pcode;
  pair->left   = left;
  pair->right  = right;
  pair->freq   = 1;
  pair->f_pos  = pair->b_pos  = f_pos;
  pair->p_prev = pair->p_next = NULL;

  p_que->num_pairs++;

  if (p_que->num_pairs >= primes[p_que->h_num]) {
    rehash(crds, pcode);
  }

  h = hash_val(p_que->h_num, left, right);
  q = p_que->h_entry[h];
  p_que->h_entry[h] = pair;
  pair->h_next = q;

  insertPair(crds, pair);

  return pair;
}
Exemple #10
0
void add_var_hash(pgxc_ctl_var *var)
{
	int	hash_v = hash_val(var->varname);
	if (var_hash[hash_v].el_used + 1 >= var_hash[hash_v].el_size)
	{
		var_hash[hash_v].el_size = next_size(var_hash[hash_v].el_size);
		var_hash[hash_v].el = (pgxc_ctl_var **)Realloc(var_hash[hash_v].el, sizeof(pgxc_ctl_var *) * var_hash[hash_v].el_size);
	}
	var_hash[hash_v].el[var_hash[hash_v].el_used++] = var;
	var_hash[hash_v].el[var_hash[hash_v].el_used] = NULL;
}
PAIR *locatePair(RDS *rds, CODE left, CODE right) {
  uint h = hash_val(rds->h_num, left, right);
  PAIR *p = rds->h_first[h];

  while (p != NULL) {
    if (p->left == left && p->right == right) {
      return  p;
    }
    p = p->h_next;
  }
  return NULL;
}
Exemple #12
0
pgxc_ctl_var *find_var(char *name)
{
	pgxc_var_hash *hash = &var_hash[hash_val(name)];
	int	i;

	for (i = 0; i < hash->el_used; i++)
	{
		if (strcmp(hash->el[i]->varname, name) == 0)
			return hash->el[i];
	}
	return NULL;
}
Exemple #13
0
static INLINE
PAIR *locatePair(CRDS *crds, PCODE pcode, CODE left, CODE right) {
  PQUE *p_que = crds->p_que[pcode];
  uint  h = hash_val(p_que->h_num, left, right);
  PAIR *p = p_que->h_entry[h];

  while (p != NULL) {
    if (p->left  == left && 
	p->right == right) {
      return p;
    }
    p = p->h_next;
  }
  return NULL;
}
Exemple #14
0
static void remove_from_hash(pgxc_ctl_var *var)
{
	int hash_v = hash_val(var->varname);
	int ii, jj;

	for(ii = 0; var_hash[hash_v].el[ii]; ii++)
	{
		if (var_hash[hash_v].el[ii] != var)
			continue;
		else
		{
			for(jj = ii; var_hash[hash_v].el[jj]; jj++)
				var_hash[hash_v].el[jj] = var_hash[hash_v].el[jj + 1];
			var_hash[hash_v].el_used--;
			return;
		}
	}
	return;
}
Exemple #15
0
hash_elem_t *hash_get (hash *table, void *key)
{
    if (table == NULL || key == NULL)
        return NULL;

    unsigned long _key = hash_val (table->type, key);
    size_t index = _key % table->capacity;
    hash_elem_t *el = table->elements[index];

    if (el != NULL && match(table->type, el->key, key, strlen (key)))
        return el;

    while (el) {
        if (match(table->type, el->key, key, strlen (key)))
            return el;
        el = el->next;
    }

    return NULL;
}
Exemple #16
0
void hash_put (hash *table, void *key, void *data, size_t length)
{
    if (table == NULL || key == NULL || data == NULL || length == 0)
        return;

    hash_elem_t *el;
    unsigned long _key = hash_val (table->type, key);
    size_t index = _key % table->capacity;

    if (table->elements[index] == NULL) {
        el = malloc (sizeof (hash_elem_t));
        el->key = key;
        el->value = data;
        el->value_len = length;
        el->next = NULL;
        table->elements[index] = el;
    } else { /* handle colision */
        hash_elem_t *prev;
        hash_elem_t *linked = table->elements[index];
        while (linked) {
            if (match(table->type, linked->key, key, strlen (key))) { /* element found */
                free (linked->value);
                linked->value = data;
                linked->value_len = length;
                return;
            }
            prev = linked;
            linked = linked->next;
        }
        /* add at the end of collision list */
        el = malloc (sizeof (hash_elem_t));
        el->key = key;
        el->value = data;
        el->value_len = length;
        el->next = NULL;
        prev->next = el;
    }
}
Exemple #17
0
/**
 * Create an alias
 *
 * \param alias The alias name
 * \param c The canonical form
 * \return true on success, false otherwise
 */
bool create_alias(const char *alias, struct canon *c)
{
	struct alias *a;
	int hash;

	if (!alias || !c)
		return false;

	a = malloc(sizeof(struct alias) + strlen(alias) + 1);
	if (!a)
		return false;

	a->canon = c;
	a->name_len = strlen(alias);
	strcpy(a->name, alias);
	a->name[a->name_len] = '\0';

	hash = hash_val(alias);

	a->next = alias_tab[hash];
	alias_tab[hash] = a;

	return true;
}
Exemple #18
0
 size_t operator()(const Customer2& c) const
 {
     return hash_val(c.first_name, c.last_name, c.id, c.age);
 }
 size_t operator()(const osrm::extractor::RestrictionTarget &r_target) const
 {
     return hash_val(r_target.target_node, r_target.is_only);
 }
 size_t operator()(const osrm::extractor::RestrictionSource &r_source) const
 {
     return hash_val(r_source.start_node, r_source.via_node);
 }
__inline
#endif
const struct css_value *
findValue (register const char *str, register unsigned int len)
{
  enum
    {
      TOTAL_KEYWORDS = 262,
      MIN_WORD_LENGTH = 2,
      MAX_WORD_LENGTH = 22,
      MIN_HASH_VALUE = 0,
      MAX_HASH_VALUE = 3473
    };

  static const struct css_value wordlist_value[] =
    {
      {"900", CSS_VAL_900},
      {"100", CSS_VAL_100},
      {"200", CSS_VAL_200},
      {"300", CSS_VAL_300},
      {"400", CSS_VAL_400},
      {"500", CSS_VAL_500},
      {"600", CSS_VAL_600},
      {"700", CSS_VAL_700},
      {"800", CSS_VAL_800},
      {"static", CSS_VAL_STATIC},
      {"italic", CSS_VAL_ITALIC},
      {"fast", CSS_VAL_FAST},
      {"icon", CSS_VAL_ICON},
      {"top", CSS_VAL_TOP},
      {"clip", CSS_VAL_CLIP},
      {"small", CSS_VAL_SMALL},
      {"initial", CSS_VAL_INITIAL},
      {"ltr", CSS_VAL_LTR},
      {"rtl", CSS_VAL_RTL},
      {"start", CSS_VAL_START},
      {"fantasy", CSS_VAL_FANTASY},
      {"scroll", CSS_VAL_SCROLL},
      {"cross", CSS_VAL_CROSS},
      {"teal", CSS_VAL_TEAL},
      {"caption", CSS_VAL_CAPTION},
      {"navy", CSS_VAL_NAVY},
      {"small-caps", CSS_VAL_SMALL_CAPS},
      {"compact", CSS_VAL_COMPACT},
      {"bottom", CSS_VAL_BOTTOM},
      {"left", CSS_VAL_LEFT},
      {"crop", CSS_VAL_CROP},
      {"table", CSS_VAL_TABLE},
      {"inset", CSS_VAL_INSET},
      {"black", CSS_VAL_BLACK},
      {"block", CSS_VAL_BLOCK},
      {"none", CSS_VAL_NONE},
      {"collapse", CSS_VAL_COLLAPSE},
      {"intrinsic", CSS_VAL_INTRINSIC},
      {"normal", CSS_VAL_NORMAL},
      {"small-caption", CSS_VAL_SMALL_CAPTION},
      {"thin", CSS_VAL_THIN},
      {"lime", CSS_VAL_LIME},
      {"inline", CSS_VAL_INLINE},
      {"blink", CSS_VAL_BLINK},
      {"wait", CSS_VAL_WAIT},
      {"ellipsis", CSS_VAL_ELLIPSIS},
      {"slow", CSS_VAL_SLOW},
      {"both", CSS_VAL_BOTH},
      {"maroon", CSS_VAL_MAROON},
      {"circle", CSS_VAL_CIRCLE},
      {"always", CSS_VAL_ALWAYS},
      {"scrollbar", CSS_VAL_SCROLLBAR},
      {"gray", CSS_VAL_GRAY},
      {"list-item", CSS_VAL_LIST_ITEM},
      {"olive", CSS_VAL_OLIVE},
      {"aqua", CSS_VAL_AQUA},
      {"x-small", CSS_VAL_X_SMALL},
      {"mix", CSS_VAL_MIX},
      {"pre", CSS_VAL_PRE},
      {"portrait", CSS_VAL_PORTRAIT},
      {"serif", CSS_VAL_SERIF},
      {"auto", CSS_VAL_AUTO},
      {"infinite", CSS_VAL_INFINITE},
      {"disc", CSS_VAL_DISC},
      {"above", CSS_VAL_ABOVE},
      {"katakana", CSS_VAL_KATAKANA},
      {"text", CSS_VAL_TEXT},
      {"smaller", CSS_VAL_SMALLER},
      {"solid", CSS_VAL_SOLID},
      {"table-cell", CSS_VAL_TABLE_CELL},
      {"table-caption", CSS_VAL_TABLE_CAPTION},
      {"capitalize", CSS_VAL_CAPITALIZE},
      {"visible", CSS_VAL_VISIBLE},
      {"single", CSS_VAL_SINGLE},
      {"sub", CSS_VAL_SUB},
      {"move", CSS_VAL_MOVE},
      {"up", CSS_VAL_UP},
      {"bold", CSS_VAL_BOLD},
      {"thick", CSS_VAL_THICK},
      {"sans-serif", CSS_VAL_SANS_SERIF},
      {"vertical", CSS_VAL_VERTICAL},
      {"monospace", CSS_VAL_MONOSPACE},
      {"silver", CSS_VAL_SILVER},
      {"pointer", CSS_VAL_POINTER},
      {"level", CSS_VAL_LEVEL},
      {"baseline", CSS_VAL_BASELINE},
      {"large", CSS_VAL_LARGE},
      {"help", CSS_VAL_HELP},
      {"min-intrinsic", CSS_VAL_MIN_INTRINSIC},
      {"justify", CSS_VAL_JUSTIFY},
      {"overlay", CSS_VAL_OVERLAY},
      {"invert", CSS_VAL_INVERT},
      {"alternate", CSS_VAL_ALTERNATE},
      {"activecaption", CSS_VAL_ACTIVECAPTION},
      {"center", CSS_VAL_CENTER},
      {"armenian", CSS_VAL_ARMENIAN},
      {"grey", CSS_VAL_GREY},
      {"yellow", CSS_VAL_YELLOW},
      {"text-top", CSS_VAL_TEXT_TOP},
      {"stretch", CSS_VAL_STRETCH},
      {"avoid", CSS_VAL_AVOID},
      {"repeat", CSS_VAL_REPEAT},
      {"below", CSS_VAL_BELOW},
      {"orange", CSS_VAL_ORANGE},
      {"inline-table", CSS_VAL_INLINE_TABLE},
      {"separate", CSS_VAL_SEPARATE},
      {"crosshair", CSS_VAL_CROSSHAIR},
      {"block-axis", CSS_VAL_BLOCK_AXIS},
      {"show", CSS_VAL_SHOW},
      {"infotext", CSS_VAL_INFOTEXT},
      {"nowrap", CSS_VAL_NOWRAP},
      {"slide", CSS_VAL_SLIDE},
      {"outset", CSS_VAL_OUTSET},
      {"end", CSS_VAL_END},
      {"right", CSS_VAL_RIGHT},
      {"inactivecaption", CSS_VAL_INACTIVECAPTION},
      {"status-bar", CSS_VAL_STATUS_BAR},
      {"captiontext", CSS_VAL_CAPTIONTEXT},
      {"inline-axis", CSS_VAL_INLINE_AXIS},
      {"inline-block", CSS_VAL_INLINE_BLOCK},
      {"transparent", CSS_VAL_TRANSPARENT},
      {"repeat-y", CSS_VAL_REPEAT_Y},
      {"horizontal", CSS_VAL_HORIZONTAL},
      {"blue", CSS_VAL_BLUE},
      {"xx-small", CSS_VAL_XX_SMALL},
      {"larger", CSS_VAL_LARGER},
      {"lower", CSS_VAL_LOWER},
      {"run-in", CSS_VAL_RUN_IN},
      {"hiragana", CSS_VAL_HIRAGANA},
      {"no-repeat", CSS_VAL_NO_REPEAT},
      {"inherit", CSS_VAL_INHERIT},
      {"relative", CSS_VAL_RELATIVE},
      {"inside", CSS_VAL_INSIDE},
      {"absolute", CSS_VAL_ABSOLUTE},
      {"hand", CSS_VAL_HAND},
      {"s-resize", CSS_VAL_S_RESIZE},
      {"text-bottom", CSS_VAL_TEXT_BOTTOM},
      {"oblique", CSS_VAL_OBLIQUE},
      {"red", CSS_VAL_RED},
      {"landscape", CSS_VAL_LANDSCAPE},
      {"element", CSS_VAL_ELEMENT},
      {"decimal", CSS_VAL_DECIMAL},
      {"groove", CSS_VAL_GROOVE},
      {"square", CSS_VAL_SQUARE},
      {"n-resize", CSS_VAL_N_RESIZE},
      {"table-row", CSS_VAL_TABLE_ROW},
      {"menu", CSS_VAL_MENU},
      {"lower-latin", CSS_VAL_LOWER_LATIN},
      {"fuchsia", CSS_VAL_FUCHSIA},
      {"green", CSS_VAL_GREEN},
      {"overline", CSS_VAL_OVERLINE},
      {"down", CSS_VAL_DOWN},
      {"white", CSS_VAL_WHITE},
      {"buttonface", CSS_VAL_BUTTONFACE},
      {"x-large", CSS_VAL_X_LARGE},
      {"bolder", CSS_VAL_BOLDER},
      {"lighter", CSS_VAL_LIGHTER},
      {"loud", CSS_VAL_LOUD},
      {"super", CSS_VAL_SUPER},
      {"multiple", CSS_VAL_MULTIPLE},
      {"graytext", CSS_VAL_GRAYTEXT},
      {"georgian", CSS_VAL_GEORGIAN},
      {"ahead", CSS_VAL_AHEAD},
      {"read-only", CSS_VAL_READ_ONLY},
      {"-khtml-left", CSS_VAL__KHTML_LEFT},
      {"close-quote", CSS_VAL_CLOSE_QUOTE},
      {"table-column", CSS_VAL_TABLE_COLUMN},
      {"hide", CSS_VAL_HIDE},
      {"lowercase", CSS_VAL_LOWERCASE},
      {"repeat-x", CSS_VAL_REPEAT_X},
      {"-khtml-link", CSS_VAL__KHTML_LINK},
      {"e-resize", CSS_VAL_E_RESIZE},
      {"se-resize", CSS_VAL_SE_RESIZE},
      {"purple", CSS_VAL_PURPLE},
      {"katakana-iroha", CSS_VAL_KATAKANA_IROHA},
      {"cursive", CSS_VAL_CURSIVE},
      {"ne-resize", CSS_VAL_NE_RESIZE},
      {"fixed", CSS_VAL_FIXED},
      {"no-close-quote", CSS_VAL_NO_CLOSE_QUOTE},
      {"ridge", CSS_VAL_RIDGE},
      {"embed", CSS_VAL_EMBED},
      {"-khtml-box", CSS_VAL__KHTML_BOX},
      {"open-quote", CSS_VAL_OPEN_QUOTE},
      {"upper-latin", CSS_VAL_UPPER_LATIN},
      {"narrower", CSS_VAL_NARROWER},
      {"buttontext", CSS_VAL_BUTTONTEXT},
      {"reverse", CSS_VAL_REVERSE},
      {"dotted", CSS_VAL_DOTTED},
      {"w-resize", CSS_VAL_W_RESIZE},
      {"lower-roman", CSS_VAL_LOWER_ROMAN},
      {"sw-resize", CSS_VAL_SW_RESIZE},
      {"lower-alpha", CSS_VAL_LOWER_ALPHA},
      {"-khtml-auto", CSS_VAL__KHTML_AUTO},
      {"marquee", CSS_VAL_MARQUEE},
      {"default", CSS_VAL_DEFAULT},
      {"outside", CSS_VAL_OUTSIDE},
      {"unfurl", CSS_VAL_UNFURL},
      {"-khtml-text", CSS_VAL__KHTML_TEXT},
      {"nw-resize", CSS_VAL_NW_RESIZE},
      {"no-open-quote", CSS_VAL_NO_OPEN_QUOTE},
      {"wider", CSS_VAL_WIDER},
      {"xx-large", CSS_VAL_XX_LARGE},
      {"higher", CSS_VAL_HIGHER},
      {"double", CSS_VAL_DOUBLE},
      {"forwards", CSS_VAL_FORWARDS},
      {"inactivecaptiontext", CSS_VAL_INACTIVECAPTIONTEXT},
      {"message-box", CSS_VAL_MESSAGE_BOX},
      {"uppercase", CSS_VAL_UPPERCASE},
      {"middle", CSS_VAL_MIDDLE},
      {"backwards", CSS_VAL_BACKWARDS},
      {"window", CSS_VAL_WINDOW},
      {"-khtml-body", CSS_VAL__KHTML_BODY},
      {"hiragana-iroha", CSS_VAL_HIRAGANA_IROHA},
      {"appworkspace", CSS_VAL_APPWORKSPACE},
      {"hebrew", CSS_VAL_HEBREW},
      {"-khtml-center", CSS_VAL__KHTML_CENTER},
      {"menutext", CSS_VAL_MENUTEXT},
      {"-khtml-nowrap", CSS_VAL__KHTML_NOWRAP},
      {"-khtml-right", CSS_VAL__KHTML_RIGHT},
      {"dashed", CSS_VAL_DASHED},
      {"highlight", CSS_VAL_HIGHLIGHT},
      {"upper-roman", CSS_VAL_UPPER_ROMAN},
      {"-khtml-activelink", CSS_VAL__KHTML_ACTIVELINK},
      {"medium", CSS_VAL_MEDIUM},
      {"upper-alpha", CSS_VAL_UPPER_ALPHA},
      {"condensed", CSS_VAL_CONDENSED},
      {"hidden", CSS_VAL_HIDDEN},
      {"-khtml-inline-box", CSS_VAL__KHTML_INLINE_BOX},
      {"activeborder", CSS_VAL_ACTIVEBORDER},
      {"inactiveborder", CSS_VAL_INACTIVEBORDER},
      {"read-write", CSS_VAL_READ_WRITE},
      {"threedface", CSS_VAL_THREEDFACE},
      {"underline", CSS_VAL_UNDERLINE},
      {"background", CSS_VAL_BACKGROUND},
      {"buttonshadow", CSS_VAL_BUTTONSHADOW},
      {"expanded", CSS_VAL_EXPANDED},
      {"line-through", CSS_VAL_LINE_THROUGH},
      {"cjk-ideographic", CSS_VAL_CJK_IDEOGRAPHIC},
      {"windowtext", CSS_VAL_WINDOWTEXT},
      {"table-footer-group", CSS_VAL_TABLE_FOOTER_GROUP},
      {"lower-greek", CSS_VAL_LOWER_GREEK},
      {"table-row-group", CSS_VAL_TABLE_ROW_GROUP},
      {"windowframe", CSS_VAL_WINDOWFRAME},
      {"infobackground", CSS_VAL_INFOBACKGROUND},
      {"semi-condensed", CSS_VAL_SEMI_CONDENSED},
      {"highlighttext", CSS_VAL_HIGHLIGHTTEXT},
      {"table-column-group", CSS_VAL_TABLE_COLUMN_GROUP},
      {"bidi-override", CSS_VAL_BIDI_OVERRIDE},
      {"buttonhighlight", CSS_VAL_BUTTONHIGHLIGHT},
      {"ultra-condensed", CSS_VAL_ULTRA_CONDENSED},
      {"extra-condensed", CSS_VAL_EXTRA_CONDENSED},
      {"semi-expanded", CSS_VAL_SEMI_EXPANDED},
      {"-khtml-xxx-large", CSS_VAL__KHTML_XXX_LARGE},
      {"decimal-leading-zero", CSS_VAL_DECIMAL_LEADING_ZERO},
      {"ultra-expanded", CSS_VAL_ULTRA_EXPANDED},
      {"extra-expanded", CSS_VAL_EXTRA_EXPANDED},
      {"threedshadow", CSS_VAL_THREEDSHADOW},
      {"-khtml-baseline-middle", CSS_VAL__KHTML_BASELINE_MIDDLE},
      {"table-header-group", CSS_VAL_TABLE_HEADER_GROUP},
      {"threedhighlight", CSS_VAL_THREEDHIGHLIGHT},
      {"threedlightshadow", CSS_VAL_THREEDLIGHTSHADOW},
      {"threeddarkshadow", CSS_VAL_THREEDDARKSHADOW}
    };

  static const short lookup[] =
    {
         0,   -1,   -1,   -1,   -1,    1,   -1,   -1,
        -1,   -1,    2,   -1,   -1,   -1,   -1,    3,
        -1,   -1,   -1,   -1,    4,   -1,   -1,   -1,
        -1,    5,   -1,   -1,   -1,   -1,    6,   -1,
        -1,   -1,   -1,    7,   -1,   -1,   -1,   -1,
         8,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         9,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   10,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   11,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   12,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   13,   -1,   -1,   -1,   -1,   14,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   15,   -1,   -1,   -1,   -1,   -1,   -1,
        16,   -1,   -1,   -1,   -1, -429, -245,   -2,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   19,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   20,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   21,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   22,   -1,   -1,
        -1,   23,   -1,   -1,   -1,   -1,   -1,   24,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   25,   -1,   -1,   26,   27,
        -1,   -1,   -1,   -1,   28,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   29,   -1,   -1,   -1,
        -1,   -1,   30,   -1,   31,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   32,   33,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   34,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        35,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        36,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   37,   -1,   -1,   38,   -1,   -1,   39,
        40,   -1,   -1,   41,   -1,   42,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   43,   -1,   44,
        -1,   -1,   -1,   -1,   45,   -1,   -1,   46,
        -1,   -1,   47,   -1,   -1,   48,   -1,   49,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        50,   -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,   54,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        55,   56,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   57,   -1,   -1,   -1,   58,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,
        -1,   -1,   -1,   -1,   -1,   -1,   60,   -1,
        -1,   61,   -1,   62,   -1,   -1,   63,   64,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   65,
        -1,   -1,   66,   -1,   -1,   -1,   -1,   67,
        -1,   -1,   -1,   -1,   68,   -1,   -1,   69,
        -1,   -1,   70,   -1,   -1,   -1,   71,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   72,   -1,
        -1,   -1,   73,   -1,   -1,   74,   -1,   -1,
        -1,   -1,   -1,   75,   -1,   -1,   -1,   -1,
        -1,   76,   77,   -1,   78,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        79,   -1,   -1,   -1,   -1,   -1,   80,   81,
        -1,   -1,   -1,   -1,   -1,   82,   -1,   -1,
        -1,   -1,   83,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   84,   -1,   -1,   -1,
        -1,   85,   -1,   86,   -1,   -1,   -1,   -1,
        87,   88,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   89,   90,   -1,   -1,   -1,   -1,
        -1,   -1,   91,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   92,   -1,
        93,   94,   -1,   -1,   -1,   -1,   95,   -1,
        -1,   -1,   -1,   -1,   -1,   96,   -1,   -1,
        97,   -1,   -1,   98,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   99,   -1,   -1,  100,   -1,   -1,   -1,
       101,  102,   -1,  103,   -1,   -1,   -1,   -1,
       104,   -1,  105,  106,  107,  108,   -1,   -1,
       109,   -1,  110,   -1,  111,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,  112,   -1,  113,   -1,
        -1,   -1,   -1,  114,   -1,   -1,   -1,   -1,
        -1,   -1,  115,  116,   -1,   -1,   -1,   -1,
        -1,  117,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,  118,  119,  120,   -1,   -1,   -1,
        -1,  121,  122,   -1,  123,   -1,   -1,   -1,
        -1,   -1,  124,   -1,   -1,   -1,   -1,   -1,
       125,   -1,   -1,  126,   -1,  127,   -1,   -1,
        -1,   -1,  128,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,  129,
        -1,  130,   -1,   -1,  131,   -1,  132,  133,
        -1,   -1,   -1,  134,   -1,   -1,   -1,   -1,
       135,   -1,   -1,   -1,   -1,  136,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
       137,   -1,   -1,   -1,  138,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,  139,   -1,   -1,   -1,
        -1,  140,   -1,   -1,  141,   -1,   -1,  142,
       143,   -1,   -1,   -1,   -1,  144,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,  145,   -1,  146,
        -1,   -1,   -1,   -1,  147,   -1,   -1,   -1,
        -1,  148,   -1,  149,  150,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -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,  152,   -1,
        -1,   -1,  153,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,  154,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
       155,   -1,   -1,   -1,  156,   -1,   -1,  157,
        -1,  158,   -1,   -1,  159,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,  160,   -1,
        -1,   -1,   -1,  161,   -1,  162,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,  163,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,  164,
       165,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,  166,   -1,   -1,
       167,  168,   -1,   -1,   -1,   -1,   -1,   -1,
       169,   -1,   -1,   -1,   -1,  170,   -1,  171,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,  172,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
       173,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,  174,   -1,   -1,
       175,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,  176,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,  177,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,  178,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,  179,   -1,   -1,   -1,
        -1,   -1,  180,   -1,   -1,   -1,   -1,   -1,
       181,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,  182,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,  183,   -1,   -1,  184,  185,   -1,   -1,
        -1,  186,   -1,   -1,   -1,   -1,  187,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,  188,   -1,   -1,   -1,  189,   -1,
        -1,   -1,   -1,   -1,  190,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,  191,   -1,   -1,  192,   -1,  193,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,  194,   -1,   -1,  195,   -1,  196,
        -1,   -1,   -1,   -1,   -1,  197,   -1,   -1,
        -1,  198,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,  199,  200,  201,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,  202,  203,   -1,   -1,   -1,   -1,
        -1,   -1,  204,   -1,  205,   -1,  206,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,  207,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,  208,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,  209,
        -1,  210,   -1,   -1,   -1,   -1,   -1,  211,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
       212,   -1,   -1,  213,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,  214,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,  215,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,  216,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,  217,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,  218,   -1,
        -1,   -1,   -1,   -1,   -1,  219,   -1,   -1,
        -1,   -1,  220,  221,   -1,   -1,  222,   -1,
       223,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,  224,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,  225,   -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,  227,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,  228,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
       229,   -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,  231,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,  232,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,  233,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,  234,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,  235,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,  236,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,  237,   -1,   -1,   -1,
        -1,   -1,   -1,  238,   -1,   -1,   -1,   -1,
        -1,  239,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,  240,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -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,  242,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,  243,   -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,  245,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -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,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,  247,   -1,
        -1,   -1,   -1,   -1,   -1,  248,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -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,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -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,   -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,
       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,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -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,  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,  255,   -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,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -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,  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,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -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,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -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,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
        -1,   -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
    };

  if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
    {
      register int key = hash_val (str, len);

      if (key <= MAX_HASH_VALUE && key >= 0)
        {
          register int index = lookup[key];

          if (index >= 0)
            {
              register const char *s = wordlist_value[index].name;

              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;
}
Exemple #22
0
__inline
#endif
const struct css_value *
findValue (register const char *str, register unsigned int len)
{
  enum
    {
      TOTAL_KEYWORDS = 274,
      MIN_WORD_LENGTH = 2,
      MAX_WORD_LENGTH = 28,
      MIN_HASH_VALUE = 0,
      MAX_HASH_VALUE = 3055
    };

  static const struct css_value wordlist_value[] =
    {
#line 40 "cssvalues.gperf"
      {"100", CSS_VAL_100},
#line 48 "cssvalues.gperf"
      {"900", CSS_VAL_900},
#line 47 "cssvalues.gperf"
      {"800", CSS_VAL_800},
#line 46 "cssvalues.gperf"
      {"700", CSS_VAL_700},
#line 45 "cssvalues.gperf"
      {"600", CSS_VAL_600},
#line 216 "cssvalues.gperf"
      {"ltr", CSS_VAL_LTR},
#line 276 "cssvalues.gperf"
      {"down", CSS_VAL_DOWN},
#line 146 "cssvalues.gperf"
      {"disc", CSS_VAL_DISC},
#line 44 "cssvalues.gperf"
      {"500", CSS_VAL_500},
#line 43 "cssvalues.gperf"
      {"400", CSS_VAL_400},
#line 258 "cssvalues.gperf"
      {"scroll", CSS_VAL_SCROLL},
#line 83 "cssvalues.gperf"
      {"lime", CSS_VAL_LIME},
#line 17 "cssvalues.gperf"
      {"none", CSS_VAL_NONE},
#line 19 "cssvalues.gperf"
      {"inset", CSS_VAL_INSET},
#line 118 "cssvalues.gperf"
      {"window", CSS_VAL_WINDOW},
#line 286 "cssvalues.gperf"
      {"content", CSS_VAL_CONTENT},
#line 147 "cssvalues.gperf"
      {"circle", CSS_VAL_CIRCLE},
#line 33 "cssvalues.gperf"
      {"italic", CSS_VAL_ITALIC},
#line 145 "cssvalues.gperf"
      {"inside", CSS_VAL_INSIDE},
#line 25 "cssvalues.gperf"
      {"solid", CSS_VAL_SOLID},
#line 183 "cssvalues.gperf"
      {"inline", CSS_VAL_INLINE},
#line 261 "cssvalues.gperf"
      {"static", CSS_VAL_STATIC},
#line 204 "cssvalues.gperf"
      {"move", CSS_VAL_MOVE},
#line 42 "cssvalues.gperf"
      {"300", CSS_VAL_300},
#line 249 "cssvalues.gperf"
      {"level", CSS_VAL_LEVEL},
#line 41 "cssvalues.gperf"
      {"200", CSS_VAL_200},
#line 254 "cssvalues.gperf"
      {"mix", CSS_VAL_MIX},
#line 91 "cssvalues.gperf"
      {"teal", CSS_VAL_TEAL},
#line 51 "cssvalues.gperf"
      {"small", CSS_VAL_SMALL},
#line 120 "cssvalues.gperf"
      {"windowtext", CSS_VAL_WINDOWTEXT},
#line 37 "cssvalues.gperf"
      {"bold", CSS_VAL_BOLD},
#line 213 "cssvalues.gperf"
      {"text", CSS_VAL_TEXT},
#line 149 "cssvalues.gperf"
      {"box", CSS_VAL_BOX},
#line 217 "cssvalues.gperf"
      {"rtl", CSS_VAL_RTL},
#line 242 "cssvalues.gperf"
      {"embed", CSS_VAL_EMBED},
#line 128 "cssvalues.gperf"
      {"middle", CSS_VAL_MIDDLE},
#line 252 "cssvalues.gperf"
      {"lower", CSS_VAL_LOWER},
#line 236 "cssvalues.gperf"
      {"below", CSS_VAL_BELOW},
#line 63 "cssvalues.gperf"
      {"condensed", CSS_VAL_CONDENSED},
#line 14 "cssvalues.gperf"
      {"inherit", CSS_VAL_INHERIT},
#line 93 "cssvalues.gperf"
      {"yellow", CSS_VAL_YELLOW},
#line 247 "cssvalues.gperf"
      {"invert", CSS_VAL_INVERT},
#line 76 "cssvalues.gperf"
      {"black", CSS_VAL_BLACK},
#line 89 "cssvalues.gperf"
      {"red", CSS_VAL_RED},
#line 280 "cssvalues.gperf"
      {"slide", CSS_VAL_SLIDE},
#line 139 "cssvalues.gperf"
      {"center", CSS_VAL_CENTER},
#line 59 "cssvalues.gperf"
      {"wider", CSS_VAL_WIDER},
#line 129 "cssvalues.gperf"
      {"sub", CSS_VAL_SUB},
#line 189 "cssvalues.gperf"
      {"table", CSS_VAL_TABLE},
#line 269 "cssvalues.gperf"
      {"enabled", CSS_VAL_ENABLED},
#line 36 "cssvalues.gperf"
      {"normal", CSS_VAL_NORMAL},
#line 238 "cssvalues.gperf"
      {"blink", CSS_VAL_BLINK},
#line 84 "cssvalues.gperf"
      {"maroon", CSS_VAL_MAROON},
#line 251 "cssvalues.gperf"
      {"loud", CSS_VAL_LOUD},
#line 285 "cssvalues.gperf"
      {"border", CSS_VAL_BORDER},
#line 85 "cssvalues.gperf"
      {"navy", CSS_VAL_NAVY},
#line 57 "cssvalues.gperf"
      {"smaller", CSS_VAL_SMALLER},
#line 38 "cssvalues.gperf"
      {"bolder", CSS_VAL_BOLDER},
#line 28 "cssvalues.gperf"
      {"icon", CSS_VAL_ICON},
#line 78 "cssvalues.gperf"
      {"crimson", CSS_VAL_CRIMSON},
#line 29 "cssvalues.gperf"
      {"menu", CSS_VAL_MENU},
#line 23 "cssvalues.gperf"
      {"dotted", CSS_VAL_DOTTED},
#line 277 "cssvalues.gperf"
      {"slow", CSS_VAL_SLOW},
#line 151 "cssvalues.gperf"
      {"decimal", CSS_VAL_DECIMAL},
#line 15 "cssvalues.gperf"
      {"initial", CSS_VAL_INITIAL},
#line 134 "cssvalues.gperf"
      {"bottom", CSS_VAL_BOTTOM},
#line 214 "cssvalues.gperf"
      {"wait", CSS_VAL_WAIT},
#line 69 "cssvalues.gperf"
      {"serif", CSS_VAL_SERIF},
#line 77 "cssvalues.gperf"
      {"blue", CSS_VAL_BLUE},
#line 270 "cssvalues.gperf"
      {"disabled", CSS_VAL_DISABLED},
#line 127 "cssvalues.gperf"
      {"baseline", CSS_VAL_BASELINE},
#line 111 "cssvalues.gperf"
      {"menutext", CSS_VAL_MENUTEXT},
#line 221 "cssvalues.gperf"
      {"visible", CSS_VAL_VISIBLE},
#line 26 "cssvalues.gperf"
      {"double", CSS_VAL_DOUBLE},
#line 52 "cssvalues.gperf"
      {"medium", CSS_VAL_MEDIUM},
#line 245 "cssvalues.gperf"
      {"hide", CSS_VAL_HIDE},
#line 274 "cssvalues.gperf"
      {"reverse", CSS_VAL_REVERSE},
#line 243 "cssvalues.gperf"
      {"fixed", CSS_VAL_FIXED},
#line 283 "cssvalues.gperf"
      {"clip", CSS_VAL_CLIP},
#line 112 "cssvalues.gperf"
      {"scrollbar", CSS_VAL_SCROLLBAR},
#line 18 "cssvalues.gperf"
      {"hidden", CSS_VAL_HIDDEN},
#line 86 "cssvalues.gperf"
      {"olive", CSS_VAL_OLIVE},
#line 263 "cssvalues.gperf"
      {"thin", CSS_VAL_THIN},
#line 184 "cssvalues.gperf"
      {"block", CSS_VAL_BLOCK},
#line 220 "cssvalues.gperf"
      {"lowercase", CSS_VAL_LOWERCASE},
#line 284 "cssvalues.gperf"
      {"ellipsis", CSS_VAL_ELLIPSIS},
#line 241 "cssvalues.gperf"
      {"cross", CSS_VAL_CROSS},
#line 278 "cssvalues.gperf"
      {"fast", CSS_VAL_FAST},
#line 90 "cssvalues.gperf"
      {"silver", CSS_VAL_SILVER},
#line 137 "cssvalues.gperf"
      {"left", CSS_VAL_LEFT},
#line 264 "cssvalues.gperf"
      {"underline", CSS_VAL_UNDERLINE},
#line 82 "cssvalues.gperf"
      {"indigo", CSS_VAL_INDIGO},
#line 234 "cssvalues.gperf"
      {"always", CSS_VAL_ALWAYS},
#line 279 "cssvalues.gperf"
      {"infinite", CSS_VAL_INFINITE},
#line 92 "cssvalues.gperf"
      {"white", CSS_VAL_WHITE},
#line 110 "cssvalues.gperf"
      {"infotext", CSS_VAL_INFOTEXT},
#line 187 "cssvalues.gperf"
      {"compact", CSS_VAL_COMPACT},
#line 262 "cssvalues.gperf"
      {"thick", CSS_VAL_THICK},
#line 60 "cssvalues.gperf"
      {"narrower", CSS_VAL_NARROWER},
#line 275 "cssvalues.gperf"
      {"up", CSS_VAL_UP},
#line 49 "cssvalues.gperf"
      {"xx-small", CSS_VAL_XX_SMALL},
#line 207 "cssvalues.gperf"
      {"nw-resize", CSS_VAL_NW_RESIZE},
#line 22 "cssvalues.gperf"
      {"outset", CSS_VAL_OUTSET},
#line 244 "cssvalues.gperf"
      {"hand", CSS_VAL_HAND},
#line 161 "cssvalues.gperf"
      {"hebrew", CSS_VAL_HEBREW},
#line 133 "cssvalues.gperf"
      {"top", CSS_VAL_TOP},
#line 210 "cssvalues.gperf"
      {"sw-resize", CSS_VAL_SW_RESIZE},
#line 144 "cssvalues.gperf"
      {"outside", CSS_VAL_OUTSIDE},
#line 233 "cssvalues.gperf"
      {"absolute", CSS_VAL_ABSOLUTE},
#line 206 "cssvalues.gperf"
      {"ne-resize", CSS_VAL_NE_RESIZE},
#line 162 "cssvalues.gperf"
      {"armenian", CSS_VAL_ARMENIAN},
#line 71 "cssvalues.gperf"
      {"cursive", CSS_VAL_CURSIVE},
#line 209 "cssvalues.gperf"
      {"se-resize", CSS_VAL_SE_RESIZE},
#line 101 "cssvalues.gperf"
      {"buttontext", CSS_VAL_BUTTONTEXT},
#line 185 "cssvalues.gperf"
      {"list-item", CSS_VAL_LIST_ITEM},
#line 239 "cssvalues.gperf"
      {"both", CSS_VAL_BOTH},
#line 202 "cssvalues.gperf"
      {"pointer", CSS_VAL_POINTER},
#line 24 "cssvalues.gperf"
      {"dashed", CSS_VAL_DASHED},
#line 222 "cssvalues.gperf"
      {"collapse", CSS_VAL_COLLAPSE},
#line 227 "cssvalues.gperf"
      {"nowrap", CSS_VAL_NOWRAP},
#line 268 "cssvalues.gperf"
      {"content-box", CSS_VAL_CONTENT_BOX},
#line 73 "cssvalues.gperf"
      {"monospace", CSS_VAL_MONOSPACE},
#line 208 "cssvalues.gperf"
      {"n-resize", CSS_VAL_N_RESIZE},
#line 260 "cssvalues.gperf"
      {"show", CSS_VAL_SHOW},
#line 199 "cssvalues.gperf"
      {"auto", CSS_VAL_AUTO},
#line 21 "cssvalues.gperf"
      {"ridge", CSS_VAL_RIDGE},
#line 212 "cssvalues.gperf"
      {"w-resize", CSS_VAL_W_RESIZE},
#line 256 "cssvalues.gperf"
      {"portrait", CSS_VAL_PORTRAIT},
#line 211 "cssvalues.gperf"
      {"s-resize", CSS_VAL_S_RESIZE},
#line 271 "cssvalues.gperf"
      {"forwards", CSS_VAL_FORWARDS},
#line 87 "cssvalues.gperf"
      {"orange", CSS_VAL_ORANGE},
#line 228 "cssvalues.gperf"
      {"pre", CSS_VAL_PRE},
#line 80 "cssvalues.gperf"
      {"gray", CSS_VAL_GRAY},
#line 205 "cssvalues.gperf"
      {"e-resize", CSS_VAL_E_RESIZE},
#line 255 "cssvalues.gperf"
      {"overline", CSS_VAL_OVERLINE},
#line 215 "cssvalues.gperf"
      {"help", CSS_VAL_HELP},
#line 53 "cssvalues.gperf"
      {"large", CSS_VAL_LARGE},
#line 140 "cssvalues.gperf"
      {"justify", CSS_VAL_JUSTIFY},
#line 240 "cssvalues.gperf"
      {"crop", CSS_VAL_CROP},
#line 257 "cssvalues.gperf"
      {"relative", CSS_VAL_RELATIVE},
#line 50 "cssvalues.gperf"
      {"x-small", CSS_VAL_X_SMALL},
#line 188 "cssvalues.gperf"
      {"inline-block", CSS_VAL_INLINE_BLOCK},
#line 64 "cssvalues.gperf"
      {"semi-condensed", CSS_VAL_SEMI_CONDENSED},
#line 272 "cssvalues.gperf"
      {"backwards", CSS_VAL_BACKWARDS},
#line 138 "cssvalues.gperf"
      {"right", CSS_VAL_RIGHT},
#line 119 "cssvalues.gperf"
      {"windowframe", CSS_VAL_WINDOWFRAME},
#line 27 "cssvalues.gperf"
      {"caption", CSS_VAL_CAPTION},
#line 132 "cssvalues.gperf"
      {"text-bottom", CSS_VAL_TEXT_BOTTOM},
#line 103 "cssvalues.gperf"
      {"graytext", CSS_VAL_GRAYTEXT},
#line 106 "cssvalues.gperf"
      {"inactiveborder", CSS_VAL_INACTIVEBORDER},
#line 72 "cssvalues.gperf"
      {"fantasy", CSS_VAL_FANTASY},
#line 235 "cssvalues.gperf"
      {"avoid", CSS_VAL_AVOID},
#line 197 "cssvalues.gperf"
      {"table-cell", CSS_VAL_TABLE_CELL},
#line 39 "cssvalues.gperf"
      {"lighter", CSS_VAL_LIGHTER},
#line 248 "cssvalues.gperf"
      {"landscape", CSS_VAL_LANDSCAPE},
#line 102 "cssvalues.gperf"
      {"captiontext", CSS_VAL_CAPTIONTEXT},
#line 58 "cssvalues.gperf"
      {"larger", CSS_VAL_LARGER},
#line 186 "cssvalues.gperf"
      {"run-in", CSS_VAL_RUN_IN},
#line 267 "cssvalues.gperf"
      {"border-box", CSS_VAL_BORDER_BOX},
#line 281 "cssvalues.gperf"
      {"alternate", CSS_VAL_ALTERNATE},
#line 174 "cssvalues.gperf"
      {"lower-latin", CSS_VAL_LOWER_LATIN},
#line 81 "cssvalues.gperf"
      {"green", CSS_VAL_GREEN},
#line 194 "cssvalues.gperf"
      {"table-row", CSS_VAL_TABLE_ROW},
#line 232 "cssvalues.gperf"
      {"above", CSS_VAL_ABOVE},
#line 66 "cssvalues.gperf"
      {"expanded", CSS_VAL_EXPANDED},
#line 74 "cssvalues.gperf"
      {"transparent", CSS_VAL_TRANSPARENT},
#line 121 "cssvalues.gperf"
      {"grey", CSS_VAL_GREY},
#line 88 "cssvalues.gperf"
      {"purple", CSS_VAL_PURPLE},
#line 190 "cssvalues.gperf"
      {"inline-table", CSS_VAL_INLINE_TABLE},
#line 107 "cssvalues.gperf"
      {"inactivecaption", CSS_VAL_INACTIVECAPTION},
#line 34 "cssvalues.gperf"
      {"oblique", CSS_VAL_OBLIQUE},
#line 131 "cssvalues.gperf"
      {"text-top", CSS_VAL_TEXT_TOP},
#line 201 "cssvalues.gperf"
      {"default", CSS_VAL_DEFAULT},
#line 130 "cssvalues.gperf"
      {"super", CSS_VAL_SUPER},
#line 123 "cssvalues.gperf"
      {"repeat", CSS_VAL_REPEAT},
#line 108 "cssvalues.gperf"
      {"inactivecaptiontext", CSS_VAL_INACTIVECAPTIONTEXT},
#line 114 "cssvalues.gperf"
      {"threedface", CSS_VAL_THREEDFACE},
#line 126 "cssvalues.gperf"
      {"no-repeat", CSS_VAL_NO_REPEAT},
#line 282 "cssvalues.gperf"
      {"unfurl", CSS_VAL_UNFURL},
#line 273 "cssvalues.gperf"
      {"ahead", CSS_VAL_AHEAD},
#line 196 "cssvalues.gperf"
      {"table-column", CSS_VAL_TABLE_COLUMN},
#line 218 "cssvalues.gperf"
      {"capitalize", CSS_VAL_CAPITALIZE},
#line 159 "cssvalues.gperf"
      {"lower-roman", CSS_VAL_LOWER_ROMAN},
#line 287 "cssvalues.gperf"
      {"padding", CSS_VAL_PADDING},
#line 117 "cssvalues.gperf"
      {"threedshadow", CSS_VAL_THREEDSHADOW},
#line 98 "cssvalues.gperf"
      {"buttonface", CSS_VAL_BUTTONFACE},
#line 79 "cssvalues.gperf"
      {"fuchsia", CSS_VAL_FUCHSIA},
#line 55 "cssvalues.gperf"
      {"xx-large", CSS_VAL_XX_LARGE},
#line 200 "cssvalues.gperf"
      {"crosshair", CSS_VAL_CROSSHAIR},
#line 246 "cssvalues.gperf"
      {"higher", CSS_VAL_HIGHER},
#line 100 "cssvalues.gperf"
      {"buttonshadow", CSS_VAL_BUTTONSHADOW},
#line 94 "cssvalues.gperf"
      {"activeborder", CSS_VAL_ACTIVEBORDER},
#line 253 "cssvalues.gperf"
      {"marquee", CSS_VAL_MARQUEE},
#line 31 "cssvalues.gperf"
      {"small-caption", CSS_VAL_SMALL_CAPTION},
#line 35 "cssvalues.gperf"
      {"small-caps", CSS_VAL_SMALL_CAPS},
#line 122 "cssvalues.gperf"
      {"-khtml-text", CSS_VAL__KHTML_TEXT},
#line 20 "cssvalues.gperf"
      {"groove", CSS_VAL_GROOVE},
#line 97 "cssvalues.gperf"
      {"background", CSS_VAL_BACKGROUND},
#line 178 "cssvalues.gperf"
      {"katakana", CSS_VAL_KATAKANA},
#line 148 "cssvalues.gperf"
      {"square", CSS_VAL_SQUARE},
#line 259 "cssvalues.gperf"
      {"separate", CSS_VAL_SEPARATE},
#line 75 "cssvalues.gperf"
      {"aqua", CSS_VAL_AQUA},
#line 70 "cssvalues.gperf"
      {"sans-serif", CSS_VAL_SANS_SERIF},
#line 32 "cssvalues.gperf"
      {"status-bar", CSS_VAL_STATUS_BAR},
#line 65 "cssvalues.gperf"
      {"semi-expanded", CSS_VAL_SEMI_EXPANDED},
#line 230 "cssvalues.gperf"
      {"pre-line", CSS_VAL_PRE_LINE},
#line 237 "cssvalues.gperf"
      {"bidi-override", CSS_VAL_BIDI_OVERRIDE},
#line 62 "cssvalues.gperf"
      {"extra-condensed", CSS_VAL_EXTRA_CONDENSED},
#line 95 "cssvalues.gperf"
      {"activecaption", CSS_VAL_ACTIVECAPTION},
#line 198 "cssvalues.gperf"
      {"table-caption", CSS_VAL_TABLE_CAPTION},
#line 154 "cssvalues.gperf"
      {"-khtml-lao", CSS_VAL__KHTML_LAO},
#line 143 "cssvalues.gperf"
      {"-khtml-center", CSS_VAL__KHTML_CENTER},
#line 54 "cssvalues.gperf"
      {"x-large", CSS_VAL_X_LARGE},
#line 30 "cssvalues.gperf"
      {"message-box", CSS_VAL_MESSAGE_BOX},
#line 203 "cssvalues.gperf"
      {"progress", CSS_VAL_PROGRESS},
#line 177 "cssvalues.gperf"
      {"hiragana", CSS_VAL_HIRAGANA},
#line 171 "cssvalues.gperf"
      {"lower-greek", CSS_VAL_LOWER_GREEK},
#line 150 "cssvalues.gperf"
      {"-khtml-diamond", CSS_VAL__KHTML_DIAMOND},
#line 141 "cssvalues.gperf"
      {"-khtml-left", CSS_VAL__KHTML_LEFT},
#line 61 "cssvalues.gperf"
      {"ultra-condensed", CSS_VAL_ULTRA_CONDENSED},
#line 158 "cssvalues.gperf"
      {"-khtml-tibetan", CSS_VAL__KHTML_TIBETAN},
#line 124 "cssvalues.gperf"
      {"repeat-x", CSS_VAL_REPEAT_X},
#line 265 "cssvalues.gperf"
      {"-khtml-normal", CSS_VAL__KHTML_NORMAL},
#line 113 "cssvalues.gperf"
      {"threeddarkshadow", CSS_VAL_THREEDDARKSHADOW},
#line 219 "cssvalues.gperf"
      {"uppercase", CSS_VAL_UPPERCASE},
#line 125 "cssvalues.gperf"
      {"repeat-y", CSS_VAL_REPEAT_Y},
#line 136 "cssvalues.gperf"
      {"-khtml-auto", CSS_VAL__KHTML_AUTO},
#line 163 "cssvalues.gperf"
      {"georgian", CSS_VAL_GEORGIAN},
#line 109 "cssvalues.gperf"
      {"infobackground", CSS_VAL_INFOBACKGROUND},
#line 16 "cssvalues.gperf"
      {"-khtml-native", CSS_VAL__KHTML_NATIVE},
#line 157 "cssvalues.gperf"
      {"-khtml-thai", CSS_VAL__KHTML_THAI},
#line 224 "cssvalues.gperf"
      {"no-close-quote", CSS_VAL_NO_CLOSE_QUOTE},
#line 173 "cssvalues.gperf"
      {"lower-alpha", CSS_VAL_LOWER_ALPHA},
#line 156 "cssvalues.gperf"
      {"-khtml-urdu", CSS_VAL__KHTML_URDU},
#line 223 "cssvalues.gperf"
      {"close-quote", CSS_VAL_CLOSE_QUOTE},
#line 104 "cssvalues.gperf"
      {"highlight", CSS_VAL_HIGHLIGHT},
#line 231 "cssvalues.gperf"
      {"-khtml-nowrap", CSS_VAL__KHTML_NOWRAP},
#line 67 "cssvalues.gperf"
      {"extra-expanded", CSS_VAL_EXTRA_EXPANDED},
#line 105 "cssvalues.gperf"
      {"highlighttext", CSS_VAL_HIGHLIGHTTEXT},
#line 155 "cssvalues.gperf"
      {"-khtml-persian", CSS_VAL__KHTML_PERSIAN},
#line 116 "cssvalues.gperf"
      {"threedlightshadow", CSS_VAL_THREEDLIGHTSHADOW},
#line 229 "cssvalues.gperf"
      {"pre-wrap", CSS_VAL_PRE_WRAP},
#line 96 "cssvalues.gperf"
      {"appworkspace", CSS_VAL_APPWORKSPACE},
#line 226 "cssvalues.gperf"
      {"open-quote", CSS_VAL_OPEN_QUOTE},
#line 68 "cssvalues.gperf"
      {"ultra-expanded", CSS_VAL_ULTRA_EXPANDED},
#line 176 "cssvalues.gperf"
      {"upper-latin", CSS_VAL_UPPER_LATIN},
#line 225 "cssvalues.gperf"
      {"no-open-quote", CSS_VAL_NO_OPEN_QUOTE},
#line 250 "cssvalues.gperf"
      {"line-through", CSS_VAL_LINE_THROUGH},
#line 142 "cssvalues.gperf"
      {"-khtml-right", CSS_VAL__KHTML_RIGHT},
#line 164 "cssvalues.gperf"
      {"cjk-ideographic", CSS_VAL_CJK_IDEOGRAPHIC},
#line 160 "cssvalues.gperf"
      {"upper-roman", CSS_VAL_UPPER_ROMAN},
#line 135 "cssvalues.gperf"
      {"-khtml-baseline-middle", CSS_VAL__KHTML_BASELINE_MIDDLE},
#line 153 "cssvalues.gperf"
      {"-khtml-arabic-indic", CSS_VAL__KHTML_ARABIC_INDIC},
#line 152 "cssvalues.gperf"
      {"decimal-leading-zero", CSS_VAL_DECIMAL_LEADING_ZERO},
#line 115 "cssvalues.gperf"
      {"threedhighlight", CSS_VAL_THREEDHIGHLIGHT},
#line 180 "cssvalues.gperf"
      {"katakana-iroha", CSS_VAL_KATAKANA_IROHA},
#line 99 "cssvalues.gperf"
      {"buttonhighlight", CSS_VAL_BUTTONHIGHLIGHT},
#line 56 "cssvalues.gperf"
      {"-khtml-xxx-large", CSS_VAL__KHTML_XXX_LARGE},
#line 191 "cssvalues.gperf"
      {"table-row-group", CSS_VAL_TABLE_ROW_GROUP},
#line 182 "cssvalues.gperf"
      {"-khtml-close-quote", CSS_VAL__KHTML_CLOSE_QUOTE},
#line 179 "cssvalues.gperf"
      {"hiragana-iroha", CSS_VAL_HIRAGANA_IROHA},
#line 195 "cssvalues.gperf"
      {"table-column-group", CSS_VAL_TABLE_COLUMN_GROUP},
#line 266 "cssvalues.gperf"
      {"-khtml-around-floats", CSS_VAL__KHTML_AROUND_FLOATS},
#line 175 "cssvalues.gperf"
      {"upper-alpha", CSS_VAL_UPPER_ALPHA},
#line 181 "cssvalues.gperf"
      {"-khtml-open-quote", CSS_VAL__KHTML_OPEN_QUOTE},
#line 193 "cssvalues.gperf"
      {"table-footer-group", CSS_VAL_TABLE_FOOTER_GROUP},
#line 192 "cssvalues.gperf"
      {"table-header-group", CSS_VAL_TABLE_HEADER_GROUP},
#line 165 "cssvalues.gperf"
      {"-khtml-japanese-formal", CSS_VAL__KHTML_JAPANESE_FORMAL},
#line 166 "cssvalues.gperf"
      {"-khtml-japanese-informal", CSS_VAL__KHTML_JAPANESE_INFORMAL},
#line 172 "cssvalues.gperf"
      {"-khtml-upper-greek", CSS_VAL__KHTML_UPPER_GREEK},
#line 169 "cssvalues.gperf"
      {"-khtml-trad-chinese-formal", CSS_VAL__KHTML_TRAD_CHINESE_FORMAL},
#line 170 "cssvalues.gperf"
      {"-khtml-trad-chinese-informal", CSS_VAL__KHTML_TRAD_CHINESE_INFORMAL},
#line 167 "cssvalues.gperf"
      {"-khtml-simp-chinese-formal", CSS_VAL__KHTML_SIMP_CHINESE_FORMAL},
#line 168 "cssvalues.gperf"
      {"-khtml-simp-chinese-informal", CSS_VAL__KHTML_SIMP_CHINESE_INFORMAL}
    };

  static const short lookup[] =
    {
        0,  -1,  -1,  -1,  -1,   1,  -1,  -1,  -1,  -1,
        2,  -1,  -1,  -1,  -1,   3,  -1,  -1,  -1,  -1,
        4,  -1,  -1,  -1,  -1,   5,  -1,  -1,   6,  -1,
        7,  -1,  -1,  -1,  -1,   8,  -1,  -1,  -1,  -1,
        9,  -1,  -1,  -1,  -1,  10,  -1,  -1,  -1,  -1,
       11,  -1,  -1,  -1,  -1,  12,  -1,  -1,  -1,  -1,
       13,  14,  -1,  -1,  -1,  15,  -1,  -1,  -1,  -1,
       16,  -1,  -1,  -1,  -1,  17,  -1,  -1,  -1,  -1,
       18,  -1,  -1,  -1,  -1,  19,  -1,  -1,  -1,  -1,
       20,  -1,  -1,  -1,  -1,  21,  -1,  -1,  22,  -1,
       23,  -1,  -1,  24,  -1,  25,  -1,  -1,  26,  -1,
       27,  -1,  -1,  -1,  -1,  28,  -1,  -1,  -1,  29,
       30,  -1,  -1,  31,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  32,  -1,  -1,  -1,  -1,  -1,  -1,
       33,  -1,  -1,  -1,  -1,  34,  -1,  -1,  -1,  -1,
       35,  -1,  -1,  36,  -1,  -1,  -1,  -1,  37,  -1,
       38,  -1,  -1,  -1,  -1,  39,  40,  -1,  41,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  42,  -1,  -1,  -1,  -1,
       43,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  44,  -1,
       45,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  46,  -1,
       -1,  -1,  -1,  -1,  -1,  47,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  48,  -1,  -1,  -1,  -1,
       49,  -1,  -1,  -1,  -1,  50,  -1,  -1,  51,  -1,
       52,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  53,  -1,
       54,  -1,  -1,  -1,  -1,  -1,  55,  -1,  -1,  -1,
       56,  -1,  -1,  -1,  -1,  57,  -1,  -1,  -1,  -1,
       58,  -1,  -1,  59,  -1,  -1,  -1,  -1,  -1,  -1,
       60,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       61,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  62,  -1,
       63,  -1,  -1,  64,  -1,  65,  66,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  67,  -1,  -1,  68,  -1,
       69,  -1,  -1,  -1,  -1,  70,  -1,  -1,  71,  -1,
       -1,  -1,  -1,  72,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  73,  -1,  -1,  -1,  -1,  -1,  -1,
       74,  -1,  -1,  -1,  -1,  75,  -1,  -1,  76,  -1,
       -1,  -1,  -1,  77,  -1,  -1,  -1,  -1,  78,  -1,
       79,  -1,  -1,  -1,  -1,  80,  81,  -1,  82,  -1,
       83,  -1,  -1,  84,  -1,  85,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  86,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       87,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  88,  -1,
       89,  -1,  -1,  -1,  -1,  90,  -1,  -1,  -1,  -1,
       91,  92,  -1,  -1,  -1,  93,  94,  -1,  95,  -1,
       96,  -1,  -1,  97,  -1,  -1,  -1,  -1,  98,  -1,
       99, 100,  -1, 101,  -1, 102,  -1,  -1,  -1,  -1,
      103,  -1,  -1, 104,  -1, 105,  -1,  -1,  -1,  -1,
       -1,  -1,  -1, 106,  -1, 107,  -1,  -1,  -1,  -1,
      108,  -1,  -1,  -1,  -1, 109,  -1,  -1,  -1,  -1,
      110,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 111,  -1,
       -1,  -1,  -1,  -1,  -1, 112,  -1,  -1, 113,  -1,
       -1,  -1,  -1,  -1,  -1, 114,  -1,  -1,  -1,  -1,
      115,  -1,  -1, 116,  -1, 117,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1, 118,  -1,  -1, 119,  -1,
       -1,  -1,  -1, 120,  -1, 121,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1, 122,  -1,  -1, 123,  -1,
      124,  -1,  -1,  -1,  -1, 125,  -1,  -1, 126,  -1,
      127,  -1,  -1,  -1,  -1, 128,  -1,  -1, 129,  -1,
      130,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
      131,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 132,  -1,
      133,  -1,  -1, 134,  -1, 135,  -1,  -1,  -1,  -1,
      136,  -1,  -1,  -1,  -1,  -1, 137,  -1,  -1,  -1,
      138,  -1,  -1, 139,  -1,  -1,  -1,  -1, 140,  -1,
      141,  -1,  -1,  -1,  -1, 142,  -1,  -1, 143,  -1,
      144, 145,  -1,  -1,  -1, 146,  -1,  -1, 147,  -1,
       -1,  -1,  -1,  -1,  -1,  -1, 148,  -1,  -1,  -1,
       -1,  -1,  -1, 149,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1, 150,  -1,  -1,  -1,  -1, 151,  -1,
      152,  -1,  -1,  -1,  -1, 153,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1, 154,  -1,  -1,  -1,  -1,
       -1,  -1,  -1, 155,  -1,  -1,  -1,  -1,  -1,  -1,
      156,  -1,  -1,  -1,  -1, 157,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 158,  -1,
      159,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 160,  -1,
      161,  -1,  -1, 162,  -1,  -1,  -1,  -1, 163,  -1,
       -1,  -1,  -1, 164,  -1, 165,  -1,  -1,  -1,  -1,
       -1,  -1,  -1, 166,  -1,  -1,  -1,  -1,  -1,  -1,
      167,  -1,  -1,  -1,  -1, 168,  -1,  -1, 169,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
      170,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 171,  -1,
      172,  -1,  -1,  -1,  -1, 173,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1, 174,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1, 175,  -1,  -1,  -1,
      176,  -1,  -1,  -1,  -1, 177,  -1,  -1,  -1,  -1,
      178,  -1,  -1,  -1,  -1, 179,  -1,  -1,  -1,  -1,
      180,  -1,  -1,  -1,  -1, 181,  -1,  -1, 182,  -1,
      183,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 184,  -1,
       -1,  -1,  -1,  -1,  -1, 185,  -1,  -1,  -1,  -1,
      186,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1, 187,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1, 188,  -1,  -1,  -1,  -1,
      189,  -1,  -1, 190,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1, 191,  -1,  -1,  -1,  -1,  -1,  -1,
      192,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
      193,  -1,  -1,  -1,  -1, 194,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 195,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 196,  -1,
      197,  -1,  -1,  -1,  -1, 198,  -1,  -1, 199,  -1,
      200,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 201,  -1,
       -1,  -1,  -1,  -1,  -1, 202,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
      203,  -1,  -1, 204,  -1,  -1,  -1,  -1,  -1,  -1,
      205,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 206,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1, 207,  -1,  -1,  -1,  -1, 208,  -1,
      209,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -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,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1, 211,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 212,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1, 213,  -1, 214,  -1,  -1,  -1,  -1,
      215,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 216,  -1,
      217,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1, 218,  -1,  -1,  -1,  -1,
      219,  -1,  -1,  -1,  -1, 220,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 221,  -1,
       -1,  -1,  -1,  -1,  -1, 222,  -1,  -1, 223,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
      224,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1, 225,  -1,  -1,  -1,  -1,  -1,  -1,
      226,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -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,  -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,  -1,
       -1,  -1,  -1, 229,  -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, 231,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 232,  -1,
      233,  -1,  -1,  -1,  -1, 234,  -1,  -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, 236,  -1,
       -1, 237,  -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,  -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, 241,  -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,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -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, 244,  -1,
       -1,  -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,  -1,  -1,  -1,  -1,  -1,
      247,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
      248,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1, 249,  -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, 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,  -1,  -1,  -1,  -1,
       -1,  -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, 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,
      254,  -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,  -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,  -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, 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, 259,  -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,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -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,  -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, 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,
      264,  -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,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -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,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 267,  -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, 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,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -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,
      271,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
       -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
      272,  -1,  -1,  -1,  -1, 273
    };

  if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
    {
      register int key = hash_val (str, len);

      if (key <= MAX_HASH_VALUE && key >= 0)
        {
          register int index = lookup[key];

          if (index >= 0)
            {
              register const char *s = wordlist_value[index].name;

              if (*str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] == '\0')
                return &wordlist_value[index];
            }
        }
    }
  return 0;
}