/*
 * Copyright 2022 GlobalFoundries PDK Authors
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
  cell(gf180mcu_fd_sc_mcu9t5v0__and3_4) {
    area : 56.448000 ;

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!A1&!A2&!A3" ;
      value : "0.0001080792" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!A1&!A2&A3" ;
      value : "0.0001080792" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!A1&A2&!A3" ;
      value : "0.0001080828" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!A1&A2&A3" ;
      value : "0.0001080828" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "A1&!A2&!A3" ;
      value : "0.0001478376" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "A1&!A2&A3" ;
      value : "0.0001478376" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "A1&A2&!A3" ;
      value : "0.000186642" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "A1&A2&A3" ;
      value : "0.0001614168" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "0.000186642" ;
    }

    pg_pin(VDD) {
      voltage_name : VDD ;
      pg_type : primary_power ;
    }

    pg_pin(VSS) {
      voltage_name : VSS ;
      pg_type : primary_ground ;
    }

    pin(A1) {
      capacitance : 0.01209 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 4.4 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!A2&!A3" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.05547, 0.0552, 0.05512, 0.05497, 0.05499, 0.05496, 0.05521, \
                  0.05509, 0.05501, 0.05506");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("-0.0318, -0.03172, -0.03177, -0.03184, -0.03191, -0.03182, -0.03195, \
                  -0.03202, -0.03208, -0.03204");
        }
      }

      internal_power() {
        when : "!A2&A3" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.05542, 0.05519, 0.05507, 0.05508, 0.05498, 0.05502, 0.05508, \
                  0.05514, 0.05517, 0.05504");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("-0.03179, -0.03177, -0.03179, -0.03184, -0.03192, -0.03187, -0.03202, \
                  -0.032, -0.03209, -0.03206");
        }
      }

      internal_power() {
        when : "A2&!A3" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.05526, 0.05513, 0.05503, 0.05498, 0.05502, 0.05511, 0.0551, \
                  0.05514, 0.05513, 0.05503");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.02898, 0.02902, 0.02875, 0.02864, 0.02859, 0.02846, 0.0283, \
                  0.02835, 0.02826, 0.02825");
        }
      }
    }

    pin(A2) {
      capacitance : 0.01247 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 4.4 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!A1&!A3" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.07253, 0.07317, 0.07488, 0.07708, 0.07873, 0.07992, 0.08062, \
                  0.08122, 0.08149, 0.08178");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("-0.04773, -0.04759, -0.04748, -0.04735, -0.04732, -0.04736, -0.04749, \
                  -0.04755, -0.04756, -0.04756");
        }
      }

      internal_power() {
        when : "!A1&A3" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.05557, 0.05059, 0.04791, 0.04755, 0.04754, 0.04753, 0.04762, \
                  0.04758, 0.04758, 0.04762");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("-0.04755, -0.04753, -0.04746, -0.04749, -0.04738, -0.04736, -0.04745, \
                  -0.04757, -0.04751, -0.04753");
        }
      }

      internal_power() {
        when : "A1&!A3" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.05474, 0.05468, 0.05452, 0.05441, 0.05438, 0.05443, 0.05448, \
                  0.05443, 0.05443, 0.05445");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("-0.03859, -0.03855, -0.03851, -0.03847, -0.03846, -0.03848, -0.03867, \
                  -0.03872, -0.03874, -0.03883");
        }
      }
    }

    pin(A3) {
      capacitance : 0.01307 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 4.4 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!A1&!A2" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.04793, 0.04777, 0.04767, 0.04756, 0.04753, 0.04758, 0.04757, \
                  0.04763, 0.04764, 0.04758");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("-0.04765, -0.04755, -0.04744, -0.04736, -0.04731, -0.0474, -0.04738, \
                  -0.04749, -0.04756, -0.04754");
        }
      }

      internal_power() {
        when : "!A1&A2" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.04994, 0.04786, 0.04753, 0.04759, 0.04746, 0.04755, 0.04757, \
                  0.04768, 0.04766, 0.04759");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("-0.0476, -0.04761, -0.04753, -0.04736, -0.04739, -0.04739, -0.04755, \
                  -0.04752, -0.0475, -0.04753");
        }
      }

      internal_power() {
        when : "A1&!A2" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.05049, 0.04802, 0.04767, 0.04762, 0.0475, 0.04755, 0.04761, \
                  0.04764, 0.04761, 0.04759");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("-0.04766, -0.04764, -0.04751, -0.0474, -0.04736, -0.04737, -0.04751, \
                  -0.04747, -0.0475, -0.04753");
        }
      }
    }

    pin(Z) {
      direction : output ;
      function : "(A1&A2&A3)" ;
      max_capacitance : 1.812 ;
      max_transition : 4.4 ;
      min_capacitance : 0.001 ;
      output_voltage : default ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        related_pin : "A1" ;
        when : "A2&A3" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.0135, 0.05736, 0.1411, 0.2716, 0.4548, 0.6957, 0.9993, 1.37, 1.812");
          values("0.4697, 0.4542, 0.4383, 0.4316, 0.4282, 0.4269, 0.4251, 0.4242, 0.4238, 0.4236",\
                 "0.4682, 0.4526, 0.4367, 0.4306, 0.4265, 0.4247, 0.4235, 0.4229, 0.4226, 0.4224",\
                 "0.4727, 0.4567, 0.4393, 0.4323, 0.4291, 0.4273, 0.4263, 0.4258, 0.4254, 0.4252",\
                 "0.519, 0.4989, 0.4734, 0.4616, 0.4555, 0.4523, 0.4505, 0.4494, 0.4487, 0.4481",\
                 "0.609, 0.5839, 0.5468, 0.5246, 0.5129, 0.5066, 0.5025, 0.5003, 0.4987, 0.4981",\
                 "0.7418, 0.7123, 0.6607, 0.6274, 0.6088, 0.5969, 0.5892, 0.5849, 0.582, 0.58",\
                 "0.9169, 0.8832, 0.8185, 0.7715, 0.7416, 0.7242, 0.7121, 0.7045, 0.6998, 0.6963",\
                 "1.133, 1.096, 1.018, 0.9569, 0.9165, 0.8904, 0.8736, 0.8614, 0.8536, 0.8482",\
                 "1.391, 1.351, 1.261, 1.186, 1.134, 1.097, 1.074, 1.059, 1.046, 1.038",\
                 "1.691, 1.649, 1.55, 1.459, 1.394, 1.349, 1.317, 1.295, 1.279, 1.268");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.0135, 0.05736, 0.1411, 0.2716, 0.4548, 0.6957, 0.9993, 1.37, 1.812");
          values("0.3201, 0.3046, 0.2871, 0.2793, 0.2781, 0.2791, 0.2824, 0.2865, 0.294, 0.2994",\
                 "0.3192, 0.3028, 0.2856, 0.278, 0.2767, 0.2769, 0.2809, 0.2839, 0.2922, 0.294",\
                 "0.324, 0.308, 0.2891, 0.2811, 0.2792, 0.2794, 0.2835, 0.2861, 0.2936, 0.2972",\
                 "0.3627, 0.3448, 0.3218, 0.3082, 0.3023, 0.3021, 0.3054, 0.3106, 0.3131, 0.3235",\
                 "0.4338, 0.4121, 0.3822, 0.3649, 0.3523, 0.3485, 0.349, 0.3538, 0.3548, 0.3602",\
                 "0.5454, 0.5184, 0.481, 0.4534, 0.4401, 0.4292, 0.4253, 0.4243, 0.4275, 0.4362",\
                 "0.6947, 0.6622, 0.6147, 0.5776, 0.5557, 0.5451, 0.5376, 0.5305, 0.5334, 0.5298",\
                 "0.8822, 0.8444, 0.7865, 0.7415, 0.7073, 0.6887, 0.6831, 0.6763, 0.6698, 0.6684",\
                 "1.108, 1.065, 0.997, 0.9455, 0.9035, 0.8723, 0.8566, 0.8556, 0.8477, 0.8419",\
                 "1.373, 1.327, 1.248, 1.185, 1.137, 1.098, 1.069, 1.059, 1.063, 1.055");
        }
      }

      internal_power() {
        related_pin : "A2" ;
        when : "A1&A3" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.0135, 0.05736, 0.1411, 0.2716, 0.4548, 0.6957, 0.9993, 1.37, 1.812");
          values("0.5486, 0.5307, 0.5084, 0.4983, 0.4925, 0.4893, 0.4875, 0.4864, 0.4857, 0.4852",\
                 "0.5464, 0.5285, 0.5061, 0.496, 0.4906, 0.4872, 0.4853, 0.4843, 0.4836, 0.4831",\
                 "0.5499, 0.5316, 0.5086, 0.4987, 0.4927, 0.4897, 0.488, 0.4869, 0.4863, 0.4858",\
                 "0.5931, 0.5724, 0.5434, 0.5281, 0.52, 0.5153, 0.5127, 0.511, 0.5103, 0.5096",\
                 "0.6858, 0.6602, 0.6201, 0.5949, 0.5806, 0.5729, 0.568, 0.5649, 0.5638, 0.5621",\
                 "0.8224, 0.7928, 0.7396, 0.7031, 0.6807, 0.6676, 0.6597, 0.6544, 0.6507, 0.648",\
                 "1.004, 0.9703, 0.904, 0.8545, 0.8225, 0.8014, 0.7881, 0.7795, 0.774, 0.7696",\
                 "1.227, 1.19, 1.112, 1.048, 1.005, 0.9751, 0.9565, 0.9432, 0.9344, 0.9286",\
                 "1.494, 1.455, 1.366, 1.287, 1.232, 1.192, 1.166, 1.147, 1.135, 1.126",\
                 "1.805, 1.764, 1.666, 1.572, 1.503, 1.454, 1.419, 1.395, 1.377, 1.365");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.0135, 0.05736, 0.1411, 0.2716, 0.4548, 0.6957, 0.9993, 1.37, 1.812");
          values("0.3201, 0.3037, 0.2864, 0.2792, 0.2781, 0.278, 0.2838, 0.2847, 0.2915, 0.2972",\
                 "0.3183, 0.3023, 0.2845, 0.2777, 0.2763, 0.2762, 0.2809, 0.2857, 0.2922, 0.2972",\
                 "0.3204, 0.3046, 0.2856, 0.2778, 0.2756, 0.2773, 0.2813, 0.2825, 0.2875, 0.2922",\
                 "0.3535, 0.3349, 0.3133, 0.3007, 0.2958, 0.2945, 0.2975, 0.3005, 0.308, 0.3152",\
                 "0.4218, 0.3997, 0.3702, 0.3549, 0.3426, 0.3381, 0.3393, 0.3455, 0.3469, 0.3516",\
                 "0.5322, 0.5065, 0.469, 0.442, 0.4293, 0.4191, 0.4145, 0.4164, 0.4185, 0.4272",\
                 "0.6822, 0.6515, 0.605, 0.5681, 0.5456, 0.5375, 0.529, 0.5251, 0.524, 0.5244",\
                 "0.871, 0.8356, 0.7793, 0.7371, 0.7044, 0.6848, 0.6759, 0.6706, 0.663, 0.6641",\
                 "1.098, 1.06, 0.993, 0.9412, 0.8981, 0.872, 0.8533, 0.8502, 0.8459, 0.8401",\
                 "1.366, 1.323, 1.247, 1.187, 1.138, 1.096, 1.07, 1.059, 1.064, 1.056");
        }
      }

      internal_power() {
        related_pin : "A3" ;
        when : "A1&A2" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.0135, 0.05736, 0.1411, 0.2716, 0.4548, 0.6957, 0.9993, 1.37, 1.812");
          values("0.6183, 0.5981, 0.571, 0.5578, 0.5496, 0.5448, 0.5432, 0.5411, 0.54, 0.5391",\
                 "0.6156, 0.5957, 0.5677, 0.5546, 0.5469, 0.5434, 0.5406, 0.5385, 0.5374, 0.5367",\
                 "0.62, 0.6003, 0.5718, 0.558, 0.5501, 0.5459, 0.5442, 0.5422, 0.5411, 0.5402",\
                 "0.6611, 0.6397, 0.6065, 0.588, 0.5786, 0.5731, 0.5697, 0.5678, 0.5662, 0.5655",\
                 "0.7574, 0.7314, 0.6878, 0.6603, 0.6442, 0.6346, 0.6283, 0.6249, 0.6225, 0.6211",\
                 "0.8981, 0.8687, 0.8138, 0.7748, 0.751, 0.7352, 0.7254, 0.7194, 0.7157, 0.713",\
                 "1.088, 1.055, 0.9871, 0.9349, 0.9007, 0.8782, 0.8639, 0.8544, 0.8479, 0.8433",\
                 "1.325, 1.289, 1.21, 1.144, 1.098, 1.066, 1.045, 1.031, 1.021, 1.014",\
                 "1.608, 1.57, 1.481, 1.4, 1.342, 1.3, 1.271, 1.252, 1.238, 1.228",\
                 "1.942, 1.901, 1.803, 1.707, 1.636, 1.583, 1.545, 1.519, 1.5, 1.487");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.0135, 0.05736, 0.1411, 0.2716, 0.4548, 0.6957, 0.9993, 1.37, 1.812");
          values("0.3205, 0.3039, 0.2868, 0.2788, 0.2781, 0.278, 0.2824, 0.2861, 0.29, 0.3008",\
                 "0.3183, 0.3017, 0.2851, 0.2775, 0.2763, 0.2762, 0.2802, 0.2843, 0.2918, 0.2972",\
                 "0.3174, 0.3019, 0.2831, 0.276, 0.2735, 0.274, 0.2788, 0.2803, 0.2857, 0.2911",\
                 "0.3438, 0.3253, 0.3058, 0.2943, 0.2897, 0.2888, 0.2921, 0.2976, 0.3048, 0.3098",\
                 "0.4085, 0.3869, 0.3593, 0.3454, 0.3354, 0.332, 0.3353, 0.3383, 0.3473, 0.3487",\
                 "0.5193, 0.494, 0.4578, 0.4322, 0.4232, 0.4148, 0.4127, 0.415, 0.4149, 0.4222",\
                 "0.6732, 0.6437, 0.5986, 0.5653, 0.5431, 0.5354, 0.5297, 0.5259, 0.5262, 0.5302",\
                 "0.8679, 0.8346, 0.7812, 0.7376, 0.7087, 0.6884, 0.6852, 0.6785, 0.6749, 0.6727",\
                 "1.106, 1.069, 1.004, 0.9523, 0.9125, 0.8853, 0.8717, 0.8697, 0.8646, 0.8614",\
                 "1.386, 1.347, 1.273, 1.21, 1.163, 1.127, 1.105, 1.091, 1.096, 1.087");
        }
      }

      timing() {
        related_pin : "A1" ;
        timing_sense : positive_unate ;
        timing_type : combinational ;

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.0135, 0.05736, 0.1411, 0.2716, 0.4548, 0.6957, 0.9993, 1.37, 1.812");
          values("0.1531, 0.1734, 0.2241, 0.299, 0.4031, 0.5452, 0.7315, 0.9661, 1.253, 1.595",\
                 "0.1605, 0.1807, 0.2313, 0.3063, 0.4104, 0.5525, 0.7388, 0.9736, 1.26, 1.602",\
                 "0.1903, 0.2104, 0.261, 0.3357, 0.4398, 0.5819, 0.7682, 1.003, 1.29, 1.631",\
                 "0.2486, 0.2694, 0.3206, 0.3954, 0.4993, 0.6412, 0.8273, 1.062, 1.349, 1.69",\
                 "0.322, 0.3445, 0.3988, 0.476, 0.5809, 0.7224, 0.9082, 1.143, 1.429, 1.771",\
                 "0.4087, 0.4335, 0.492, 0.5728, 0.6788, 0.8201, 1.006, 1.24, 1.526, 1.867",\
                 "0.5067, 0.534, 0.5981, 0.6832, 0.793, 0.9352, 1.121, 1.354, 1.64, 1.981",\
                 "0.6167, 0.6465, 0.7157, 0.8067, 0.9215, 1.067, 1.254, 1.488, 1.773, 2.114",\
                 "0.7386, 0.7706, 0.8456, 0.9431, 1.062, 1.213, 1.403, 1.639, 1.924, 2.265",\
                 "0.8726, 0.9072, 0.9874, 1.092, 1.217, 1.371, 1.566, 1.807, 2.096, 2.436");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.0135, 0.05736, 0.1411, 0.2716, 0.4548, 0.6957, 0.9993, 1.37, 1.812");
          values("0.1739, 0.1986, 0.2689, 0.3889, 0.5704, 0.8245, 1.159, 1.58, 2.095, 2.709",\
                 "0.1783, 0.2029, 0.2732, 0.3932, 0.5748, 0.8291, 1.164, 1.586, 2.1, 2.715",\
                 "0.1971, 0.2217, 0.2918, 0.4116, 0.5931, 0.8471, 1.182, 1.604, 2.119, 2.733",\
                 "0.2283, 0.2533, 0.3235, 0.4428, 0.6236, 0.8772, 1.211, 1.634, 2.147, 2.76",\
                 "0.2579, 0.283, 0.3529, 0.472, 0.6527, 0.9058, 1.24, 1.661, 2.176, 2.79",\
                 "0.2827, 0.3089, 0.3796, 0.4988, 0.6781, 0.9311, 1.264, 1.685, 2.2, 2.811",\
                 "0.2986, 0.3267, 0.399, 0.5194, 0.6994, 0.9509, 1.284, 1.703, 2.218, 2.831",\
                 "0.304, 0.3339, 0.409, 0.531, 0.7124, 0.9648, 1.297, 1.717, 2.23, 2.842",\
                 "0.2971, 0.329, 0.4079, 0.5321, 0.7158, 0.9708, 1.304, 1.724, 2.236, 2.848",\
                 "0.2771, 0.311, 0.3938, 0.5202, 0.7065, 0.9647, 1.302, 1.723, 2.235, 2.846");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.0135, 0.05736, 0.1411, 0.2716, 0.4548, 0.6957, 0.9993, 1.37, 1.812");
          values("0.04802, 0.0677, 0.123, 0.2187, 0.3745, 0.6062, 0.9135, 1.302, 1.779, 2.348",\
                 "0.04784, 0.06776, 0.1228, 0.2182, 0.3755, 0.6049, 0.9135, 1.302, 1.78, 2.347",\
                 "0.04792, 0.06798, 0.1231, 0.2187, 0.3746, 0.605, 0.9124, 1.302, 1.779, 2.349",\
                 "0.05434, 0.07358, 0.1266, 0.2204, 0.3753, 0.6056, 0.9124, 1.303, 1.78, 2.345",\
                 "0.06554, 0.08572, 0.1378, 0.2288, 0.3797, 0.6057, 0.9132, 1.302, 1.778, 2.346",\
                 "0.0794, 0.1022, 0.154, 0.2414, 0.3866, 0.609, 0.9148, 1.303, 1.776, 2.345",\
                 "0.0942, 0.1192, 0.1742, 0.2602, 0.3994, 0.615, 0.9164, 1.303, 1.778, 2.343",\
                 "0.11, 0.1388, 0.1964, 0.2832, 0.4206, 0.6306, 0.9238, 1.305, 1.778, 2.342",\
                 "0.1274, 0.1574, 0.221, 0.308, 0.444, 0.6528, 0.9456, 1.318, 1.783, 2.344",\
                 "0.1446, 0.1772, 0.2456, 0.3352, 0.4696, 0.678, 0.9706, 1.346, 1.801, 2.353");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.0135, 0.05736, 0.1411, 0.2716, 0.4548, 0.6957, 0.9993, 1.37, 1.812");
          values("0.05748, 0.08736, 0.188, 0.3791, 0.689, 1.129, 1.711, 2.443, 3.341, 4.41",\
                 "0.0577, 0.08756, 0.1882, 0.379, 0.689, 1.131, 1.712, 2.447, 3.343, 4.404",\
                 "0.0575, 0.08738, 0.1879, 0.379, 0.6882, 1.129, 1.712, 2.446, 3.343, 4.412",\
                 "0.0606, 0.09024, 0.1903, 0.3798, 0.6885, 1.129, 1.709, 2.446, 3.339, 4.409",\
                 "0.06576, 0.09468, 0.1935, 0.3839, 0.6904, 1.13, 1.711, 2.446, 3.337, 4.402",\
                 "0.07388, 0.1031, 0.1992, 0.3868, 0.693, 1.132, 1.71, 2.444, 3.336, 4.404",\
                 "0.0842, 0.1132, 0.2074, 0.3944, 0.6968, 1.134, 1.714, 2.441, 3.337, 4.408",\
                 "0.0956, 0.1266, 0.2184, 0.4052, 0.7076, 1.139, 1.714, 2.444, 3.34, 4.405",\
                 "0.108, 0.1404, 0.2308, 0.4172, 0.7224, 1.156, 1.723, 2.447, 3.337, 4.402",\
                 "0.1218, 0.1564, 0.2454, 0.4302, 0.7378, 1.177, 1.745, 2.459, 3.342, 4.4");
        }
      }

      timing() {
        related_pin : "A2" ;
        timing_sense : positive_unate ;
        timing_type : combinational ;

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.0135, 0.05736, 0.1411, 0.2716, 0.4548, 0.6957, 0.9993, 1.37, 1.812");
          values("0.1744, 0.196, 0.2489, 0.3249, 0.4293, 0.5714, 0.7576, 0.9923, 1.279, 1.621",\
                 "0.1814, 0.2031, 0.2558, 0.3319, 0.4363, 0.5784, 0.7647, 0.9994, 1.286, 1.628",\
                 "0.2111, 0.2328, 0.2856, 0.3613, 0.4658, 0.6079, 0.7942, 1.029, 1.315, 1.657",\
                 "0.2732, 0.295, 0.3479, 0.4238, 0.528, 0.67, 0.8561, 1.091, 1.377, 1.719",\
                 "0.3543, 0.3783, 0.4346, 0.5124, 0.6172, 0.7588, 0.9447, 1.179, 1.465, 1.807",\
                 "0.4527, 0.4789, 0.5392, 0.6201, 0.7258, 0.8674, 1.053, 1.287, 1.573, 1.914",\
                 "0.5662, 0.595, 0.6605, 0.7461, 0.8546, 0.9963, 1.181, 1.415, 1.701, 2.042",\
                 "0.6958, 0.7264, 0.7976, 0.8887, 1.001, 1.145, 1.331, 1.564, 1.849, 2.19",\
                 "0.8414, 0.8747, 0.9513, 1.049, 1.166, 1.314, 1.501, 1.736, 2.021, 2.361",\
                 "1.003, 1.039, 1.122, 1.226, 1.348, 1.5, 1.692, 1.929, 2.216, 2.556");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.0135, 0.05736, 0.1411, 0.2716, 0.4548, 0.6957, 0.9993, 1.37, 1.812");
          values("0.1903, 0.2149, 0.2852, 0.4052, 0.5868, 0.8412, 1.176, 1.598, 2.113, 2.727",\
                 "0.1935, 0.2181, 0.2884, 0.4085, 0.59, 0.8443, 1.179, 1.601, 2.115, 2.728",\
                 "0.2041, 0.2287, 0.2988, 0.4187, 0.6002, 0.8543, 1.189, 1.611, 2.126, 2.74",\
                 "0.2242, 0.2492, 0.3198, 0.4393, 0.6202, 0.8738, 1.209, 1.631, 2.145, 2.759",\
                 "0.2447, 0.2705, 0.3413, 0.4608, 0.6414, 0.8946, 1.229, 1.65, 2.164, 2.779",\
                 "0.259, 0.2863, 0.3584, 0.4785, 0.6581, 0.9108, 1.244, 1.665, 2.179, 2.791",\
                 "0.2622, 0.2911, 0.3657, 0.488, 0.6687, 0.9204, 1.253, 1.673, 2.186, 2.799",\
                 "0.2517, 0.2826, 0.3603, 0.4853, 0.6685, 0.9217, 1.254, 1.673, 2.186, 2.798",\
                 "0.2261, 0.259, 0.3403, 0.4676, 0.6536, 0.911, 1.246, 1.665, 2.177, 2.789",\
                 "0.1841, 0.2192, 0.3045, 0.4345, 0.6233, 0.8837, 1.223, 1.645, 2.158, 2.769");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.0135, 0.05736, 0.1411, 0.2716, 0.4548, 0.6957, 0.9993, 1.37, 1.812");
          values("0.0534, 0.07432, 0.1278, 0.2219, 0.3761, 0.6059, 0.9131, 1.302, 1.78, 2.344",\
                 "0.05356, 0.07404, 0.1278, 0.2214, 0.3764, 0.606, 0.9131, 1.303, 1.779, 2.345",\
                 "0.05356, 0.07428, 0.1279, 0.2221, 0.376, 0.606, 0.9132, 1.303, 1.779, 2.344",\
                 "0.05788, 0.07854, 0.1306, 0.2233, 0.3775, 0.606, 0.9137, 1.302, 1.779, 2.345",\
                 "0.06894, 0.09094, 0.1423, 0.2307, 0.3807, 0.6066, 0.9142, 1.303, 1.778, 2.347",\
                 "0.0818, 0.105, 0.1576, 0.2422, 0.3864, 0.609, 0.9134, 1.302, 1.779, 2.344",\
                 "0.097, 0.1226, 0.1774, 0.2592, 0.397, 0.614, 0.916, 1.304, 1.778, 2.345",\
                 "0.1124, 0.141, 0.1996, 0.281, 0.4156, 0.6264, 0.921, 1.304, 1.777, 2.343",\
                 "0.1292, 0.1606, 0.2236, 0.3054, 0.438, 0.645, 0.935, 1.312, 1.78, 2.344",\
                 "0.1476, 0.1806, 0.2504, 0.3316, 0.461, 0.6664, 0.9574, 1.332, 1.792, 2.348");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.0135, 0.05736, 0.1411, 0.2716, 0.4548, 0.6957, 0.9993, 1.37, 1.812");
          values("0.05776, 0.0876, 0.1878, 0.3789, 0.689, 1.131, 1.713, 2.446, 3.343, 4.403",\
                 "0.05776, 0.0876, 0.1879, 0.379, 0.6883, 1.131, 1.71, 2.447, 3.341, 4.409",\
                 "0.05756, 0.08762, 0.1881, 0.379, 0.6886, 1.129, 1.713, 2.445, 3.337, 4.404",\
                 "0.06154, 0.0909, 0.1904, 0.3796, 0.6885, 1.129, 1.711, 2.447, 3.343, 4.401",\
                 "0.06614, 0.09558, 0.1942, 0.3835, 0.6899, 1.13, 1.709, 2.446, 3.336, 4.402",\
                 "0.07452, 0.104, 0.2009, 0.3876, 0.6934, 1.131, 1.709, 2.444, 3.335, 4.406",\
                 "0.0838, 0.115, 0.2112, 0.3976, 0.699, 1.133, 1.711, 2.445, 3.338, 4.397",\
                 "0.095, 0.128, 0.2218, 0.4098, 0.7118, 1.141, 1.714, 2.443, 3.335, 4.398",\
                 "0.107, 0.14, 0.2344, 0.423, 0.7278, 1.16, 1.725, 2.446, 3.335, 4.401",\
                 "0.1196, 0.153, 0.2476, 0.4376, 0.7458, 1.183, 1.753, 2.463, 3.341, 4.4");
        }
      }

      timing() {
        related_pin : "A3" ;
        timing_sense : positive_unate ;
        timing_type : combinational ;

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.0135, 0.05736, 0.1411, 0.2716, 0.4548, 0.6957, 0.9993, 1.37, 1.812");
          values("0.1903, 0.213, 0.2677, 0.3451, 0.4504, 0.5926, 0.7788, 1.013, 1.3, 1.641",\
                 "0.1972, 0.22, 0.2746, 0.3521, 0.4573, 0.5995, 0.7857, 1.02, 1.307, 1.649",\
                 "0.2274, 0.2501, 0.3048, 0.3823, 0.4874, 0.6297, 0.8158, 1.051, 1.337, 1.679",\
                 "0.2921, 0.3149, 0.3694, 0.4465, 0.5515, 0.6936, 0.8798, 1.114, 1.401, 1.743",\
                 "0.381, 0.4057, 0.4632, 0.5421, 0.6474, 0.7891, 0.9749, 1.209, 1.496, 1.837",\
                 "0.4901, 0.5168, 0.5785, 0.6602, 0.7663, 0.908, 1.094, 1.328, 1.614, 1.955",\
                 "0.619, 0.6483, 0.7152, 0.8009, 0.9089, 1.051, 1.236, 1.47, 1.755, 2.096",\
                 "0.7682, 0.7999, 0.8721, 0.9632, 1.075, 1.218, 1.403, 1.637, 1.922, 2.263",\
                 "0.9388, 0.9725, 1.051, 1.148, 1.264, 1.411, 1.598, 1.831, 2.116, 2.456",\
                 "1.132, 1.168, 1.251, 1.355, 1.476, 1.626, 1.817, 2.053, 2.339, 2.679");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.0135, 0.05736, 0.1411, 0.2716, 0.4548, 0.6957, 0.9993, 1.37, 1.812");
          values("0.1985, 0.2231, 0.2934, 0.4134, 0.595, 0.8493, 1.184, 1.605, 2.12, 2.734",\
                 "0.2014, 0.2258, 0.2963, 0.4163, 0.5979, 0.8522, 1.187, 1.608, 2.122, 2.736",\
                 "0.2063, 0.2309, 0.301, 0.421, 0.6025, 0.8567, 1.192, 1.613, 2.128, 2.743",\
                 "0.2138, 0.2388, 0.3093, 0.429, 0.6102, 0.8642, 1.198, 1.621, 2.135, 2.748",\
                 "0.2196, 0.2454, 0.3168, 0.4366, 0.6173, 0.8708, 1.205, 1.626, 2.141, 2.754",\
                 "0.217, 0.2446, 0.3179, 0.4391, 0.6194, 0.872, 1.205, 1.627, 2.14, 2.754",\
                 "0.2005, 0.2299, 0.3059, 0.4304, 0.6125, 0.8648, 1.197, 1.618, 2.131, 2.745",\
                 "0.1671, 0.1983, 0.2778, 0.405, 0.5914, 0.8465, 1.179, 1.599, 2.111, 2.724",\
                 "0.1151, 0.1483, 0.2308, 0.3612, 0.5511, 0.8112, 1.148, 1.568, 2.08, 2.692",\
                 "0.0428, 0.078, 0.1647, 0.297, 0.4906, 0.7559, 1.099, 1.524, 2.036, 2.647");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.0135, 0.05736, 0.1411, 0.2716, 0.4548, 0.6957, 0.9993, 1.37, 1.812");
          values("0.05854, 0.07964, 0.1339, 0.2264, 0.3786, 0.6067, 0.9139, 1.303, 1.78, 2.347",\
                 "0.05872, 0.0795, 0.1331, 0.2259, 0.3784, 0.6066, 0.9138, 1.303, 1.78, 2.345",\
                 "0.05874, 0.0802, 0.1333, 0.2258, 0.3784, 0.6073, 0.9135, 1.303, 1.778, 2.346",\
                 "0.06094, 0.08214, 0.135, 0.2266, 0.3793, 0.6075, 0.9125, 1.303, 1.778, 2.343",\
                 "0.07192, 0.09514, 0.1466, 0.2338, 0.3816, 0.6074, 0.9132, 1.303, 1.777, 2.345",\
                 "0.0848, 0.1088, 0.1606, 0.245, 0.388, 0.6098, 0.9144, 1.304, 1.78, 2.347",\
                 "0.0988, 0.1258, 0.179, 0.2604, 0.398, 0.614, 0.9162, 1.304, 1.779, 2.344",\
                 "0.1144, 0.1444, 0.2026, 0.2816, 0.4136, 0.6234, 0.9208, 1.306, 1.777, 2.343",\
                 "0.1306, 0.1624, 0.2248, 0.3056, 0.4356, 0.6408, 0.9316, 1.31, 1.78, 2.343",\
                 "0.1492, 0.1832, 0.2508, 0.332, 0.4586, 0.6634, 0.9518, 1.327, 1.788, 2.348");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.0135, 0.05736, 0.1411, 0.2716, 0.4548, 0.6957, 0.9993, 1.37, 1.812");
          values("0.05784, 0.08746, 0.1881, 0.3788, 0.6884, 1.131, 1.711, 2.443, 3.338, 4.405",\
                 "0.05748, 0.08752, 0.1882, 0.3788, 0.6884, 1.131, 1.711, 2.444, 3.341, 4.41",\
                 "0.05756, 0.08734, 0.1881, 0.3797, 0.6886, 1.129, 1.713, 2.444, 3.337, 4.404",\
                 "0.06018, 0.09036, 0.1899, 0.3797, 0.6882, 1.131, 1.71, 2.447, 3.342, 4.41",\
                 "0.06526, 0.09506, 0.194, 0.3825, 0.6896, 1.13, 1.712, 2.442, 3.343, 4.41",\
                 "0.0732, 0.1038, 0.2026, 0.3884, 0.6914, 1.131, 1.711, 2.444, 3.335, 4.408",\
                 "0.083, 0.1142, 0.2124, 0.4014, 0.6998, 1.133, 1.71, 2.445, 3.338, 4.405",\
                 "0.093, 0.1268, 0.224, 0.416, 0.7174, 1.144, 1.714, 2.441, 3.336, 4.396",\
                 "0.1048, 0.1382, 0.2372, 0.4304, 0.7378, 1.168, 1.731, 2.448, 3.334, 4.397",\
                 "0.1164, 0.1518, 0.2508, 0.4442, 0.7566, 1.196, 1.762, 2.47, 3.344, 4.398");
        }
      }
    }
  }

