library (ls05_stdcells) {
  capacitive_load_unit (1.0, pf);
  current_unit: "1uA";
  default_operating_conditions: typical;
  delay_model: table_lookup;
  in_place_swap_mode: match_footprint;
  input_threshold_pct_fall: 50.0;
  input_threshold_pct_rise: 50.0;
  leakage_power_unit: "1nW";
  nom_process: 1.0;
  nom_temperature: 25.0;
  nom_voltage: 5.0;
  output_threshold_pct_fall: 50.0;
  output_threshold_pct_rise: 50.0;
  pulling_resistance_unit: "1kohm";
  slew_lower_threshold_pct_fall: 20.0;
  slew_lower_threshold_pct_rise: 20.0;
  slew_upper_threshold_pct_fall: 80.0;
  slew_upper_threshold_pct_rise: 80.0;
  time_unit: "1ns";
  voltage_unit: "1V";
  operating_conditions (typical) {
    process: 1.0;
    temperature: 25.0;
    voltage: 5.0;
  }
  lu_table_template (delay_template_5x1) {
    index_1 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
    );
    variable_1: input_net_transition;
  }
  lu_table_template (delay_template_5x5) {
    index_1 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
    );
    index_2 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
    );
    variable_1: total_output_net_capacitance;
    variable_2: input_net_transition;
  }
  lu_table_template (delay_template_5x6) {
    index_1 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
    );
    index_2 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
    );
    variable_1: total_output_net_capacitance;
    variable_2: input_net_transition;
  }
  lu_table_template (delay_template_6x1) {
    index_1 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
    );
    variable_1: input_net_transition;
  }
  lu_table_template (delay_template_6x6) {
    index_1 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
    );
    index_2 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
    );
    variable_1: total_output_net_capacitance;
    variable_2: input_net_transition;
  }
  power_lut_template (energy_template_5x5) {
    index_1 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
    );
    index_2 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
    );
    variable_1: total_output_net_capacitance;
    variable_2: input_transition_time;
  }
  power_lut_template (energy_template_5x6) {
    index_1 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
    );
    index_2 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
    );
    variable_1: total_output_net_capacitance;
    variable_2: input_transition_time;
  }
  power_lut_template (energy_template_6x6) {
    index_1 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
    );
    index_2 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
    );
    variable_1: total_output_net_capacitance;
    variable_2: input_transition_time;
  }
  lu_table_template (hold_template_3x5) {
    index_1 (
      "1000.0, 1001.0, 1002.0"
    );
    index_2 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
    );
    variable_1: related_pin_transition;
    variable_2: constrained_pin_transition;
  }
  lu_table_template (hold_template_3x6) {
    index_1 (
      "1000.0, 1001.0, 1002.0"
    );
    index_2 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
    );
    variable_1: related_pin_transition;
    variable_2: constrained_pin_transition;
  }
  power_lut_template (passive_energy_template_5x1) {
    index_1 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
    );
    variable_1: input_transition_time;
  }
  power_lut_template (passive_energy_template_6x1) {
    index_1 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
    );
    variable_1: input_transition_time;
  }
  lu_table_template (recovery_template_3x6) {
    index_1 (
      "1000.0, 1001.0, 1002.0"
    );
    index_2 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
    );
    variable_1: related_pin_transition;
    variable_2: constrained_pin_transition;
  }
  lu_table_template (recovery_template_6x6) {
    index_1 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
    );
    index_2 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
    );
    variable_1: related_pin_transition;
    variable_2: constrained_pin_transition;
  }
  lu_table_template (removal_template_3x6) {
    index_1 (
      "1000.0, 1001.0, 1002.0"
    );
    index_2 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
    );
    variable_1: related_pin_transition;
    variable_2: constrained_pin_transition;
  }
  lu_table_template (setup_template_3x5) {
    index_1 (
      "1000.0, 1001.0, 1002.0"
    );
    index_2 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
    );
    variable_1: related_pin_transition;
    variable_2: constrained_pin_transition;
  }
  lu_table_template (setup_template_3x6) {
    index_1 (
      "1000.0, 1001.0, 1002.0"
    );
    index_2 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
    );
    variable_1: related_pin_transition;
    variable_2: constrained_pin_transition;
  }
  cell (AOI21X1) {
    area: 219456.0;
    cell_leakage_power: 0.1173;
    pin (C) {
      capacitance: 0.006189667947317773;
      direction: input;
      fall_capacitance: 0.00608282711442158;
      rise_capacitance: 0.006296508780213967;
    }
    pin (B) {
      capacitance: 0.004946001600705809;
      direction: input;
      fall_capacitance: 0.005741143923488236;
      rise_capacitance: 0.004150859277923382;
    }
    pin (A) {
      capacitance: 0.0063768651510662175;
      direction: input;
      fall_capacitance: 0.007818310946312182;
      rise_capacitance: 0.0049354193558202525;
    }
    pin (Y) {
      direction: output;
      function: "((A & !B & !C + B & !A & !C + !A & !B & !C))";
      timing () {
        related_pin: "C";
        timing_sense: negative_unate;
        cell_rise (delay_template_5x5) {
          index_1 (
            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
          );
          index_2 (
            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
          );
          values (
            "0.012884, 0.013814, 0.016718, 0.021870, 0.028833", \
            "0.086107, 0.080864, 0.082497, 0.093433, 0.172718", \
            "0.157907, 0.150075, 0.149039, 0.154342, 0.270928", \
            "0.301166, 0.291665, 0.287163, 0.285601, 0.427419", \
            "1.448480, 1.437527, 1.428051, 1.413899, 1.417674"
          );
        }
        cell_fall (delay_template_5x5) {
          index_1 (
            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
          );
          index_2 (
            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
          );
          values (
            "0.005708, 0.008603, 0.010605, 0.008342, 0.014912", \
            "0.046767, 0.047758, 0.052811, 0.059897, 0.111616", \
            "0.091313, 0.089826, 0.091015, 0.099539, 0.178409", \
            "0.180111, 0.176982, 0.175277, 0.175888, 0.287227", \
            "0.895506, 0.891449, 0.886851, 0.878783, 0.902515"
          );
        }
        rise_transition (delay_template_5x5) {
          index_1 (
            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
          );
          index_2 (
            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
          );
          values (
            "0.012972, 0.024876, 0.045576, 0.092382, 0.730301", \
            "0.117670, 0.118582, 0.124112, 0.144342, 0.702744", \
            "0.221586, 0.221908, 0.222072, 0.232193, 0.694310", \
            "0.430244, 0.430091, 0.430239, 0.430802, 0.761045", \
            "2.104719, 2.104806, 2.104636, 2.104737, 2.138480"
          );
        }
        fall_transition (delay_template_5x5) {
          index_1 (
            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
          );
          index_2 (
            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
          );
          values (
            "0.013144, 0.040328, 0.065020, 0.111186, 0.739334", \
            "0.095171, 0.101388, 0.116357, 0.159575, 0.811404", \
            "0.180158, 0.181007, 0.191810, 0.223783, 0.880144", \
            "0.350588, 0.350580, 0.354001, 0.371311, 0.983014", \
            "1.727889, 1.727581, 1.728170, 1.727705, 1.982896"
          );
        }
      }
      timing () {
        related_pin: "B";
        timing_sense: negative_unate;
        cell_rise (delay_template_5x5) {
          index_1 (
            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
          );
          index_2 (
            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
          );
          values (
            "0.015335, 0.016982, 0.017673, 0.018219, -0.069608", \
            "0.094019, 0.093932, 0.095770, 0.102779, 0.105301", \
            "0.171502, 0.171151, 0.171863, 0.175258, 0.222703", \
            "0.326268, 0.325524, 0.325280, 0.326346, 0.409421", \
            "1.565887, 1.565044, 1.563580, 1.561246, 1.585994"
          );
        }
        cell_fall (delay_template_5x5) {
          index_1 (
            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
          );
          index_2 (
            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
          );
          values (
            "0.013287, 0.024880, 0.031685, 0.037498, 0.167659", \
            "0.107124, 0.105845, 0.107193, 0.117896, 0.299712", \
            "0.201357, 0.197038, 0.194436, 0.196480, 0.391707", \
            "0.390085, 0.383995, 0.377751, 0.370715, 0.543155", \
            "1.901754, 1.893671, 1.883505, 1.864991, 1.785557"
          );
        }
        rise_transition (delay_template_5x5) {
          index_1 (
            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
          );
          index_2 (
            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
          );
          values (
            "0.013701, 0.021239, 0.037128, 0.074532, 0.517052", \
            "0.124145, 0.126554, 0.127481, 0.138597, 0.502699", \
            "0.236289, 0.237521, 0.237587, 0.239899, 0.557716", \
            "0.461681, 0.461011, 0.461333, 0.461741, 0.666948", \
            "2.263739, 2.263875, 2.263871, 2.263837, 2.266936"
          );
        }
        fall_transition (delay_template_5x5) {
          index_1 (
            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
          );
          index_2 (
            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
          );
          values (
            "0.030160, 0.038814, 0.058225, 0.102917, 0.553894", \
            "0.158458, 0.157631, 0.161617, 0.182586, 0.706485", \
            "0.287898, 0.286716, 0.287445, 0.295747, 0.780606", \
            "0.548485, 0.548526, 0.548522, 0.548250, 0.902420", \
            "2.640741, 2.640742, 2.640727, 2.640745, 2.647561"
          );
        }
      }
      timing () {
        related_pin: "A";
        timing_sense: negative_unate;
        cell_rise (delay_template_5x5) {
          index_1 (
            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
          );
          index_2 (
            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
          );
          values (
            "0.018081, 0.020472, 0.022446, 0.023825, -0.023691", \
            "0.096239, 0.096537, 0.098721, 0.106326, 0.139254", \
            "0.173813, 0.173358, 0.174228, 0.178403, 0.251687", \
            "0.328514, 0.327676, 0.327494, 0.329061, 0.431351", \
            "1.568114, 1.567133, 1.565660, 1.563413, 1.593357"
          );
        }
        cell_fall (delay_template_5x5) {
          index_1 (
            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
          );
          index_2 (
            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
          );
          values (
            "0.011083, 0.026784, 0.035062, 0.040835, 0.137110", \
            "0.106329, 0.111405, 0.118093, 0.132531, 0.298206", \
            "0.200961, 0.203504, 0.207727, 0.219147, 0.408186", \
            "0.389721, 0.390740, 0.393162, 0.400718, 0.586451", \
            "1.901421, 1.900917, 1.900632, 1.901495, 1.980436"
          );
        }
        rise_transition (delay_template_5x5) {
          index_1 (
            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
          );
          index_2 (
            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
          );
          values (
            "0.017574, 0.025241, 0.039240, 0.074436, 0.320255", \
            "0.130209, 0.130934, 0.131571, 0.144964, 0.452202", \
            "0.240805, 0.242496, 0.242369, 0.244406, 0.548288", \
            "0.466498, 0.466251, 0.466522, 0.466774, 0.675363", \
            "2.268774, 2.268830, 2.268824, 2.268768, 2.271727"
          );
        }
        fall_transition (delay_template_5x5) {
          index_1 (
            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
          );
          index_2 (
            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
          );
          values (
            "0.029014, 0.034924, 0.042010, 0.073728, 0.327469", \
            "0.158673, 0.158762, 0.158147, 0.170170, 0.467645", \
            "0.287787, 0.287911, 0.287075, 0.288882, 0.551159", \
            "0.548458, 0.548226, 0.548509, 0.548657, 0.704977", \
            "2.640715, 2.640671, 2.640748, 2.640738, 2.640639"
          );
        }
      }
    }
  }
}