/*
 * 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__and3_2) {
    area : 24.147200 ;

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

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

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

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

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

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

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

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

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

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

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

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

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("0.02913, 0.02903, 0.02894, 0.0289, 0.02888, 0.02894, 0.02892, \
                  0.02891, 0.02889, 0.02887");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("-0.01694, -0.01697, -0.017, -0.01698, -0.01699, -0.01704, -0.01709, \
                  -0.01708, -0.01711, -0.01713");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("0.02911, 0.02906, 0.02899, 0.02892, 0.02888, 0.02891, 0.02894, \
                  0.02893, 0.02891, 0.0289");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("-0.01687, -0.01694, -0.01693, -0.01693, -0.01693, -0.01699, -0.01701, \
                  -0.01705, -0.01705, -0.01707");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("0.02903, 0.02898, 0.02894, 0.02889, 0.02886, 0.02892, 0.02894, \
                  0.02894, 0.02893, 0.02891");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("0.01598, 0.01591, 0.0159, 0.01584, 0.01584, 0.01574, 0.01572, \
                  0.01569, 0.01564, 0.0156");
        }
      }
    }

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

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("0.03104, 0.03214, 0.03411, 0.03581, 0.03707, 0.03791, 0.03854, \
                  0.03897, 0.03928, 0.03949");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("-0.02535, -0.02534, -0.0253, -0.02523, -0.02526, -0.02529, -0.02529, \
                  -0.02534, -0.02536, -0.02528");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("0.02948, 0.02841, 0.02609, 0.02543, 0.02529, 0.02528, 0.02524, \
                  0.02525, 0.02524, 0.02524");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("-0.02526, -0.02527, -0.0253, -0.02523, -0.02524, -0.02528, -0.02528, \
                  -0.02528, -0.02527, -0.02527");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("0.02845, 0.02843, 0.02837, 0.02833, 0.02836, 0.0283, 0.02832, \
                  0.0283, 0.02827, 0.02824");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("-0.01833, -0.01835, -0.01832, -0.01831, -0.01833, -0.01841, -0.01843, \
                  -0.01847, -0.01851, -0.01857");
        }
      }
    }

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

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("0.02549, 0.02542, 0.02537, 0.02531, 0.02528, 0.02532, 0.02532, \
                  0.02532, 0.02533, 0.02532");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("-0.0253, -0.02531, -0.02528, -0.02523, -0.02522, -0.02527, -0.02527, \
                  -0.02526, -0.02528, -0.02527");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("0.02849, 0.02641, 0.02535, 0.02528, 0.02529, 0.02532, 0.02533, \
                  0.02531, 0.02531, 0.0253");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("-0.02527, -0.02527, -0.0253, -0.02523, -0.02525, -0.02529, -0.02527, \
                  -0.02528, -0.02527, -0.0253");
        }
      }

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

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("0.02767, 0.02602, 0.02539, 0.0253, 0.02526, 0.02531, 0.02533, \
                  0.02534, 0.02533, 0.02531");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          values("-0.0253, -0.0253, -0.02531, -0.02525, -0.02525, -0.02528, -0.02528, \
                  -0.02528, -0.02527, -0.02526");
        }
      }
    }

    pin(Z) {
      direction : output ;
      function : "(A1&A2&A3)" ;
      max_capacitance : 0.492 ;
      max_transition : 7 ;
      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.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.004389, 0.01629, 0.039, 0.0744, 0.1241, 0.1894, 0.2717, 0.3722, 0.492");
          values("0.2841, 0.2787, 0.2699, 0.2651, 0.2625, 0.2608, 0.2598, 0.259, 0.2584, 0.258",\
                 "0.2842, 0.2787, 0.27, 0.2655, 0.2625, 0.261, 0.2599, 0.2591, 0.2586, 0.2582",\
                 "0.2847, 0.2791, 0.2702, 0.2657, 0.2629, 0.2614, 0.2603, 0.2596, 0.2591, 0.2587",\
                 "0.2963, 0.2899, 0.2794, 0.2735, 0.2701, 0.2682, 0.267, 0.2661, 0.2655, 0.2652",\
                 "0.33, 0.3221, 0.3071, 0.2968, 0.2911, 0.2877, 0.2858, 0.2841, 0.2832, 0.2825",\
                 "0.3819, 0.3717, 0.3518, 0.3365, 0.3273, 0.3213, 0.3176, 0.3153, 0.3138, 0.3125",\
                 "0.4521, 0.44, 0.4149, 0.3939, 0.3797, 0.3713, 0.3653, 0.3613, 0.3589, 0.3567",\
                 "0.5402, 0.5267, 0.4964, 0.4692, 0.4503, 0.4373, 0.4286, 0.4229, 0.4186, 0.4158",\
                 "0.6457, 0.631, 0.5962, 0.5625, 0.5373, 0.5208, 0.5088, 0.5005, 0.4948, 0.4904",\
                 "0.7693, 0.7533, 0.7144, 0.6744, 0.6441, 0.6215, 0.606, 0.595, 0.5872, 0.5812");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.004389, 0.01629, 0.039, 0.0744, 0.1241, 0.1894, 0.2717, 0.3722, 0.492");
          values("0.2033, 0.1954, 0.1833, 0.1748, 0.1704, 0.1691, 0.1688, 0.1688, 0.1698, 0.1741",\
                 "0.2028, 0.1949, 0.1826, 0.1743, 0.1698, 0.1682, 0.1686, 0.1679, 0.1698, 0.1737",\
                 "0.2029, 0.1951, 0.1828, 0.1743, 0.1697, 0.1685, 0.168, 0.1688, 0.1694, 0.1737",\
                 "0.2122, 0.2043, 0.1911, 0.1815, 0.1763, 0.1743, 0.1742, 0.1746, 0.1752, 0.18",\
                 "0.2384, 0.2296, 0.215, 0.2033, 0.1955, 0.1919, 0.1909, 0.1895, 0.1904, 0.1952",\
                 "0.2801, 0.27, 0.252, 0.2382, 0.2284, 0.2217, 0.2188, 0.2174, 0.2165, 0.22",\
                 "0.3399, 0.3284, 0.3075, 0.289, 0.2754, 0.2681, 0.2627, 0.2588, 0.2579, 0.2609",\
                 "0.4164, 0.4034, 0.3784, 0.356, 0.338, 0.3268, 0.3212, 0.3168, 0.3131, 0.3166",\
                 "0.5089, 0.4943, 0.466, 0.4392, 0.4184, 0.4018, 0.3931, 0.3888, 0.385, 0.3881",\
                 "0.6185, 0.603, 0.5703, 0.5403, 0.5145, 0.4945, 0.4792, 0.4719, 0.4706, 0.4784");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.004389, 0.01629, 0.039, 0.0744, 0.1241, 0.1894, 0.2717, 0.3722, 0.492");
          values("0.3235, 0.3171, 0.3064, 0.3, 0.2959, 0.2936, 0.2921, 0.2912, 0.2904, 0.2899",\
                 "0.3228, 0.3164, 0.3057, 0.2994, 0.2954, 0.293, 0.2915, 0.2905, 0.2898, 0.2894",\
                 "0.3229, 0.3165, 0.3055, 0.2991, 0.2952, 0.293, 0.2914, 0.2906, 0.2898, 0.2894",\
                 "0.3335, 0.3267, 0.3147, 0.3068, 0.3028, 0.3002, 0.2986, 0.2975, 0.2967, 0.2963",\
                 "0.368, 0.3596, 0.3432, 0.3317, 0.3249, 0.3208, 0.3182, 0.3165, 0.3153, 0.3145",\
                 "0.4217, 0.4114, 0.3901, 0.3739, 0.3632, 0.3568, 0.3525, 0.3497, 0.3479, 0.3466",\
                 "0.4953, 0.4833, 0.4569, 0.435, 0.4194, 0.4098, 0.4032, 0.3989, 0.3957, 0.3936",\
                 "0.588, 0.5743, 0.5436, 0.5151, 0.4945, 0.4803, 0.4708, 0.4644, 0.4598, 0.4566",\
                 "0.699, 0.6844, 0.6493, 0.6141, 0.5879, 0.5688, 0.556, 0.547, 0.5405, 0.5361",\
                 "0.8294, 0.8136, 0.7742, 0.7327, 0.7004, 0.6768, 0.6596, 0.6476, 0.6389, 0.6326");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.004389, 0.01629, 0.039, 0.0744, 0.1241, 0.1894, 0.2717, 0.3722, 0.492");
          values("0.2033, 0.1956, 0.1829, 0.1748, 0.1705, 0.1688, 0.1688, 0.1683, 0.1703, 0.1741",\
                 "0.2025, 0.1949, 0.1822, 0.1745, 0.17, 0.1681, 0.1682, 0.1679, 0.1694, 0.1737",\
                 "0.2017, 0.194, 0.1817, 0.1732, 0.1687, 0.1672, 0.167, 0.1674, 0.1685, 0.1728",\
                 "0.2094, 0.2014, 0.1883, 0.1788, 0.1738, 0.1715, 0.1715, 0.1715, 0.1725, 0.1773",\
                 "0.2329, 0.2243, 0.2098, 0.1983, 0.1911, 0.1878, 0.1866, 0.1854, 0.1859, 0.1912",\
                 "0.2737, 0.2641, 0.2464, 0.2326, 0.2235, 0.2175, 0.2148, 0.2133, 0.2134, 0.2173",\
                 "0.3335, 0.3228, 0.3016, 0.2839, 0.2708, 0.2639, 0.2587, 0.2552, 0.2543, 0.2604",\
                 "0.4107, 0.3979, 0.3743, 0.3518, 0.334, 0.3234, 0.3191, 0.3146, 0.3109, 0.3126",\
                 "0.5052, 0.4919, 0.4636, 0.438, 0.4162, 0.4006, 0.392, 0.3879, 0.3846, 0.3886",\
                 "0.6174, 0.6026, 0.5711, 0.542, 0.5158, 0.4978, 0.4826, 0.4764, 0.473, 0.4811");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.004389, 0.01629, 0.039, 0.0744, 0.1241, 0.1894, 0.2717, 0.3722, 0.492");
          values("0.3619, 0.3548, 0.342, 0.3337, 0.3289, 0.3256, 0.3236, 0.3224, 0.3215, 0.3208",\
                 "0.3601, 0.3531, 0.3403, 0.332, 0.3271, 0.3239, 0.3218, 0.3206, 0.3197, 0.3191",\
                 "0.3601, 0.3528, 0.34, 0.3319, 0.3271, 0.3238, 0.3218, 0.3206, 0.3197, 0.3191",\
                 "0.3703, 0.3627, 0.349, 0.3397, 0.3345, 0.3312, 0.3292, 0.3279, 0.327, 0.3263",\
                 "0.4048, 0.396, 0.3784, 0.3659, 0.358, 0.3533, 0.3502, 0.3482, 0.3468, 0.3458",\
                 "0.4616, 0.4512, 0.4288, 0.4112, 0.3992, 0.3919, 0.3872, 0.3841, 0.3819, 0.3803",\
                 "0.5392, 0.5271, 0.5001, 0.4768, 0.4603, 0.4494, 0.4419, 0.437, 0.4336, 0.4313",\
                 "0.6379, 0.6245, 0.593, 0.5634, 0.5413, 0.526, 0.5156, 0.5084, 0.5033, 0.4998",\
                 "0.7577, 0.7432, 0.7075, 0.6709, 0.6433, 0.623, 0.609, 0.5991, 0.592, 0.5868",\
                 "0.8986, 0.8828, 0.8437, 0.801, 0.7669, 0.7411, 0.7228, 0.7097, 0.6999, 0.693");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.004389, 0.01629, 0.039, 0.0744, 0.1241, 0.1894, 0.2717, 0.3722, 0.492");
          values("0.2033, 0.1956, 0.1829, 0.1748, 0.1703, 0.1688, 0.1691, 0.1688, 0.1703, 0.1746",\
                 "0.2027, 0.1949, 0.1823, 0.1741, 0.1698, 0.1681, 0.168, 0.1679, 0.1698, 0.1732",\
                 "0.2011, 0.1932, 0.1809, 0.1727, 0.168, 0.1667, 0.1663, 0.1665, 0.1671, 0.171",\
                 "0.2064, 0.1984, 0.1853, 0.1764, 0.1713, 0.1694, 0.1696, 0.1697, 0.1698, 0.1737",\
                 "0.2271, 0.2182, 0.2045, 0.1939, 0.1874, 0.1845, 0.1833, 0.1832, 0.1833, 0.1881",\
                 "0.2671, 0.2574, 0.2405, 0.2268, 0.2191, 0.214, 0.2114, 0.2106, 0.2129, 0.2141",\
                 "0.3272, 0.3166, 0.2961, 0.2788, 0.2673, 0.2614, 0.2567, 0.2534, 0.2525, 0.256",\
                 "0.4067, 0.3947, 0.3704, 0.3496, 0.3335, 0.3233, 0.3192, 0.3155, 0.3122, 0.3153",\
                 "0.5051, 0.492, 0.4649, 0.4397, 0.4189, 0.4055, 0.397, 0.3942, 0.3909, 0.3944",\
                 "0.6225, 0.6087, 0.5777, 0.5484, 0.524, 0.5061, 0.4939, 0.4865, 0.4852, 0.492");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.004389, 0.01629, 0.039, 0.0744, 0.1241, 0.1894, 0.2717, 0.3722, 0.492");
          values("0.345, 0.3794, 0.4718, 0.6099, 0.7963, 1.043, 1.361, 1.76, 2.248, 2.83",\
                 "0.359, 0.3934, 0.4857, 0.6239, 0.8103, 1.056, 1.375, 1.774, 2.262, 2.844",\
                 "0.4081, 0.4423, 0.5345, 0.6726, 0.859, 1.105, 1.423, 1.823, 2.311, 2.893",\
                 "0.5088, 0.5428, 0.6344, 0.7724, 0.9588, 1.205, 1.523, 1.922, 2.41, 2.992",\
                 "0.6432, 0.6797, 0.775, 0.9154, 1.103, 1.348, 1.666, 2.065, 2.553, 3.135",\
                 "0.7954, 0.8344, 0.9359, 1.081, 1.273, 1.52, 1.838, 2.236, 2.723, 3.304",\
                 "0.964, 1.007, 1.116, 1.268, 1.465, 1.714, 2.033, 2.431, 2.918, 3.498",\
                 "1.148, 1.194, 1.312, 1.474, 1.679, 1.933, 2.253, 2.651, 3.137, 3.717",\
                 "1.347, 1.397, 1.524, 1.695, 1.908, 2.172, 2.497, 2.899, 3.384, 3.963",\
                 "1.562, 1.616, 1.751, 1.933, 2.156, 2.428, 2.761, 3.169, 3.659, 4.238");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.004389, 0.01629, 0.039, 0.0744, 0.1241, 0.1894, 0.2717, 0.3722, 0.492");
          values("0.4638, 0.5058, 0.6256, 0.8225, 1.106, 1.495, 2.005, 2.649, 3.436, 4.37",\
                 "0.4704, 0.5125, 0.6321, 0.8292, 1.112, 1.501, 2.012, 2.656, 3.442, 4.377",\
                 "0.4981, 0.5404, 0.6602, 0.8564, 1.14, 1.529, 2.039, 2.683, 3.468, 4.407",\
                 "0.5599, 0.6018, 0.7208, 0.9166, 1.199, 1.588, 2.098, 2.742, 3.528, 4.465",\
                 "0.6342, 0.6769, 0.7973, 0.9935, 1.276, 1.663, 2.173, 2.816, 3.602, 4.537",\
                 "0.7072, 0.7508, 0.8717, 1.068, 1.351, 1.738, 2.247, 2.889, 3.675, 4.609",\
                 "0.7745, 0.8198, 0.9439, 1.141, 1.423, 1.81, 2.319, 2.959, 3.743, 4.68",\
                 "0.8299, 0.8778, 1.006, 1.207, 1.491, 1.878, 2.385, 3.026, 3.809, 4.743",\
                 "0.8713, 0.922, 1.056, 1.26, 1.551, 1.94, 2.449, 3.087, 3.871, 4.805",\
                 "0.8973, 0.9509, 1.09, 1.301, 1.594, 1.99, 2.503, 3.145, 3.927, 4.861");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.004389, 0.01629, 0.039, 0.0744, 0.1241, 0.1894, 0.2717, 0.3722, 0.492");
          values("0.1198, 0.1548, 0.2545, 0.426, 0.6928, 1.081, 1.607, 2.279, 3.104, 4.086",\
                 "0.1195, 0.1548, 0.2545, 0.4271, 0.6928, 1.08, 1.608, 2.28, 3.103, 4.091",\
                 "0.1198, 0.1548, 0.2547, 0.4272, 0.6923, 1.081, 1.608, 2.281, 3.104, 4.088",\
                 "0.1231, 0.1578, 0.2574, 0.428, 0.693, 1.081, 1.608, 2.281, 3.102, 4.09",\
                 "0.1434, 0.1784, 0.2744, 0.4398, 0.7, 1.083, 1.609, 2.279, 3.107, 4.089",\
                 "0.169, 0.2048, 0.3008, 0.4638, 0.7166, 1.092, 1.612, 2.279, 3.105, 4.091",\
                 "0.1992, 0.2376, 0.3358, 0.4944, 0.7404, 1.106, 1.618, 2.284, 3.107, 4.09",\
                 "0.2298, 0.2724, 0.377, 0.5336, 0.7768, 1.131, 1.633, 2.289, 3.106, 4.086",\
                 "0.2624, 0.3098, 0.4196, 0.5784, 0.821, 1.173, 1.662, 2.306, 3.113, 4.088",\
                 "0.297, 0.3474, 0.4658, 0.6274, 0.8672, 1.219, 1.708, 2.344, 3.14, 4.106");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.004389, 0.01629, 0.039, 0.0744, 0.1241, 0.1894, 0.2717, 0.3722, 0.492");
          values("0.1573, 0.2059, 0.368, 0.6663, 1.14, 1.825, 2.741, 3.892, 5.307, 6.992",\
                 "0.1575, 0.2065, 0.3675, 0.6662, 1.14, 1.825, 2.739, 3.895, 5.31, 6.991",\
                 "0.1576, 0.2065, 0.3677, 0.6661, 1.14, 1.825, 2.741, 3.895, 5.305, 6.99",\
                 "0.1574, 0.2072, 0.3684, 0.6664, 1.139, 1.824, 2.742, 3.898, 5.313, 6.99",\
                 "0.1658, 0.215, 0.3764, 0.6734, 1.141, 1.826, 2.742, 3.896, 5.307, 6.991",\
                 "0.1768, 0.2256, 0.3846, 0.681, 1.15, 1.831, 2.742, 3.9, 5.306, 6.988",\
                 "0.1938, 0.2426, 0.3982, 0.6922, 1.158, 1.837, 2.748, 3.903, 5.315, 7",\
                 "0.2148, 0.2654, 0.4188, 0.712, 1.173, 1.844, 2.751, 3.903, 5.317, 6.997",\
                 "0.237, 0.2886, 0.4422, 0.7352, 1.198, 1.866, 2.762, 3.908, 5.318, 6.995",\
                 "0.2614, 0.3152, 0.4692, 0.7618, 1.228, 1.897, 2.791, 3.928, 5.323, 7");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.004389, 0.01629, 0.039, 0.0744, 0.1241, 0.1894, 0.2717, 0.3722, 0.492");
          values("0.3851, 0.4213, 0.5172, 0.6576, 0.8453, 1.092, 1.41, 1.81, 2.298, 2.88",\
                 "0.3976, 0.4339, 0.5297, 0.6702, 0.8579, 1.104, 1.423, 1.823, 2.31, 2.892",\
                 "0.446, 0.4823, 0.578, 0.7185, 0.9062, 1.153, 1.471, 1.871, 2.359, 2.94",\
                 "0.5487, 0.5848, 0.6799, 0.8202, 1.008, 1.254, 1.573, 1.972, 2.46, 3.042",\
                 "0.6957, 0.7335, 0.832, 0.9738, 1.161, 1.407, 1.725, 2.125, 2.612, 3.194",\
                 "0.8655, 0.9059, 1.011, 1.157, 1.349, 1.596, 1.914, 2.312, 2.799, 3.381",\
                 "1.058, 1.102, 1.214, 1.368, 1.564, 1.813, 2.131, 2.529, 3.016, 3.596",\
                 "1.274, 1.321, 1.442, 1.604, 1.806, 2.06, 2.379, 2.777, 3.263, 3.843",\
                 "1.511, 1.562, 1.691, 1.864, 2.075, 2.335, 2.659, 3.057, 3.542, 4.122",\
                 "1.772, 1.826, 1.965, 2.147, 2.368, 2.636, 2.966, 3.37, 3.857, 4.436");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.004389, 0.01629, 0.039, 0.0744, 0.1241, 0.1894, 0.2717, 0.3722, 0.492");
          values("0.5014, 0.5435, 0.663, 0.8598, 1.143, 1.532, 2.043, 2.687, 3.473, 4.408",\
                 "0.5077, 0.5498, 0.6693, 0.8659, 1.149, 1.538, 2.049, 2.693, 3.479, 4.415",\
                 "0.5226, 0.5648, 0.6846, 0.881, 1.164, 1.553, 2.064, 2.707, 3.494, 4.43",\
                 "0.5577, 0.5995, 0.7188, 0.9149, 1.198, 1.586, 2.096, 2.741, 3.526, 4.463",\
                 "0.6043, 0.6475, 0.7684, 0.9651, 1.248, 1.636, 2.145, 2.789, 3.575, 4.51",\
                 "0.6519, 0.6964, 0.8189, 1.017, 1.3, 1.687, 2.196, 2.838, 3.624, 4.561",\
                 "0.6893, 0.7363, 0.8627, 1.063, 1.347, 1.734, 2.242, 2.883, 3.667, 4.603",\
                 "0.7106, 0.7595, 0.8918, 1.097, 1.385, 1.774, 2.281, 2.922, 3.704, 4.639",\
                 "0.7125, 0.7644, 0.9017, 1.112, 1.407, 1.801, 2.312, 2.951, 3.734, 4.668",\
                 "0.6925, 0.7469, 0.8914, 1.107, 1.407, 1.81, 2.327, 2.972, 3.753, 4.687");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.004389, 0.01629, 0.039, 0.0744, 0.1241, 0.1894, 0.2717, 0.3722, 0.492");
          values("0.1302, 0.1663, 0.2652, 0.4343, 0.6979, 1.083, 1.609, 2.281, 3.106, 4.092",\
                 "0.1302, 0.1663, 0.2656, 0.4338, 0.6967, 1.082, 1.609, 2.279, 3.105, 4.09",\
                 "0.1307, 0.1665, 0.2658, 0.4342, 0.6969, 1.082, 1.609, 2.281, 3.104, 4.09",\
                 "0.132, 0.168, 0.2671, 0.435, 0.6972, 1.082, 1.607, 2.282, 3.105, 4.089",\
                 "0.152, 0.1872, 0.2822, 0.4444, 0.7034, 1.086, 1.61, 2.279, 3.104, 4.092",\
                 "0.1756, 0.2132, 0.3088, 0.4684, 0.7178, 1.094, 1.612, 2.281, 3.107, 4.091",\
                 "0.205, 0.2452, 0.343, 0.4968, 0.7404, 1.106, 1.618, 2.285, 3.107, 4.09",\
                 "0.236, 0.2804, 0.3836, 0.5348, 0.7722, 1.129, 1.63, 2.29, 3.106, 4.089",\
                 "0.268, 0.3176, 0.4276, 0.5792, 0.8142, 1.163, 1.654, 2.301, 3.112, 4.088",\
                 "0.3034, 0.3558, 0.4744, 0.6274, 0.8596, 1.208, 1.692, 2.332, 3.132, 4.096");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.004389, 0.01629, 0.039, 0.0744, 0.1241, 0.1894, 0.2717, 0.3722, 0.492");
          values("0.1568, 0.2069, 0.3675, 0.6656, 1.14, 1.825, 2.741, 3.895, 5.31, 6.991",\
                 "0.1571, 0.2069, 0.3675, 0.6671, 1.139, 1.825, 2.741, 3.896, 5.312, 6.99",\
                 "0.1577, 0.2068, 0.3678, 0.6662, 1.14, 1.826, 2.74, 3.896, 5.314, 6.99",\
                 "0.1569, 0.2065, 0.369, 0.6668, 1.139, 1.825, 2.742, 3.898, 5.313, 6.99",\
                 "0.1666, 0.2162, 0.3766, 0.6738, 1.142, 1.826, 2.742, 3.892, 5.309, 6.99",\
                 "0.178, 0.228, 0.3864, 0.6822, 1.149, 1.831, 2.743, 3.901, 5.311, 6.997",\
                 "0.1936, 0.2454, 0.4046, 0.6972, 1.159, 1.835, 2.744, 3.894, 5.315, 6.999",\
                 "0.2136, 0.2658, 0.4252, 0.7214, 1.182, 1.846, 2.749, 3.901, 5.315, 7.001",\
                 "0.2362, 0.2908, 0.4494, 0.7468, 1.212, 1.876, 2.767, 3.911, 5.315, 7.002",\
                 "0.2586, 0.316, 0.4762, 0.7738, 1.245, 1.916, 2.805, 3.935, 5.324, 6.996");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.004389, 0.01629, 0.039, 0.0744, 0.1241, 0.1894, 0.2717, 0.3722, 0.492");
          values("0.419, 0.4566, 0.5558, 0.6993, 0.889, 1.137, 1.456, 1.856, 2.343, 2.925",\
                 "0.4293, 0.4669, 0.5662, 0.7097, 0.8994, 1.147, 1.466, 1.866, 2.354, 2.935",\
                 "0.4775, 0.5153, 0.6143, 0.7578, 0.9475, 1.195, 1.514, 1.914, 2.402, 2.983",\
                 "0.5822, 0.6196, 0.7183, 0.8614, 1.051, 1.298, 1.617, 2.017, 2.505, 3.087",\
                 "0.7399, 0.7788, 0.8791, 1.023, 1.213, 1.46, 1.778, 2.177, 2.665, 3.247",\
                 "0.927, 0.9685, 1.075, 1.224, 1.417, 1.664, 1.982, 2.381, 2.868, 3.449",\
                 "1.144, 1.189, 1.303, 1.458, 1.655, 1.904, 2.222, 2.621, 3.107, 3.688",\
                 "1.391, 1.44, 1.562, 1.725, 1.928, 2.181, 2.5, 2.898, 3.384, 3.963",\
                 "1.67, 1.721, 1.853, 2.026, 2.236, 2.495, 2.817, 3.216, 3.701, 4.28",\
                 "1.982, 2.036, 2.177, 2.36, 2.579, 2.846, 3.173, 3.576, 4.062, 4.641");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.004389, 0.01629, 0.039, 0.0744, 0.1241, 0.1894, 0.2717, 0.3722, 0.492");
          values("0.5203, 0.5624, 0.6819, 0.879, 1.162, 1.551, 2.062, 2.706, 3.491, 4.428",\
                 "0.5274, 0.5695, 0.689, 0.8857, 1.169, 1.558, 2.068, 2.713, 3.499, 4.434",\
                 "0.5368, 0.5787, 0.6983, 0.8953, 1.178, 1.568, 2.078, 2.722, 3.508, 4.442",\
                 "0.5489, 0.5908, 0.7102, 0.9062, 1.189, 1.578, 2.089, 2.733, 3.519, 4.453",\
                 "0.5635, 0.6066, 0.7278, 0.9246, 1.208, 1.596, 2.106, 2.749, 3.535, 4.47",\
                 "0.5737, 0.6182, 0.7421, 0.9402, 1.224, 1.612, 2.121, 2.764, 3.547, 4.487",\
                 "0.5673, 0.6146, 0.7435, 0.9471, 1.233, 1.621, 2.129, 2.771, 3.555, 4.49",\
                 "0.5393, 0.5892, 0.7236, 0.9334, 1.227, 1.619, 2.128, 2.768, 3.551, 4.486",\
                 "0.4852, 0.538, 0.6787, 0.8944, 1.196, 1.597, 2.111, 2.753, 3.535, 4.469",\
                 "0.4022, 0.4578, 0.6045, 0.8268, 1.135, 1.546, 2.071, 2.721, 3.505, 4.438");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.004389, 0.01629, 0.039, 0.0744, 0.1241, 0.1894, 0.2717, 0.3722, 0.492");
          values("0.1407, 0.1779, 0.2768, 0.4444, 0.7044, 1.087, 1.611, 2.281, 3.105, 4.089",\
                 "0.1407, 0.1779, 0.2769, 0.4442, 0.7055, 1.087, 1.612, 2.281, 3.107, 4.091",\
                 "0.1407, 0.1771, 0.2768, 0.444, 0.7055, 1.088, 1.611, 2.281, 3.106, 4.09",\
                 "0.141, 0.1785, 0.2779, 0.445, 0.7044, 1.086, 1.611, 2.283, 3.107, 4.091",\
                 "0.1574, 0.1946, 0.2898, 0.4524, 0.7088, 1.088, 1.611, 2.282, 3.103, 4.092",\
                 "0.1812, 0.22, 0.3166, 0.4746, 0.7224, 1.095, 1.614, 2.283, 3.104, 4.087",\
                 "0.2098, 0.2504, 0.3498, 0.5026, 0.744, 1.109, 1.62, 2.286, 3.106, 4.091",\
                 "0.241, 0.2862, 0.3886, 0.5394, 0.7742, 1.129, 1.632, 2.289, 3.108, 4.091",\
                 "0.2734, 0.3234, 0.434, 0.5822, 0.8124, 1.16, 1.652, 2.301, 3.112, 4.092",\
                 "0.307, 0.3606, 0.4794, 0.6314, 0.858, 1.202, 1.686, 2.325, 3.129, 4.096");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06818, 0.2373, 0.5602, 1.063, 1.769, 2.698, 3.869, 5.297, 7");
          index_2("0.001, 0.004389, 0.01629, 0.039, 0.0744, 0.1241, 0.1894, 0.2717, 0.3722, 0.492");
          values("0.157, 0.2068, 0.3679, 0.6663, 1.14, 1.825, 2.739, 3.892, 5.314, 6.99",\
                 "0.1569, 0.2069, 0.3675, 0.6655, 1.139, 1.825, 2.74, 3.895, 5.311, 6.991",\
                 "0.157, 0.2059, 0.3675, 0.6664, 1.14, 1.825, 2.741, 3.893, 5.306, 6.987",\
                 "0.1576, 0.2064, 0.3684, 0.6678, 1.14, 1.825, 2.739, 3.897, 5.305, 6.987",\
                 "0.1654, 0.214, 0.3756, 0.6728, 1.14, 1.826, 2.741, 3.893, 5.308, 6.991",\
                 "0.1768, 0.2276, 0.387, 0.682, 1.148, 1.828, 2.737, 3.901, 5.313, 7.002",\
                 "0.195, 0.2468, 0.4066, 0.702, 1.162, 1.833, 2.742, 3.899, 5.308, 6.993",\
                 "0.2142, 0.2672, 0.4292, 0.7294, 1.193, 1.854, 2.75, 3.897, 5.313, 7",\
                 "0.233, 0.2904, 0.4548, 0.7582, 1.23, 1.892, 2.78, 3.91, 5.31, 6.999",\
                 "0.255, 0.3134, 0.4836, 0.7888, 1.267, 1.941, 2.829, 3.947, 5.329, 6.996");
        }
      }
    }
  }

