All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.squarespace.cldr.plurals.PluralRules Maven / Gradle / Ivy

//
//
// AUTO-GENERATED CLASS - DO NOT EDIT
//
//
package com.squarespace.cldr.plurals;

import com.squarespace.cldr.numbers.NumberOperands;
import java.lang.String;

public class PluralRules extends PluralRulesBase {
  /**
   * n = 0
   */
  private static final Condition COND_0 = (o) -> {
    long zz = o.n();
    if (!(zz == 0)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n = 1
   */
  private static final Condition COND_1 = (o) -> {
    long zz = o.n();
    if (!(zz == 1)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * i = 0..1
   */
  private static final Condition COND_2 = (o) -> {
    long zz = o.i();
    if (!(zz >= 0 && zz <= 1)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * v = 0 and i = 1,2,3
   */
  private static final Condition COND_3 = (o) -> {
    long zz = o.v();
    if (!(zz == 0)) {
      return false;
    }
    zz = o.i();
    if (!((zz == 1) || (zz == 2) || (zz == 3))) {
      return false;
    }
    return true;
  }
  ;

  /**
   * v = 0 and i % 10 != 4,6,9
   */
  private static final Condition COND_4 = (o) -> {
    long zz = o.v();
    if (!(zz == 0)) {
      return false;
    }
    zz = o.i() % 10L;
    if ((zz == 4) || (zz == 6) || (zz == 9)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * v != 0 and f % 10 != 4,6,9
   */
  private static final Condition COND_5 = (o) -> {
    long zz = o.v();
    if ((zz == 0)) {
      return false;
    }
    zz = o.f() % 10L;
    if ((zz == 4) || (zz == 6) || (zz == 9)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n = 0..1
   */
  private static final Condition COND_6 = (o) -> {
    long zz = o.n();
    if (!(zz >= 0 && zz <= 1)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * i = 0
   */
  private static final Condition COND_7 = (o) -> {
    long zz = o.i();
    if (!(zz == 0)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n = 2
   */
  private static final Condition COND_8 = (o) -> {
    long zz = o.n();
    if (!(zz == 2)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n % 100 = 3..10
   */
  private static final Condition COND_9 = (o) -> {
    long zz = o.n() % 100L;
    if (!(zz >= 3 && zz <= 10)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n % 100 = 11..99
   */
  private static final Condition COND_10 = (o) -> {
    long zz = o.n() % 100L;
    if (!(zz >= 11 && zz <= 99)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * i = 1 and v = 0
   */
  private static final Condition COND_11 = (o) -> {
    long zz = o.i();
    if (!(zz == 1)) {
      return false;
    }
    zz = o.v();
    if (!(zz == 0)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * v != 0
   */
  private static final Condition COND_12 = (o) -> {
    long zz = o.v();
    if ((zz == 0)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n != 1 and n % 100 = 1..19
   */
  private static final Condition COND_13 = (o) -> {
    long zz = o.n();
    if ((zz == 1)) {
      return false;
    }
    zz = o.n() % 100L;
    if (!(zz >= 1 && zz <= 19)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n % 10 = 1 and n % 100 != 11
   */
  private static final Condition COND_14 = (o) -> {
    long zz = o.n() % 10L;
    if (!(zz == 1)) {
      return false;
    }
    zz = o.n() % 100L;
    if ((zz == 11)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n % 10 = 2..4 and n % 100 != 12..14
   */
  private static final Condition COND_15 = (o) -> {
    long zz = o.n() % 10L;
    if (!(zz >= 2 && zz <= 4)) {
      return false;
    }
    zz = o.n() % 100L;
    if ((zz >= 12 && zz <= 14)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n % 10 = 0
   */
  private static final Condition COND_16 = (o) -> {
    long zz = o.n() % 10L;
    if (!(zz == 0)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n % 10 = 5..9
   */
  private static final Condition COND_17 = (o) -> {
    long zz = o.n() % 10L;
    if (!(zz >= 5 && zz <= 9)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n % 100 = 11..14
   */
  private static final Condition COND_18 = (o) -> {
    long zz = o.n() % 100L;
    if (!(zz >= 11 && zz <= 14)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * v = 0 and i % 10 = 1 and i % 100 != 11
   */
  private static final Condition COND_19 = (o) -> {
    long zz = o.v();
    if (!(zz == 0)) {
      return false;
    }
    zz = o.i() % 10L;
    if (!(zz == 1)) {
      return false;
    }
    zz = o.i() % 100L;
    if ((zz == 11)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * v = 0 and i % 10 = 2..4 and i % 100 != 12..14
   */
  private static final Condition COND_20 = (o) -> {
    long zz = o.v();
    if (!(zz == 0)) {
      return false;
    }
    zz = o.i() % 10L;
    if (!(zz >= 2 && zz <= 4)) {
      return false;
    }
    zz = o.i() % 100L;
    if ((zz >= 12 && zz <= 14)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * v = 0 and i % 10 = 0
   */
  private static final Condition COND_21 = (o) -> {
    long zz = o.v();
    if (!(zz == 0)) {
      return false;
    }
    zz = o.i() % 10L;
    if (!(zz == 0)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * v = 0 and i % 10 = 5..9
   */
  private static final Condition COND_22 = (o) -> {
    long zz = o.v();
    if (!(zz == 0)) {
      return false;
    }
    zz = o.i() % 10L;
    if (!(zz >= 5 && zz <= 9)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * v = 0 and i % 100 = 11..14
   */
  private static final Condition COND_23 = (o) -> {
    long zz = o.v();
    if (!(zz == 0)) {
      return false;
    }
    zz = o.i() % 100L;
    if (!(zz >= 11 && zz <= 14)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n % 10 = 1 and n % 100 != 11,71,91
   */
  private static final Condition COND_24 = (o) -> {
    long zz = o.n() % 10L;
    if (!(zz == 1)) {
      return false;
    }
    zz = o.n() % 100L;
    if ((zz == 11) || (zz == 71) || (zz == 91)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n % 10 = 2 and n % 100 != 12,72,92
   */
  private static final Condition COND_25 = (o) -> {
    long zz = o.n() % 10L;
    if (!(zz == 2)) {
      return false;
    }
    zz = o.n() % 100L;
    if ((zz == 12) || (zz == 72) || (zz == 92)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n % 10 = 3..4,9 and n % 100 != 10..19,70..79,90..99
   */
  private static final Condition COND_26 = (o) -> {
    long zz = o.n() % 10L;
    if (!((zz >= 3 && zz <= 4) || (zz == 9))) {
      return false;
    }
    zz = o.n() % 100L;
    if ((zz >= 10 && zz <= 19) || (zz >= 70 && zz <= 79) || (zz >= 90 && zz <= 99)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n != 0 and n % 1000000 = 0
   */
  private static final Condition COND_27 = (o) -> {
    long zz = o.n();
    if ((zz == 0)) {
      return false;
    }
    zz = o.n() % 1000000L;
    if (!(zz == 0)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * f % 10 = 1 and f % 100 != 11
   */
  private static final Condition COND_28 = (o) -> {
    long zz = o.f() % 10L;
    if (!(zz == 1)) {
      return false;
    }
    zz = o.f() % 100L;
    if ((zz == 11)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * f % 10 = 2..4 and f % 100 != 12..14
   */
  private static final Condition COND_29 = (o) -> {
    long zz = o.f() % 10L;
    if (!(zz >= 2 && zz <= 4)) {
      return false;
    }
    zz = o.f() % 100L;
    if ((zz >= 12 && zz <= 14)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n = 0,1
   */
  private static final Condition COND_30 = (o) -> {
    long zz = o.n();
    if (!((zz == 0) || (zz == 1))) {
      return false;
    }
    return true;
  }
  ;

  /**
   * i = 0 and f = 1
   */
  private static final Condition COND_31 = (o) -> {
    long zz = o.i();
    if (!(zz == 0)) {
      return false;
    }
    zz = o.f();
    if (!(zz == 1)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * i = 2..4 and v = 0
   */
  private static final Condition COND_32 = (o) -> {
    long zz = o.i();
    if (!(zz >= 2 && zz <= 4)) {
      return false;
    }
    zz = o.v();
    if (!(zz == 0)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * v = 0 and i % 100 = 1
   */
  private static final Condition COND_33 = (o) -> {
    long zz = o.v();
    if (!(zz == 0)) {
      return false;
    }
    zz = o.i() % 100L;
    if (!(zz == 1)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * v = 0 and i % 100 = 2
   */
  private static final Condition COND_34 = (o) -> {
    long zz = o.v();
    if (!(zz == 0)) {
      return false;
    }
    zz = o.i() % 100L;
    if (!(zz == 2)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * v = 0 and i % 100 = 3..4
   */
  private static final Condition COND_35 = (o) -> {
    long zz = o.v();
    if (!(zz == 0)) {
      return false;
    }
    zz = o.i() % 100L;
    if (!(zz >= 3 && zz <= 4)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n = 3
   */
  private static final Condition COND_36 = (o) -> {
    long zz = o.n();
    if (!(zz == 3)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n = 6
   */
  private static final Condition COND_37 = (o) -> {
    long zz = o.n();
    if (!(zz == 6)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * t != 0 and i = 0,1
   */
  private static final Condition COND_38 = (o) -> {
    long zz = o.t();
    if ((zz == 0)) {
      return false;
    }
    zz = o.i();
    if (!((zz == 0) || (zz == 1))) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n % 100 = 11..19
   */
  private static final Condition COND_39 = (o) -> {
    long zz = o.n() % 100L;
    if (!(zz >= 11 && zz <= 19)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * v = 2 and f % 100 = 11..19
   */
  private static final Condition COND_40 = (o) -> {
    long zz = o.v();
    if (!(zz == 2)) {
      return false;
    }
    zz = o.f() % 100L;
    if (!(zz >= 11 && zz <= 19)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * v = 2 and f % 10 = 1 and f % 100 != 11
   */
  private static final Condition COND_41 = (o) -> {
    long zz = o.v();
    if (!(zz == 2)) {
      return false;
    }
    zz = o.f() % 10L;
    if (!(zz == 1)) {
      return false;
    }
    zz = o.f() % 100L;
    if ((zz == 11)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * v != 2 and f % 10 = 1
   */
  private static final Condition COND_42 = (o) -> {
    long zz = o.v();
    if ((zz == 2)) {
      return false;
    }
    zz = o.f() % 10L;
    if (!(zz == 1)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n = 11..99
   */
  private static final Condition COND_43 = (o) -> {
    long zz = o.n();
    if (!(zz >= 11 && zz <= 99)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n = 2..10
   */
  private static final Condition COND_44 = (o) -> {
    long zz = o.n();
    if (!(zz >= 2 && zz <= 10)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * f % 100 = 1
   */
  private static final Condition COND_45 = (o) -> {
    long zz = o.f() % 100L;
    if (!(zz == 1)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * f % 100 = 2
   */
  private static final Condition COND_46 = (o) -> {
    long zz = o.f() % 100L;
    if (!(zz == 2)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * f % 100 = 3..4
   */
  private static final Condition COND_47 = (o) -> {
    long zz = o.f() % 100L;
    if (!(zz >= 3 && zz <= 4)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * i = 0,1
   */
  private static final Condition COND_48 = (o) -> {
    long zz = o.i();
    if (!((zz == 0) || (zz == 1))) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n = 3..6
   */
  private static final Condition COND_49 = (o) -> {
    long zz = o.n();
    if (!(zz >= 3 && zz <= 6)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n = 7..10
   */
  private static final Condition COND_50 = (o) -> {
    long zz = o.n();
    if (!(zz >= 7 && zz <= 10)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n = 1,11
   */
  private static final Condition COND_51 = (o) -> {
    long zz = o.n();
    if (!((zz == 1) || (zz == 11))) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n = 2,12
   */
  private static final Condition COND_52 = (o) -> {
    long zz = o.n();
    if (!((zz == 2) || (zz == 12))) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n = 3..10,13..19
   */
  private static final Condition COND_53 = (o) -> {
    long zz = o.n();
    if (!((zz >= 3 && zz <= 10) || (zz >= 13 && zz <= 19))) {
      return false;
    }
    return true;
  }
  ;

  /**
   * v = 0 and i % 10 = 1
   */
  private static final Condition COND_54 = (o) -> {
    long zz = o.v();
    if (!(zz == 0)) {
      return false;
    }
    zz = o.i() % 10L;
    if (!(zz == 1)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * v = 0 and i % 10 = 2
   */
  private static final Condition COND_55 = (o) -> {
    long zz = o.v();
    if (!(zz == 0)) {
      return false;
    }
    zz = o.i() % 10L;
    if (!(zz == 2)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * v = 0 and i % 100 = 0,20,40,60,80
   */
  private static final Condition COND_56 = (o) -> {
    long zz = o.v();
    if (!(zz == 0)) {
      return false;
    }
    zz = o.i() % 100L;
    if (!((zz == 0) || (zz == 20) || (zz == 40) || (zz == 60) || (zz == 80))) {
      return false;
    }
    return true;
  }
  ;

  /**
   * i = 2 and v = 0
   */
  private static final Condition COND_57 = (o) -> {
    long zz = o.i();
    if (!(zz == 2)) {
      return false;
    }
    zz = o.v();
    if (!(zz == 0)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * v = 0 and n != 0..10 and n % 10 = 0
   */
  private static final Condition COND_58 = (o) -> {
    long zz = o.v();
    if (!(zz == 0)) {
      return false;
    }
    zz = o.n();
    if ((zz >= 0 && zz <= 10)) {
      return false;
    }
    zz = o.n() % 10L;
    if (!(zz == 0)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * t = 0 and i % 10 = 1 and i % 100 != 11
   */
  private static final Condition COND_59 = (o) -> {
    long zz = o.t();
    if (!(zz == 0)) {
      return false;
    }
    zz = o.i() % 10L;
    if (!(zz == 1)) {
      return false;
    }
    zz = o.i() % 100L;
    if ((zz == 11)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * t != 0
   */
  private static final Condition COND_60 = (o) -> {
    long zz = o.t();
    if ((zz == 0)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n % 10 = 1 and n % 100 != 11..19
   */
  private static final Condition COND_61 = (o) -> {
    long zz = o.n() % 10L;
    if (!(zz == 1)) {
      return false;
    }
    zz = o.n() % 100L;
    if ((zz >= 11 && zz <= 19)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n % 10 = 2..9 and n % 100 != 11..19
   */
  private static final Condition COND_62 = (o) -> {
    long zz = o.n() % 10L;
    if (!(zz >= 2 && zz <= 9)) {
      return false;
    }
    zz = o.n() % 100L;
    if ((zz >= 11 && zz <= 19)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * f != 0
   */
  private static final Condition COND_63 = (o) -> {
    long zz = o.f();
    if ((zz == 0)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * i = 0,1 and n != 0
   */
  private static final Condition COND_64 = (o) -> {
    long zz = o.i();
    if (!((zz == 0) || (zz == 1))) {
      return false;
    }
    zz = o.n();
    if ((zz == 0)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * f % 10 = 1
   */
  private static final Condition COND_65 = (o) -> {
    long zz = o.f() % 10L;
    if (!(zz == 1)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n % 100 = 2..10
   */
  private static final Condition COND_66 = (o) -> {
    long zz = o.n() % 100L;
    if (!(zz >= 2 && zz <= 10)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * v = 0 and i != 1 and i % 10 = 0..1
   */
  private static final Condition COND_67 = (o) -> {
    long zz = o.v();
    if (!(zz == 0)) {
      return false;
    }
    zz = o.i();
    if ((zz == 1)) {
      return false;
    }
    zz = o.i() % 10L;
    if (!(zz >= 0 && zz <= 1)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * v = 0 and i % 100 = 12..14
   */
  private static final Condition COND_68 = (o) -> {
    long zz = o.v();
    if (!(zz == 0)) {
      return false;
    }
    zz = o.i() % 100L;
    if (!(zz >= 12 && zz <= 14)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n = 2,3
   */
  private static final Condition COND_69 = (o) -> {
    long zz = o.n();
    if (!((zz == 2) || (zz == 3))) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n = 4
   */
  private static final Condition COND_70 = (o) -> {
    long zz = o.n();
    if (!(zz == 4)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n = 1,5
   */
  private static final Condition COND_71 = (o) -> {
    long zz = o.n();
    if (!((zz == 1) || (zz == 5))) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n % 10 = 3 and n % 100 != 13
   */
  private static final Condition COND_72 = (o) -> {
    long zz = o.n() % 10L;
    if (!(zz == 3)) {
      return false;
    }
    zz = o.n() % 100L;
    if ((zz == 13)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * i % 10 = 1 and i % 100 != 11
   */
  private static final Condition COND_73 = (o) -> {
    long zz = o.i() % 10L;
    if (!(zz == 1)) {
      return false;
    }
    zz = o.i() % 100L;
    if ((zz == 11)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * i % 10 = 2 and i % 100 != 12
   */
  private static final Condition COND_74 = (o) -> {
    long zz = o.i() % 10L;
    if (!(zz == 2)) {
      return false;
    }
    zz = o.i() % 100L;
    if ((zz == 12)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * i % 10 = 7,8 and i % 100 != 17,18
   */
  private static final Condition COND_75 = (o) -> {
    long zz = o.i() % 10L;
    if (!((zz == 7) || (zz == 8))) {
      return false;
    }
    zz = o.i() % 100L;
    if ((zz == 17) || (zz == 18)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n % 10 = 2 and n % 100 != 12
   */
  private static final Condition COND_76 = (o) -> {
    long zz = o.n() % 10L;
    if (!(zz == 2)) {
      return false;
    }
    zz = o.n() % 100L;
    if ((zz == 12)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n = 11,8,80,800
   */
  private static final Condition COND_77 = (o) -> {
    long zz = o.n();
    if (!((zz == 11) || (zz == 8) || (zz == 80) || (zz == 800))) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n = 1,5,7,8,9,10
   */
  private static final Condition COND_78 = (o) -> {
    long zz = o.n();
    if (!((zz == 1) || (zz == 5) || (zz == 7) || (zz == 8) || (zz == 9) || (zz == 10))) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n = 1..4
   */
  private static final Condition COND_79 = (o) -> {
    long zz = o.n();
    if (!(zz >= 1 && zz <= 4)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * i % 10 = 1,2,5,7,8
   */
  private static final Condition COND_80 = (o) -> {
    long zz = o.i() % 10L;
    if (!((zz == 1) || (zz == 2) || (zz == 5) || (zz == 7) || (zz == 8))) {
      return false;
    }
    return true;
  }
  ;

  /**
   * i % 100 = 20,50,70,80
   */
  private static final Condition COND_81 = (o) -> {
    long zz = o.i() % 100L;
    if (!((zz == 20) || (zz == 50) || (zz == 70) || (zz == 80))) {
      return false;
    }
    return true;
  }
  ;

  /**
   * i % 10 = 3,4
   */
  private static final Condition COND_82 = (o) -> {
    long zz = o.i() % 10L;
    if (!((zz == 3) || (zz == 4))) {
      return false;
    }
    return true;
  }
  ;

  /**
   * i % 1000 = 100,200,300,400,500,600,700,800,900
   */
  private static final Condition COND_83 = (o) -> {
    long zz = o.i() % 1000L;
    if (!((zz == 100) || (zz == 200) || (zz == 300) || (zz == 400) || (zz == 500) || (zz == 600) || (zz == 700) || (zz == 800) || (zz == 900))) {
      return false;
    }
    return true;
  }
  ;

  /**
   * i % 10 = 6
   */
  private static final Condition COND_84 = (o) -> {
    long zz = o.i() % 10L;
    if (!(zz == 6)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * i % 100 = 40,60,90
   */
  private static final Condition COND_85 = (o) -> {
    long zz = o.i() % 100L;
    if (!((zz == 40) || (zz == 60) || (zz == 90))) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n % 10 = 2,3 and n % 100 != 12,13
   */
  private static final Condition COND_86 = (o) -> {
    long zz = o.n() % 10L;
    if (!((zz == 2) || (zz == 3))) {
      return false;
    }
    zz = o.n() % 100L;
    if ((zz == 12) || (zz == 13)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * i = 1
   */
  private static final Condition COND_87 = (o) -> {
    long zz = o.i();
    if (!(zz == 1)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * i % 100 = 2..20,40,60,80
   */
  private static final Condition COND_88 = (o) -> {
    long zz = o.i() % 100L;
    if (!((zz >= 2 && zz <= 20) || (zz == 40) || (zz == 60) || (zz == 80))) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n = 1,3
   */
  private static final Condition COND_89 = (o) -> {
    long zz = o.n();
    if (!((zz == 1) || (zz == 3))) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n % 10 = 4 and n % 100 != 14
   */
  private static final Condition COND_90 = (o) -> {
    long zz = o.n() % 10L;
    if (!(zz == 4)) {
      return false;
    }
    zz = o.n() % 100L;
    if ((zz == 14)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n % 10 = 6
   */
  private static final Condition COND_91 = (o) -> {
    long zz = o.n() % 10L;
    if (!(zz == 6)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n % 10 = 9
   */
  private static final Condition COND_92 = (o) -> {
    long zz = o.n() % 10L;
    if (!(zz == 9)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n % 10 = 0 and n != 0
   */
  private static final Condition COND_93 = (o) -> {
    long zz = o.n() % 10L;
    if (!(zz == 0)) {
      return false;
    }
    zz = o.n();
    if ((zz == 0)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n % 10 = 1,2 and n % 100 != 11,12
   */
  private static final Condition COND_94 = (o) -> {
    long zz = o.n() % 10L;
    if (!((zz == 1) || (zz == 2))) {
      return false;
    }
    zz = o.n() % 100L;
    if ((zz == 11) || (zz == 12)) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n = 0,7,8,9
   */
  private static final Condition COND_95 = (o) -> {
    long zz = o.n();
    if (!((zz == 0) || (zz == 7) || (zz == 8) || (zz == 9))) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n = 3,4
   */
  private static final Condition COND_96 = (o) -> {
    long zz = o.n();
    if (!((zz == 3) || (zz == 4))) {
      return false;
    }
    return true;
  }
  ;

  /**
   * n = 5,6
   */
  private static final Condition COND_97 = (o) -> {
    long zz = o.n();
    if (!((zz == 5) || (zz == 6))) {
      return false;
    }
    return true;
  }
  ;

  public static PluralCategory evalCardinal(String language, NumberOperands o) {
    switch (language) {
      case "ksh":
            return evalCardinalKSH(o);
      case "nyn":
            return evalCardinalNYN(o);
      case "ps":
            return evalCardinalPS(o);
      case "pt":
            return evalCardinalPT(o);
      case "fil":
            return evalCardinalFIL(o);
      case "kcg":
            return evalCardinalKCG(o);
      case "mgo":
            return evalCardinalMGO(o);
      case "ssy":
            return evalCardinalSSY(o);
      case "teo":
            return evalCardinalTEO(o);
      case "af":
            return evalCardinalAF(o);
      case "brx":
            return evalCardinalBRX(o);
      case "ak":
            return evalCardinalAK(o);
      case "am":
            return evalCardinalAM(o);
      case "kde":
            return evalCardinalKDE(o);
      case "ar":
            return evalCardinalAR(o);
      case "as":
            return evalCardinalAS(o);
      case "jbo":
            return evalCardinalJBO(o);
      case "sdh":
            return evalCardinalSDH(o);
      case "az":
            return evalCardinalAZ(o);
      case "rm":
            return evalCardinalRM(o);
      case "ro":
            return evalCardinalRO(o);
      case "be":
            return evalCardinalBE(o);
      case "ru":
            return evalCardinalRU(o);
      case "bg":
            return evalCardinalBG(o);
      case "bh":
            return evalCardinalBH(o);
      case "kea":
            return evalCardinalKEA(o);
      case "bm":
            return evalCardinalBM(o);
      case "bn":
            return evalCardinalBN(o);
      case "bo":
            return evalCardinalBO(o);
      case "br":
            return evalCardinalBR(o);
      case "bs":
            return evalCardinalBS(o);
      case "xog":
            return evalCardinalXOG(o);
      case "se":
            return evalCardinalSE(o);
      case "sg":
            return evalCardinalSG(o);
      case "sh":
            return evalCardinalSH(o);
      case "si":
            return evalCardinalSI(o);
      case "seh":
            return evalCardinalSEH(o);
      case "sk":
            return evalCardinalSK(o);
      case "sl":
            return evalCardinalSL(o);
      case "sn":
            return evalCardinalSN(o);
      case "so":
            return evalCardinalSO(o);
      case "ca":
            return evalCardinalCA(o);
      case "sq":
            return evalCardinalSQ(o);
      case "sr":
            return evalCardinalSR(o);
      case "ses":
            return evalCardinalSES(o);
      case "ss":
            return evalCardinalSS(o);
      case "st":
            return evalCardinalST(o);
      case "ce":
            return evalCardinalCE(o);
      case "ars":
            return evalCardinalARS(o);
      case "sv":
            return evalCardinalSV(o);
      case "sw":
            return evalCardinalSW(o);
      case "ta":
            return evalCardinalTA(o);
      case "asa":
            return evalCardinalASA(o);
      case "cs":
            return evalCardinalCS(o);
      case "te":
            return evalCardinalTE(o);
      case "th":
            return evalCardinalTH(o);
      case "ti":
            return evalCardinalTI(o);
      case "cy":
            return evalCardinalCY(o);
      case "tk":
            return evalCardinalTK(o);
      case "tl":
            return evalCardinalTL(o);
      case "tn":
            return evalCardinalTN(o);
      case "to":
            return evalCardinalTO(o);
      case "da":
            return evalCardinalDA(o);
      case "tr":
            return evalCardinalTR(o);
      case "ts":
            return evalCardinalTS(o);
      case "de":
            return evalCardinalDE(o);
      case "cgg":
            return evalCardinalCGG(o);
      case "ast":
            return evalCardinalAST(o);
      case "bem":
            return evalCardinalBEM(o);
      case "dv":
            return evalCardinalDV(o);
      case "ug":
            return evalCardinalUG(o);
      case "tig":
            return evalCardinalTIG(o);
      case "bez":
            return evalCardinalBEZ(o);
      case "dz":
            return evalCardinalDZ(o);
      case "uk":
            return evalCardinalUK(o);
      case "ur":
            return evalCardinalUR(o);
      case "pap":
            return evalCardinalPAP(o);
      case "haw":
            return evalCardinalHAW(o);
      case "ee":
            return evalCardinalEE(o);
      case "prg":
            return evalCardinalPRG(o);
      case "uz":
            return evalCardinalUZ(o);
      case "tzm":
            return evalCardinalTZM(o);
      case "el":
            return evalCardinalEL(o);
      case "en":
            return evalCardinalEN(o);
      case "nnh":
            return evalCardinalNNH(o);
      case "eo":
            return evalCardinalEO(o);
      case "chr":
            return evalCardinalCHR(o);
      case "es":
            return evalCardinalES(o);
      case "et":
            return evalCardinalET(o);
      case "ve":
            return evalCardinalVE(o);
      case "eu":
            return evalCardinalEU(o);
      case "vi":
            return evalCardinalVI(o);
      case "shi":
            return evalCardinalSHI(o);
      case "hsb":
            return evalCardinalHSB(o);
      case "vo":
            return evalCardinalVO(o);
      case "fa":
            return evalCardinalFA(o);
      case "ff":
            return evalCardinalFF(o);
      case "fi":
            return evalCardinalFI(o);
      case "rwk":
            return evalCardinalRWK(o);
      case "yue":
            return evalCardinalYUE(o);
      case "fo":
            return evalCardinalFO(o);
      case "wa":
            return evalCardinalWA(o);
      case "fr":
            return evalCardinalFR(o);
      case "syr":
            return evalCardinalSYR(o);
      case "fy":
            return evalCardinalFY(o);
      case "jgo":
            return evalCardinalJGO(o);
      case "lkt":
            return evalCardinalLKT(o);
      case "root":
            return evalCardinalROOT(o);
      case "wo":
            return evalCardinalWO(o);
      case "ga":
            return evalCardinalGA(o);
      case "wae":
            return evalCardinalWAE(o);
      case "gd":
            return evalCardinalGD(o);
      case "gl":
            return evalCardinalGL(o);
      case "gu":
            return evalCardinalGU(o);
      case "gv":
            return evalCardinalGV(o);
      case "xh":
            return evalCardinalXH(o);
      case "ha":
            return evalCardinalHA(o);
      case "ckb":
            return evalCardinalCKB(o);
      case "he":
            return evalCardinalHE(o);
      case "hi":
            return evalCardinalHI(o);
      case "gsw":
            return evalCardinalGSW(o);
      case "hr":
            return evalCardinalHR(o);
      case "kkj":
            return evalCardinalKKJ(o);
      case "hu":
            return evalCardinalHU(o);
      case "nqo":
            return evalCardinalNQO(o);
      case "yi":
            return evalCardinalYI(o);
      case "hy":
            return evalCardinalHY(o);
      case "nah":
            return evalCardinalNAH(o);
      case "yo":
            return evalCardinalYO(o);
      case "id":
            return evalCardinalID(o);
      case "ig":
            return evalCardinalIG(o);
      case "naq":
            return evalCardinalNAQ(o);
      case "ii":
            return evalCardinalII(o);
      case "in":
            return evalCardinalIN(o);
      case "is":
            return evalCardinalIS(o);
      case "it":
            return evalCardinalIT(o);
      case "iu":
            return evalCardinalIU(o);
      case "iw":
            return evalCardinalIW(o);
      case "zh":
            return evalCardinalZH(o);
      case "ja":
            return evalCardinalJA(o);
      case "zu":
            return evalCardinalZU(o);
      case "ji":
            return evalCardinalJI(o);
      case "sma":
            return evalCardinalSMA(o);
      case "guw":
            return evalCardinalGUW(o);
      case "nso":
            return evalCardinalNSO(o);
      case "jv":
            return evalCardinalJV(o);
      case "jw":
            return evalCardinalJW(o);
      case "smi":
            return evalCardinalSMI(o);
      case "smj":
            return evalCardinalSMJ(o);
      case "smn":
            return evalCardinalSMN(o);
      case "ka":
            return evalCardinalKA(o);
      case "sms":
            return evalCardinalSMS(o);
      case "mas":
            return evalCardinalMAS(o);
      case "kk":
            return evalCardinalKK(o);
      case "kl":
            return evalCardinalKL(o);
      case "km":
            return evalCardinalKM(o);
      case "kn":
            return evalCardinalKN(o);
      case "ko":
            return evalCardinalKO(o);
      case "ks":
            return evalCardinalKS(o);
      case "ku":
            return evalCardinalKU(o);
      case "kw":
            return evalCardinalKW(o);
      case "ky":
            return evalCardinalKY(o);
      case "lb":
            return evalCardinalLB(o);
      case "lg":
            return evalCardinalLG(o);
      case "jmc":
            return evalCardinalJMC(o);
      case "fur":
            return evalCardinalFUR(o);
      case "ln":
            return evalCardinalLN(o);
      case "lo":
            return evalCardinalLO(o);
      case "lt":
            return evalCardinalLT(o);
      case "lv":
            return evalCardinalLV(o);
      case "vun":
            return evalCardinalVUN(o);
      case "lag":
            return evalCardinalLAG(o);
      case "mg":
            return evalCardinalMG(o);
      case "mk":
            return evalCardinalMK(o);
      case "ml":
            return evalCardinalML(o);
      case "mn":
            return evalCardinalMN(o);
      case "mo":
            return evalCardinalMO(o);
      case "mr":
            return evalCardinalMR(o);
      case "ms":
            return evalCardinalMS(o);
      case "mt":
            return evalCardinalMT(o);
      case "my":
            return evalCardinalMY(o);
      case "dsb":
            return evalCardinalDSB(o);
      case "nb":
            return evalCardinalNB(o);
      case "nd":
            return evalCardinalND(o);
      case "ne":
            return evalCardinalNE(o);
      case "nl":
            return evalCardinalNL(o);
      case "nn":
            return evalCardinalNN(o);
      case "no":
            return evalCardinalNO(o);
      case "nr":
            return evalCardinalNR(o);
      case "rof":
            return evalCardinalROF(o);
      case "ny":
            return evalCardinalNY(o);
      case "kab":
            return evalCardinalKAB(o);
      case "kaj":
            return evalCardinalKAJ(o);
      case "sah":
            return evalCardinalSAH(o);
      case "om":
            return evalCardinalOM(o);
      case "saq":
            return evalCardinalSAQ(o);
      case "or":
            return evalCardinalOR(o);
      case "os":
            return evalCardinalOS(o);
      case "pa":
            return evalCardinalPA(o);
      case "ksb":
            return evalCardinalKSB(o);
      case "pl":
            return evalCardinalPL(o);
      default:
            return null;
    }
  }

  private static PluralCategory evalCardinalKSH(NumberOperands o) {
    //   n = 0
    //   
    //   integer 0 
    //   decimal 0.0, 0.00, 0.000, 0.0000
    if (COND_0.eval(o)) {
      return PluralCategory.ZERO;
    }

    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalNYN(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalPS(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalPT(NumberOperands o) {
    //   i = 0..1
    //   
    //   integer 0, 1 
    //   decimal 0.0~1.5
    if (COND_2.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalFIL(NumberOperands o) {
    //   v = 0 and i = 1,2,3 or v = 0 and i % 10 != 4,6,9 or v != 0 and f % 10 != 4,6,9
    //   
    //   integer 0~3, 5, 7, 8, 10~13, 15, 17, 18, 20, 21, 100, 1000, 10000, 100000, 1000000, … 
    //   decimal 0.0~0.3, 0.5, 0.7, 0.8, 1.0~1.3, 1.5, 1.7, 1.8, 2.0, 2.1, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …
    if (COND_3.eval(o) || COND_4.eval(o) || COND_5.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalKCG(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalMGO(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalSSY(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalTEO(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalAF(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalBRX(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalAK(NumberOperands o) {
    //   n = 0..1
    //   
    //   integer 0, 1 
    //   decimal 0.0, 1.0, 0.00, 1.00, 0.000, 1.000, 0.0000, 1.0000
    if (COND_6.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalAM(NumberOperands o) {
    //   i = 0 or n = 1
    //   
    //   integer 0, 1 
    //   decimal 0.0~1.0, 0.00~0.04
    if (COND_7.eval(o) || COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalKDE(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalAR(NumberOperands o) {
    //   n = 0
    //   
    //   integer 0 
    //   decimal 0.0, 0.00, 0.000, 0.0000
    if (COND_0.eval(o)) {
      return PluralCategory.ZERO;
    }

    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    //   n = 2
    //   
    //   integer 2 
    //   decimal 2.0, 2.00, 2.000, 2.0000
    if (COND_8.eval(o)) {
      return PluralCategory.TWO;
    }

    //   n % 100 = 3..10
    //   
    //   integer 3~10, 103~110, 1003, … 
    //   decimal 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 103.0, 1003.0, …
    if (COND_9.eval(o)) {
      return PluralCategory.FEW;
    }

    //   n % 100 = 11..99
    //   
    //   integer 11~26, 111, 1011, … 
    //   decimal 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 111.0, 1011.0, …
    if (COND_10.eval(o)) {
      return PluralCategory.MANY;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalAS(NumberOperands o) {
    //   i = 0 or n = 1
    //   
    //   integer 0, 1 
    //   decimal 0.0~1.0, 0.00~0.04
    if (COND_7.eval(o) || COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalJBO(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalSDH(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalAZ(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalRM(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalRO(NumberOperands o) {
    //   i = 1 and v = 0
    //   
    //   integer 1
    if (COND_11.eval(o)) {
      return PluralCategory.ONE;
    }

    //   v != 0 or n = 0 or n != 1 and n % 100 = 1..19
    //   
    //   integer 0, 2~16, 101, 1001, … 
    //   decimal 0.0~1.5, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …
    if (COND_12.eval(o) || COND_0.eval(o) || COND_13.eval(o)) {
      return PluralCategory.FEW;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalBE(NumberOperands o) {
    //   n % 10 = 1 and n % 100 != 11
    //   
    //   integer 1, 21, 31, 41, 51, 61, 71, 81, 101, 1001, … 
    //   decimal 1.0, 21.0, 31.0, 41.0, 51.0, 61.0, 71.0, 81.0, 101.0, 1001.0, …
    if (COND_14.eval(o)) {
      return PluralCategory.ONE;
    }

    //   n % 10 = 2..4 and n % 100 != 12..14
    //   
    //   integer 2~4, 22~24, 32~34, 42~44, 52~54, 62, 102, 1002, … 
    //   decimal 2.0, 3.0, 4.0, 22.0, 23.0, 24.0, 32.0, 33.0, 102.0, 1002.0, …
    if (COND_15.eval(o)) {
      return PluralCategory.FEW;
    }

    //   n % 10 = 0 or n % 10 = 5..9 or n % 100 = 11..14
    //   
    //   integer 0, 5~19, 100, 1000, 10000, 100000, 1000000, … 
    //   decimal 0.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …
    if (COND_16.eval(o) || COND_17.eval(o) || COND_18.eval(o)) {
      return PluralCategory.MANY;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalRU(NumberOperands o) {
    //   v = 0 and i % 10 = 1 and i % 100 != 11
    //   
    //   integer 1, 21, 31, 41, 51, 61, 71, 81, 101, 1001, …
    if (COND_19.eval(o)) {
      return PluralCategory.ONE;
    }

    //   v = 0 and i % 10 = 2..4 and i % 100 != 12..14
    //   
    //   integer 2~4, 22~24, 32~34, 42~44, 52~54, 62, 102, 1002, …
    if (COND_20.eval(o)) {
      return PluralCategory.FEW;
    }

    //   v = 0 and i % 10 = 0 or v = 0 and i % 10 = 5..9 or v = 0 and i % 100 = 11..14
    //   
    //   integer 0, 5~19, 100, 1000, 10000, 100000, 1000000, …
    if (COND_21.eval(o) || COND_22.eval(o) || COND_23.eval(o)) {
      return PluralCategory.MANY;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalBG(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalBH(NumberOperands o) {
    //   n = 0..1
    //   
    //   integer 0, 1 
    //   decimal 0.0, 1.0, 0.00, 1.00, 0.000, 1.000, 0.0000, 1.0000
    if (COND_6.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalKEA(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalBM(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalBN(NumberOperands o) {
    //   i = 0 or n = 1
    //   
    //   integer 0, 1 
    //   decimal 0.0~1.0, 0.00~0.04
    if (COND_7.eval(o) || COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalBO(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalBR(NumberOperands o) {
    //   n % 10 = 1 and n % 100 != 11,71,91
    //   
    //   integer 1, 21, 31, 41, 51, 61, 81, 101, 1001, … 
    //   decimal 1.0, 21.0, 31.0, 41.0, 51.0, 61.0, 81.0, 101.0, 1001.0, …
    if (COND_24.eval(o)) {
      return PluralCategory.ONE;
    }

    //   n % 10 = 2 and n % 100 != 12,72,92
    //   
    //   integer 2, 22, 32, 42, 52, 62, 82, 102, 1002, … 
    //   decimal 2.0, 22.0, 32.0, 42.0, 52.0, 62.0, 82.0, 102.0, 1002.0, …
    if (COND_25.eval(o)) {
      return PluralCategory.TWO;
    }

    //   n % 10 = 3..4,9 and n % 100 != 10..19,70..79,90..99
    //   
    //   integer 3, 4, 9, 23, 24, 29, 33, 34, 39, 43, 44, 49, 103, 1003, … 
    //   decimal 3.0, 4.0, 9.0, 23.0, 24.0, 29.0, 33.0, 34.0, 103.0, 1003.0, …
    if (COND_26.eval(o)) {
      return PluralCategory.FEW;
    }

    //   n != 0 and n % 1000000 = 0
    //   
    //   integer 1000000, … 
    //   decimal 1000000.0, 1000000.00, 1000000.000, …
    if (COND_27.eval(o)) {
      return PluralCategory.MANY;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalBS(NumberOperands o) {
    //   v = 0 and i % 10 = 1 and i % 100 != 11 or f % 10 = 1 and f % 100 != 11
    //   
    //   integer 1, 21, 31, 41, 51, 61, 71, 81, 101, 1001, … 
    //   decimal 0.1, 1.1, 2.1, 3.1, 4.1, 5.1, 6.1, 7.1, 10.1, 100.1, 1000.1, …
    if (COND_19.eval(o) || COND_28.eval(o)) {
      return PluralCategory.ONE;
    }

    //   v = 0 and i % 10 = 2..4 and i % 100 != 12..14 or f % 10 = 2..4 and f % 100 != 12..14
    //   
    //   integer 2~4, 22~24, 32~34, 42~44, 52~54, 62, 102, 1002, … 
    //   decimal 0.2~0.4, 1.2~1.4, 2.2~2.4, 3.2~3.4, 4.2~4.4, 5.2, 10.2, 100.2, 1000.2, …
    if (COND_20.eval(o) || COND_29.eval(o)) {
      return PluralCategory.FEW;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalXOG(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalSE(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    //   n = 2
    //   
    //   integer 2 
    //   decimal 2.0, 2.00, 2.000, 2.0000
    if (COND_8.eval(o)) {
      return PluralCategory.TWO;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalSG(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalSH(NumberOperands o) {
    //   v = 0 and i % 10 = 1 and i % 100 != 11 or f % 10 = 1 and f % 100 != 11
    //   
    //   integer 1, 21, 31, 41, 51, 61, 71, 81, 101, 1001, … 
    //   decimal 0.1, 1.1, 2.1, 3.1, 4.1, 5.1, 6.1, 7.1, 10.1, 100.1, 1000.1, …
    if (COND_19.eval(o) || COND_28.eval(o)) {
      return PluralCategory.ONE;
    }

    //   v = 0 and i % 10 = 2..4 and i % 100 != 12..14 or f % 10 = 2..4 and f % 100 != 12..14
    //   
    //   integer 2~4, 22~24, 32~34, 42~44, 52~54, 62, 102, 1002, … 
    //   decimal 0.2~0.4, 1.2~1.4, 2.2~2.4, 3.2~3.4, 4.2~4.4, 5.2, 10.2, 100.2, 1000.2, …
    if (COND_20.eval(o) || COND_29.eval(o)) {
      return PluralCategory.FEW;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalSI(NumberOperands o) {
    //   n = 0,1 or i = 0 and f = 1
    //   
    //   integer 0, 1 
    //   decimal 0.0, 0.1, 1.0, 0.00, 0.01, 1.00, 0.000, 0.001, 1.000, 0.0000, 0.0001, 1.0000
    if (COND_30.eval(o) || COND_31.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalSEH(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalSK(NumberOperands o) {
    //   i = 1 and v = 0
    //   
    //   integer 1
    if (COND_11.eval(o)) {
      return PluralCategory.ONE;
    }

    //   i = 2..4 and v = 0
    //   
    //   integer 2~4
    if (COND_32.eval(o)) {
      return PluralCategory.FEW;
    }

    //   v != 0
    //   
    //   decimal 0.0~1.5, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …
    if (COND_12.eval(o)) {
      return PluralCategory.MANY;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalSL(NumberOperands o) {
    //   v = 0 and i % 100 = 1
    //   
    //   integer 1, 101, 201, 301, 401, 501, 601, 701, 1001, …
    if (COND_33.eval(o)) {
      return PluralCategory.ONE;
    }

    //   v = 0 and i % 100 = 2
    //   
    //   integer 2, 102, 202, 302, 402, 502, 602, 702, 1002, …
    if (COND_34.eval(o)) {
      return PluralCategory.TWO;
    }

    //   v = 0 and i % 100 = 3..4 or v != 0
    //   
    //   integer 3, 4, 103, 104, 203, 204, 303, 304, 403, 404, 503, 504, 603, 604, 703, 704, 1003, … 
    //   decimal 0.0~1.5, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …
    if (COND_35.eval(o) || COND_12.eval(o)) {
      return PluralCategory.FEW;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalSN(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalSO(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalCA(NumberOperands o) {
    //   i = 1 and v = 0
    //   
    //   integer 1
    if (COND_11.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalSQ(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalSR(NumberOperands o) {
    //   v = 0 and i % 10 = 1 and i % 100 != 11 or f % 10 = 1 and f % 100 != 11
    //   
    //   integer 1, 21, 31, 41, 51, 61, 71, 81, 101, 1001, … 
    //   decimal 0.1, 1.1, 2.1, 3.1, 4.1, 5.1, 6.1, 7.1, 10.1, 100.1, 1000.1, …
    if (COND_19.eval(o) || COND_28.eval(o)) {
      return PluralCategory.ONE;
    }

    //   v = 0 and i % 10 = 2..4 and i % 100 != 12..14 or f % 10 = 2..4 and f % 100 != 12..14
    //   
    //   integer 2~4, 22~24, 32~34, 42~44, 52~54, 62, 102, 1002, … 
    //   decimal 0.2~0.4, 1.2~1.4, 2.2~2.4, 3.2~3.4, 4.2~4.4, 5.2, 10.2, 100.2, 1000.2, …
    if (COND_20.eval(o) || COND_29.eval(o)) {
      return PluralCategory.FEW;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalSES(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalSS(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalST(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalCE(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalARS(NumberOperands o) {
    //   n = 0
    //   
    //   integer 0 
    //   decimal 0.0, 0.00, 0.000, 0.0000
    if (COND_0.eval(o)) {
      return PluralCategory.ZERO;
    }

    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    //   n = 2
    //   
    //   integer 2 
    //   decimal 2.0, 2.00, 2.000, 2.0000
    if (COND_8.eval(o)) {
      return PluralCategory.TWO;
    }

    //   n % 100 = 3..10
    //   
    //   integer 3~10, 103~110, 1003, … 
    //   decimal 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 103.0, 1003.0, …
    if (COND_9.eval(o)) {
      return PluralCategory.FEW;
    }

    //   n % 100 = 11..99
    //   
    //   integer 11~26, 111, 1011, … 
    //   decimal 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 111.0, 1011.0, …
    if (COND_10.eval(o)) {
      return PluralCategory.MANY;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalSV(NumberOperands o) {
    //   i = 1 and v = 0
    //   
    //   integer 1
    if (COND_11.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalSW(NumberOperands o) {
    //   i = 1 and v = 0
    //   
    //   integer 1
    if (COND_11.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalTA(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalASA(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalCS(NumberOperands o) {
    //   i = 1 and v = 0
    //   
    //   integer 1
    if (COND_11.eval(o)) {
      return PluralCategory.ONE;
    }

    //   i = 2..4 and v = 0
    //   
    //   integer 2~4
    if (COND_32.eval(o)) {
      return PluralCategory.FEW;
    }

    //   v != 0
    //   
    //   decimal 0.0~1.5, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …
    if (COND_12.eval(o)) {
      return PluralCategory.MANY;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalTE(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalTH(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalTI(NumberOperands o) {
    //   n = 0..1
    //   
    //   integer 0, 1 
    //   decimal 0.0, 1.0, 0.00, 1.00, 0.000, 1.000, 0.0000, 1.0000
    if (COND_6.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalCY(NumberOperands o) {
    //   n = 0
    //   
    //   integer 0 
    //   decimal 0.0, 0.00, 0.000, 0.0000
    if (COND_0.eval(o)) {
      return PluralCategory.ZERO;
    }

    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    //   n = 2
    //   
    //   integer 2 
    //   decimal 2.0, 2.00, 2.000, 2.0000
    if (COND_8.eval(o)) {
      return PluralCategory.TWO;
    }

    //   n = 3
    //   
    //   integer 3 
    //   decimal 3.0, 3.00, 3.000, 3.0000
    if (COND_36.eval(o)) {
      return PluralCategory.FEW;
    }

    //   n = 6
    //   
    //   integer 6 
    //   decimal 6.0, 6.00, 6.000, 6.0000
    if (COND_37.eval(o)) {
      return PluralCategory.MANY;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalTK(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalTL(NumberOperands o) {
    //   v = 0 and i = 1,2,3 or v = 0 and i % 10 != 4,6,9 or v != 0 and f % 10 != 4,6,9
    //   
    //   integer 0~3, 5, 7, 8, 10~13, 15, 17, 18, 20, 21, 100, 1000, 10000, 100000, 1000000, … 
    //   decimal 0.0~0.3, 0.5, 0.7, 0.8, 1.0~1.3, 1.5, 1.7, 1.8, 2.0, 2.1, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …
    if (COND_3.eval(o) || COND_4.eval(o) || COND_5.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalTN(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalTO(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalDA(NumberOperands o) {
    //   n = 1 or t != 0 and i = 0,1
    //   
    //   integer 1 
    //   decimal 0.1~1.6
    if (COND_1.eval(o) || COND_38.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalTR(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalTS(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalDE(NumberOperands o) {
    //   i = 1 and v = 0
    //   
    //   integer 1
    if (COND_11.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalCGG(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalAST(NumberOperands o) {
    //   i = 1 and v = 0
    //   
    //   integer 1
    if (COND_11.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalBEM(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalDV(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalUG(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalTIG(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalBEZ(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalDZ(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalUK(NumberOperands o) {
    //   v = 0 and i % 10 = 1 and i % 100 != 11
    //   
    //   integer 1, 21, 31, 41, 51, 61, 71, 81, 101, 1001, …
    if (COND_19.eval(o)) {
      return PluralCategory.ONE;
    }

    //   v = 0 and i % 10 = 2..4 and i % 100 != 12..14
    //   
    //   integer 2~4, 22~24, 32~34, 42~44, 52~54, 62, 102, 1002, …
    if (COND_20.eval(o)) {
      return PluralCategory.FEW;
    }

    //   v = 0 and i % 10 = 0 or v = 0 and i % 10 = 5..9 or v = 0 and i % 100 = 11..14
    //   
    //   integer 0, 5~19, 100, 1000, 10000, 100000, 1000000, …
    if (COND_21.eval(o) || COND_22.eval(o) || COND_23.eval(o)) {
      return PluralCategory.MANY;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalUR(NumberOperands o) {
    //   i = 1 and v = 0
    //   
    //   integer 1
    if (COND_11.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalPAP(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalHAW(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalEE(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalPRG(NumberOperands o) {
    //   n % 10 = 0 or n % 100 = 11..19 or v = 2 and f % 100 = 11..19
    //   
    //   integer 0, 10~20, 30, 40, 50, 60, 100, 1000, 10000, 100000, 1000000, … 
    //   decimal 0.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …
    if (COND_16.eval(o) || COND_39.eval(o) || COND_40.eval(o)) {
      return PluralCategory.ZERO;
    }

    //   n % 10 = 1 and n % 100 != 11 or v = 2 and f % 10 = 1 and f % 100 != 11 or v != 2 and f % 10 = 1
    //   
    //   integer 1, 21, 31, 41, 51, 61, 71, 81, 101, 1001, … 
    //   decimal 0.1, 1.0, 1.1, 2.1, 3.1, 4.1, 5.1, 6.1, 7.1, 10.1, 100.1, 1000.1, …
    if (COND_14.eval(o) || COND_41.eval(o) || COND_42.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalUZ(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalTZM(NumberOperands o) {
    //   n = 0..1 or n = 11..99
    //   
    //   integer 0, 1, 11~24 
    //   decimal 0.0, 1.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0
    if (COND_6.eval(o) || COND_43.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalEL(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalEN(NumberOperands o) {
    //   i = 1 and v = 0
    //   
    //   integer 1
    if (COND_11.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalNNH(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalEO(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalCHR(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalES(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalET(NumberOperands o) {
    //   i = 1 and v = 0
    //   
    //   integer 1
    if (COND_11.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalVE(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalEU(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalVI(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalSHI(NumberOperands o) {
    //   i = 0 or n = 1
    //   
    //   integer 0, 1 
    //   decimal 0.0~1.0, 0.00~0.04
    if (COND_7.eval(o) || COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    //   n = 2..10
    //   
    //   integer 2~10 
    //   decimal 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 2.00, 3.00, 4.00, 5.00, 6.00, 7.00, 8.00
    if (COND_44.eval(o)) {
      return PluralCategory.FEW;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalHSB(NumberOperands o) {
    //   v = 0 and i % 100 = 1 or f % 100 = 1
    //   
    //   integer 1, 101, 201, 301, 401, 501, 601, 701, 1001, … 
    //   decimal 0.1, 1.1, 2.1, 3.1, 4.1, 5.1, 6.1, 7.1, 10.1, 100.1, 1000.1, …
    if (COND_33.eval(o) || COND_45.eval(o)) {
      return PluralCategory.ONE;
    }

    //   v = 0 and i % 100 = 2 or f % 100 = 2
    //   
    //   integer 2, 102, 202, 302, 402, 502, 602, 702, 1002, … 
    //   decimal 0.2, 1.2, 2.2, 3.2, 4.2, 5.2, 6.2, 7.2, 10.2, 100.2, 1000.2, …
    if (COND_34.eval(o) || COND_46.eval(o)) {
      return PluralCategory.TWO;
    }

    //   v = 0 and i % 100 = 3..4 or f % 100 = 3..4
    //   
    //   integer 3, 4, 103, 104, 203, 204, 303, 304, 403, 404, 503, 504, 603, 604, 703, 704, 1003, … 
    //   decimal 0.3, 0.4, 1.3, 1.4, 2.3, 2.4, 3.3, 3.4, 4.3, 4.4, 5.3, 5.4, 6.3, 6.4, 7.3, 7.4, 10.3, 100.3, 1000.3, …
    if (COND_35.eval(o) || COND_47.eval(o)) {
      return PluralCategory.FEW;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalVO(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalFA(NumberOperands o) {
    //   i = 0 or n = 1
    //   
    //   integer 0, 1 
    //   decimal 0.0~1.0, 0.00~0.04
    if (COND_7.eval(o) || COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalFF(NumberOperands o) {
    //   i = 0,1
    //   
    //   integer 0, 1 
    //   decimal 0.0~1.5
    if (COND_48.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalFI(NumberOperands o) {
    //   i = 1 and v = 0
    //   
    //   integer 1
    if (COND_11.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalRWK(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalYUE(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalFO(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalWA(NumberOperands o) {
    //   n = 0..1
    //   
    //   integer 0, 1 
    //   decimal 0.0, 1.0, 0.00, 1.00, 0.000, 1.000, 0.0000, 1.0000
    if (COND_6.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalFR(NumberOperands o) {
    //   i = 0,1
    //   
    //   integer 0, 1 
    //   decimal 0.0~1.5
    if (COND_48.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalSYR(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalFY(NumberOperands o) {
    //   i = 1 and v = 0
    //   
    //   integer 1
    if (COND_11.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalJGO(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalLKT(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalROOT(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalWO(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalGA(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    //   n = 2
    //   
    //   integer 2 
    //   decimal 2.0, 2.00, 2.000, 2.0000
    if (COND_8.eval(o)) {
      return PluralCategory.TWO;
    }

    //   n = 3..6
    //   
    //   integer 3~6 
    //   decimal 3.0, 4.0, 5.0, 6.0, 3.00, 4.00, 5.00, 6.00, 3.000, 4.000, 5.000, 6.000, 3.0000, 4.0000, 5.0000, 6.0000
    if (COND_49.eval(o)) {
      return PluralCategory.FEW;
    }

    //   n = 7..10
    //   
    //   integer 7~10 
    //   decimal 7.0, 8.0, 9.0, 10.0, 7.00, 8.00, 9.00, 10.00, 7.000, 8.000, 9.000, 10.000, 7.0000, 8.0000, 9.0000, 10.0000
    if (COND_50.eval(o)) {
      return PluralCategory.MANY;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalWAE(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalGD(NumberOperands o) {
    //   n = 1,11
    //   
    //   integer 1, 11 
    //   decimal 1.0, 11.0, 1.00, 11.00, 1.000, 11.000, 1.0000
    if (COND_51.eval(o)) {
      return PluralCategory.ONE;
    }

    //   n = 2,12
    //   
    //   integer 2, 12 
    //   decimal 2.0, 12.0, 2.00, 12.00, 2.000, 12.000, 2.0000
    if (COND_52.eval(o)) {
      return PluralCategory.TWO;
    }

    //   n = 3..10,13..19
    //   
    //   integer 3~10, 13~19 
    //   decimal 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 3.00
    if (COND_53.eval(o)) {
      return PluralCategory.FEW;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalGL(NumberOperands o) {
    //   i = 1 and v = 0
    //   
    //   integer 1
    if (COND_11.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalGU(NumberOperands o) {
    //   i = 0 or n = 1
    //   
    //   integer 0, 1 
    //   decimal 0.0~1.0, 0.00~0.04
    if (COND_7.eval(o) || COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalGV(NumberOperands o) {
    //   v = 0 and i % 10 = 1
    //   
    //   integer 1, 11, 21, 31, 41, 51, 61, 71, 101, 1001, …
    if (COND_54.eval(o)) {
      return PluralCategory.ONE;
    }

    //   v = 0 and i % 10 = 2
    //   
    //   integer 2, 12, 22, 32, 42, 52, 62, 72, 102, 1002, …
    if (COND_55.eval(o)) {
      return PluralCategory.TWO;
    }

    //   v = 0 and i % 100 = 0,20,40,60,80
    //   
    //   integer 0, 20, 40, 60, 80, 100, 120, 140, 1000, 10000, 100000, 1000000, …
    if (COND_56.eval(o)) {
      return PluralCategory.FEW;
    }

    //   v != 0
    //   
    //   decimal 0.0~1.5, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …
    if (COND_12.eval(o)) {
      return PluralCategory.MANY;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalXH(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalHA(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalCKB(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalHE(NumberOperands o) {
    //   i = 1 and v = 0
    //   
    //   integer 1
    if (COND_11.eval(o)) {
      return PluralCategory.ONE;
    }

    //   i = 2 and v = 0
    //   
    //   integer 2
    if (COND_57.eval(o)) {
      return PluralCategory.TWO;
    }

    //   v = 0 and n != 0..10 and n % 10 = 0
    //   
    //   integer 20, 30, 40, 50, 60, 70, 80, 90, 100, 1000, 10000, 100000, 1000000, …
    if (COND_58.eval(o)) {
      return PluralCategory.MANY;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalHI(NumberOperands o) {
    //   i = 0 or n = 1
    //   
    //   integer 0, 1 
    //   decimal 0.0~1.0, 0.00~0.04
    if (COND_7.eval(o) || COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalGSW(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalHR(NumberOperands o) {
    //   v = 0 and i % 10 = 1 and i % 100 != 11 or f % 10 = 1 and f % 100 != 11
    //   
    //   integer 1, 21, 31, 41, 51, 61, 71, 81, 101, 1001, … 
    //   decimal 0.1, 1.1, 2.1, 3.1, 4.1, 5.1, 6.1, 7.1, 10.1, 100.1, 1000.1, …
    if (COND_19.eval(o) || COND_28.eval(o)) {
      return PluralCategory.ONE;
    }

    //   v = 0 and i % 10 = 2..4 and i % 100 != 12..14 or f % 10 = 2..4 and f % 100 != 12..14
    //   
    //   integer 2~4, 22~24, 32~34, 42~44, 52~54, 62, 102, 1002, … 
    //   decimal 0.2~0.4, 1.2~1.4, 2.2~2.4, 3.2~3.4, 4.2~4.4, 5.2, 10.2, 100.2, 1000.2, …
    if (COND_20.eval(o) || COND_29.eval(o)) {
      return PluralCategory.FEW;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalKKJ(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalHU(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalNQO(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalYI(NumberOperands o) {
    //   i = 1 and v = 0
    //   
    //   integer 1
    if (COND_11.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalHY(NumberOperands o) {
    //   i = 0,1
    //   
    //   integer 0, 1 
    //   decimal 0.0~1.5
    if (COND_48.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalNAH(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalYO(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalID(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalIG(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalNAQ(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    //   n = 2
    //   
    //   integer 2 
    //   decimal 2.0, 2.00, 2.000, 2.0000
    if (COND_8.eval(o)) {
      return PluralCategory.TWO;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalII(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalIN(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalIS(NumberOperands o) {
    //   t = 0 and i % 10 = 1 and i % 100 != 11 or t != 0
    //   
    //   integer 1, 21, 31, 41, 51, 61, 71, 81, 101, 1001, … 
    //   decimal 0.1~1.6, 10.1, 100.1, 1000.1, …
    if (COND_59.eval(o) || COND_60.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalIT(NumberOperands o) {
    //   i = 1 and v = 0
    //   
    //   integer 1
    if (COND_11.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalIU(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    //   n = 2
    //   
    //   integer 2 
    //   decimal 2.0, 2.00, 2.000, 2.0000
    if (COND_8.eval(o)) {
      return PluralCategory.TWO;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalIW(NumberOperands o) {
    //   i = 1 and v = 0
    //   
    //   integer 1
    if (COND_11.eval(o)) {
      return PluralCategory.ONE;
    }

    //   i = 2 and v = 0
    //   
    //   integer 2
    if (COND_57.eval(o)) {
      return PluralCategory.TWO;
    }

    //   v = 0 and n != 0..10 and n % 10 = 0
    //   
    //   integer 20, 30, 40, 50, 60, 70, 80, 90, 100, 1000, 10000, 100000, 1000000, …
    if (COND_58.eval(o)) {
      return PluralCategory.MANY;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalZH(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalJA(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalZU(NumberOperands o) {
    //   i = 0 or n = 1
    //   
    //   integer 0, 1 
    //   decimal 0.0~1.0, 0.00~0.04
    if (COND_7.eval(o) || COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalJI(NumberOperands o) {
    //   i = 1 and v = 0
    //   
    //   integer 1
    if (COND_11.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalSMA(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    //   n = 2
    //   
    //   integer 2 
    //   decimal 2.0, 2.00, 2.000, 2.0000
    if (COND_8.eval(o)) {
      return PluralCategory.TWO;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalGUW(NumberOperands o) {
    //   n = 0..1
    //   
    //   integer 0, 1 
    //   decimal 0.0, 1.0, 0.00, 1.00, 0.000, 1.000, 0.0000, 1.0000
    if (COND_6.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalNSO(NumberOperands o) {
    //   n = 0..1
    //   
    //   integer 0, 1 
    //   decimal 0.0, 1.0, 0.00, 1.00, 0.000, 1.000, 0.0000, 1.0000
    if (COND_6.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalJV(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalJW(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalSMI(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    //   n = 2
    //   
    //   integer 2 
    //   decimal 2.0, 2.00, 2.000, 2.0000
    if (COND_8.eval(o)) {
      return PluralCategory.TWO;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalSMJ(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    //   n = 2
    //   
    //   integer 2 
    //   decimal 2.0, 2.00, 2.000, 2.0000
    if (COND_8.eval(o)) {
      return PluralCategory.TWO;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalSMN(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    //   n = 2
    //   
    //   integer 2 
    //   decimal 2.0, 2.00, 2.000, 2.0000
    if (COND_8.eval(o)) {
      return PluralCategory.TWO;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalKA(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalSMS(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    //   n = 2
    //   
    //   integer 2 
    //   decimal 2.0, 2.00, 2.000, 2.0000
    if (COND_8.eval(o)) {
      return PluralCategory.TWO;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalMAS(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalKK(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalKL(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalKM(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalKN(NumberOperands o) {
    //   i = 0 or n = 1
    //   
    //   integer 0, 1 
    //   decimal 0.0~1.0, 0.00~0.04
    if (COND_7.eval(o) || COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalKO(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalKS(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalKU(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalKW(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    //   n = 2
    //   
    //   integer 2 
    //   decimal 2.0, 2.00, 2.000, 2.0000
    if (COND_8.eval(o)) {
      return PluralCategory.TWO;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalKY(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalLB(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalLG(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalJMC(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalFUR(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalLN(NumberOperands o) {
    //   n = 0..1
    //   
    //   integer 0, 1 
    //   decimal 0.0, 1.0, 0.00, 1.00, 0.000, 1.000, 0.0000, 1.0000
    if (COND_6.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalLO(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalLT(NumberOperands o) {
    //   n % 10 = 1 and n % 100 != 11..19
    //   
    //   integer 1, 21, 31, 41, 51, 61, 71, 81, 101, 1001, … 
    //   decimal 1.0, 21.0, 31.0, 41.0, 51.0, 61.0, 71.0, 81.0, 101.0, 1001.0, …
    if (COND_61.eval(o)) {
      return PluralCategory.ONE;
    }

    //   n % 10 = 2..9 and n % 100 != 11..19
    //   
    //   integer 2~9, 22~29, 102, 1002, … 
    //   decimal 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 22.0, 102.0, 1002.0, …
    if (COND_62.eval(o)) {
      return PluralCategory.FEW;
    }

    //   f != 0
    //   
    //   decimal 0.1~0.9, 1.1~1.7, 10.1, 100.1, 1000.1, …
    if (COND_63.eval(o)) {
      return PluralCategory.MANY;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalLV(NumberOperands o) {
    //   n % 10 = 0 or n % 100 = 11..19 or v = 2 and f % 100 = 11..19
    //   
    //   integer 0, 10~20, 30, 40, 50, 60, 100, 1000, 10000, 100000, 1000000, … 
    //   decimal 0.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …
    if (COND_16.eval(o) || COND_39.eval(o) || COND_40.eval(o)) {
      return PluralCategory.ZERO;
    }

    //   n % 10 = 1 and n % 100 != 11 or v = 2 and f % 10 = 1 and f % 100 != 11 or v != 2 and f % 10 = 1
    //   
    //   integer 1, 21, 31, 41, 51, 61, 71, 81, 101, 1001, … 
    //   decimal 0.1, 1.0, 1.1, 2.1, 3.1, 4.1, 5.1, 6.1, 7.1, 10.1, 100.1, 1000.1, …
    if (COND_14.eval(o) || COND_41.eval(o) || COND_42.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalVUN(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalLAG(NumberOperands o) {
    //   n = 0
    //   
    //   integer 0 
    //   decimal 0.0, 0.00, 0.000, 0.0000
    if (COND_0.eval(o)) {
      return PluralCategory.ZERO;
    }

    //   i = 0,1 and n != 0
    //   
    //   integer 1 
    //   decimal 0.1~1.6
    if (COND_64.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalMG(NumberOperands o) {
    //   n = 0..1
    //   
    //   integer 0, 1 
    //   decimal 0.0, 1.0, 0.00, 1.00, 0.000, 1.000, 0.0000, 1.0000
    if (COND_6.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalMK(NumberOperands o) {
    //   v = 0 and i % 10 = 1 or f % 10 = 1
    //   
    //   integer 1, 11, 21, 31, 41, 51, 61, 71, 101, 1001, … 
    //   decimal 0.1, 1.1, 2.1, 3.1, 4.1, 5.1, 6.1, 7.1, 10.1, 100.1, 1000.1, …
    if (COND_54.eval(o) || COND_65.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalML(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalMN(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalMO(NumberOperands o) {
    //   i = 1 and v = 0
    //   
    //   integer 1
    if (COND_11.eval(o)) {
      return PluralCategory.ONE;
    }

    //   v != 0 or n = 0 or n != 1 and n % 100 = 1..19
    //   
    //   integer 0, 2~16, 101, 1001, … 
    //   decimal 0.0~1.5, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …
    if (COND_12.eval(o) || COND_0.eval(o) || COND_13.eval(o)) {
      return PluralCategory.FEW;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalMR(NumberOperands o) {
    //   i = 0 or n = 1
    //   
    //   integer 0, 1 
    //   decimal 0.0~1.0, 0.00~0.04
    if (COND_7.eval(o) || COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalMS(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalMT(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    //   n = 0 or n % 100 = 2..10
    //   
    //   integer 0, 2~10, 102~107, 1002, … 
    //   decimal 0.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 10.0, 102.0, 1002.0, …
    if (COND_0.eval(o) || COND_66.eval(o)) {
      return PluralCategory.FEW;
    }

    //   n % 100 = 11..19
    //   
    //   integer 11~19, 111~117, 1011, … 
    //   decimal 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 111.0, 1011.0, …
    if (COND_39.eval(o)) {
      return PluralCategory.MANY;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalMY(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalDSB(NumberOperands o) {
    //   v = 0 and i % 100 = 1 or f % 100 = 1
    //   
    //   integer 1, 101, 201, 301, 401, 501, 601, 701, 1001, … 
    //   decimal 0.1, 1.1, 2.1, 3.1, 4.1, 5.1, 6.1, 7.1, 10.1, 100.1, 1000.1, …
    if (COND_33.eval(o) || COND_45.eval(o)) {
      return PluralCategory.ONE;
    }

    //   v = 0 and i % 100 = 2 or f % 100 = 2
    //   
    //   integer 2, 102, 202, 302, 402, 502, 602, 702, 1002, … 
    //   decimal 0.2, 1.2, 2.2, 3.2, 4.2, 5.2, 6.2, 7.2, 10.2, 100.2, 1000.2, …
    if (COND_34.eval(o) || COND_46.eval(o)) {
      return PluralCategory.TWO;
    }

    //   v = 0 and i % 100 = 3..4 or f % 100 = 3..4
    //   
    //   integer 3, 4, 103, 104, 203, 204, 303, 304, 403, 404, 503, 504, 603, 604, 703, 704, 1003, … 
    //   decimal 0.3, 0.4, 1.3, 1.4, 2.3, 2.4, 3.3, 3.4, 4.3, 4.4, 5.3, 5.4, 6.3, 6.4, 7.3, 7.4, 10.3, 100.3, 1000.3, …
    if (COND_35.eval(o) || COND_47.eval(o)) {
      return PluralCategory.FEW;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalNB(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalND(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalNE(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalNL(NumberOperands o) {
    //   i = 1 and v = 0
    //   
    //   integer 1
    if (COND_11.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalNN(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalNO(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalNR(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalROF(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalNY(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalKAB(NumberOperands o) {
    //   i = 0,1
    //   
    //   integer 0, 1 
    //   decimal 0.0~1.5
    if (COND_48.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalKAJ(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalSAH(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalOM(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalSAQ(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalOR(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalOS(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalPA(NumberOperands o) {
    //   n = 0..1
    //   
    //   integer 0, 1 
    //   decimal 0.0, 1.0, 0.00, 1.00, 0.000, 1.000, 0.0000, 1.0000
    if (COND_6.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalKSB(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1 
    //   decimal 1.0, 1.00, 1.000, 1.0000
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalCardinalPL(NumberOperands o) {
    //   i = 1 and v = 0
    //   
    //   integer 1
    if (COND_11.eval(o)) {
      return PluralCategory.ONE;
    }

    //   v = 0 and i % 10 = 2..4 and i % 100 != 12..14
    //   
    //   integer 2~4, 22~24, 32~34, 42~44, 52~54, 62, 102, 1002, …
    if (COND_20.eval(o)) {
      return PluralCategory.FEW;
    }

    //   v = 0 and i != 1 and i % 10 = 0..1 or v = 0 and i % 10 = 5..9 or v = 0 and i % 100 = 12..14
    //   
    //   integer 0, 5~19, 100, 1000, 10000, 100000, 1000000, …
    if (COND_67.eval(o) || COND_22.eval(o) || COND_68.eval(o)) {
      return PluralCategory.MANY;
    }

    return PluralCategory.OTHER;
  }

  public static PluralCategory evalOrdinal(String language, NumberOperands o) {
    switch (language) {
      case "de":
            return evalOrdinalDE(o);
      case "hi":
            return evalOrdinalHI(o);
      case "lo":
            return evalOrdinalLO(o);
      case "pt":
            return evalOrdinalPT(o);
      case "fil":
            return evalOrdinalFIL(o);
      case "lt":
            return evalOrdinalLT(o);
      case "gsw":
            return evalOrdinalGSW(o);
      case "hr":
            return evalOrdinalHR(o);
      case "lv":
            return evalOrdinalLV(o);
      case "hu":
            return evalOrdinalHU(o);
      case "hy":
            return evalOrdinalHY(o);
      case "uk":
            return evalOrdinalUK(o);
      case "id":
            return evalOrdinalID(o);
      case "ur":
            return evalOrdinalUR(o);
      case "mk":
            return evalOrdinalMK(o);
      case "ml":
            return evalOrdinalML(o);
      case "mn":
            return evalOrdinalMN(o);
      case "mo":
            return evalOrdinalMO(o);
      case "prg":
            return evalOrdinalPRG(o);
      case "af":
            return evalOrdinalAF(o);
      case "in":
            return evalOrdinalIN(o);
      case "mr":
            return evalOrdinalMR(o);
      case "uz":
            return evalOrdinalUZ(o);
      case "ms":
            return evalOrdinalMS(o);
      case "el":
            return evalOrdinalEL(o);
      case "en":
            return evalOrdinalEN(o);
      case "is":
            return evalOrdinalIS(o);
      case "it":
            return evalOrdinalIT(o);
      case "am":
            return evalOrdinalAM(o);
      case "my":
            return evalOrdinalMY(o);
      case "es":
            return evalOrdinalES(o);
      case "iw":
            return evalOrdinalIW(o);
      case "zh":
            return evalOrdinalZH(o);
      case "et":
            return evalOrdinalET(o);
      case "eu":
            return evalOrdinalEU(o);
      case "ar":
            return evalOrdinalAR(o);
      case "as":
            return evalOrdinalAS(o);
      case "dsb":
            return evalOrdinalDSB(o);
      case "vi":
            return evalOrdinalVI(o);
      case "nb":
            return evalOrdinalNB(o);
      case "hsb":
            return evalOrdinalHSB(o);
      case "ja":
            return evalOrdinalJA(o);
      case "ne":
            return evalOrdinalNE(o);
      case "az":
            return evalOrdinalAZ(o);
      case "fa":
            return evalOrdinalFA(o);
      case "zu":
            return evalOrdinalZU(o);
      case "ro":
            return evalOrdinalRO(o);
      case "nl":
            return evalOrdinalNL(o);
      case "be":
            return evalOrdinalBE(o);
      case "fi":
            return evalOrdinalFI(o);
      case "ru":
            return evalOrdinalRU(o);
      case "bg":
            return evalOrdinalBG(o);
      case "yue":
            return evalOrdinalYUE(o);
      case "bn":
            return evalOrdinalBN(o);
      case "fr":
            return evalOrdinalFR(o);
      case "bs":
            return evalOrdinalBS(o);
      case "fy":
            return evalOrdinalFY(o);
      case "sh":
            return evalOrdinalSH(o);
      case "ka":
            return evalOrdinalKA(o);
      case "si":
            return evalOrdinalSI(o);
      case "root":
            return evalOrdinalROOT(o);
      case "sk":
            return evalOrdinalSK(o);
      case "sl":
            return evalOrdinalSL(o);
      case "ga":
            return evalOrdinalGA(o);
      case "ca":
            return evalOrdinalCA(o);
      case "sq":
            return evalOrdinalSQ(o);
      case "sr":
            return evalOrdinalSR(o);
      case "kk":
            return evalOrdinalKK(o);
      case "ce":
            return evalOrdinalCE(o);
      case "km":
            return evalOrdinalKM(o);
      case "kn":
            return evalOrdinalKN(o);
      case "sv":
            return evalOrdinalSV(o);
      case "ko":
            return evalOrdinalKO(o);
      case "sw":
            return evalOrdinalSW(o);
      case "gl":
            return evalOrdinalGL(o);
      case "ta":
            return evalOrdinalTA(o);
      case "gu":
            return evalOrdinalGU(o);
      case "ky":
            return evalOrdinalKY(o);
      case "cs":
            return evalOrdinalCS(o);
      case "pa":
            return evalOrdinalPA(o);
      case "te":
            return evalOrdinalTE(o);
      case "th":
            return evalOrdinalTH(o);
      case "cy":
            return evalOrdinalCY(o);
      case "tl":
            return evalOrdinalTL(o);
      case "pl":
            return evalOrdinalPL(o);
      case "da":
            return evalOrdinalDA(o);
      case "he":
            return evalOrdinalHE(o);
      case "tr":
            return evalOrdinalTR(o);
      default:
            return null;
    }
  }

  private static PluralCategory evalOrdinalDE(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalHI(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    //   n = 2,3
    //   
    //   integer 2, 3
    if (COND_69.eval(o)) {
      return PluralCategory.TWO;
    }

    //   n = 4
    //   
    //   integer 4
    if (COND_70.eval(o)) {
      return PluralCategory.FEW;
    }

    //   n = 6
    //   
    //   integer 6
    if (COND_37.eval(o)) {
      return PluralCategory.MANY;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalLO(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalPT(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalFIL(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalLT(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalGSW(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalHR(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalLV(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalHU(NumberOperands o) {
    //   n = 1,5
    //   
    //   integer 1, 5
    if (COND_71.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalHY(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalUK(NumberOperands o) {
    //   n % 10 = 3 and n % 100 != 13
    //   
    //   integer 3, 23, 33, 43, 53, 63, 73, 83, 103, 1003, …
    if (COND_72.eval(o)) {
      return PluralCategory.FEW;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalID(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalUR(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalMK(NumberOperands o) {
    //   i % 10 = 1 and i % 100 != 11
    //   
    //   integer 1, 21, 31, 41, 51, 61, 71, 81, 101, 1001, …
    if (COND_73.eval(o)) {
      return PluralCategory.ONE;
    }

    //   i % 10 = 2 and i % 100 != 12
    //   
    //   integer 2, 22, 32, 42, 52, 62, 72, 82, 102, 1002, …
    if (COND_74.eval(o)) {
      return PluralCategory.TWO;
    }

    //   i % 10 = 7,8 and i % 100 != 17,18
    //   
    //   integer 7, 8, 27, 28, 37, 38, 47, 48, 57, 58, 67, 68, 77, 78, 87, 88, 107, 1007, …
    if (COND_75.eval(o)) {
      return PluralCategory.MANY;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalML(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalMN(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalMO(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalPRG(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalAF(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalIN(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalMR(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    //   n = 2,3
    //   
    //   integer 2, 3
    if (COND_69.eval(o)) {
      return PluralCategory.TWO;
    }

    //   n = 4
    //   
    //   integer 4
    if (COND_70.eval(o)) {
      return PluralCategory.FEW;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalUZ(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalMS(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalEL(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalEN(NumberOperands o) {
    //   n % 10 = 1 and n % 100 != 11
    //   
    //   integer 1, 21, 31, 41, 51, 61, 71, 81, 101, 1001, …
    if (COND_14.eval(o)) {
      return PluralCategory.ONE;
    }

    //   n % 10 = 2 and n % 100 != 12
    //   
    //   integer 2, 22, 32, 42, 52, 62, 72, 82, 102, 1002, …
    if (COND_76.eval(o)) {
      return PluralCategory.TWO;
    }

    //   n % 10 = 3 and n % 100 != 13
    //   
    //   integer 3, 23, 33, 43, 53, 63, 73, 83, 103, 1003, …
    if (COND_72.eval(o)) {
      return PluralCategory.FEW;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalIS(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalIT(NumberOperands o) {
    //   n = 11,8,80,800
    //   
    //   integer 8, 11, 80, 800
    if (COND_77.eval(o)) {
      return PluralCategory.MANY;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalAM(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalMY(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalES(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalIW(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalZH(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalET(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalEU(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalAR(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalAS(NumberOperands o) {
    //   n = 1,5,7,8,9,10
    //   
    //   integer 1, 5, 7~10
    if (COND_78.eval(o)) {
      return PluralCategory.ONE;
    }

    //   n = 2,3
    //   
    //   integer 2, 3
    if (COND_69.eval(o)) {
      return PluralCategory.TWO;
    }

    //   n = 4
    //   
    //   integer 4
    if (COND_70.eval(o)) {
      return PluralCategory.FEW;
    }

    //   n = 6
    //   
    //   integer 6
    if (COND_37.eval(o)) {
      return PluralCategory.MANY;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalDSB(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalVI(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalNB(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalHSB(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalJA(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalNE(NumberOperands o) {
    //   n = 1..4
    //   
    //   integer 1~4
    if (COND_79.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalAZ(NumberOperands o) {
    //   i % 10 = 1,2,5,7,8 or i % 100 = 20,50,70,80
    //   
    //   integer 1, 2, 5, 7, 8, 11, 12, 15, 17, 18, 20~22, 25, 101, 1001, …
    if (COND_80.eval(o) || COND_81.eval(o)) {
      return PluralCategory.ONE;
    }

    //   i % 10 = 3,4 or i % 1000 = 100,200,300,400,500,600,700,800,900
    //   
    //   integer 3, 4, 13, 14, 23, 24, 33, 34, 43, 44, 53, 54, 63, 64, 73, 74, 100, 1003, …
    if (COND_82.eval(o) || COND_83.eval(o)) {
      return PluralCategory.FEW;
    }

    //   i = 0 or i % 10 = 6 or i % 100 = 40,60,90
    //   
    //   integer 0, 6, 16, 26, 36, 40, 46, 56, 106, 1006, …
    if (COND_7.eval(o) || COND_84.eval(o) || COND_85.eval(o)) {
      return PluralCategory.MANY;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalFA(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalZU(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalRO(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalNL(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalBE(NumberOperands o) {
    //   n % 10 = 2,3 and n % 100 != 12,13
    //   
    //   integer 2, 3, 22, 23, 32, 33, 42, 43, 52, 53, 62, 63, 72, 73, 82, 83, 102, 1002, …
    if (COND_86.eval(o)) {
      return PluralCategory.FEW;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalFI(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalRU(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalBG(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalYUE(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalBN(NumberOperands o) {
    //   n = 1,5,7,8,9,10
    //   
    //   integer 1, 5, 7~10
    if (COND_78.eval(o)) {
      return PluralCategory.ONE;
    }

    //   n = 2,3
    //   
    //   integer 2, 3
    if (COND_69.eval(o)) {
      return PluralCategory.TWO;
    }

    //   n = 4
    //   
    //   integer 4
    if (COND_70.eval(o)) {
      return PluralCategory.FEW;
    }

    //   n = 6
    //   
    //   integer 6
    if (COND_37.eval(o)) {
      return PluralCategory.MANY;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalFR(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalBS(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalFY(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalSH(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalKA(NumberOperands o) {
    //   i = 1
    //   
    //   integer 1
    if (COND_87.eval(o)) {
      return PluralCategory.ONE;
    }

    //   i = 0 or i % 100 = 2..20,40,60,80
    //   
    //   integer 0, 2~16, 102, 1002, …
    if (COND_7.eval(o) || COND_88.eval(o)) {
      return PluralCategory.MANY;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalSI(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalROOT(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalSK(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalSL(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalGA(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalCA(NumberOperands o) {
    //   n = 1,3
    //   
    //   integer 1, 3
    if (COND_89.eval(o)) {
      return PluralCategory.ONE;
    }

    //   n = 2
    //   
    //   integer 2
    if (COND_8.eval(o)) {
      return PluralCategory.TWO;
    }

    //   n = 4
    //   
    //   integer 4
    if (COND_70.eval(o)) {
      return PluralCategory.FEW;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalSQ(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    //   n % 10 = 4 and n % 100 != 14
    //   
    //   integer 4, 24, 34, 44, 54, 64, 74, 84, 104, 1004, …
    if (COND_90.eval(o)) {
      return PluralCategory.MANY;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalSR(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalKK(NumberOperands o) {
    //   n % 10 = 6 or n % 10 = 9 or n % 10 = 0 and n != 0
    //   
    //   integer 6, 9, 10, 16, 19, 20, 26, 29, 30, 36, 39, 40, 100, 1000, 10000, 100000, 1000000, …
    if (COND_91.eval(o) || COND_92.eval(o) || COND_93.eval(o)) {
      return PluralCategory.MANY;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalCE(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalKM(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalKN(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalSV(NumberOperands o) {
    //   n % 10 = 1,2 and n % 100 != 11,12
    //   
    //   integer 1, 2, 21, 22, 31, 32, 41, 42, 51, 52, 61, 62, 71, 72, 81, 82, 101, 1001, …
    if (COND_94.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalKO(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalSW(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalGL(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalTA(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalGU(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    //   n = 2,3
    //   
    //   integer 2, 3
    if (COND_69.eval(o)) {
      return PluralCategory.TWO;
    }

    //   n = 4
    //   
    //   integer 4
    if (COND_70.eval(o)) {
      return PluralCategory.FEW;
    }

    //   n = 6
    //   
    //   integer 6
    if (COND_37.eval(o)) {
      return PluralCategory.MANY;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalKY(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalCS(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalPA(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalTE(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalTH(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalCY(NumberOperands o) {
    //   n = 0,7,8,9
    //   
    //   integer 0, 7~9
    if (COND_95.eval(o)) {
      return PluralCategory.ZERO;
    }

    //   n = 1
    //   
    //   integer 1
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    //   n = 2
    //   
    //   integer 2
    if (COND_8.eval(o)) {
      return PluralCategory.TWO;
    }

    //   n = 3,4
    //   
    //   integer 3, 4
    if (COND_96.eval(o)) {
      return PluralCategory.FEW;
    }

    //   n = 5,6
    //   
    //   integer 5, 6
    if (COND_97.eval(o)) {
      return PluralCategory.MANY;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalTL(NumberOperands o) {
    //   n = 1
    //   
    //   integer 1
    if (COND_1.eval(o)) {
      return PluralCategory.ONE;
    }

    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalPL(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalDA(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalHE(NumberOperands o) {
    return PluralCategory.OTHER;
  }

  private static PluralCategory evalOrdinalTR(NumberOperands o) {
    return PluralCategory.OTHER;
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy