/*
 * 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_16) {
    area : 127.321600 ;

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

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

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

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

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

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

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

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

      internal_power() {
        when : "!I" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("0.278, 0.2781, 0.2922, 0.3335, 0.407, 0.5168, 0.6656, 0.8559, \
                  1.102, 1.429");
        }

        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.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("0.742, 0.7421, 0.759, 0.8132, 0.9203, 1.091, 1.334, 1.652, 2.052, \
                  2.538");
        }

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

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

      internal_power() {
        when : "!EN" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("0.3766, 0.3745, 0.3742, 0.374, 0.3738, 0.3736, 0.3746, 0.374, \
                  0.3745, 0.3744");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("-0.3722, -0.3727, -0.3727, -0.3725, -0.3729, -0.3728, -0.3736, \
                  -0.3728, -0.3734, -0.3736");
        }
      }
    }

    pin(Z) {
      capacitance : 0.02965 ;
      direction : output ;
      function : "I" ;
      max_capacitance : 3.523 ;
      max_transition : 3.4 ;
      min_capacitance : 0.03065 ;
      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.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.03065, 0.05475, 0.1394, 0.3009, 0.5527, 0.9059, 1.371, 1.956, 2.671, 3.523");
          values("1.652, 1.651, 1.65, 1.649, 1.648, 1.649, 1.649, 1.65, 1.65, 1.65",\
                 "1.653, 1.653, 1.652, 1.651, 1.651, 1.651, 1.651, 1.652, 1.652, 1.652",\
                 "1.674, 1.673, 1.672, 1.671, 1.671, 1.671, 1.672, 1.672, 1.673, 1.673",\
                 "1.725, 1.724, 1.722, 1.722, 1.721, 1.722, 1.722, 1.722, 1.723, 1.723",\
                 "1.809, 1.809, 1.809, 1.808, 1.808, 1.808, 1.808, 1.808, 1.808, 1.808",\
                 "1.935, 1.935, 1.935, 1.934, 1.934, 1.933, 1.933, 1.934, 1.934, 1.934",\
                 "2.104, 2.103, 2.103, 2.103, 2.103, 2.103, 2.103, 2.103, 2.103, 2.103",\
                 "2.317, 2.318, 2.318, 2.317, 2.317, 2.317, 2.318, 2.318, 2.318, 2.318",\
                 "2.581, 2.58, 2.581, 2.581, 2.581, 2.58, 2.58, 2.581, 2.581, 2.581",\
                 "2.893, 2.893, 2.893, 2.893, 2.893, 2.893, 2.893, 2.893, 2.893, 2.893");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.03065, 0.05475, 0.1394, 0.3009, 0.5527, 0.9059, 1.371, 1.956, 2.671, 3.523");
          values("1.597, 1.601, 1.61, 1.603, 1.603, 1.614, 1.622, 1.648, 1.669, 1.708",\
                 "1.599, 1.6, 1.607, 1.607, 1.602, 1.609, 1.63, 1.643, 1.68, 1.703",\
                 "1.611, 1.613, 1.619, 1.619, 1.614, 1.623, 1.633, 1.659, 1.685, 1.714",\
                 "1.654, 1.653, 1.655, 1.658, 1.66, 1.67, 1.679, 1.703, 1.735, 1.758",\
                 "1.74, 1.742, 1.746, 1.747, 1.746, 1.751, 1.767, 1.797, 1.812, 1.857",\
                 "1.883, 1.882, 1.877, 1.894, 1.905, 1.914, 1.924, 1.94, 1.971, 2.005",\
                 "2.085, 2.085, 2.088, 2.087, 2.097, 2.12, 2.132, 2.143, 2.169, 2.203",\
                 "2.355, 2.357, 2.362, 2.366, 2.355, 2.372, 2.413, 2.418, 2.45, 2.478",\
                 "2.699, 2.7, 2.7, 2.711, 2.7, 2.701, 2.727, 2.787, 2.796, 2.83",\
                 "3.119, 3.122, 3.126, 3.129, 3.126, 3.118, 3.125, 3.166, 3.231, 3.259");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.03065, 0.05475, 0.1394, 0.3009, 0.5527, 0.9059, 1.371, 1.956, 2.671, 3.523");
          values("2.759, 2.779, 2.833, 2.886, 2.915, 2.932, 2.942, 2.949, 2.953, 2.956",\
                 "2.746, 2.764, 2.817, 2.866, 2.893, 2.911, 2.92, 2.927, 2.932, 2.934",\
                 "2.772, 2.785, 2.831, 2.878, 2.907, 2.925, 2.936, 2.943, 2.949, 2.951",\
                 "2.914, 2.923, 2.959, 3.005, 3.041, 3.064, 3.08, 3.089, 3.096, 3.1",\
                 "3.23, 3.236, 3.271, 3.319, 3.361, 3.39, 3.409, 3.422, 3.431, 3.437",\
                 "3.787, 3.794, 3.823, 3.869, 3.914, 3.947, 3.971, 3.988, 3.999, 4.007",\
                 "4.616, 4.621, 4.646, 4.689, 4.733, 4.769, 4.797, 4.816, 4.831, 4.842",\
                 "5.739, 5.74, 5.758, 5.792, 5.833, 5.872, 5.902, 5.924, 5.941, 5.953",\
                 "7.165, 7.161, 7.167, 7.192, 7.227, 7.263, 7.294, 7.319, 7.339, 7.352",\
                 "8.902, 8.894, 8.89, 8.902, 8.925, 8.956, 8.988, 9.013, 9.035, 9.05");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.03065, 0.05475, 0.1394, 0.3009, 0.5527, 0.9059, 1.371, 1.956, 2.671, 3.523");
          values("1.469, 1.501, 1.584, 1.643, 1.678, 1.698, 1.721, 1.748, 1.774, 1.819",\
                 "1.452, 1.482, 1.561, 1.62, 1.659, 1.681, 1.702, 1.732, 1.769, 1.797",\
                 "1.434, 1.457, 1.529, 1.585, 1.624, 1.655, 1.677, 1.71, 1.747, 1.775",\
                 "1.51, 1.531, 1.578, 1.639, 1.675, 1.717, 1.744, 1.781, 1.824, 1.857",\
                 "1.768, 1.784, 1.829, 1.875, 1.925, 1.956, 1.996, 2.029, 2.071, 2.105",\
                 "2.252, 2.264, 2.297, 2.351, 2.401, 2.441, 2.48, 2.524, 2.566, 2.6",\
                 "2.991, 3.002, 3.038, 3.066, 3.116, 3.172, 3.212, 3.25, 3.298, 3.331",\
                 "4, 4.013, 4.035, 4.067, 4.099, 4.165, 4.204, 4.24, 4.282, 4.332",\
                 "5.279, 5.293, 5.312, 5.337, 5.368, 5.404, 5.472, 5.516, 5.564, 5.603",\
                 "6.846, 6.858, 6.873, 6.903, 6.919, 6.946, 6.985, 7.056, 7.115, 7.159");
        }
      }

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

        cell_fall(tmg_ntin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("0.705, 0.71, 0.73, 0.775, 0.855, 0.974, 1.138, 1.342, 1.582, 1.849");
        }

        cell_rise(tmg_ntin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("0.462, 0.467, 0.492, 0.542, 0.614, 0.707, 0.821, 0.954, 1.105, \
                  1.277");
        }

        fall_transition(tmg_ntin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("0, 0, 0, 0, 0, 0, 0, 0, 0, 0");
        }

        rise_transition(tmg_ntin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          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.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.03065, 0.05475, 0.1394, 0.3009, 0.5527, 0.9059, 1.371, 1.956, 2.671, 3.523");
          values("0.1643, 0.1962, 0.274, 0.3796, 0.5111, 0.6696, 0.8569, 1.077, 1.335, 1.636",\
                 "0.1681, 0.2, 0.2774, 0.3834, 0.5148, 0.6732, 0.8606, 1.081, 1.339, 1.64",\
                 "0.1829, 0.2148, 0.2925, 0.3982, 0.5296, 0.6881, 0.8756, 1.096, 1.354, 1.655",\
                 "0.2038, 0.237, 0.3161, 0.4226, 0.5543, 0.7131, 0.9006, 1.121, 1.379, 1.68",\
                 "0.212, 0.2493, 0.3368, 0.4495, 0.5842, 0.7447, 0.9332, 1.154, 1.413, 1.714",\
                 "0.2019, 0.2431, 0.3383, 0.4604, 0.6037, 0.7691, 0.9603, 1.182, 1.441, 1.743",\
                 "0.1741, 0.2176, 0.3193, 0.4481, 0.5958, 0.7632, 0.9552, 1.178, 1.437, 1.738",\
                 "0.1266, 0.1735, 0.2804, 0.4132, 0.5629, 0.7317, 0.9245, 1.147, 1.406, 1.708",\
                 "0.0597, 0.1093, 0.2214, 0.3571, 0.508, 0.678, 0.8715, 1.095, 1.354, 1.656",\
                 "-0.0282, 0.0249, 0.1409, 0.2793, 0.4326, 0.6038, 0.7981, 1.022, 1.281, 1.583");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.03065, 0.05475, 0.1394, 0.3009, 0.5527, 0.9059, 1.371, 1.956, 2.671, 3.523");
          values("0.2081, 0.2483, 0.3421, 0.464, 0.6148, 0.8063, 1.05, 1.356, 1.728, 2.171",\
                 "0.2115, 0.2516, 0.3454, 0.4672, 0.6181, 0.8096, 1.054, 1.359, 1.731, 2.175",\
                 "0.2235, 0.2637, 0.3576, 0.4794, 0.6302, 0.8217, 1.066, 1.371, 1.743, 2.186",\
                 "0.2412, 0.2828, 0.378, 0.5005, 0.6521, 0.8434, 1.087, 1.393, 1.764, 2.208",\
                 "0.2485, 0.2958, 0.4002, 0.5276, 0.6809, 0.8729, 1.117, 1.422, 1.795, 2.238",\
                 "0.2346, 0.2887, 0.4073, 0.5468, 0.7059, 0.9, 1.145, 1.45, 1.822, 2.265",\
                 "0.1965, 0.2582, 0.3922, 0.548, 0.7174, 0.9157, 1.161, 1.467, 1.839, 2.282",\
                 "0.1333, 0.203, 0.3532, 0.527, 0.7107, 0.9167, 1.165, 1.471, 1.843, 2.287",\
                 "0.0414, 0.1207, 0.288, 0.4807, 0.6816, 0.8981, 1.152, 1.46, 1.833, 2.276",\
                 "-0.0817, 0.0095, 0.1958, 0.4081, 0.6285, 0.8579, 1.119, 1.431, 1.807, 2.251");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.03065, 0.05475, 0.1394, 0.3009, 0.5527, 0.9059, 1.371, 1.956, 2.671, 3.523");
          values("0.0937, 0.1225, 0.1983, 0.3138, 0.4736, 0.6791, 0.9373, 1.263, 1.667, 2.157",\
                 "0.09364, 0.1224, 0.198, 0.3141, 0.4733, 0.6792, 0.9378, 1.265, 1.667, 2.158",\
                 "0.09368, 0.1224, 0.1982, 0.3138, 0.4735, 0.6791, 0.9382, 1.264, 1.668, 2.158",\
                 "0.1004, 0.1274, 0.2005, 0.3156, 0.4748, 0.6799, 0.938, 1.264, 1.667, 2.156",\
                 "0.1149, 0.1446, 0.2195, 0.3289, 0.4825, 0.6853, 0.9434, 1.267, 1.669, 2.159",\
                 "0.1275, 0.1594, 0.2407, 0.3561, 0.508, 0.7036, 0.9552, 1.275, 1.672, 2.161",\
                 "0.1398, 0.1727, 0.2574, 0.3742, 0.5234, 0.7128, 0.959, 1.277, 1.674, 2.162",\
                 "0.1518, 0.1848, 0.2708, 0.3844, 0.5298, 0.7178, 0.9632, 1.278, 1.674, 2.162",\
                 "0.1668, 0.197, 0.2812, 0.3924, 0.5356, 0.7226, 0.9668, 1.283, 1.676, 2.161",\
                 "0.1812, 0.2108, 0.2908, 0.4, 0.5416, 0.7278, 0.9706, 1.284, 1.678, 2.163");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.03065, 0.05475, 0.1394, 0.3009, 0.5527, 0.9059, 1.371, 1.956, 2.671, 3.523");
          values("0.1146, 0.1479, 0.238, 0.3756, 0.5896, 0.9044, 1.339, 1.895, 2.579, 3.395",\
                 "0.1141, 0.1481, 0.2385, 0.3764, 0.5894, 0.9045, 1.339, 1.895, 2.577, 3.395",\
                 "0.1142, 0.1484, 0.2381, 0.3769, 0.5895, 0.9046, 1.339, 1.895, 2.579, 3.393",\
                 "0.1201, 0.1527, 0.2393, 0.3768, 0.5901, 0.9047, 1.34, 1.895, 2.579, 3.392",\
                 "0.1394, 0.1728, 0.2554, 0.3865, 0.5938, 0.9072, 1.34, 1.897, 2.577, 3.394",\
                 "0.1617, 0.1993, 0.2869, 0.4123, 0.6086, 0.9128, 1.342, 1.896, 2.577, 3.397",\
                 "0.1861, 0.2272, 0.3218, 0.4498, 0.6342, 0.925, 1.346, 1.897, 2.577, 3.392",\
                 "0.2156, 0.2574, 0.3602, 0.4954, 0.6724, 0.9484, 1.356, 1.901, 2.579, 3.392",\
                 "0.2526, 0.2928, 0.4014, 0.5444, 0.7196, 0.9818, 1.376, 1.912, 2.584, 3.396",\
                 "0.3028, 0.3374, 0.4438, 0.598, 0.7744, 1.024, 1.405, 1.931, 2.598, 3.401");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.03065, 0.05475, 0.1394, 0.3009, 0.5527, 0.9059, 1.371, 1.956, 2.671, 3.523");
          values("0.2183, 0.2501, 0.3286, 0.4347, 0.5659, 0.7242, 0.9114, 1.131, 1.389, 1.691",\
                 "0.2186, 0.2502, 0.3286, 0.4346, 0.5659, 0.7242, 0.9114, 1.131, 1.389, 1.691",\
                 "0.2338, 0.2651, 0.3432, 0.4493, 0.5807, 0.739, 0.9262, 1.146, 1.404, 1.705",\
                 "0.2752, 0.3067, 0.385, 0.4913, 0.623, 0.7816, 0.9691, 1.189, 1.447, 1.748",\
                 "0.3456, 0.3791, 0.4597, 0.5679, 0.7006, 0.8595, 1.047, 1.268, 1.526, 1.827",\
                 "0.4407, 0.4813, 0.572, 0.6856, 0.8213, 0.9823, 1.171, 1.392, 1.651, 1.952",\
                 "0.5574, 0.6081, 0.7176, 0.8459, 0.9892, 1.155, 1.347, 1.569, 1.829, 2.131",\
                 "0.699, 0.7611, 0.8933, 1.043, 1.203, 1.378, 1.575, 1.801, 2.062, 2.365",\
                 "0.8665, 0.9415, 1.099, 1.273, 1.456, 1.648, 1.857, 2.089, 2.353, 2.657",\
                 "1.06, 1.15, 1.334, 1.535, 1.743, 1.96, 2.188, 2.432, 2.702, 3.009");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.03065, 0.05475, 0.1394, 0.3009, 0.5527, 0.9059, 1.371, 1.956, 2.671, 3.523");
          values("0.2649, 0.3062, 0.4018, 0.5241, 0.6753, 0.8665, 1.111, 1.416, 1.788, 2.232",\
                 "0.2638, 0.305, 0.4006, 0.5228, 0.674, 0.8656, 1.11, 1.415, 1.788, 2.231",\
                 "0.2629, 0.3039, 0.3991, 0.5215, 0.673, 0.8647, 1.109, 1.414, 1.787, 2.23",\
                 "0.2683, 0.3093, 0.4045, 0.5272, 0.6788, 0.8711, 1.115, 1.421, 1.793, 2.237",\
                 "0.2867, 0.3306, 0.4293, 0.554, 0.7064, 0.899, 1.144, 1.45, 1.822, 2.266",\
                 "0.3068, 0.3607, 0.4739, 0.6066, 0.7628, 0.9566, 1.202, 1.508, 1.88, 2.324",\
                 "0.3203, 0.3895, 0.5282, 0.6804, 0.8465, 1.044, 1.29, 1.596, 1.969, 2.412",\
                 "0.3241, 0.4147, 0.5866, 0.7652, 0.9504, 1.158, 1.407, 1.713, 2.086, 2.53",\
                 "0.3129, 0.432, 0.645, 0.856, 1.066, 1.291, 1.549, 1.859, 2.232, 2.676",\
                 "0.2817, 0.4358, 0.701, 0.9503, 1.189, 1.435, 1.711, 2.03, 2.405, 2.85");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.03065, 0.05475, 0.1394, 0.3009, 0.5527, 0.9059, 1.371, 1.956, 2.671, 3.523");
          values("0.08622, 0.1163, 0.1931, 0.3095, 0.4702, 0.6764, 0.9363, 1.262, 1.665, 2.158",\
                 "0.08624, 0.1165, 0.1931, 0.3098, 0.4704, 0.6766, 0.9354, 1.263, 1.666, 2.158",\
                 "0.08644, 0.1165, 0.1936, 0.3102, 0.4705, 0.6766, 0.9364, 1.262, 1.667, 2.157",\
                 "0.08818, 0.1183, 0.1951, 0.3111, 0.4709, 0.6769, 0.9366, 1.263, 1.667, 2.157",\
                 "0.0979, 0.1264, 0.2, 0.3141, 0.4728, 0.6782, 0.9376, 1.264, 1.668, 2.157",\
                 "0.1256, 0.1529, 0.2196, 0.3264, 0.481, 0.6842, 0.9422, 1.266, 1.668, 2.158",\
                 "0.1656, 0.195, 0.2626, 0.3598, 0.5028, 0.7, 0.9534, 1.274, 1.673, 2.16",\
                 "0.2144, 0.246, 0.3178, 0.4152, 0.5488, 0.7312, 0.9746, 1.286, 1.681, 2.164",\
                 "0.2686, 0.3036, 0.3782, 0.4836, 0.6198, 0.7918, 1.018, 1.315, 1.697, 2.173",\
                 "0.331, 0.367, 0.4496, 0.5598, 0.7052, 0.8788, 1.094, 1.369, 1.729, 2.192");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.03065, 0.05475, 0.1394, 0.3009, 0.5527, 0.9059, 1.371, 1.956, 2.671, 3.523");
          values("0.1093, 0.1425, 0.2312, 0.3713, 0.5861, 0.9035, 1.339, 1.895, 2.579, 3.393",\
                 "0.1087, 0.1422, 0.2312, 0.3703, 0.5869, 0.9035, 1.34, 1.896, 2.576, 3.395",\
                 "0.1102, 0.1429, 0.2321, 0.3718, 0.5877, 0.9033, 1.34, 1.896, 2.577, 3.395",\
                 "0.1112, 0.1455, 0.2331, 0.3722, 0.5876, 0.9035, 1.339, 1.895, 2.578, 3.393",\
                 "0.1246, 0.1561, 0.2395, 0.3766, 0.5893, 0.9054, 1.338, 1.897, 2.579, 3.395",\
                 "0.1599, 0.191, 0.2665, 0.392, 0.5968, 0.9074, 1.341, 1.896, 2.577, 3.396",\
                 "0.2148, 0.2434, 0.3174, 0.4326, 0.619, 0.918, 1.342, 1.897, 2.577, 3.395",\
                 "0.291, 0.3174, 0.3838, 0.4948, 0.6688, 0.9452, 1.353, 1.901, 2.578, 3.393",\
                 "0.389, 0.4114, 0.4668, 0.57, 0.7372, 0.9988, 1.385, 1.91, 2.584, 3.395",\
                 "0.5054, 0.5306, 0.5646, 0.659, 0.8214, 1.075, 1.444, 1.947, 2.596, 3.401");
        }
      }
    }
  }

