/*
 * 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__bufz_4) {
    area : 59.270400 ;

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

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

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

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

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

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

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

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

      internal_power() {
        when : "!I" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("0.4512, 0.4518, 0.4826, 0.568, 0.7157, 0.9352, 1.266, 1.711, 2.272, \
                  2.952");
        }

        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.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("0.6133, 0.6157, 0.6588, 0.7848, 1.016, 1.369, 1.854, 2.478, 3.25, \
                  4.177");
        }

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

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

      internal_power() {
        when : "!EN" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("0.1458, 0.1453, 0.145, 0.1449, 0.1452, 0.1452, 0.1452, 0.1451, \
                  0.1452, 0.1453");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("-0.1447, -0.1447, -0.1444, -0.1445, -0.1446, -0.1445, -0.1449, \
                  -0.1448, -0.1449, -0.1448");
        }
      }
    }

    pin(Z) {
      capacitance : 0.009138 ;
      direction : output ;
      function : "I" ;
      max_capacitance : 1.419 ;
      max_transition : 3.6 ;
      min_capacitance : 0.01014 ;
      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.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.01014, 0.01986, 0.05399, 0.1192, 0.2207, 0.3631, 0.5506, 0.7867, 1.075, 1.419");
          values("0.8049, 0.7949, 0.7782, 0.7684, 0.7626, 0.7588, 0.7561, 0.754, 0.7525, 0.7514",\
                 "0.8075, 0.7981, 0.7814, 0.7717, 0.7659, 0.7622, 0.7597, 0.7576, 0.7561, 0.7551",\
                 "0.8419, 0.8333, 0.8186, 0.8102, 0.8053, 0.8021, 0.8001, 0.7983, 0.7971, 0.7961",\
                 "0.9226, 0.9168, 0.9071, 0.9027, 0.9005, 0.8992, 0.8983, 0.8975, 0.8968, 0.8963",\
                 "1.078, 1.074, 1.07, 1.069, 1.068, 1.067, 1.067, 1.067, 1.067, 1.067",\
                 "1.319, 1.318, 1.316, 1.315, 1.315, 1.315, 1.315, 1.315, 1.315, 1.315",\
                 "1.646, 1.646, 1.644, 1.643, 1.643, 1.643, 1.644, 1.644, 1.644, 1.644",\
                 "2.059, 2.059, 2.059, 2.058, 2.058, 2.058, 2.059, 2.059, 2.059, 2.059",\
                 "2.562, 2.563, 2.564, 2.563, 2.563, 2.564, 2.564, 2.564, 2.564, 2.564",\
                 "3.161, 3.163, 3.164, 3.164, 3.164, 3.164, 3.164, 3.164, 3.165, 3.165");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.01014, 0.01986, 0.05399, 0.1192, 0.2207, 0.3631, 0.5506, 0.7867, 1.075, 1.419");
          values("0.579, 0.5745, 0.5721, 0.5721, 0.574, 0.5779, 0.5829, 0.5915, 0.6015, 0.6091",\
                 "0.5797, 0.5757, 0.5723, 0.5723, 0.5746, 0.5784, 0.5846, 0.5904, 0.5971, 0.6124",\
                 "0.6112, 0.6073, 0.6032, 0.6044, 0.607, 0.6092, 0.6154, 0.6234, 0.629, 0.6372",\
                 "0.7112, 0.7094, 0.7095, 0.7102, 0.7126, 0.7154, 0.7215, 0.7279, 0.7357, 0.745",\
                 "0.9102, 0.9096, 0.9077, 0.9134, 0.9167, 0.9189, 0.925, 0.9303, 0.9387, 0.9463",\
                 "1.223, 1.223, 1.223, 1.221, 1.23, 1.235, 1.239, 1.248, 1.252, 1.26",\
                 "1.653, 1.656, 1.656, 1.655, 1.656, 1.668, 1.679, 1.683, 1.686, 1.693",\
                 "2.211, 2.213, 2.216, 2.218, 2.216, 2.218, 2.235, 2.249, 2.257, 2.262",\
                 "2.901, 2.903, 2.907, 2.91, 2.907, 2.908, 2.917, 2.939, 2.956, 2.97",\
                 "3.73, 3.734, 3.738, 3.742, 3.741, 3.739, 3.745, 3.758, 3.787, 3.804");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.01014, 0.01986, 0.05399, 0.1192, 0.2207, 0.3631, 0.5506, 0.7867, 1.075, 1.419");
          values("1.357, 1.334, 1.299, 1.281, 1.271, 1.265, 1.261, 1.258, 1.256, 1.254",\
                 "1.353, 1.329, 1.295, 1.276, 1.265, 1.259, 1.255, 1.253, 1.251, 1.249",\
                 "1.385, 1.36, 1.321, 1.301, 1.289, 1.284, 1.279, 1.277, 1.275, 1.273",\
                 "1.539, 1.508, 1.456, 1.422, 1.406, 1.396, 1.39, 1.385, 1.382, 1.38",\
                 "1.848, 1.808, 1.733, 1.678, 1.646, 1.626, 1.615, 1.607, 1.601, 1.597",\
                 "2.309, 2.261, 2.163, 2.082, 2.03, 1.998, 1.976, 1.962, 1.953, 1.945",\
                 "2.928, 2.875, 2.756, 2.645, 2.569, 2.519, 2.485, 2.461, 2.445, 2.433",\
                 "3.713, 3.653, 3.515, 3.375, 3.27, 3.199, 3.149, 3.114, 3.089, 3.07",\
                 "4.67, 4.605, 4.451, 4.282, 4.146, 4.048, 3.979, 3.93, 3.893, 3.866",\
                 "5.806, 5.735, 5.566, 5.372, 5.204, 5.077, 4.984, 4.916, 4.866, 4.828");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.01014, 0.01986, 0.05399, 0.1192, 0.2207, 0.3631, 0.5506, 0.7867, 1.075, 1.419");
          values("0.6312, 0.6268, 0.6298, 0.6477, 0.6633, 0.6765, 0.6893, 0.7022, 0.7079, 0.7182",\
                 "0.6277, 0.6211, 0.6278, 0.6436, 0.6595, 0.6716, 0.681, 0.6918, 0.7035, 0.7133",\
                 "0.6455, 0.6372, 0.637, 0.6486, 0.6633, 0.6749, 0.6876, 0.6995, 0.709, 0.7199",\
                 "0.7535, 0.7399, 0.7236, 0.7234, 0.7304, 0.742, 0.7531, 0.7666, 0.7744, 0.7859",\
                 "0.9798, 0.9556, 0.9194, 0.9072, 0.9031, 0.9053, 0.9164, 0.9239, 0.9334, 0.9454",\
                 "1.35, 1.316, 1.262, 1.22, 1.21, 1.201, 1.202, 1.207, 1.212, 1.229",\
                 "1.871, 1.828, 1.752, 1.685, 1.652, 1.639, 1.633, 1.626, 1.629, 1.633",\
                 "2.55, 2.499, 2.401, 2.314, 2.252, 2.214, 2.203, 2.193, 2.19, 2.185",\
                 "3.393, 3.336, 3.215, 3.11, 3.021, 2.961, 2.922, 2.911, 2.903, 2.893",\
                 "4.404, 4.339, 4.199, 4.066, 3.957, 3.87, 3.808, 3.775, 3.765, 3.754");
        }
      }

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

        cell_fall(tmg_ntin_10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("0.169, 0.175, 0.2, 0.253, 0.331, 0.426, 0.536, 0.659, 0.798, 0.951");
        }

        cell_rise(tmg_ntin_10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("0.201, 0.206, 0.232, 0.281, 0.347, 0.426, 0.518, 0.624, 0.745, \
                  0.88");
        }

        fall_transition(tmg_ntin_10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("0, 0, 0, 0, 0, 0, 0, 0, 0, 0");
        }

        rise_transition(tmg_ntin_10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          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.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.01014, 0.01986, 0.05399, 0.1192, 0.2207, 0.3631, 0.5506, 0.7867, 1.075, 1.419");
          values("0.1063, 0.1296, 0.1859, 0.2671, 0.3734, 0.5088, 0.6801, 0.8933, 1.153, 1.462",\
                 "0.1109, 0.1341, 0.1902, 0.2714, 0.3776, 0.513, 0.6842, 0.8974, 1.157, 1.466",\
                 "0.1282, 0.151, 0.207, 0.288, 0.3941, 0.5295, 0.7008, 0.9139, 1.173, 1.483",\
                 "0.1465, 0.1714, 0.2299, 0.3117, 0.4179, 0.5534, 0.7248, 0.938, 1.197, 1.506",\
                 "0.152, 0.1796, 0.2419, 0.3252, 0.4313, 0.5665, 0.7379, 0.9511, 1.21, 1.52",\
                 "0.1439, 0.1742, 0.239, 0.3226, 0.4285, 0.5634, 0.7342, 0.9471, 1.207, 1.516",\
                 "0.1214, 0.155, 0.2223, 0.3067, 0.4129, 0.5477, 0.7185, 0.9312, 1.19, 1.499",\
                 "0.0832, 0.1202, 0.1912, 0.2768, 0.3834, 0.5184, 0.6893, 0.9021, 1.161, 1.47",\
                 "0.0288, 0.0696, 0.145, 0.2323, 0.3396, 0.4749, 0.6459, 0.8587, 1.118, 1.427",\
                 "-0.044, 0.0015, 0.0825, 0.1721, 0.2806, 0.4163, 0.5874, 0.8003, 1.059, 1.368");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.01014, 0.01986, 0.05399, 0.1192, 0.2207, 0.3631, 0.5506, 0.7867, 1.075, 1.419");
          values("0.107, 0.1323, 0.1948, 0.2905, 0.4306, 0.6255, 0.8816, 1.204, 1.599, 2.069",\
                 "0.1104, 0.1357, 0.1983, 0.2939, 0.4341, 0.6289, 0.8853, 1.209, 1.603, 2.073",\
                 "0.1228, 0.1489, 0.2119, 0.308, 0.4482, 0.6431, 0.8995, 1.222, 1.616, 2.087",\
                 "0.1318, 0.1619, 0.23, 0.3276, 0.4681, 0.6632, 0.9192, 1.242, 1.636, 2.105",\
                 "0.1259, 0.1626, 0.2407, 0.3428, 0.4846, 0.6796, 0.9362, 1.259, 1.654, 2.124",\
                 "0.1012, 0.1463, 0.238, 0.3488, 0.4941, 0.6902, 0.9465, 1.269, 1.664, 2.134",\
                 "0.05433, 0.1104, 0.2188, 0.3417, 0.4931, 0.6931, 0.9507, 1.274, 1.668, 2.138",\
                 "-0.0169, 0.0531, 0.1805, 0.3195, 0.4787, 0.684, 0.9464, 1.271, 1.665, 2.135",\
                 "-0.1162, -0.0291, 0.1221, 0.2799, 0.4493, 0.6606, 0.9291, 1.259, 1.656, 2.126",\
                 "-0.2457, -0.1387, 0.0414, 0.2207, 0.4037, 0.6215, 0.8964, 1.233, 1.637, 2.109");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.01014, 0.01986, 0.05399, 0.1192, 0.2207, 0.3631, 0.5506, 0.7867, 1.075, 1.419");
          values("0.05918, 0.0788, 0.1394, 0.2405, 0.385, 0.5886, 0.8657, 1.223, 1.663, 2.187",\
                 "0.05846, 0.07848, 0.1393, 0.2402, 0.3848, 0.5886, 0.8657, 1.223, 1.662, 2.188",\
                 "0.05648, 0.07726, 0.1385, 0.2398, 0.3839, 0.5885, 0.8647, 1.222, 1.661, 2.186",\
                 "0.06334, 0.08296, 0.1414, 0.2403, 0.3839, 0.5887, 0.8663, 1.223, 1.662, 2.186",\
                 "0.07152, 0.09068, 0.1482, 0.2424, 0.3834, 0.5884, 0.8653, 1.223, 1.662, 2.189",\
                 "0.08076, 0.09894, 0.1511, 0.2429, 0.3829, 0.586, 0.8632, 1.222, 1.662, 2.188",\
                 "0.09162, 0.1078, 0.1552, 0.2446, 0.3842, 0.5862, 0.8626, 1.218, 1.659, 2.185",\
                 "0.1046, 0.1182, 0.1604, 0.2468, 0.3856, 0.5868, 0.8636, 1.219, 1.658, 2.183",\
                 "0.118, 0.1304, 0.1676, 0.2504, 0.387, 0.5886, 0.8644, 1.22, 1.658, 2.183",\
                 "0.135, 0.1456, 0.1762, 0.2548, 0.3894, 0.5902, 0.8654, 1.22, 1.658, 2.183");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.01014, 0.01986, 0.05399, 0.1192, 0.2207, 0.3631, 0.5506, 0.7867, 1.075, 1.419");
          values("0.06032, 0.08728, 0.1663, 0.3177, 0.566, 0.9217, 1.392, 1.985, 2.707, 3.568",\
                 "0.06024, 0.08722, 0.1667, 0.3177, 0.566, 0.9229, 1.391, 1.984, 2.707, 3.572",\
                 "0.06258, 0.08896, 0.167, 0.3181, 0.567, 0.9219, 1.393, 1.983, 2.705, 3.574",\
                 "0.07382, 0.09954, 0.1738, 0.3203, 0.5666, 0.9218, 1.391, 1.983, 2.706, 3.567",\
                 "0.09204, 0.1177, 0.189, 0.3278, 0.5699, 0.9225, 1.393, 1.984, 2.708, 3.573",\
                 "0.1174, 0.1419, 0.2133, 0.3434, 0.577, 0.9262, 1.392, 1.985, 2.705, 3.569",\
                 "0.1506, 0.1737, 0.2447, 0.366, 0.5934, 0.9368, 1.398, 1.988, 2.705, 3.566",\
                 "0.1928, 0.214, 0.2816, 0.3974, 0.6138, 0.9558, 1.413, 1.993, 2.712, 3.57",\
                 "0.244, 0.2656, 0.3242, 0.4374, 0.6392, 0.9782, 1.438, 2.014, 2.721, 3.576",\
                 "0.2998, 0.326, 0.375, 0.4852, 0.672, 1.005, 1.467, 2.046, 2.748, 3.59");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.01014, 0.01986, 0.05399, 0.1192, 0.2207, 0.3631, 0.5506, 0.7867, 1.075, 1.419");
          values("0.1615, 0.183, 0.2386, 0.3202, 0.4268, 0.5624, 0.7337, 0.9468, 1.206, 1.515",\
                 "0.1658, 0.1872, 0.2428, 0.3244, 0.431, 0.5666, 0.7379, 0.9511, 1.21, 1.519",\
                 "0.1878, 0.2091, 0.2645, 0.346, 0.4526, 0.5882, 0.7595, 0.9725, 1.232, 1.541",\
                 "0.2354, 0.2564, 0.3116, 0.3929, 0.4995, 0.6351, 0.8064, 1.019, 1.279, 1.588",\
                 "0.3026, 0.3251, 0.3821, 0.4646, 0.5721, 0.7079, 0.879, 1.092, 1.351, 1.66",\
                 "0.3837, 0.4083, 0.4705, 0.5585, 0.6702, 0.8079, 0.9795, 1.192, 1.451, 1.76",\
                 "0.4776, 0.5047, 0.5725, 0.6685, 0.7897, 0.9351, 1.109, 1.323, 1.581, 1.889",\
                 "0.5849, 0.614, 0.6879, 0.7917, 0.9232, 1.082, 1.268, 1.485, 1.744, 2.052",\
                 "0.7063, 0.7382, 0.8171, 0.9287, 1.07, 1.243, 1.445, 1.676, 1.94, 2.248",\
                 "0.8426, 0.8766, 0.9616, 1.081, 1.232, 1.417, 1.636, 1.886, 2.166, 2.481");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.01014, 0.01986, 0.05399, 0.1192, 0.2207, 0.3631, 0.5506, 0.7867, 1.075, 1.419");
          values("0.1591, 0.1835, 0.246, 0.3431, 0.4845, 0.68, 0.9365, 1.26, 1.655, 2.125",\
                 "0.1617, 0.1859, 0.2485, 0.3456, 0.4868, 0.6824, 0.9394, 1.263, 1.658, 2.128",\
                 "0.1725, 0.1964, 0.2585, 0.355, 0.4963, 0.6921, 0.9491, 1.272, 1.666, 2.137",\
                 "0.1882, 0.2117, 0.2728, 0.3689, 0.5096, 0.7049, 0.9618, 1.285, 1.68, 2.15",\
                 "0.1977, 0.2224, 0.2855, 0.3825, 0.5229, 0.7179, 0.9745, 1.297, 1.692, 2.163",\
                 "0.1951, 0.2216, 0.2889, 0.3906, 0.5338, 0.7287, 0.9847, 1.307, 1.702, 2.171",\
                 "0.1788, 0.2074, 0.2796, 0.3867, 0.5365, 0.7365, 0.9931, 1.315, 1.709, 2.179",\
                 "0.1481, 0.1788, 0.2563, 0.3694, 0.5263, 0.7344, 0.9979, 1.322, 1.715, 2.183",\
                 "0.1031, 0.1361, 0.2186, 0.3379, 0.5011, 0.7175, 0.9908, 1.323, 1.719, 2.188",\
                 "0.0429, 0.0783, 0.1661, 0.2909, 0.4609, 0.6852, 0.9687, 1.312, 1.718, 2.191");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.01014, 0.01986, 0.05399, 0.1192, 0.2207, 0.3631, 0.5506, 0.7867, 1.075, 1.419");
          values("0.05818, 0.08098, 0.1425, 0.2431, 0.3863, 0.5902, 0.8659, 1.223, 1.663, 2.189",\
                 "0.05802, 0.0811, 0.1426, 0.2433, 0.3863, 0.5902, 0.8654, 1.223, 1.663, 2.189",\
                 "0.05838, 0.0815, 0.1429, 0.2436, 0.3864, 0.5897, 0.8667, 1.222, 1.662, 2.186",\
                 "0.06244, 0.08498, 0.146, 0.2455, 0.3885, 0.5904, 0.8665, 1.223, 1.663, 2.188",\
                 "0.07368, 0.0967, 0.1562, 0.253, 0.3936, 0.5931, 0.8676, 1.223, 1.663, 2.186",\
                 "0.08848, 0.1138, 0.1768, 0.2732, 0.4084, 0.6026, 0.8718, 1.223, 1.663, 2.187",\
                 "0.1056, 0.1336, 0.2018, 0.305, 0.4458, 0.6292, 0.8848, 1.228, 1.665, 2.188",\
                 "0.1238, 0.1544, 0.2282, 0.3388, 0.4928, 0.6854, 0.9272, 1.249, 1.671, 2.188",\
                 "0.144, 0.1766, 0.2554, 0.3746, 0.5406, 0.751, 1.002, 1.308, 1.702, 2.199",\
                 "0.1648, 0.1998, 0.2848, 0.4118, 0.5888, 0.8194, 1.091, 1.403, 1.778, 2.243");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.01014, 0.01986, 0.05399, 0.1192, 0.2207, 0.3631, 0.5506, 0.7867, 1.075, 1.419");
          values("0.05854, 0.0861, 0.1653, 0.3171, 0.5661, 0.9217, 1.392, 1.985, 2.707, 3.57",\
                 "0.05842, 0.08596, 0.1655, 0.3171, 0.566, 0.9218, 1.393, 1.987, 2.708, 3.574",\
                 "0.05852, 0.0857, 0.1654, 0.3173, 0.5657, 0.9214, 1.391, 1.984, 2.708, 3.57",\
                 "0.06084, 0.08808, 0.1677, 0.3182, 0.5669, 0.9227, 1.391, 1.983, 2.708, 3.572",\
                 "0.06878, 0.09646, 0.1751, 0.3233, 0.5679, 0.922, 1.392, 1.984, 2.71, 3.572",\
                 "0.079, 0.1081, 0.1895, 0.338, 0.5774, 0.9248, 1.393, 1.987, 2.705, 3.568",\
                 "0.0916, 0.1218, 0.2062, 0.3592, 0.601, 0.9414, 1.399, 1.986, 2.708, 3.571",\
                 "0.105, 0.1384, 0.2256, 0.3826, 0.6304, 0.9764, 1.424, 1.996, 2.712, 3.568",\
                 "0.12, 0.1546, 0.2458, 0.4062, 0.6602, 1.016, 1.47, 2.032, 2.727, 3.572",\
                 "0.137, 0.1724, 0.2678, 0.4312, 0.6922, 1.058, 1.522, 2.089, 2.773, 3.601");
        }
      }
    }
  }

