/*
 * 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_mcu7t5v0__or3_2) {
    area : 26.342400 ;

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

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

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

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

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

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

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

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

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

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

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

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

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.05234, 0.05237, 0.05235, 0.05233, 0.05226, 0.05224, 0.0523, \
                 0.05231, 0.05228, 0.05227");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.01078, -0.01081, -0.01089, -0.0109, -0.01089, -0.01092, -0.01094, \
                 -0.01093, -0.01095, -0.01093");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.02629, 0.02628, 0.02628, 0.02626, 0.0263, 0.02625, 0.02634, \
                 0.02634, 0.02632, 0.02633");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.01099, -0.01102, -0.0111, -0.01111, -0.01113, -0.01114, -0.01118, \
                 -0.01117, -0.01118, -0.01117");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.02627, 0.02629, 0.02629, 0.02628, 0.02629, 0.02631, 0.02634, \
                 0.02632, 0.02633, 0.02633");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.011, -0.01103, -0.01112, -0.0111, -0.01112, -0.01114, -0.01119, \
                 -0.01118, -0.01118, -0.01118");
        }
      }
    }

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

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.02684, 0.02683, 0.02683, 0.02684, 0.02686, 0.02681, 0.02691, \
                 0.02687, 0.02686, 0.02684");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.01185, -0.01181, -0.01192, -0.0119, -0.01195, -0.01196, -0.01202, \
                 -0.01201, -0.01202, -0.01205");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.03935, 0.03929, 0.03926, 0.03925, 0.03915, 0.03918, 0.0393, \
                 0.0393, 0.03933, 0.03931");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.03274, -0.0328, -0.03581, -0.03782, -0.03831, -0.03844, -0.03865, \
                 -0.03872, -0.03871, -0.03876");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.0234, 0.02342, 0.02347, 0.02346, 0.0235, 0.02348, 0.02359, 0.02359, \
                 0.0236, 0.0236");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.02894, -0.02827, -0.02674, -0.0247, -0.02305, -0.02203, -0.02145, \
                 -0.02105, -0.02071, -0.02043");
        }
      }
    }

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

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.03924, 0.03927, 0.03912, 0.03914, 0.03918, 0.03921, 0.03931, \
                 0.03928, 0.03927, 0.03926");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.03399, -0.03515, -0.03773, -0.03814, -0.03841, -0.03856, -0.0387, \
                 -0.03877, -0.03882, -0.03885");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.03928, 0.03927, 0.0392, 0.03914, 0.03913, 0.03914, 0.03931, \
                 0.03936, 0.03927, 0.03925");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.0325, -0.03386, -0.03556, -0.03675, -0.03737, -0.03774, -0.03802, \
                 -0.0382, -0.03831, -0.0384");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.03923, 0.03926, 0.03914, 0.03917, 0.03922, 0.03923, 0.0393, \
                 0.03928, 0.0393, 0.03925");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.0371, -0.03726, -0.0378, -0.03816, -0.03842, -0.03854, -0.03872, \
                 -0.03878, -0.03881, -0.03885");
        }
      }
    }

    pin(Z) {
      direction : output ;
      function : "(A1|A2|A3)" ;
      max_capacitance : 0.4794 ;
      max_transition : 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.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.004302, 0.01589, 0.03802, 0.0725, 0.1209, 0.1845, 0.2647, 0.3627, 0.4794");
          values("0.4949, 0.48, 0.4447, 0.4099, 0.3865, 0.371, 0.3599, 0.3523, 0.3465, 0.3422",\
                 "0.4936, 0.4787, 0.4433, 0.4085, 0.3851, 0.3699, 0.3587, 0.351, 0.3453, 0.341",\
                 "0.4952, 0.4801, 0.4446, 0.4099, 0.3868, 0.3712, 0.3607, 0.3528, 0.3471, 0.3426",\
                 "0.5086, 0.4934, 0.4577, 0.4232, 0.3999, 0.384, 0.3734, 0.3656, 0.3598, 0.3557",\
                 "0.5454, 0.5299, 0.4929, 0.456, 0.4312, 0.4145, 0.4027, 0.3944, 0.3882, 0.3836",\
                 "0.6088, 0.5925, 0.5524, 0.5115, 0.4829, 0.4633, 0.4501, 0.4403, 0.4332, 0.4279",\
                 "0.6969, 0.6793, 0.6359, 0.5898, 0.556, 0.5326, 0.5159, 0.5046, 0.4957, 0.4892",\
                 "0.8139, 0.7946, 0.747, 0.6944, 0.6543, 0.6257, 0.6053, 0.5899, 0.579, 0.5708",\
                 "0.959, 0.9384, 0.8866, 0.8273, 0.7789, 0.744, 0.7179, 0.6991, 0.6852, 0.6746",\
                 "1.13, 1.109, 1.053, 0.9866, 0.9295, 0.8873, 0.8561, 0.832, 0.8144, 0.8009");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.004302, 0.01589, 0.03802, 0.0725, 0.1209, 0.1845, 0.2647, 0.3627, 0.4794");
          values("0.1969, 0.1925, 0.1862, 0.1842, 0.1831, 0.1836, 0.1855, 0.1873, 0.1897, 0.1927",\
                 "0.1983, 0.194, 0.1868, 0.1851, 0.1837, 0.1853, 0.1861, 0.1883, 0.1917, 0.1947",\
                 "0.2037, 0.1993, 0.1923, 0.1891, 0.188, 0.1886, 0.1908, 0.1923, 0.1952, 0.1977",\
                 "0.2285, 0.2231, 0.2127, 0.2059, 0.2016, 0.2006, 0.2017, 0.2038, 0.2062, 0.2082",\
                 "0.2707, 0.2628, 0.2481, 0.2371, 0.2296, 0.2256, 0.2253, 0.2258, 0.2267, 0.2282",\
                 "0.3327, 0.3223, 0.303, 0.2861, 0.2757, 0.2676, 0.2632, 0.2613, 0.2612, 0.2627",\
                 "0.4155, 0.4028, 0.3787, 0.3544, 0.3374, 0.3298, 0.3216, 0.3173, 0.3132, 0.3127",\
                 "0.5204, 0.5046, 0.4744, 0.4453, 0.4223, 0.4062, 0.3989, 0.3928, 0.3872, 0.3832",\
                 "0.6465, 0.6291, 0.5938, 0.5591, 0.5286, 0.5063, 0.4919, 0.4853, 0.4797, 0.4747",\
                 "0.7966, 0.7764, 0.7351, 0.6963, 0.6604, 0.6308, 0.6104, 0.5958, 0.5907, 0.5862");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.004302, 0.01589, 0.03802, 0.0725, 0.1209, 0.1845, 0.2647, 0.3627, 0.4794");
          values("0.5254, 0.5104, 0.475, 0.44, 0.4168, 0.4013, 0.3902, 0.3823, 0.3767, 0.3723",\
                 "0.5238, 0.5087, 0.4732, 0.4384, 0.4151, 0.3994, 0.3885, 0.3807, 0.3748, 0.3706",\
                 "0.5219, 0.5068, 0.4714, 0.4364, 0.4129, 0.3971, 0.3863, 0.3785, 0.3729, 0.3685",\
                 "0.533, 0.5175, 0.4817, 0.4464, 0.4223, 0.4063, 0.3955, 0.3874, 0.3815, 0.3772",\
                 "0.5705, 0.5547, 0.5172, 0.4793, 0.4538, 0.4366, 0.4245, 0.4156, 0.4093, 0.4045",\
                 "0.6356, 0.6192, 0.5794, 0.538, 0.5086, 0.4891, 0.4751, 0.4651, 0.4578, 0.4522",\
                 "0.7319, 0.7144, 0.6713, 0.6246, 0.5905, 0.5662, 0.5497, 0.5368, 0.5282, 0.5211",\
                 "0.8615, 0.8434, 0.7964, 0.7431, 0.7017, 0.6722, 0.6507, 0.6347, 0.6225, 0.6136",\
                 "1.022, 1.003, 0.9516, 0.8918, 0.8419, 0.8056, 0.778, 0.7587, 0.7434, 0.7318",\
                 "1.211, 1.19, 1.136, 1.069, 1.011, 0.9666, 0.9336, 0.9086, 0.8896, 0.875");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.004302, 0.01589, 0.03802, 0.0725, 0.1209, 0.1845, 0.2647, 0.3627, 0.4794");
          values("0.2278, 0.223, 0.2146, 0.2097, 0.2071, 0.2082, 0.2087, 0.2107, 0.212, 0.2145",\
                 "0.2282, 0.2229, 0.2145, 0.2096, 0.2075, 0.2068, 0.2084, 0.2107, 0.212, 0.2145",\
                 "0.2302, 0.225, 0.2166, 0.2113, 0.2088, 0.2085, 0.2096, 0.2122, 0.2135, 0.2165",\
                 "0.2526, 0.2467, 0.2353, 0.2263, 0.2211, 0.2196, 0.22, 0.2207, 0.223, 0.225",\
                 "0.2979, 0.2896, 0.2745, 0.2618, 0.2511, 0.2462, 0.2453, 0.2447, 0.2445, 0.247",\
                 "0.3653, 0.3548, 0.3347, 0.3153, 0.3038, 0.2937, 0.2882, 0.2857, 0.286, 0.286",\
                 "0.4564, 0.4428, 0.4189, 0.3937, 0.3753, 0.364, 0.3541, 0.3477, 0.3435, 0.343",\
                 "0.5732, 0.5574, 0.5275, 0.498, 0.4719, 0.4529, 0.4427, 0.4342, 0.426, 0.4215",\
                 "0.7157, 0.6979, 0.662, 0.6269, 0.5955, 0.5691, 0.5517, 0.5427, 0.5345, 0.526",\
                 "0.8853, 0.8652, 0.8234, 0.7833, 0.7451, 0.7128, 0.6892, 0.6707, 0.663, 0.6555");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.004302, 0.01589, 0.03802, 0.0725, 0.1209, 0.1845, 0.2647, 0.3627, 0.4794");
          values("0.5544, 0.5394, 0.504, 0.4691, 0.4458, 0.4301, 0.4191, 0.4114, 0.4055, 0.4013",\
                 "0.5528, 0.5378, 0.5023, 0.4674, 0.4442, 0.4284, 0.4175, 0.4097, 0.404, 0.3995",\
                 "0.5498, 0.5348, 0.4992, 0.4641, 0.4409, 0.4253, 0.4144, 0.4066, 0.4008, 0.3964",\
                 "0.5559, 0.5406, 0.5049, 0.4697, 0.4462, 0.43, 0.419, 0.4113, 0.4054, 0.4009",\
                 "0.5888, 0.5731, 0.5363, 0.4989, 0.474, 0.4573, 0.4454, 0.4368, 0.4305, 0.4258",\
                 "0.659, 0.6425, 0.6034, 0.5621, 0.5331, 0.5135, 0.4999, 0.49, 0.4825, 0.4769",\
                 "0.773, 0.7554, 0.7122, 0.6649, 0.6293, 0.6041, 0.5867, 0.5734, 0.5642, 0.5569",\
                 "0.9273, 0.9088, 0.8607, 0.8061, 0.762, 0.73, 0.7072, 0.6897, 0.6769, 0.6673",\
                 "1.117, 1.097, 1.045, 0.9828, 0.9291, 0.8896, 0.8598, 0.8371, 0.8208, 0.8075",\
                 "1.34, 1.32, 1.264, 1.195, 1.13, 1.083, 1.046, 1.018, 0.9959, 0.9791");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.004302, 0.01589, 0.03802, 0.0725, 0.1209, 0.1845, 0.2647, 0.3627, 0.4794");
          values("0.2598, 0.2541, 0.2433, 0.2363, 0.233, 0.2329, 0.232, 0.234, 0.2353, 0.2388",\
                 "0.2579, 0.2518, 0.2408, 0.2348, 0.2311, 0.2301, 0.2306, 0.2325, 0.2343, 0.2388",\
                 "0.2566, 0.2505, 0.2406, 0.2339, 0.2294, 0.2287, 0.2293, 0.231, 0.2333, 0.2353",\
                 "0.2774, 0.2707, 0.2577, 0.2476, 0.2415, 0.2385, 0.2376, 0.239, 0.2418, 0.2433",\
                 "0.3272, 0.3181, 0.3012, 0.2868, 0.275, 0.2683, 0.2655, 0.2645, 0.2643, 0.2673",\
                 "0.403, 0.392, 0.3704, 0.3502, 0.3354, 0.3227, 0.3158, 0.312, 0.3118, 0.3118",\
                 "0.5088, 0.4951, 0.468, 0.4413, 0.4194, 0.4056, 0.394, 0.3855, 0.3823, 0.3803",\
                 "0.6468, 0.6304, 0.5982, 0.5649, 0.5358, 0.5142, 0.501, 0.4885, 0.4793, 0.4738",\
                 "0.8177, 0.7987, 0.7598, 0.7221, 0.6852, 0.6564, 0.6345, 0.6215, 0.6093, 0.5998",\
                 "1.022, 1.002, 0.9567, 0.911, 0.8683, 0.8311, 0.8, 0.779, 0.7683, 0.7543");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.004302, 0.01589, 0.03802, 0.0725, 0.1209, 0.1845, 0.2647, 0.3627, 0.4794");
          values("0.3411, 0.3667, 0.4358, 0.5367, 0.6661, 0.8274, 1.025, 1.265, 1.555, 1.898",\
                 "0.3437, 0.3692, 0.4384, 0.5392, 0.6685, 0.8299, 1.028, 1.268, 1.557, 1.901",\
                 "0.3646, 0.3901, 0.4593, 0.56, 0.6893, 0.8508, 1.048, 1.289, 1.578, 1.921",\
                 "0.4216, 0.4471, 0.5163, 0.6165, 0.7459, 0.9074, 1.105, 1.345, 1.635, 1.978",\
                 "0.5206, 0.5461, 0.6145, 0.7144, 0.8436, 1.005, 1.202, 1.442, 1.732, 2.075",\
                 "0.6544, 0.6799, 0.7487, 0.8491, 0.9785, 1.139, 1.337, 1.577, 1.866, 2.209",\
                 "0.821, 0.8472, 0.9157, 1.017, 1.147, 1.308, 1.506, 1.746, 2.035, 2.378",\
                 "1.019, 1.046, 1.118, 1.22, 1.35, 1.512, 1.711, 1.952, 2.241, 2.583",\
                 "1.245, 1.275, 1.349, 1.455, 1.59, 1.754, 1.953, 2.194, 2.483, 2.825",\
                 "1.503, 1.533, 1.613, 1.723, 1.861, 2.03, 2.232, 2.475, 2.764, 3.106");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.004302, 0.01589, 0.03802, 0.0725, 0.1209, 0.1845, 0.2647, 0.3627, 0.4794");
          values("0.1686, 0.1867, 0.2433, 0.3463, 0.5067, 0.7316, 1.028, 1.401, 1.856, 2.4",\
                 "0.1746, 0.1928, 0.2491, 0.3521, 0.5123, 0.7373, 1.033, 1.408, 1.863, 2.407",\
                 "0.1949, 0.2131, 0.2694, 0.372, 0.532, 0.757, 1.053, 1.427, 1.883, 2.427",\
                 "0.2276, 0.246, 0.3018, 0.4034, 0.5624, 0.7871, 1.083, 1.457, 1.912, 2.454",\
                 "0.2494, 0.2687, 0.3256, 0.4261, 0.5839, 0.8071, 1.102, 1.475, 1.931, 2.474",\
                 "0.253, 0.2737, 0.3325, 0.4335, 0.5896, 0.8112, 1.105, 1.477, 1.932, 2.475",\
                 "0.2347, 0.2572, 0.3186, 0.42, 0.576, 0.7972, 1.09, 1.461, 1.914, 2.457",\
                 "0.1924, 0.2166, 0.2812, 0.3843, 0.5406, 0.7614, 1.055, 1.424, 1.877, 2.417",\
                 "0.1244, 0.1506, 0.2193, 0.3243, 0.4805, 0.702, 0.9956, 1.365, 1.818, 2.358",\
                 "0.03, 0.0579, 0.1308, 0.2392, 0.3956, 0.6169, 0.9117, 1.283, 1.736, 2.276");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.004302, 0.01589, 0.03802, 0.0725, 0.1209, 0.1845, 0.2647, 0.3627, 0.4794");
          values("0.123, 0.1502, 0.2219, 0.3296, 0.4852, 0.7009, 0.9872, 1.36, 1.827, 2.39",\
                 "0.1227, 0.1502, 0.2219, 0.329, 0.4847, 0.7008, 0.9872, 1.361, 1.827, 2.391",\
                 "0.123, 0.1501, 0.2211, 0.3292, 0.4848, 0.7009, 0.9874, 1.359, 1.826, 2.391",\
                 "0.1229, 0.1498, 0.2207, 0.3292, 0.4845, 0.7007, 0.9882, 1.36, 1.826, 2.392",\
                 "0.1234, 0.1506, 0.2217, 0.3306, 0.486, 0.7018, 0.988, 1.361, 1.829, 2.392",\
                 "0.1296, 0.1578, 0.2286, 0.3362, 0.4904, 0.7044, 0.9918, 1.362, 1.829, 2.394",\
                 "0.14, 0.1662, 0.2382, 0.3442, 0.4988, 0.7118, 0.9956, 1.365, 1.83, 2.391",\
                 "0.1566, 0.1848, 0.2548, 0.358, 0.51, 0.7206, 1.004, 1.37, 1.832, 2.394",\
                 "0.1762, 0.204, 0.2766, 0.3818, 0.5292, 0.7354, 1.014, 1.378, 1.838, 2.398",\
                 "0.196, 0.2272, 0.301, 0.4086, 0.5564, 0.7618, 1.035, 1.39, 1.845, 2.402");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.004302, 0.01589, 0.03802, 0.0725, 0.1209, 0.1845, 0.2647, 0.3627, 0.4794");
          values("0.0641, 0.08908, 0.1774, 0.3559, 0.6394, 1.038, 1.566, 2.227, 3.035, 4.001",\
                 "0.06446, 0.08926, 0.1777, 0.355, 0.6394, 1.038, 1.564, 2.229, 3.036, 3.998",\
                 "0.06396, 0.08882, 0.1782, 0.3546, 0.6381, 1.038, 1.563, 2.227, 3.033, 4",\
                 "0.06868, 0.09256, 0.1792, 0.3549, 0.6396, 1.039, 1.566, 2.23, 3.036, 3.999",\
                 "0.07736, 0.1005, 0.1841, 0.3577, 0.6389, 1.039, 1.564, 2.226, 3.034, 3.999",\
                 "0.08864, 0.1116, 0.1927, 0.3613, 0.6402, 1.039, 1.563, 2.228, 3.032, 3.998",\
                 "0.1, 0.1252, 0.204, 0.3694, 0.6458, 1.041, 1.564, 2.224, 3.033, 3.994",\
                 "0.115, 0.1404, 0.218, 0.3784, 0.6532, 1.049, 1.569, 2.226, 3.039, 3.996",\
                 "0.1292, 0.1564, 0.233, 0.3898, 0.6622, 1.059, 1.581, 2.234, 3.036, 3.998",\
                 "0.1456, 0.1734, 0.25, 0.4034, 0.6724, 1.071, 1.594, 2.249, 3.048, 4.001");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.004302, 0.01589, 0.03802, 0.0725, 0.1209, 0.1845, 0.2647, 0.3627, 0.4794");
          values("0.3977, 0.4232, 0.4924, 0.5931, 0.7226, 0.8839, 1.082, 1.322, 1.611, 1.955",\
                 "0.3994, 0.425, 0.4942, 0.5948, 0.7244, 0.8857, 1.083, 1.324, 1.613, 1.956",\
                 "0.4088, 0.4342, 0.5035, 0.6041, 0.7336, 0.8949, 1.092, 1.333, 1.622, 1.965",\
                 "0.4423, 0.4678, 0.5368, 0.6371, 0.7664, 0.9278, 1.125, 1.366, 1.655, 1.998",\
                 "0.5129, 0.5388, 0.608, 0.7082, 0.8376, 0.9988, 1.196, 1.436, 1.726, 2.069",\
                 "0.619, 0.6452, 0.7157, 0.8176, 0.9478, 1.109, 1.307, 1.547, 1.836, 2.179",\
                 "0.7588, 0.7858, 0.8574, 0.9608, 1.092, 1.255, 1.453, 1.693, 1.982, 2.325",\
                 "0.9245, 0.953, 1.029, 1.136, 1.27, 1.434, 1.633, 1.874, 2.163, 2.506",\
                 "1.114, 1.144, 1.224, 1.337, 1.477, 1.645, 1.847, 2.089, 2.378, 2.721",\
                 "1.328, 1.36, 1.444, 1.562, 1.709, 1.884, 2.092, 2.338, 2.628, 2.971");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.004302, 0.01589, 0.03802, 0.0725, 0.1209, 0.1845, 0.2647, 0.3627, 0.4794");
          values("0.1922, 0.2107, 0.2673, 0.3698, 0.5296, 0.7547, 1.051, 1.424, 1.88, 2.421",\
                 "0.1975, 0.2158, 0.2724, 0.3749, 0.5346, 0.7596, 1.056, 1.429, 1.884, 2.428",\
                 "0.2165, 0.2349, 0.2914, 0.3937, 0.5534, 0.7783, 1.075, 1.447, 1.903, 2.445",\
                 "0.2525, 0.2709, 0.3268, 0.4279, 0.5868, 0.811, 1.107, 1.48, 1.935, 2.477",\
                 "0.2826, 0.302, 0.3586, 0.459, 0.616, 0.839, 1.134, 1.506, 1.962, 2.505",\
                 "0.2967, 0.3172, 0.3757, 0.4758, 0.6317, 0.853, 1.147, 1.518, 1.972, 2.514",\
                 "0.2913, 0.3136, 0.3747, 0.4759, 0.6312, 0.8514, 1.144, 1.514, 1.968, 2.509",\
                 "0.2653, 0.2897, 0.354, 0.4568, 0.6121, 0.8326, 1.124, 1.493, 1.945, 2.486",\
                 "0.2176, 0.2436, 0.3121, 0.4169, 0.5724, 0.7931, 1.086, 1.455, 1.906, 2.446",\
                 "0.1471, 0.175, 0.2474, 0.3551, 0.5114, 0.7325, 1.026, 1.397, 1.848, 2.387");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.004302, 0.01589, 0.03802, 0.0725, 0.1209, 0.1845, 0.2647, 0.3627, 0.4794");
          values("0.1229, 0.1503, 0.2213, 0.3293, 0.4854, 0.7006, 0.9876, 1.359, 1.828, 2.392",\
                 "0.123, 0.1503, 0.2214, 0.3292, 0.4856, 0.7006, 0.9875, 1.36, 1.826, 2.391",\
                 "0.1229, 0.1503, 0.2222, 0.329, 0.4852, 0.701, 0.9871, 1.359, 1.827, 2.391",\
                 "0.1232, 0.1502, 0.2217, 0.3296, 0.485, 0.7008, 0.989, 1.361, 1.827, 2.392",\
                 "0.1274, 0.1545, 0.2245, 0.3321, 0.4868, 0.7022, 0.9886, 1.361, 1.828, 2.394",\
                 "0.1334, 0.161, 0.234, 0.34, 0.4928, 0.7058, 0.9904, 1.361, 1.829, 2.392",\
                 "0.1448, 0.1734, 0.2448, 0.3514, 0.5032, 0.7142, 0.9966, 1.366, 1.83, 2.392",\
                 "0.1604, 0.1912, 0.2666, 0.3716, 0.5214, 0.7268, 1.006, 1.372, 1.834, 2.396",\
                 "0.1792, 0.2116, 0.2914, 0.4012, 0.5494, 0.7516, 1.023, 1.382, 1.84, 2.399",\
                 "0.1978, 0.2322, 0.3164, 0.4322, 0.5846, 0.7896, 1.059, 1.408, 1.853, 2.405");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.004302, 0.01589, 0.03802, 0.0725, 0.1209, 0.1845, 0.2647, 0.3627, 0.4794");
          values("0.06688, 0.0914, 0.1794, 0.3556, 0.6401, 1.04, 1.566, 2.225, 3.039, 3.994",\
                 "0.06696, 0.09142, 0.1794, 0.3556, 0.639, 1.038, 1.566, 2.224, 3.035, 3.996",\
                 "0.06652, 0.09102, 0.1791, 0.3568, 0.6392, 1.039, 1.565, 2.225, 3.036, 3.997",\
                 "0.069, 0.09296, 0.1802, 0.3558, 0.6401, 1.039, 1.565, 2.229, 3.033, 3.995",\
                 "0.07762, 0.1013, 0.1853, 0.3578, 0.6393, 1.039, 1.563, 2.227, 3.038, 3.996",\
                 "0.08814, 0.1122, 0.1927, 0.362, 0.641, 1.04, 1.562, 2.226, 3.033, 3.994",\
                 "0.1004, 0.1244, 0.2036, 0.369, 0.6468, 1.042, 1.565, 2.225, 3.035, 3.995",\
                 "0.1154, 0.1402, 0.217, 0.3786, 0.6536, 1.05, 1.569, 2.227, 3.038, 3.996",\
                 "0.1296, 0.1566, 0.2328, 0.3898, 0.6644, 1.06, 1.581, 2.234, 3.035, 4.001",\
                 "0.145, 0.1738, 0.2502, 0.4034, 0.6736, 1.072, 1.595, 2.249, 3.046, 4.001");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.004302, 0.01589, 0.03802, 0.0725, 0.1209, 0.1845, 0.2647, 0.3627, 0.4794");
          values("0.4221, 0.4477, 0.5168, 0.6177, 0.747, 0.9085, 1.106, 1.346, 1.636, 1.979",\
                 "0.4249, 0.4504, 0.5195, 0.6204, 0.7497, 0.9112, 1.109, 1.349, 1.639, 1.982",\
                 "0.4324, 0.4579, 0.5272, 0.6277, 0.7573, 0.9186, 1.116, 1.357, 1.646, 1.989",\
                 "0.4524, 0.4778, 0.547, 0.6472, 0.7766, 0.938, 1.136, 1.376, 1.665, 2.008",\
                 "0.5014, 0.5273, 0.5964, 0.6969, 0.8262, 0.9875, 1.185, 1.425, 1.714, 2.058",\
                 "0.5859, 0.612, 0.6822, 0.7836, 0.9132, 1.075, 1.273, 1.513, 1.801, 2.145",\
                 "0.7011, 0.7284, 0.8012, 0.9043, 1.036, 1.199, 1.397, 1.637, 1.926, 2.268",\
                 "0.8367, 0.8659, 0.9435, 1.052, 1.189, 1.354, 1.554, 1.794, 2.083, 2.425",\
                 "0.9904, 1.021, 1.103, 1.22, 1.364, 1.535, 1.74, 1.983, 2.272, 2.614",\
                 "1.162, 1.194, 1.281, 1.405, 1.556, 1.737, 1.951, 2.201, 2.493, 2.835");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.004302, 0.01589, 0.03802, 0.0725, 0.1209, 0.1845, 0.2647, 0.3627, 0.4794");
          values("0.2056, 0.2248, 0.2822, 0.3853, 0.5453, 0.7705, 1.067, 1.44, 1.895, 2.437",\
                 "0.2099, 0.2288, 0.2861, 0.3895, 0.5496, 0.7746, 1.071, 1.443, 1.899, 2.441",\
                 "0.2279, 0.2467, 0.3043, 0.4075, 0.5672, 0.7924, 1.088, 1.461, 1.917, 2.459",\
                 "0.2663, 0.2848, 0.3414, 0.4433, 0.6023, 0.8266, 1.122, 1.495, 1.95, 2.493",\
                 "0.3029, 0.3225, 0.3797, 0.4804, 0.6376, 0.8605, 1.155, 1.527, 1.982, 2.525",\
                 "0.3255, 0.3466, 0.4057, 0.5065, 0.6623, 0.8833, 1.177, 1.548, 2.002, 2.544",\
                 "0.3317, 0.3548, 0.4168, 0.5186, 0.6735, 0.8936, 1.186, 1.556, 2.009, 2.55",\
                 "0.3212, 0.346, 0.4116, 0.515, 0.6708, 0.8906, 1.182, 1.55, 2.002, 2.542",\
                 "0.292, 0.3191, 0.3892, 0.4953, 0.6511, 0.8723, 1.164, 1.532, 1.983, 2.522",\
                 "0.2443, 0.2736, 0.3487, 0.458, 0.6155, 0.8371, 1.13, 1.5, 1.95, 2.488");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.004302, 0.01589, 0.03802, 0.0725, 0.1209, 0.1845, 0.2647, 0.3627, 0.4794");
          values("0.1233, 0.1504, 0.2217, 0.3293, 0.4847, 0.701, 0.9873, 1.36, 1.827, 2.391",\
                 "0.1228, 0.1504, 0.2217, 0.3294, 0.4847, 0.701, 0.9872, 1.362, 1.826, 2.391",\
                 "0.1232, 0.1503, 0.2217, 0.329, 0.485, 0.7009, 0.9873, 1.359, 1.826, 2.391",\
                 "0.123, 0.1503, 0.2214, 0.3296, 0.4849, 0.701, 0.9876, 1.362, 1.826, 2.391",\
                 "0.1263, 0.1532, 0.2239, 0.332, 0.4862, 0.7018, 0.988, 1.362, 1.828, 2.391",\
                 "0.132, 0.1594, 0.2318, 0.3386, 0.4926, 0.7062, 0.991, 1.363, 1.829, 2.392",\
                 "0.1472, 0.1758, 0.2488, 0.3538, 0.5046, 0.7146, 0.9976, 1.365, 1.828, 2.392",\
                 "0.1662, 0.197, 0.274, 0.3822, 0.5296, 0.7326, 1.009, 1.372, 1.833, 2.396",\
                 "0.1868, 0.221, 0.3032, 0.4166, 0.5678, 0.7698, 1.037, 1.389, 1.841, 2.398",\
                 "0.2082, 0.2448, 0.3336, 0.4548, 0.6112, 0.8172, 1.086, 1.43, 1.864, 2.409");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.004302, 0.01589, 0.03802, 0.0725, 0.1209, 0.1845, 0.2647, 0.3627, 0.4794");
          values("0.07024, 0.0951, 0.1828, 0.3602, 0.6412, 1.041, 1.564, 2.228, 3.038, 3.995",\
                 "0.06994, 0.09486, 0.1831, 0.359, 0.641, 1.04, 1.567, 2.229, 3.032, 3.997",\
                 "0.06992, 0.09448, 0.1827, 0.3588, 0.6409, 1.04, 1.564, 2.229, 3.033, 3.994",\
                 "0.07094, 0.09544, 0.183, 0.3587, 0.641, 1.039, 1.564, 2.229, 3.032, 3.994",\
                 "0.08034, 0.1036, 0.1877, 0.3605, 0.6413, 1.039, 1.564, 2.226, 3.039, 3.996",\
                 "0.09118, 0.1154, 0.1963, 0.3652, 0.6438, 1.042, 1.565, 2.226, 3.032, 3.995",\
                 "0.1058, 0.1298, 0.208, 0.3728, 0.6494, 1.044, 1.567, 2.228, 3.033, 3.996",\
                 "0.1204, 0.1468, 0.2226, 0.3836, 0.6582, 1.052, 1.572, 2.229, 3.038, 3.996",\
                 "0.1384, 0.166, 0.2412, 0.3984, 0.6698, 1.065, 1.584, 2.237, 3.037, 4",\
                 "0.1558, 0.1862, 0.2628, 0.4136, 0.6838, 1.08, 1.603, 2.252, 3.048, 4.002");
        }
      }
    }
  }

