/*
 * 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__bufz_8) {
    area : 74.636800 ;

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!EN&!I" ;
      value : "0.000119034" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!EN&I" ;
      value : "0.000119034" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "EN&!I" ;
      value : "0.0002411568" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "EN&I" ;
      value : "0.0002385036" ;
    }

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

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

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

    pin(EN) {
      capacitance : 0.008323 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 5.2 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!I" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.1137, 0.1131, 0.1189, 0.1354, 0.1641, 0.2067, 0.2652, 0.3471, \
                  0.4544, 0.5872");
        }

        rise_power(scalar) {
          values("0");
          /* SiliconSmart: placeholder for Liberty-required model for which no measurement is available. */
        }
      }

      internal_power() {
        when : "I" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.2277, 0.2265, 0.2335, 0.2576, 0.3041, 0.3756, 0.476, 0.6066, \
                  0.77, 0.968");
        }

        rise_power(scalar) {
          values("0");
          /* SiliconSmart: placeholder for Liberty-required model for which no measurement is available. */
        }
      }
    }

    pin(I) {
      capacitance : 0.01781 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 5.2 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!EN" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.07717, 0.07697, 0.07693, 0.07683, 0.07676, 0.07675, 0.07692, \
                  0.07701, 0.07696, 0.07699");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("-0.0766, -0.07663, -0.07663, -0.07652, -0.07659, -0.07654, -0.07675, \
                  -0.07681, -0.07675, -0.07681");
        }
      }
    }

    pin(Z) {
      capacitance : 0.01413 ;
      direction : output ;
      function : "I" ;
      max_capacitance : 2.756 ;
      max_transition : 5.2 ;
      min_capacitance : 0.01513 ;
      output_voltage : default ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;
      three_state : "(!EN)" ;

      internal_power() {
        related_pin : "EN" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.01513, 0.03404, 0.1005, 0.2273, 0.4249, 0.7021, 1.067, 1.526, 2.087, 2.756");
          values("0.3705, 0.3703, 0.3702, 0.3701, 0.3701, 0.3703, 0.3704, 0.3703, 0.3703, 0.3703",\
                 "0.3719, 0.3715, 0.3714, 0.3713, 0.3714, 0.3715, 0.3715, 0.3716, 0.3717, 0.3716",\
                 "0.3816, 0.3815, 0.3813, 0.3813, 0.3812, 0.3814, 0.3815, 0.3815, 0.3816, 0.3816",\
                 "0.4033, 0.4033, 0.4032, 0.403, 0.4029, 0.403, 0.4032, 0.4032, 0.4033, 0.4033",\
                 "0.4393, 0.4394, 0.4395, 0.4394, 0.4392, 0.4393, 0.4393, 0.4393, 0.4393, 0.4393",\
                 "0.4911, 0.4909, 0.4912, 0.491, 0.491, 0.4912, 0.4911, 0.4912, 0.4909, 0.4909",\
                 "0.5594, 0.5592, 0.5594, 0.5591, 0.559, 0.5591, 0.5593, 0.5593, 0.5592, 0.5593",\
                 "0.6452, 0.6453, 0.6452, 0.6448, 0.6449, 0.645, 0.645, 0.6451, 0.6452, 0.6451",\
                 "0.7493, 0.749, 0.7491, 0.749, 0.7486, 0.7487, 0.7488, 0.7488, 0.7488, 0.7489",\
                 "0.8729, 0.8728, 0.8726, 0.8724, 0.8723, 0.8724, 0.8724, 0.8724, 0.8724, 0.8724");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.01513, 0.03404, 0.1005, 0.2273, 0.4249, 0.7021, 1.067, 1.526, 2.087, 2.756");
          values("0.3245, 0.3245, 0.3243, 0.3255, 0.3268, 0.329, 0.3356, 0.3409, 0.3485, 0.3588",\
                 "0.3245, 0.3242, 0.3248, 0.3252, 0.3265, 0.3293, 0.3374, 0.3398, 0.3489, 0.3566",\
                 "0.3293, 0.3292, 0.329, 0.3304, 0.3315, 0.3337, 0.3396, 0.3488, 0.3571, 0.3588",\
                 "0.3488, 0.3494, 0.3503, 0.351, 0.3524, 0.3549, 0.3616, 0.3682, 0.3769, 0.3825",\
                 "0.3881, 0.3888, 0.3877, 0.3923, 0.3916, 0.3952, 0.4008, 0.4103, 0.4122, 0.4189",\
                 "0.4509, 0.4508, 0.4513, 0.4498, 0.4572, 0.4589, 0.4624, 0.4658, 0.4774, 0.488",\
                 "0.5384, 0.5389, 0.5403, 0.5393, 0.5389, 0.5486, 0.5531, 0.5551, 0.5584, 0.5672",\
                 "0.653, 0.6534, 0.6555, 0.6545, 0.6537, 0.6562, 0.6715, 0.6753, 0.6786, 0.688",\
                 "0.7961, 0.7965, 0.7977, 0.7986, 0.7956, 0.797, 0.8033, 0.8225, 0.828, 0.8356",\
                 "0.9696, 0.9698, 0.9704, 0.9737, 0.9709, 0.9698, 0.9732, 0.9824, 1.006, 1.012");
        }
      }

      internal_power() {
        related_pin : "I" ;
        when : "EN" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.01513, 0.03404, 0.1005, 0.2273, 0.4249, 0.7021, 1.067, 1.526, 2.087, 2.756");
          values("0.6126, 0.6178, 0.6305, 0.6397, 0.6446, 0.6472, 0.6486, 0.6495, 0.6501, 0.6505",\
                 "0.6082, 0.6132, 0.6261, 0.6346, 0.6394, 0.6421, 0.6434, 0.6443, 0.645, 0.6454",\
                 "0.6221, 0.6245, 0.6333, 0.642, 0.6472, 0.6502, 0.652, 0.653, 0.6537, 0.6542",\
                 "0.6806, 0.6787, 0.6806, 0.6864, 0.6917, 0.6952, 0.6974, 0.6988, 0.6997, 0.7004",\
                 "0.7861, 0.781, 0.7791, 0.7824, 0.7874, 0.7912, 0.7942, 0.796, 0.7972, 0.798",\
                 "0.9472, 0.9407, 0.935, 0.9364, 0.9408, 0.9448, 0.9479, 0.9503, 0.9519, 0.9531",\
                 "1.172, 1.164, 1.156, 1.155, 1.158, 1.162, 1.165, 1.168, 1.17, 1.171",\
                 "1.464, 1.455, 1.444, 1.441, 1.443, 1.446, 1.449, 1.452, 1.455, 1.456",\
                 "1.829, 1.818, 1.805, 1.798, 1.798, 1.801, 1.804, 1.807, 1.809, 1.811",\
                 "2.268, 2.254, 2.239, 2.23, 2.228, 2.229, 2.231, 2.235, 2.237, 2.239");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.01513, 0.03404, 0.1005, 0.2273, 0.4249, 0.7021, 1.067, 1.526, 2.087, 2.756");
          values("0.3111, 0.3218, 0.3373, 0.3486, 0.3535, 0.3588, 0.3662, 0.3725, 0.3816, 0.3897",\
                 "0.3061, 0.3158, 0.3318, 0.3415, 0.3488, 0.3541, 0.3608, 0.3714, 0.3726, 0.3901",\
                 "0.3024, 0.3092, 0.3226, 0.334, 0.3423, 0.3502, 0.3579, 0.3639, 0.3758, 0.3825",\
                 "0.3254, 0.3306, 0.3433, 0.355, 0.3646, 0.3721, 0.3846, 0.3909, 0.4, 0.4142",\
                 "0.3919, 0.3973, 0.4033, 0.4188, 0.4265, 0.4355, 0.4461, 0.4542, 0.4658, 0.4776",\
                 "0.5143, 0.5169, 0.5238, 0.5314, 0.5486, 0.5557, 0.5667, 0.5727, 0.5792, 0.5892",\
                 "0.6976, 0.7002, 0.7039, 0.7111, 0.7181, 0.7379, 0.7482, 0.753, 0.7589, 0.7692",\
                 "0.9452, 0.9462, 0.951, 0.955, 0.9608, 0.9719, 0.9915, 1, 1.002, 1.02",\
                 "1.261, 1.26, 1.265, 1.268, 1.27, 1.277, 1.29, 1.317, 1.318, 1.329",\
                 "1.645, 1.645, 1.643, 1.647, 1.649, 1.653, 1.661, 1.677, 1.706, 1.707");
        }
      }

      timing() {
        related_pin : "EN" ;
        timing_sense : negative_unate ;
        timing_type : three_state_disable ;

        cell_fall(tmg_ntin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.33, 0.34, 0.375, 0.453, 0.581, 0.739, 0.928, 1.148, 1.396, 1.672");
        }

        cell_rise(tmg_ntin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.254, 0.263, 0.303, 0.373, 0.469, 0.592, 0.739, 0.909, 1.106, \
                  1.328");
        }

        fall_transition(tmg_ntin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0, 0, 0, 0, 0, 0, 0, 0, 0, 0");
        }

        rise_transition(tmg_ntin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0, 0, 0, 0, 0, 0, 0, 0, 0, 0");
        }
      }

      timing() {
        related_pin : "EN" ;
        timing_sense : positive_unate ;
        timing_type : three_state_enable ;

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.01513, 0.03404, 0.1005, 0.2273, 0.4249, 0.7021, 1.067, 1.526, 2.087, 2.756");
          values("0.1375, 0.1737, 0.258, 0.3719, 0.5133, 0.69, 0.912, 1.188, 1.523, 1.923",\
                 "0.1459, 0.1821, 0.2664, 0.3801, 0.5216, 0.6983, 0.9204, 1.196, 1.532, 1.931",\
                 "0.1757, 0.2119, 0.2961, 0.4098, 0.5513, 0.7281, 0.9501, 1.226, 1.561, 1.961",\
                 "0.207, 0.2485, 0.339, 0.4554, 0.5978, 0.775, 0.9971, 1.273, 1.608, 2.008",\
                 "0.2162, 0.2617, 0.3569, 0.4746, 0.6172, 0.7943, 1.016, 1.292, 1.627, 2.027",\
                 "0.2018, 0.2485, 0.3451, 0.4632, 0.6062, 0.7832, 1.005, 1.28, 1.616, 2.015",\
                 "0.1627, 0.2102, 0.3074, 0.426, 0.5693, 0.7465, 0.9684, 1.244, 1.579, 1.978",\
                 "0.0993, 0.1476, 0.2459, 0.3653, 0.5091, 0.6865, 0.9085, 1.184, 1.519, 1.918",\
                 "0.01, 0.059, 0.1587, 0.2791, 0.4229, 0.6005, 0.8226, 1.098, 1.433, 1.833",\
                 "-0.1067, -0.0563, 0.0447, 0.1658, 0.3104, 0.4884, 0.7106, 0.9862, 1.322, 1.721");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.01513, 0.03404, 0.1005, 0.2273, 0.4249, 0.7021, 1.067, 1.526, 2.087, 2.756");
          values("0.1537, 0.1932, 0.2847, 0.4273, 0.6419, 0.9422, 1.337, 1.836, 2.443, 3.168",\
                 "0.1611, 0.2007, 0.2922, 0.4348, 0.6493, 0.9495, 1.345, 1.842, 2.45, 3.174",\
                 "0.1868, 0.2268, 0.3186, 0.4612, 0.6757, 0.9761, 1.371, 1.87, 2.477, 3.203",\
                 "0.2133, 0.2598, 0.3574, 0.5014, 0.7159, 1.016, 1.412, 1.91, 2.518, 3.243",\
                 "0.221, 0.2759, 0.3856, 0.5334, 0.7483, 1.048, 1.443, 1.942, 2.55, 3.275",\
                 "0.206, 0.2701, 0.3956, 0.5501, 0.7659, 1.066, 1.461, 1.958, 2.567, 3.291",\
                 "0.1659, 0.2392, 0.383, 0.5486, 0.7671, 1.067, 1.462, 1.959, 2.566, 3.292",\
                 "0.0991, 0.1818, 0.3443, 0.5246, 0.7483, 1.051, 1.445, 1.943, 2.55, 3.273",\
                 "0.0049, 0.0966, 0.2783, 0.4759, 0.7068, 1.013, 1.41, 1.908, 2.514, 3.238",\
                 "-0.1201, -0.0185, 0.1827, 0.3996, 0.6401, 0.9505, 1.352, 1.853, 2.46, 3.183");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.01513, 0.03404, 0.1005, 0.2273, 0.4249, 0.7021, 1.067, 1.526, 2.087, 2.756");
          values("0.0687, 0.1034, 0.1909, 0.3171, 0.4936, 0.7468, 1.094, 1.541, 2.096, 2.758",\
                 "0.06862, 0.1034, 0.1907, 0.3166, 0.4937, 0.7463, 1.094, 1.542, 2.095, 2.756",\
                 "0.06884, 0.1035, 0.1906, 0.317, 0.4933, 0.7465, 1.093, 1.542, 2.096, 2.757",\
                 "0.08206, 0.1174, 0.2005, 0.322, 0.4967, 0.7476, 1.095, 1.541, 2.094, 2.758",\
                 "0.0925, 0.1295, 0.2087, 0.325, 0.497, 0.7482, 1.095, 1.541, 2.095, 2.757",\
                 "0.09834, 0.1336, 0.211, 0.3266, 0.498, 0.7476, 1.092, 1.54, 2.094, 2.758",\
                 "0.1014, 0.1362, 0.2128, 0.3282, 0.4992, 0.7478, 1.093, 1.539, 2.093, 2.757",\
                 "0.1048, 0.139, 0.215, 0.33, 0.5, 0.749, 1.094, 1.539, 2.091, 2.753",\
                 "0.1076, 0.142, 0.2178, 0.3318, 0.5016, 0.75, 1.095, 1.54, 2.094, 2.753",\
                 "0.1116, 0.1448, 0.22, 0.3336, 0.5036, 0.7514, 1.095, 1.542, 2.094, 2.754");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.01513, 0.03404, 0.1005, 0.2273, 0.4249, 0.7021, 1.067, 1.526, 2.087, 2.756");
          values("0.07424, 0.1109, 0.2207, 0.4446, 0.8115, 1.334, 2.02, 2.893, 3.952, 5.218",\
                 "0.0744, 0.1109, 0.2208, 0.4447, 0.8118, 1.333, 2.023, 2.89, 3.948, 5.212",\
                 "0.0756, 0.1115, 0.2208, 0.4448, 0.8121, 1.335, 2.022, 2.892, 3.953, 5.209",\
                 "0.09092, 0.1262, 0.2277, 0.4453, 0.8123, 1.334, 2.023, 2.89, 3.953, 5.217",\
                 "0.1086, 0.1487, 0.2445, 0.4514, 0.813, 1.334, 2.02, 2.891, 3.947, 5.203",\
                 "0.1278, 0.1736, 0.2702, 0.4612, 0.8154, 1.335, 2.019, 2.885, 3.951, 5.215",\
                 "0.1474, 0.2004, 0.3034, 0.4814, 0.8212, 1.335, 2.02, 2.887, 3.943, 5.212",\
                 "0.1678, 0.227, 0.3412, 0.5074, 0.8352, 1.342, 2.023, 2.885, 3.948, 5.205",\
                 "0.1902, 0.254, 0.3796, 0.5418, 0.8538, 1.356, 2.032, 2.89, 3.941, 5.199",\
                 "0.2166, 0.2826, 0.421, 0.5816, 0.8776, 1.375, 2.049, 2.902, 3.947, 5.202");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.01513, 0.03404, 0.1005, 0.2273, 0.4249, 0.7021, 1.067, 1.526, 2.087, 2.756");
          values("0.1845, 0.2225, 0.3092, 0.4238, 0.5656, 0.7424, 0.9646, 1.24, 1.576, 1.975",\
                 "0.1917, 0.2297, 0.3163, 0.4311, 0.5727, 0.7497, 0.9718, 1.248, 1.583, 1.983",\
                 "0.2238, 0.2614, 0.3481, 0.4631, 0.6049, 0.782, 1.004, 1.28, 1.616, 2.015",\
                 "0.2816, 0.3193, 0.4076, 0.5239, 0.6664, 0.8438, 1.066, 1.342, 1.678, 2.077",\
                 "0.3659, 0.4049, 0.4956, 0.6146, 0.7591, 0.9372, 1.16, 1.436, 1.771, 2.171",\
                 "0.4727, 0.5172, 0.6167, 0.7418, 0.8895, 1.07, 1.293, 1.569, 1.905, 2.304",\
                 "0.5984, 0.6488, 0.7627, 0.9044, 1.063, 1.248, 1.473, 1.75, 2.086, 2.486",\
                 "0.7429, 0.7995, 0.9285, 1.091, 1.275, 1.475, 1.705, 1.983, 2.319, 2.719",\
                 "0.9069, 0.9699, 1.115, 1.3, 1.513, 1.74, 1.987, 2.269, 2.606, 3.007",\
                 "1.091, 1.16, 1.323, 1.531, 1.774, 2.037, 2.312, 2.61, 2.951, 3.352");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.01513, 0.03404, 0.1005, 0.2273, 0.4249, 0.7021, 1.067, 1.526, 2.087, 2.756");
          values("0.1976, 0.2381, 0.3308, 0.4746, 0.6898, 0.9906, 1.387, 1.883, 2.492, 3.216",\
                 "0.2018, 0.2421, 0.3348, 0.4787, 0.694, 0.9948, 1.39, 1.889, 2.497, 3.223",\
                 "0.2129, 0.2533, 0.3459, 0.49, 0.7058, 1.007, 1.402, 1.9, 2.509, 3.233",\
                 "0.2201, 0.2612, 0.3552, 0.4999, 0.7158, 1.017, 1.413, 1.911, 2.52, 3.246",\
                 "0.2212, 0.2655, 0.3627, 0.5087, 0.7252, 1.027, 1.423, 1.92, 2.53, 3.255",\
                 "0.2046, 0.2554, 0.3628, 0.5145, 0.7319, 1.034, 1.429, 1.928, 2.536, 3.262",\
                 "0.1672, 0.2249, 0.3451, 0.5089, 0.7342, 1.037, 1.433, 1.932, 2.539, 3.266",\
                 "0.1094, 0.1744, 0.3085, 0.4858, 0.7246, 1.037, 1.435, 1.933, 2.541, 3.265",\
                 "0.0311, 0.1039, 0.2522, 0.4439, 0.6976, 1.025, 1.433, 1.933, 2.541, 3.266",\
                 "-0.0679, 0.0125, 0.1758, 0.3817, 0.6508, 0.9956, 1.42, 1.931, 2.54, 3.265");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.01513, 0.03404, 0.1005, 0.2273, 0.4249, 0.7021, 1.067, 1.526, 2.087, 2.756");
          values("0.06862, 0.1039, 0.1903, 0.3156, 0.4931, 0.7458, 1.093, 1.541, 2.095, 2.759",\
                 "0.06874, 0.1037, 0.1905, 0.3158, 0.493, 0.7458, 1.093, 1.541, 2.093, 2.759",\
                 "0.06936, 0.105, 0.1915, 0.3169, 0.4937, 0.746, 1.092, 1.541, 2.096, 2.759",\
                 "0.07244, 0.1102, 0.1962, 0.3198, 0.495, 0.7468, 1.094, 1.541, 2.095, 2.757",\
                 "0.07878, 0.1166, 0.2028, 0.3268, 0.4994, 0.7494, 1.095, 1.542, 2.093, 2.758",\
                 "0.0932, 0.1342, 0.2208, 0.3392, 0.5088, 0.7556, 1.097, 1.544, 2.096, 2.757",\
                 "0.1092, 0.1564, 0.254, 0.3794, 0.5366, 0.77, 1.104, 1.545, 2.097, 2.757",\
                 "0.127, 0.18, 0.2928, 0.441, 0.6032, 0.8124, 1.123, 1.552, 2.098, 2.76",\
                 "0.1456, 0.2056, 0.334, 0.5066, 0.6986, 0.9018, 1.178, 1.576, 2.106, 2.761",\
                 "0.165, 0.2314, 0.3784, 0.5742, 0.8048, 1.029, 1.285, 1.639, 2.132, 2.768");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.01513, 0.03404, 0.1005, 0.2273, 0.4249, 0.7021, 1.067, 1.526, 2.087, 2.756");
          values("0.06978, 0.1061, 0.2178, 0.4439, 0.812, 1.335, 2.023, 2.888, 3.946, 5.212",\
                 "0.06976, 0.106, 0.218, 0.443, 0.8114, 1.335, 2.024, 2.891, 3.952, 5.208",\
                 "0.0711, 0.1075, 0.2187, 0.4436, 0.8122, 1.334, 2.023, 2.886, 3.953, 5.211",\
                 "0.07424, 0.1103, 0.2211, 0.4447, 0.8117, 1.334, 2.023, 2.892, 3.946, 5.207",\
                 "0.08324, 0.1193, 0.2259, 0.4463, 0.8134, 1.333, 2.022, 2.888, 3.949, 5.217",\
                 "0.09758, 0.136, 0.2438, 0.4558, 0.8148, 1.335, 2.021, 2.886, 3.946, 5.207",\
                 "0.1142, 0.1572, 0.2686, 0.4834, 0.8312, 1.338, 2.021, 2.888, 3.942, 5.211",\
                 "0.132, 0.1788, 0.2956, 0.5174, 0.8702, 1.362, 2.027, 2.886, 3.943, 5.206",\
                 "0.1518, 0.203, 0.326, 0.5552, 0.917, 1.413, 2.058, 2.895, 3.942, 5.207",\
                 "0.1716, 0.2294, 0.3576, 0.591, 0.9674, 1.477, 2.121, 2.934, 3.957, 5.201");
        }
      }
    }
  }

