/*
 * 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_1) {
    area : 37.318400 ;

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!EN&!I" ;
      value : "5.892e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!EN&I" ;
      value : "5.9247e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "EN&!I" ;
      value : "8.1987e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "EN&I" ;
      value : "8.2083e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "8.2083e-05" ;
    }

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

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

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

      internal_power() {
        when : "!I" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          values("0.08741, 0.08672, 0.08627, 0.08812, 0.09295, 0.1014, 0.1135, 0.1299, \
                  0.1507, 0.1762");
        }

        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.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          values("0.05891, 0.05839, 0.05822, 0.05972, 0.0629, 0.06786, 0.07481, \
                  0.084, 0.09619, 0.1118");
        }

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

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

      internal_power() {
        when : "!EN" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          values("0.03802, 0.03751, 0.03735, 0.03867, 0.04164, 0.04632, 0.05301, \
                  0.06178, 0.07284, 0.08626");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          values("0.00722, 0.006962, 0.006756, 0.007512, 0.009751, 0.01362, 0.01931, \
                  0.02689, 0.03645, 0.04811");
        }
      }
    }

    pin(ZN) {
      capacitance : 0.002862 ;
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 0.3209 ;
      max_transition : 11 ;
      min_capacitance : 0.003862 ;
      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.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.003862, 0.00605, 0.01373, 0.0284, 0.05125, 0.08332, 0.1255, 0.1787, 0.2436, 0.3209");
          values("0.06653, 0.06653, 0.06652, 0.06646, 0.06647, 0.06649, 0.0665, 0.06651, 0.06652, 0.06652",\
                 "0.06656, 0.06656, 0.06655, 0.06652, 0.06653, 0.06654, 0.06656, 0.06657, 0.06657, 0.06658",\
                 "0.06827, 0.06829, 0.06826, 0.06823, 0.06824, 0.06825, 0.06828, 0.06828, 0.06829, 0.0683",\
                 "0.07142, 0.07142, 0.0714, 0.07134, 0.07135, 0.07138, 0.07139, 0.07141, 0.07142, 0.07142",\
                 "0.07647, 0.07646, 0.07645, 0.07643, 0.07642, 0.07642, 0.07643, 0.07645, 0.07645, 0.07646",\
                 "0.0838, 0.08383, 0.08383, 0.08378, 0.08378, 0.08379, 0.0838, 0.0838, 0.08381, 0.08381",\
                 "0.09368, 0.09367, 0.09366, 0.0936, 0.09362, 0.09361, 0.09362, 0.09362, 0.09362, 0.09362",\
                 "0.1061, 0.1061, 0.106, 0.106, 0.106, 0.106, 0.106, 0.1061, 0.1061, 0.1061",\
                 "0.1212, 0.1212, 0.1212, 0.1212, 0.1212, 0.1212, 0.1212, 0.1212, 0.1212, 0.1212",\
                 "0.1393, 0.1393, 0.1392, 0.1392, 0.1392, 0.1392, 0.1392, 0.1392, 0.1392, 0.1392");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.003862, 0.00605, 0.01373, 0.0284, 0.05125, 0.08332, 0.1255, 0.1787, 0.2436, 0.3209");
          values("0.04015, 0.04015, 0.04018, 0.04015, 0.04045, 0.04074, 0.04128, 0.04155, 0.04245, 0.05146",\
                 "0.03971, 0.03971, 0.03974, 0.03975, 0.03991, 0.0402, 0.0405, 0.04113, 0.04194, 0.05107",\
                 "0.03926, 0.03922, 0.03926, 0.03925, 0.03949, 0.03966, 0.04014, 0.04041, 0.04164, 0.05136",\
                 "0.04052, 0.04058, 0.04051, 0.04061, 0.04084, 0.0411, 0.04149, 0.04194, 0.04316, 0.054",\
                 "0.04461, 0.04461, 0.04454, 0.04479, 0.04486, 0.04518, 0.04545, 0.04596, 0.04725, 0.06083",\
                 "0.05188, 0.05193, 0.05185, 0.05178, 0.05221, 0.05235, 0.05265, 0.05318, 0.05472, 0.07134",\
                 "0.06263, 0.06263, 0.06263, 0.06256, 0.06265, 0.06348, 0.0636, 0.0638, 0.06592, 0.08658",\
                 "0.07715, 0.07714, 0.07708, 0.07713, 0.07714, 0.0774, 0.07842, 0.07915, 0.08151, 0.1103",\
                 "0.09557, 0.09558, 0.0956, 0.09558, 0.09547, 0.09582, 0.09599, 0.09782, 0.1028, 0.1458",\
                 "0.1181, 0.1181, 0.1181, 0.1181, 0.1181, 0.1183, 0.1182, 0.1194, 0.131, 0.1999");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.003862, 0.00605, 0.01373, 0.0284, 0.05125, 0.08332, 0.1255, 0.1787, 0.2436, 0.3209");
          values("0.1064, 0.1066, 0.1071, 0.1077, 0.1082, 0.1085, 0.1087, 0.1088, 0.1089, 0.1089",\
                 "0.1062, 0.1063, 0.1069, 0.1075, 0.108, 0.1082, 0.1084, 0.1086, 0.1086, 0.1087",\
                 "0.1058, 0.1059, 0.1065, 0.1071, 0.1076, 0.1079, 0.1081, 0.1082, 0.1083, 0.1083",\
                 "0.1064, 0.1065, 0.1071, 0.1077, 0.1082, 0.1085, 0.1087, 0.1088, 0.1089, 0.1089",\
                 "0.1086, 0.1088, 0.1093, 0.1099, 0.1104, 0.1107, 0.1109, 0.111, 0.1111, 0.1111",\
                 "0.1125, 0.1127, 0.1132, 0.1138, 0.1143, 0.1146, 0.1148, 0.1149, 0.115, 0.115",\
                 "0.1183, 0.1185, 0.119, 0.1196, 0.1201, 0.1204, 0.1206, 0.1207, 0.1208, 0.1208",\
                 "0.1261, 0.1263, 0.1267, 0.1273, 0.1278, 0.1281, 0.1283, 0.1285, 0.1285, 0.1286",\
                 "0.136, 0.1361, 0.1366, 0.1372, 0.1376, 0.138, 0.1382, 0.1383, 0.1384, 0.1384",\
                 "0.1481, 0.1482, 0.1486, 0.1491, 0.1496, 0.1499, 0.1501, 0.1502, 0.1503, 0.1504");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.003862, 0.00605, 0.01373, 0.0284, 0.05125, 0.08332, 0.1255, 0.1787, 0.2436, 0.3209");
          values("0.09093, 0.09121, 0.09194, 0.09271, 0.09359, 0.09427, 0.09491, 0.09563, 0.09679, 0.107",\
                 "0.09041, 0.0907, 0.0914, 0.0922, 0.09308, 0.09376, 0.09443, 0.09509, 0.09661, 0.1069",\
                 "0.09017, 0.09048, 0.09119, 0.09202, 0.09287, 0.09358, 0.09422, 0.09488, 0.09615, 0.1081",\
                 "0.09141, 0.09173, 0.09241, 0.09319, 0.09407, 0.09475, 0.09542, 0.09605, 0.09757, 0.1112",\
                 "0.0944, 0.09462, 0.09531, 0.0961, 0.09698, 0.09769, 0.09839, 0.09884, 0.1008, 0.1173",\
                 "0.09905, 0.09933, 0.09992, 0.1008, 0.1016, 0.1024, 0.1029, 0.1038, 0.1063, 0.1272",\
                 "0.1058, 0.106, 0.1066, 0.1074, 0.1085, 0.1091, 0.1097, 0.1103, 0.1138, 0.1449",\
                 "0.1148, 0.1151, 0.1156, 0.1163, 0.117, 0.1182, 0.1189, 0.1194, 0.1257, 0.1716",\
                 "0.1261, 0.1263, 0.1268, 0.1276, 0.1282, 0.1286, 0.1303, 0.1316, 0.143, 0.2194",\
                 "0.1398, 0.1401, 0.1406, 0.1412, 0.1421, 0.1421, 0.1429, 0.1469, 0.1732, 0.3066");
        }
      }

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

        cell_fall(tmg_ntin_10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          values("0.254, 0.282, 0.38, 0.556, 0.759, 0.993, 1.258, 1.565, 1.909, \
                  2.289");
        }

        cell_rise(tmg_ntin_10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          values("0.462, 0.485, 0.583, 0.76, 0.975, 1.224, 1.512, 1.842, 2.215, \
                  2.632");
        }

        fall_transition(tmg_ntin_10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          values("0, 0, 0, 0, 0, 0, 0, 0, 0, 0");
        }

        rise_transition(tmg_ntin_10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          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.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.003862, 0.00605, 0.01373, 0.0284, 0.05125, 0.08332, 0.1255, 0.1787, 0.2436, 0.3209");
          values("0.4591, 0.5196, 0.6723, 0.8829, 1.151, 1.491, 1.918, 2.448, 3.093, 3.861",\
                 "0.4814, 0.5419, 0.6946, 0.9058, 1.174, 1.514, 1.941, 2.471, 3.116, 3.884",\
                 "0.5622, 0.6222, 0.7741, 0.9848, 1.253, 1.593, 2.02, 2.55, 3.195, 3.963",\
                 "0.6975, 0.755, 0.9019, 1.109, 1.376, 1.715, 2.142, 2.673, 3.317, 4.086",\
                 "0.7939, 0.85, 0.9946, 1.2, 1.466, 1.804, 2.231, 2.761, 3.405, 4.174",\
                 "0.8361, 0.8922, 1.037, 1.242, 1.507, 1.845, 2.27, 2.8, 3.445, 4.213",\
                 "0.8392, 0.8946, 1.038, 1.243, 1.509, 1.846, 2.272, 2.801, 3.445, 4.213",\
                 "0.802, 0.8573, 1, 1.205, 1.47, 1.807, 2.233, 2.763, 3.407, 4.174",\
                 "0.7264, 0.7819, 0.9244, 1.127, 1.391, 1.728, 2.154, 2.683, 3.327, 4.095",\
                 "0.6103, 0.6658, 0.808, 1.01, 1.272, 1.608, 2.033, 2.562, 3.207, 3.975");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.003862, 0.00605, 0.01373, 0.0284, 0.05125, 0.08332, 0.1255, 0.1787, 0.2436, 0.3209");
          values("0.3823, 0.4428, 0.6195, 0.9211, 1.38, 2.022, 2.866, 3.934, 5.234, 6.784",\
                 "0.4011, 0.4617, 0.6385, 0.9401, 1.399, 2.041, 2.887, 3.949, 5.249, 6.797",\
                 "0.4692, 0.5296, 0.7063, 1.008, 1.466, 2.108, 2.955, 4.018, 5.318, 6.866",\
                 "0.5654, 0.6277, 0.8071, 1.11, 1.568, 2.21, 3.056, 4.121, 5.42, 6.972",\
                 "0.6367, 0.7034, 0.8884, 1.194, 1.654, 2.296, 3.141, 4.208, 5.508, 7.059",\
                 "0.6795, 0.7522, 0.9446, 1.253, 1.713, 2.357, 3.201, 4.266, 5.569, 7.119",\
                 "0.6931, 0.7734, 0.9759, 1.288, 1.749, 2.392, 3.238, 4.302, 5.601, 7.154",\
                 "0.6727, 0.7621, 0.9798, 1.298, 1.76, 2.403, 3.248, 4.313, 5.613, 7.161",\
                 "0.615, 0.7144, 0.9502, 1.278, 1.744, 2.387, 3.232, 4.297, 5.597, 7.146",\
                 "0.5176, 0.6274, 0.8837, 1.225, 1.697, 2.343, 3.188, 4.253, 5.553, 7.101");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.003862, 0.00605, 0.01373, 0.0284, 0.05125, 0.08332, 0.1255, 0.1787, 0.2436, 0.3209");
          values("0.2186, 0.2693, 0.405, 0.6289, 0.963, 1.444, 2.104, 2.958, 4.014, 5.278",\
                 "0.219, 0.2699, 0.4054, 0.6291, 0.9635, 1.445, 2.105, 2.958, 4.011, 5.273",\
                 "0.2164, 0.2675, 0.4038, 0.6284, 0.9626, 1.445, 2.105, 2.958, 4.009, 5.274",\
                 "0.2082, 0.2562, 0.394, 0.6214, 0.96, 1.443, 2.103, 2.956, 4.011, 5.28",\
                 "0.205, 0.252, 0.389, 0.6158, 0.9546, 1.439, 2.102, 2.955, 4.01, 5.277",\
                 "0.2034, 0.2502, 0.3878, 0.6162, 0.9546, 1.437, 2.096, 2.955, 4.013, 5.279",\
                 "0.2022, 0.2494, 0.3872, 0.616, 0.955, 1.44, 2.097, 2.948, 4.005, 5.273",\
                 "0.202, 0.2486, 0.385, 0.6134, 0.9528, 1.437, 2.098, 2.95, 4.003, 5.265",\
                 "0.2028, 0.2482, 0.383, 0.6104, 0.9492, 1.435, 2.096, 2.95, 4.004, 5.267",\
                 "0.204, 0.249, 0.382, 0.6074, 0.9456, 1.432, 2.097, 2.949, 4.008, 5.27");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.003862, 0.00605, 0.01373, 0.0284, 0.05125, 0.08332, 0.1255, 0.1787, 0.2436, 0.3209");
          values("0.2072, 0.2782, 0.5183, 0.9969, 1.771, 2.872, 4.322, 6.143, 8.37, 11.04",\
                 "0.207, 0.2782, 0.5182, 0.9971, 1.772, 2.869, 4.317, 6.15, 8.383, 11.04",\
                 "0.2063, 0.2781, 0.5178, 0.9952, 1.772, 2.868, 4.319, 6.15, 8.378, 11.04",\
                 "0.2168, 0.2856, 0.5218, 0.9968, 1.771, 2.871, 4.32, 6.145, 8.378, 11.02",\
                 "0.2376, 0.3028, 0.5338, 1.004, 1.773, 2.871, 4.321, 6.139, 8.366, 11.03",\
                 "0.2644, 0.3266, 0.5476, 1.01, 1.777, 2.875, 4.317, 6.14, 8.365, 11.03",\
                 "0.2958, 0.3568, 0.5648, 1.015, 1.777, 2.876, 4.316, 6.135, 8.36, 11.02",\
                 "0.3334, 0.3946, 0.592, 1.026, 1.781, 2.872, 4.317, 6.136, 8.367, 11.01",\
                 "0.3716, 0.4376, 0.6296, 1.045, 1.788, 2.877, 4.322, 6.137, 8.358, 11.01",\
                 "0.411, 0.483, 0.6734, 1.073, 1.806, 2.886, 4.323, 6.136, 8.36, 11.01");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.003862, 0.00605, 0.01373, 0.0284, 0.05125, 0.08332, 0.1255, 0.1787, 0.2436, 0.3209");
          values("0.8966, 0.9662, 1.133, 1.351, 1.623, 1.963, 2.391, 2.922, 3.567, 4.335",\
                 "0.9166, 0.9864, 1.153, 1.371, 1.643, 1.984, 2.411, 2.942, 3.587, 4.355",\
                 "0.9857, 1.055, 1.222, 1.44, 1.712, 2.053, 2.481, 3.011, 3.656, 4.424",\
                 "1.061, 1.131, 1.297, 1.516, 1.788, 2.128, 2.556, 3.087, 3.732, 4.5",\
                 "1.11, 1.179, 1.346, 1.564, 1.836, 2.177, 2.605, 3.136, 3.781, 4.549",\
                 "1.13, 1.2, 1.367, 1.585, 1.857, 2.198, 2.626, 3.156, 3.802, 4.57",\
                 "1.122, 1.192, 1.359, 1.577, 1.849, 2.19, 2.618, 3.148, 3.793, 4.562",\
                 "1.081, 1.151, 1.318, 1.537, 1.809, 2.15, 2.578, 3.109, 3.754, 4.522",\
                 "1.002, 1.073, 1.241, 1.46, 1.732, 2.074, 2.501, 3.032, 3.677, 4.445",\
                 "0.8835, 0.9542, 1.123, 1.343, 1.616, 1.957, 2.386, 2.916, 3.561, 4.329");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.003862, 0.00605, 0.01373, 0.0284, 0.05125, 0.08332, 0.1255, 0.1787, 0.2436, 0.3209");
          values("0.9009, 0.9631, 1.143, 1.448, 1.909, 2.553, 3.399, 4.467, 5.768, 7.318",\
                 "0.925, 0.9871, 1.167, 1.472, 1.933, 2.577, 3.423, 4.491, 5.792, 7.34",\
                 "1.021, 1.083, 1.263, 1.568, 2.029, 2.673, 3.52, 4.587, 5.886, 7.438",\
                 "1.197, 1.259, 1.439, 1.744, 2.205, 2.849, 3.695, 4.762, 6.062, 7.614",\
                 "1.412, 1.474, 1.655, 1.959, 2.42, 3.064, 3.912, 4.977, 6.276, 7.828",\
                 "1.661, 1.723, 1.904, 2.208, 2.669, 3.314, 4.16, 5.224, 6.529, 8.078",\
                 "1.952, 2.015, 2.195, 2.5, 2.961, 3.605, 4.451, 5.517, 6.816, 8.37",\
                 "2.289, 2.352, 2.533, 2.837, 3.298, 3.942, 4.788, 5.853, 7.154, 8.704",\
                 "2.672, 2.735, 2.916, 3.221, 3.683, 4.327, 5.174, 6.238, 7.536, 9.086",\
                 "3.101, 3.165, 3.347, 3.652, 4.114, 4.758, 5.604, 6.669, 7.968, 9.516");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.003862, 0.00605, 0.01373, 0.0284, 0.05125, 0.08332, 0.1255, 0.1787, 0.2436, 0.3209");
          values("0.2545, 0.303, 0.4254, 0.6386, 0.9674, 1.446, 2.105, 2.956, 4.012, 5.276",\
                 "0.2547, 0.3023, 0.4264, 0.6382, 0.9694, 1.446, 2.104, 2.955, 4.013, 5.277",\
                 "0.2554, 0.303, 0.4256, 0.6384, 0.9676, 1.447, 2.105, 2.957, 4.012, 5.275",\
                 "0.2552, 0.3026, 0.4258, 0.6382, 0.9682, 1.447, 2.105, 2.958, 4.009, 5.276",\
                 "0.2546, 0.303, 0.4264, 0.6388, 0.9682, 1.446, 2.105, 2.958, 4.015, 5.281",\
                 "0.255, 0.3032, 0.4264, 0.6386, 0.9678, 1.446, 2.104, 2.959, 4.013, 5.279",\
                 "0.2564, 0.3034, 0.4266, 0.6392, 0.9698, 1.446, 2.104, 2.954, 4.011, 5.278",\
                 "0.2568, 0.3054, 0.428, 0.6402, 0.9682, 1.447, 2.106, 2.957, 4.008, 5.27",\
                 "0.2588, 0.3074, 0.4298, 0.6416, 0.9702, 1.448, 2.104, 2.955, 4.008, 5.27",\
                 "0.261, 0.3098, 0.4318, 0.643, 0.9706, 1.449, 2.105, 2.957, 4.01, 5.27");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.003862, 0.00605, 0.01373, 0.0284, 0.05125, 0.08332, 0.1255, 0.1787, 0.2436, 0.3209");
          values("0.2076, 0.2779, 0.517, 0.9958, 1.77, 2.872, 4.322, 6.145, 8.372, 11.04",\
                 "0.2077, 0.2777, 0.517, 0.9958, 1.77, 2.872, 4.322, 6.146, 8.375, 11.04",\
                 "0.2078, 0.2778, 0.5172, 0.9946, 1.771, 2.872, 4.32, 6.144, 8.375, 11.03",\
                 "0.2084, 0.277, 0.5172, 0.996, 1.771, 2.871, 4.321, 6.142, 8.372, 11.03",\
                 "0.209, 0.278, 0.517, 0.9966, 1.772, 2.872, 4.318, 6.147, 8.38, 11.03",\
                 "0.2094, 0.2792, 0.5174, 0.996, 1.772, 2.871, 4.322, 6.152, 8.376, 11.04",\
                 "0.21, 0.2802, 0.5176, 0.9954, 1.77, 2.865, 4.315, 6.144, 8.378, 11.03",\
                 "0.2116, 0.2812, 0.5194, 0.9968, 1.771, 2.866, 4.31, 6.139, 8.366, 11.02",\
                 "0.2142, 0.2834, 0.5202, 0.9958, 1.772, 2.868, 4.313, 6.128, 8.348, 11",\
                 "0.2178, 0.2866, 0.5226, 0.998, 1.772, 2.872, 4.31, 6.136, 8.348, 11.01");
        }
      }
    }
  }

