/*
 * 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__invz_12) {
    area : 118.540800 ;

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

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

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

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

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

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

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

    pin(EN) {
      capacitance : 0.008895 ;
      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.2918, 0.2906, 0.2979, 0.3227, 0.3717, 0.4477, 0.5546, 0.6943, \
                  0.8696, 1.082");
        }

        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.1236, 0.1232, 0.1294, 0.1469, 0.1781, 0.2238, 0.2862, 0.371, \
                  0.4853, 0.6285");
        }

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

    pin(I) {
      capacitance : 0.01346 ;
      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.3121, 0.3097, 0.3233, 0.3685, 0.4516, 0.5775, 0.7515, 0.9754, \
                  1.252, 1.585");
        }

        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.1082, 0.1071, 0.1167, 0.1518, 0.2222, 0.3314, 0.4832, 0.6785, \
                  0.9215, 1.213");
        }
      }
    }

    pin(ZN) {
      capacitance : 0.02203 ;
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 4.142 ;
      max_transition : 5.2 ;
      min_capacitance : 0.02303 ;
      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.02303, 0.05146, 0.1513, 0.3418, 0.6387, 1.055, 1.603, 2.294, 3.137, 4.142");
          values("0.5473, 0.5468, 0.5469, 0.5468, 0.5466, 0.5469, 0.5472, 0.5472, 0.5472, 0.5473",\
                 "0.5482, 0.5479, 0.548, 0.5476, 0.5478, 0.5479, 0.5481, 0.5482, 0.5481, 0.5482",\
                 "0.5586, 0.5582, 0.5581, 0.5578, 0.5579, 0.5583, 0.5584, 0.5585, 0.5585, 0.5585",\
                 "0.5824, 0.5824, 0.5824, 0.5819, 0.5819, 0.582, 0.5821, 0.5823, 0.5823, 0.5824",\
                 "0.6222, 0.6224, 0.6222, 0.6219, 0.6218, 0.6219, 0.622, 0.6221, 0.6221, 0.6221",\
                 "0.6792, 0.6792, 0.6795, 0.6793, 0.6792, 0.6792, 0.6791, 0.6792, 0.6792, 0.6792",\
                 "0.7549, 0.7549, 0.7548, 0.7547, 0.7545, 0.7545, 0.7547, 0.7547, 0.7546, 0.7546",\
                 "0.8502, 0.8501, 0.8503, 0.8501, 0.8498, 0.85, 0.8502, 0.8503, 0.8503, 0.8503",\
                 "0.9658, 0.9659, 0.9657, 0.9652, 0.9649, 0.965, 0.9649, 0.9652, 0.9653, 0.9654",\
                 "1.103, 1.103, 1.103, 1.102, 1.102, 1.102, 1.102, 1.102, 1.102, 1.103");
        }

        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.02303, 0.05146, 0.1513, 0.3418, 0.6387, 1.055, 1.603, 2.294, 3.137, 4.142");
          values("0.5007, 0.5016, 0.5007, 0.501, 0.5024, 0.5061, 0.5159, 0.5293, 0.5358, 0.5415",\
                 "0.5003, 0.5007, 0.5025, 0.5007, 0.5024, 0.5064, 0.5148, 0.5264, 0.5322, 0.5487",\
                 "0.5057, 0.5055, 0.5064, 0.5053, 0.5074, 0.5115, 0.5202, 0.5314, 0.5358, 0.5523",\
                 "0.5256, 0.5268, 0.5267, 0.5277, 0.5294, 0.5331, 0.5415, 0.5556, 0.5682, 0.5739",\
                 "0.5667, 0.5689, 0.5678, 0.573, 0.5729, 0.5777, 0.5894, 0.5991, 0.6042, 0.6243",\
                 "0.6334, 0.6336, 0.6338, 0.6331, 0.6428, 0.6418, 0.6498, 0.661, 0.669, 0.6855",\
                 "0.7273, 0.7279, 0.729, 0.7267, 0.7277, 0.7415, 0.7467, 0.7521, 0.7626, 0.7676",\
                 "0.8512, 0.8521, 0.8536, 0.8531, 0.8509, 0.856, 0.8777, 0.8832, 0.8814, 0.8972",\
                 "1.007, 1.008, 1.008, 1.009, 1.007, 1.005, 1.019, 1.049, 1.054, 1.056",\
                 "1.196, 1.197, 1.197, 1.199, 1.197, 1.199, 1.2, 1.218, 1.252, 1.254");
        }
      }

      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.02303, 0.05146, 0.1513, 0.3418, 0.6387, 1.055, 1.603, 2.294, 3.137, 4.142");
          values("0.9001, 0.9109, 0.9337, 0.9489, 0.9566, 0.9609, 0.9633, 0.9648, 0.9659, 0.9662",\
                 "0.8984, 0.91, 0.9323, 0.9477, 0.9554, 0.9596, 0.9621, 0.9636, 0.9646, 0.9653",\
                 "0.9094, 0.9204, 0.9423, 0.9576, 0.9654, 0.9697, 0.9721, 0.9738, 0.9747, 0.9754",\
                 "0.951, 0.9602, 0.9814, 0.9967, 1.005, 1.009, 1.012, 1.014, 1.015, 1.015",\
                 "1.033, 1.042, 1.061, 1.076, 1.085, 1.09, 1.093, 1.095, 1.096, 1.096",\
                 "1.161, 1.168, 1.185, 1.2, 1.21, 1.215, 1.218, 1.22, 1.221, 1.222",\
                 "1.337, 1.342, 1.358, 1.373, 1.382, 1.388, 1.392, 1.394, 1.395, 1.396",\
                 "1.563, 1.567, 1.581, 1.596, 1.606, 1.612, 1.616, 1.619, 1.62, 1.621",\
                 "1.841, 1.845, 1.859, 1.873, 1.884, 1.89, 1.894, 1.897, 1.898, 1.899",\
                 "2.174, 2.179, 2.19, 2.204, 2.215, 2.222, 2.226, 2.229, 2.231, 2.232");
        }

        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.02303, 0.05146, 0.1513, 0.3418, 0.6387, 1.055, 1.603, 2.294, 3.137, 4.142");
          values("0.9019, 0.9131, 0.9327, 0.9499, 0.9617, 0.9723, 0.9832, 0.9973, 1.015, 1.017",\
                 "0.8996, 0.9113, 0.9301, 0.9474, 0.9603, 0.9687, 0.981, 0.9969, 1.011, 1.021",\
                 "0.9128, 0.9249, 0.9433, 0.9603, 0.9725, 0.9816, 0.9954, 1.011, 1.019, 1.031",\
                 "0.9631, 0.9745, 0.9933, 1.009, 1.022, 1.032, 1.047, 1.058, 1.076, 1.085",\
                 "1.055, 1.065, 1.083, 1.099, 1.112, 1.123, 1.137, 1.15, 1.159, 1.175",\
                 "1.197, 1.206, 1.223, 1.242, 1.253, 1.265, 1.281, 1.293, 1.307, 1.319",\
                 "1.394, 1.404, 1.418, 1.429, 1.451, 1.461, 1.472, 1.488, 1.497, 1.517",\
                 "1.65, 1.657, 1.673, 1.683, 1.699, 1.722, 1.731, 1.74, 1.757, 1.765",\
                 "1.966, 1.973, 1.986, 1.998, 2.009, 2.023, 2.05, 2.066, 2.07, 2.078",\
                 "2.346, 2.353, 2.364, 2.376, 2.389, 2.396, 2.412, 2.446, 2.462, 2.467");
        }
      }

      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.425, 0.436, 0.47, 0.545, 0.671, 0.838, 1.03, 1.251, 1.503, 1.778");
        }

        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.31, 0.32, 0.359, 0.426, 0.516, 0.63, 0.767, 0.923, 1.102, 1.304");
        }

        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.02303, 0.05146, 0.1513, 0.3418, 0.6387, 1.055, 1.603, 2.294, 3.137, 4.142");
          values("0.1606, 0.201, 0.2933, 0.4161, 0.5656, 0.7485, 0.974, 1.251, 1.587, 1.987",\
                 "0.1689, 0.2093, 0.3015, 0.4242, 0.5739, 0.7569, 0.9823, 1.26, 1.596, 1.996",\
                 "0.1986, 0.2389, 0.3311, 0.4537, 0.6035, 0.7864, 1.012, 1.289, 1.625, 2.025",\
                 "0.2346, 0.2794, 0.3765, 0.5014, 0.652, 0.8353, 1.061, 1.338, 1.674, 2.074",\
                 "0.2507, 0.3005, 0.406, 0.5345, 0.6866, 0.8702, 1.096, 1.373, 1.709, 2.109",\
                 "0.2459, 0.2981, 0.4057, 0.5349, 0.6872, 0.8708, 1.096, 1.373, 1.709, 2.109",\
                 "0.219, 0.2721, 0.3809, 0.511, 0.6639, 0.8477, 1.073, 1.35, 1.686, 2.086",\
                 "0.1701, 0.2245, 0.3347, 0.466, 0.6193, 0.8034, 1.029, 1.306, 1.642, 2.042",\
                 "0.0984, 0.1535, 0.2649, 0.3972, 0.5512, 0.7358, 0.9617, 1.239, 1.575, 1.974",\
                 "0.0028, 0.0589, 0.172, 0.3054, 0.4602, 0.6451, 0.8712, 1.148, 1.484, 1.884");
        }

        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.02303, 0.05146, 0.1513, 0.3418, 0.6387, 1.055, 1.603, 2.294, 3.137, 4.142");
          values("0.1939, 0.2416, 0.3461, 0.4958, 0.7117, 1.011, 1.406, 1.904, 2.511, 3.236",\
                 "0.2013, 0.2491, 0.3537, 0.5033, 0.719, 1.019, 1.414, 1.911, 2.517, 3.24",\
                 "0.2275, 0.2753, 0.3798, 0.5297, 0.7454, 1.046, 1.44, 1.938, 2.543, 3.266",\
                 "0.2624, 0.3155, 0.4246, 0.5755, 0.7915, 1.091, 1.486, 1.984, 2.591, 3.312",\
                 "0.2817, 0.3436, 0.4671, 0.6239, 0.8408, 1.141, 1.535, 2.032, 2.64, 3.364",\
                 "0.2809, 0.3522, 0.4932, 0.6593, 0.8784, 1.178, 1.572, 2.069, 2.676, 3.399",\
                 "0.2576, 0.3384, 0.4987, 0.6791, 0.9022, 1.202, 1.596, 2.093, 2.7, 3.423",\
                 "0.2107, 0.3008, 0.4813, 0.6793, 0.91, 1.212, 1.606, 2.102, 2.708, 3.431",\
                 "0.139, 0.2382, 0.438, 0.6566, 0.8979, 1.204, 1.599, 2.095, 2.701, 3.424",\
                 "0.0411, 0.1497, 0.3685, 0.609, 0.8636, 1.175, 1.574, 2.072, 2.679, 3.401");
        }

        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.02303, 0.05146, 0.1513, 0.3418, 0.6387, 1.055, 1.603, 2.294, 3.137, 4.142");
          values("0.07936, 0.1169, 0.2088, 0.3412, 0.5192, 0.7681, 1.109, 1.553, 2.102, 2.766",\
                 "0.07932, 0.1169, 0.2088, 0.3417, 0.52, 0.7686, 1.11, 1.553, 2.102, 2.765",\
                 "0.07926, 0.1169, 0.2087, 0.3407, 0.5197, 0.7689, 1.109, 1.553, 2.103, 2.766",\
                 "0.09136, 0.1288, 0.2161, 0.3455, 0.522, 0.77, 1.11, 1.553, 2.102, 2.764",\
                 "0.1033, 0.1444, 0.2327, 0.3537, 0.526, 0.772, 1.111, 1.552, 2.103, 2.765",\
                 "0.111, 0.1518, 0.2366, 0.3566, 0.5268, 0.7712, 1.109, 1.554, 2.103, 2.767",\
                 "0.1166, 0.1554, 0.239, 0.3586, 0.5286, 0.7732, 1.11, 1.55, 2.101, 2.764",\
                 "0.1196, 0.1594, 0.242, 0.3606, 0.5306, 0.7744, 1.111, 1.552, 2.101, 2.761",\
                 "0.1232, 0.1618, 0.2446, 0.3634, 0.5324, 0.7752, 1.111, 1.553, 2.101, 2.761",\
                 "0.128, 0.1652, 0.2482, 0.3658, 0.5352, 0.7766, 1.113, 1.553, 2.103, 2.762");
        }

        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.02303, 0.05146, 0.1513, 0.3418, 0.6387, 1.055, 1.603, 2.294, 3.137, 4.142");
          values("0.09144, 0.1325, 0.2428, 0.4565, 0.8162, 1.335, 2.022, 2.888, 3.95, 5.21",\
                 "0.09152, 0.1325, 0.2431, 0.4563, 0.8163, 1.333, 2.021, 2.89, 3.943, 5.206",\
                 "0.09234, 0.133, 0.2432, 0.4564, 0.8164, 1.334, 2.021, 2.89, 3.945, 5.207",\
                 "0.1053, 0.1446, 0.2481, 0.4586, 0.8156, 1.335, 2.022, 2.889, 3.947, 5.209",\
                 "0.1238, 0.1701, 0.2698, 0.4668, 0.8182, 1.335, 2.022, 2.887, 3.949, 5.212",\
                 "0.144, 0.196, 0.3004, 0.4838, 0.8226, 1.337, 2.021, 2.886, 3.944, 5.205",\
                 "0.1644, 0.2238, 0.338, 0.5088, 0.8322, 1.337, 2.022, 2.886, 3.942, 5.202",\
                 "0.1846, 0.2516, 0.3804, 0.5438, 0.8496, 1.343, 2.022, 2.884, 3.938, 5.199",\
                 "0.2048, 0.279, 0.4222, 0.5876, 0.8756, 1.357, 2.028, 2.886, 3.939, 5.205",\
                 "0.227, 0.3058, 0.465, 0.636, 0.909, 1.378, 2.043, 2.895, 3.943, 5.196");
        }
      }

      timing() {
        related_pin : "I" ;
        timing_sense : negative_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.02303, 0.05146, 0.1513, 0.3418, 0.6387, 1.055, 1.603, 2.294, 3.137, 4.142");
          values("0.2784, 0.3205, 0.4147, 0.5377, 0.6877, 0.8702, 1.096, 1.373, 1.709, 2.109",\
                 "0.2859, 0.3279, 0.4221, 0.5454, 0.6949, 0.8776, 1.103, 1.38, 1.717, 2.117",\
                 "0.3091, 0.3512, 0.4454, 0.5687, 0.7183, 0.9009, 1.126, 1.404, 1.74, 2.14",\
                 "0.3289, 0.3709, 0.465, 0.5885, 0.7384, 0.9211, 1.147, 1.424, 1.76, 2.16",\
                 "0.337, 0.3788, 0.4733, 0.5968, 0.7467, 0.9296, 1.155, 1.432, 1.769, 2.169",\
                 "0.3296, 0.3716, 0.4661, 0.5899, 0.7401, 0.9231, 1.149, 1.426, 1.762, 2.162",\
                 "0.3049, 0.3472, 0.4418, 0.5661, 0.7164, 0.8996, 1.125, 1.403, 1.739, 2.139",\
                 "0.2614, 0.3038, 0.3989, 0.5234, 0.6739, 0.8573, 1.083, 1.361, 1.697, 2.097",\
                 "0.1976, 0.2402, 0.3358, 0.4606, 0.6114, 0.7949, 1.021, 1.298, 1.634, 2.035",\
                 "0.112, 0.1552, 0.2508, 0.3758, 0.5271, 0.7106, 0.9365, 1.214, 1.55, 1.951");
        }

        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.02303, 0.05146, 0.1513, 0.3418, 0.6387, 1.055, 1.603, 2.294, 3.137, 4.142");
          values("0.3553, 0.4037, 0.5092, 0.6598, 0.8769, 1.177, 1.572, 2.07, 2.678, 3.402",\
                 "0.3639, 0.4122, 0.5176, 0.6684, 0.8853, 1.186, 1.581, 2.078, 2.687, 3.411",\
                 "0.402, 0.4505, 0.5556, 0.7066, 0.9234, 1.224, 1.619, 2.117, 2.725, 3.446",\
                 "0.472, 0.5203, 0.6257, 0.7766, 0.9935, 1.294, 1.689, 2.186, 2.795, 3.519",\
                 "0.564, 0.6123, 0.7177, 0.8685, 1.085, 1.386, 1.781, 2.278, 2.885, 3.61",\
                 "0.6788, 0.7274, 0.8331, 0.9841, 1.201, 1.502, 1.897, 2.395, 3.002, 3.724",\
                 "0.8158, 0.8645, 0.9704, 1.122, 1.339, 1.64, 2.035, 2.533, 3.14, 3.862",\
                 "0.9759, 1.025, 1.132, 1.283, 1.5, 1.801, 2.196, 2.693, 3.3, 4.023",\
                 "1.16, 1.21, 1.317, 1.468, 1.686, 1.987, 2.382, 2.879, 3.486, 4.209",\
                 "1.369, 1.42, 1.528, 1.68, 1.897, 2.199, 2.594, 3.091, 3.698, 4.421");
        }

        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.02303, 0.05146, 0.1513, 0.3418, 0.6387, 1.055, 1.603, 2.294, 3.137, 4.142");
          values("0.0779, 0.1149, 0.2062, 0.3387, 0.5171, 0.7682, 1.109, 1.553, 2.104, 2.765",\
                 "0.07788, 0.1147, 0.2062, 0.3387, 0.5174, 0.7679, 1.109, 1.552, 2.102, 2.765",\
                 "0.0779, 0.1148, 0.2063, 0.3384, 0.5172, 0.7675, 1.109, 1.552, 2.102, 2.764",\
                 "0.0782, 0.1152, 0.2068, 0.3387, 0.518, 0.7678, 1.109, 1.552, 2.102, 2.767",\
                 "0.07882, 0.1161, 0.2072, 0.3387, 0.5176, 0.7668, 1.109, 1.553, 2.104, 2.766",\
                 "0.0796, 0.117, 0.2084, 0.34, 0.5182, 0.7676, 1.107, 1.552, 2.103, 2.765",\
                 "0.0808, 0.1182, 0.2092, 0.3408, 0.5184, 0.7684, 1.108, 1.55, 2.101, 2.765",\
                 "0.0816, 0.119, 0.2102, 0.3416, 0.5192, 0.769, 1.109, 1.552, 2.101, 2.762",\
                 "0.0826, 0.1202, 0.211, 0.3422, 0.52, 0.7698, 1.109, 1.552, 2.102, 2.762",\
                 "0.0834, 0.1212, 0.212, 0.3434, 0.5206, 0.7698, 1.111, 1.552, 2.103, 2.762");
        }

        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.02303, 0.05146, 0.1513, 0.3418, 0.6387, 1.055, 1.603, 2.294, 3.137, 4.142");
          values("0.08698, 0.1274, 0.2391, 0.4549, 0.8159, 1.334, 2.021, 2.889, 3.944, 5.203",\
                 "0.08716, 0.1277, 0.2391, 0.4552, 0.8152, 1.335, 2.022, 2.887, 3.949, 5.212",\
                 "0.08708, 0.1279, 0.2398, 0.4548, 0.8159, 1.335, 2.022, 2.888, 3.949, 5.209",\
                 "0.08752, 0.1281, 0.2399, 0.4547, 0.815, 1.335, 2.021, 2.885, 3.947, 5.207",\
                 "0.0884, 0.1286, 0.2398, 0.4554, 0.8158, 1.334, 2.021, 2.886, 3.942, 5.201",\
                 "0.0888, 0.1298, 0.241, 0.4554, 0.8148, 1.335, 2.021, 2.89, 3.95, 5.205",\
                 "0.0894, 0.1304, 0.2416, 0.4562, 0.815, 1.334, 2.021, 2.886, 3.947, 5.204",\
                 "0.0912, 0.1318, 0.2426, 0.4564, 0.8162, 1.336, 2.019, 2.884, 3.942, 5.2",\
                 "0.0932, 0.1336, 0.2438, 0.4574, 0.8168, 1.335, 2.02, 2.883, 3.944, 5.2",\
                 "0.0978, 0.1372, 0.2454, 0.4578, 0.8172, 1.336, 2.021, 2.884, 3.937, 5.198");
        }
      }
    }
  }

