/*
 * 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_3) {
    area : 50.489600 ;

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

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

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

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

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

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

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

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

      internal_power() {
        when : "!I" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          values("0.4387, 0.4408, 0.4657, 0.5351, 0.662, 0.8568, 1.125, 1.471, 1.899, \
                  2.413");
        }

        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.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          values("0.2943, 0.2954, 0.3133, 0.3599, 0.44, 0.5572, 0.7302, 0.9656, \
                  1.265, 1.629");
        }

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

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

      internal_power() {
        when : "!EN" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          values("0.2283, 0.2288, 0.2419, 0.2804, 0.3484, 0.4505, 0.5901, 0.7692, \
                  0.99, 1.255");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          values("0.07798, 0.07871, 0.08847, 0.1177, 0.1751, 0.2636, 0.3855, 0.5426, \
                  0.7367, 0.9706");
        }
      }
    }

    pin(ZN) {
      capacitance : 0.00598 ;
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 0.6847 ;
      max_transition : 2.6 ;
      min_capacitance : 0.00698 ;
      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.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.00698, 0.01166, 0.02808, 0.05944, 0.1083, 0.1768, 0.267, 0.3807, 0.5194, 0.6847");
          values("0.4689, 0.4659, 0.4618, 0.4591, 0.4577, 0.4568, 0.4559, 0.4554, 0.455, 0.4547",\
                 "0.4718, 0.4687, 0.4646, 0.4623, 0.4607, 0.4599, 0.4591, 0.4584, 0.458, 0.4578",\
                 "0.4946, 0.4917, 0.489, 0.487, 0.4859, 0.4854, 0.4848, 0.4845, 0.4842, 0.4839",\
                 "0.5463, 0.5451, 0.5438, 0.5432, 0.5431, 0.5433, 0.5431, 0.5429, 0.543, 0.5429",\
                 "0.6418, 0.6419, 0.6417, 0.6418, 0.6416, 0.6417, 0.6417, 0.6417, 0.6418, 0.6418",\
                 "0.7815, 0.782, 0.7818, 0.7816, 0.782, 0.7821, 0.782, 0.7821, 0.7821, 0.782",\
                 "0.9679, 0.967, 0.968, 0.9672, 0.9673, 0.9676, 0.9678, 0.9677, 0.9677, 0.9677",\
                 "1.2, 1.2, 1.2, 1.199, 1.199, 1.199, 1.199, 1.2, 1.2, 1.2",\
                 "1.481, 1.481, 1.481, 1.48, 1.48, 1.481, 1.48, 1.481, 1.481, 1.481",\
                 "1.814, 1.814, 1.814, 1.813, 1.813, 1.814, 1.814, 1.814, 1.813, 1.813");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.00698, 0.01166, 0.02808, 0.05944, 0.1083, 0.1768, 0.267, 0.3807, 0.5194, 0.6847");
          values("0.3168, 0.3163, 0.3152, 0.3154, 0.3165, 0.3175, 0.3189, 0.3229, 0.3276, 0.3348",\
                 "0.318, 0.3169, 0.317, 0.3167, 0.3174, 0.3176, 0.3194, 0.3234, 0.3303, 0.3332",\
                 "0.3367, 0.3359, 0.3345, 0.3355, 0.3361, 0.3364, 0.3387, 0.3421, 0.3496, 0.353",\
                 "0.3938, 0.3941, 0.3952, 0.3953, 0.3961, 0.3963, 0.3986, 0.4026, 0.4051, 0.4135",\
                 "0.5075, 0.5076, 0.5063, 0.5104, 0.5103, 0.5096, 0.5125, 0.5121, 0.5228, 0.5262",\
                 "0.6809, 0.681, 0.6809, 0.6801, 0.685, 0.6851, 0.6852, 0.6892, 0.6961, 0.7028",\
                 "0.9203, 0.9205, 0.9212, 0.9193, 0.9201, 0.9271, 0.9277, 0.9273, 0.9293, 0.9376",\
                 "1.229, 1.229, 1.23, 1.23, 1.228, 1.23, 1.24, 1.241, 1.243, 1.245",\
                 "1.611, 1.612, 1.612, 1.614, 1.614, 1.612, 1.616, 1.626, 1.632, 1.632",\
                 "2.071, 2.071, 2.072, 2.073, 2.073, 2.071, 2.072, 2.077, 2.092, 2.097");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.00698, 0.01166, 0.02808, 0.05944, 0.1083, 0.1768, 0.267, 0.3807, 0.5194, 0.6847");
          values("0.8238, 0.8134, 0.796, 0.7846, 0.7775, 0.7743, 0.7718, 0.7704, 0.7687, 0.7677",\
                 "0.8246, 0.814, 0.7964, 0.785, 0.7779, 0.7746, 0.7721, 0.7698, 0.7686, 0.768",\
                 "0.836, 0.8252, 0.8077, 0.7958, 0.7897, 0.7856, 0.7838, 0.7812, 0.7801, 0.7792",\
                 "0.8753, 0.8646, 0.8467, 0.8349, 0.828, 0.8239, 0.8211, 0.8197, 0.8181, 0.8171",\
                 "0.95, 0.9387, 0.9193, 0.906, 0.8989, 0.8945, 0.8921, 0.8897, 0.8883, 0.8873",\
                 "1.063, 1.051, 1.03, 1.016, 1.008, 1.003, 1, 0.998, 0.996, 0.9951",\
                 "1.217, 1.204, 1.181, 1.165, 1.156, 1.15, 1.147, 1.145, 1.143, 1.142",\
                 "1.414, 1.401, 1.376, 1.357, 1.346, 1.34, 1.336, 1.333, 1.331, 1.33",\
                 "1.653, 1.64, 1.612, 1.592, 1.579, 1.572, 1.567, 1.564, 1.562, 1.561",\
                 "1.938, 1.924, 1.893, 1.871, 1.856, 1.847, 1.842, 1.838, 1.836, 1.834");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.00698, 0.01166, 0.02808, 0.05944, 0.1083, 0.1768, 0.267, 0.3807, 0.5194, 0.6847");
          values("0.6899, 0.6843, 0.6774, 0.6767, 0.6797, 0.6842, 0.6881, 0.6949, 0.7023, 0.7074",\
                 "0.6901, 0.6846, 0.6778, 0.6769, 0.6804, 0.6848, 0.6887, 0.6943, 0.7018, 0.7074",\
                 "0.7042, 0.6989, 0.6927, 0.6913, 0.6946, 0.6974, 0.7013, 0.7075, 0.7122, 0.7211",\
                 "0.7497, 0.744, 0.7368, 0.7356, 0.7382, 0.7403, 0.7453, 0.751, 0.7612, 0.7651",\
                 "0.834, 0.8278, 0.8192, 0.817, 0.8185, 0.8212, 0.8262, 0.8318, 0.8354, 0.8438",\
                 "0.9614, 0.9543, 0.9459, 0.9415, 0.941, 0.9433, 0.9477, 0.9539, 0.9619, 0.9675",\
                 "1.134, 1.127, 1.116, 1.108, 1.11, 1.108, 1.11, 1.114, 1.122, 1.13",\
                 "1.355, 1.346, 1.33, 1.319, 1.318, 1.323, 1.323, 1.321, 1.329, 1.336",\
                 "1.623, 1.614, 1.599, 1.584, 1.578, 1.578, 1.586, 1.586, 1.591, 1.59",\
                 "1.941, 1.933, 1.913, 1.898, 1.891, 1.884, 1.889, 1.9, 1.9, 1.902");
        }
      }

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

        cell_fall(tmg_ntin_10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          values("0.1315, 0.1355, 0.1523, 0.1903, 0.2466, 0.3169, 0.3988, 0.4916, \
                  0.5949, 0.7102");
        }

        cell_rise(tmg_ntin_10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          values("0.1486, 0.1526, 0.172, 0.2089, 0.2603, 0.3229, 0.3966, 0.481, \
                  0.5784, 0.6872");
        }

        fall_transition(tmg_ntin_10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          values("0, 0, 0, 0, 0, 0, 0, 0, 0, 0");
        }

        rise_transition(tmg_ntin_10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.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.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.00698, 0.01166, 0.02808, 0.05944, 0.1083, 0.1768, 0.267, 0.3807, 0.5194, 0.6847");
          values("0.08936, 0.1039, 0.1423, 0.1995, 0.2745, 0.3706, 0.4929, 0.6455, 0.8314, 1.053",\
                 "0.09287, 0.1073, 0.1456, 0.2028, 0.2778, 0.3739, 0.4962, 0.6488, 0.8348, 1.056",\
                 "0.1062, 0.1205, 0.1586, 0.2157, 0.2907, 0.3868, 0.5091, 0.6616, 0.8476, 1.069",\
                 "0.1227, 0.1381, 0.1778, 0.2351, 0.31, 0.4062, 0.5285, 0.6811, 0.8671, 1.089",\
                 "0.1315, 0.1483, 0.1901, 0.2481, 0.3229, 0.4189, 0.5411, 0.6937, 0.8796, 1.101",\
                 "0.1303, 0.1479, 0.1904, 0.2482, 0.3227, 0.4188, 0.5408, 0.6932, 0.8792, 1.101",\
                 "0.1193, 0.1378, 0.1809, 0.2387, 0.313, 0.4086, 0.5304, 0.6828, 0.8685, 1.09",\
                 "0.09727, 0.1162, 0.1602, 0.2185, 0.2928, 0.3883, 0.5102, 0.6625, 0.8482, 1.069",\
                 "0.0636, 0.0833, 0.1286, 0.1872, 0.2618, 0.3572, 0.4791, 0.6314, 0.8172, 1.038",\
                 "0.0173, 0.0387, 0.0849, 0.1441, 0.2189, 0.3144, 0.4363, 0.5887, 0.7745, 0.9959");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.00698, 0.01166, 0.02808, 0.05944, 0.1083, 0.1768, 0.267, 0.3807, 0.5194, 0.6847");
          values("0.0861, 0.1023, 0.1465, 0.2183, 0.3255, 0.4751, 0.6721, 0.9197, 1.223, 1.585",\
                 "0.08894, 0.1051, 0.1494, 0.2212, 0.3283, 0.4779, 0.675, 0.9231, 1.226, 1.587",\
                 "0.09904, 0.1156, 0.1601, 0.232, 0.3392, 0.4888, 0.6853, 0.9336, 1.237, 1.598",\
                 "0.1088, 0.1272, 0.1743, 0.247, 0.3543, 0.5038, 0.7008, 0.9492, 1.252, 1.612",\
                 "0.1107, 0.1324, 0.1843, 0.259, 0.3668, 0.5165, 0.7131, 0.9617, 1.265, 1.625",\
                 "0.1014, 0.127, 0.1864, 0.2652, 0.3744, 0.5243, 0.7211, 0.9691, 1.272, 1.633",\
                 "0.08017, 0.1099, 0.178, 0.263, 0.3752, 0.5266, 0.7237, 0.9716, 1.274, 1.636",\
                 "0.04556, 0.08009, 0.1574, 0.2508, 0.3668, 0.5212, 0.7203, 0.9685, 1.271, 1.632",\
                 "-0.0037, 0.0364, 0.1236, 0.2269, 0.3477, 0.5055, 0.708, 0.9587, 1.261, 1.622",\
                 "-0.0685, -0.022, 0.0761, 0.1905, 0.3175, 0.4785, 0.6848, 0.9396, 1.245, 1.606");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.00698, 0.01166, 0.02808, 0.05944, 0.1083, 0.1768, 0.267, 0.3807, 0.5194, 0.6847");
          values("0.04573, 0.05944, 0.1015, 0.1701, 0.2689, 0.4098, 0.602, 0.8508, 1.155, 1.521",\
                 "0.04552, 0.05932, 0.1016, 0.1701, 0.2687, 0.4103, 0.6017, 0.8502, 1.154, 1.518",\
                 "0.04456, 0.05848, 0.1009, 0.17, 0.2683, 0.4095, 0.603, 0.8504, 1.155, 1.518",\
                 "0.04832, 0.062, 0.1027, 0.1698, 0.2686, 0.4096, 0.6026, 0.8505, 1.155, 1.52",\
                 "0.05308, 0.06718, 0.1068, 0.1709, 0.2676, 0.4097, 0.6024, 0.8498, 1.155, 1.52",\
                 "0.05736, 0.07056, 0.1074, 0.1705, 0.2673, 0.4077, 0.6003, 0.8487, 1.155, 1.519",\
                 "0.06142, 0.0732, 0.1085, 0.1705, 0.2667, 0.4079, 0.6001, 0.8474, 1.153, 1.52",\
                 "0.06514, 0.07684, 0.1102, 0.1712, 0.2668, 0.4072, 0.5998, 0.8476, 1.152, 1.517",\
                 "0.07, 0.0804, 0.112, 0.172, 0.2674, 0.4074, 0.5998, 0.8478, 1.152, 1.517",\
                 "0.0752, 0.0854, 0.1144, 0.1732, 0.2678, 0.4074, 0.6002, 0.8482, 1.153, 1.517");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.00698, 0.01166, 0.02808, 0.05944, 0.1083, 0.1768, 0.267, 0.3807, 0.5194, 0.6847");
          values("0.05025, 0.0678, 0.1248, 0.2354, 0.417, 0.6759, 1.017, 1.446, 1.974, 2.6",\
                 "0.05032, 0.06778, 0.125, 0.2356, 0.4164, 0.6748, 1.018, 1.448, 1.973, 2.601",\
                 "0.0516, 0.06878, 0.1252, 0.2357, 0.4173, 0.676, 1.016, 1.446, 1.973, 2.599",\
                 "0.05798, 0.07506, 0.1288, 0.237, 0.4168, 0.6749, 1.017, 1.448, 1.973, 2.601",\
                 "0.06912, 0.08644, 0.1368, 0.2403, 0.4185, 0.6761, 1.016, 1.448, 1.973, 2.601",\
                 "0.08342, 0.1007, 0.1509, 0.248, 0.4217, 0.6766, 1.016, 1.447, 1.973, 2.6",\
                 "0.09922, 0.1173, 0.1693, 0.26, 0.4293, 0.6808, 1.018, 1.446, 1.97, 2.597",\
                 "0.1185, 0.136, 0.1902, 0.2764, 0.4404, 0.6908, 1.024, 1.448, 1.972, 2.598",\
                 "0.141, 0.158, 0.2126, 0.2974, 0.4528, 0.7046, 1.037, 1.456, 1.973, 2.597",\
                 "0.1662, 0.1836, 0.237, 0.3228, 0.4688, 0.7178, 1.055, 1.475, 1.985, 2.6");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.00698, 0.01166, 0.02808, 0.05944, 0.1083, 0.1768, 0.267, 0.3807, 0.5194, 0.6847");
          values("0.1903, 0.2041, 0.2419, 0.2995, 0.3748, 0.471, 0.5932, 0.7457, 0.9315, 1.153",\
                 "0.1932, 0.207, 0.2448, 0.3024, 0.3777, 0.4739, 0.5961, 0.7486, 0.9344, 1.156",\
                 "0.2038, 0.2176, 0.2555, 0.313, 0.3883, 0.4845, 0.6067, 0.7592, 0.945, 1.167",\
                 "0.2166, 0.2304, 0.2683, 0.3257, 0.4011, 0.4973, 0.6195, 0.7719, 0.9578, 1.179",\
                 "0.2251, 0.2389, 0.2766, 0.3341, 0.4094, 0.5056, 0.6278, 0.7802, 0.9661, 1.188",\
                 "0.2267, 0.2404, 0.2782, 0.3357, 0.411, 0.5072, 0.6294, 0.7818, 0.9676, 1.189",\
                 "0.2193, 0.2331, 0.2709, 0.3282, 0.4037, 0.5, 0.6221, 0.7745, 0.9603, 1.182",\
                 "0.2027, 0.2164, 0.2542, 0.3116, 0.3871, 0.4834, 0.6055, 0.7579, 0.9437, 1.165",\
                 "0.175, 0.1888, 0.2266, 0.2839, 0.3595, 0.4558, 0.578, 0.7304, 0.9161, 1.137",\
                 "0.1361, 0.15, 0.1875, 0.2449, 0.3205, 0.4168, 0.5389, 0.6913, 0.877, 1.098");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.00698, 0.01166, 0.02808, 0.05944, 0.1083, 0.1768, 0.267, 0.3807, 0.5194, 0.6847");
          values("0.2336, 0.2487, 0.2919, 0.3636, 0.4712, 0.6212, 0.8182, 1.067, 1.369, 1.73",\
                 "0.2375, 0.2526, 0.2959, 0.3676, 0.475, 0.6251, 0.8221, 1.071, 1.373, 1.734",\
                 "0.2557, 0.2708, 0.3141, 0.3858, 0.4933, 0.6434, 0.8407, 1.089, 1.392, 1.753",\
                 "0.2939, 0.309, 0.3521, 0.4238, 0.5312, 0.6812, 0.8785, 1.126, 1.43, 1.791",\
                 "0.3482, 0.3633, 0.4064, 0.478, 0.5853, 0.7352, 0.932, 1.18, 1.484, 1.845",\
                 "0.4167, 0.4315, 0.4745, 0.5458, 0.6529, 0.8027, 0.9996, 1.248, 1.552, 1.913",\
                 "0.4973, 0.5122, 0.555, 0.6261, 0.733, 0.8825, 1.079, 1.328, 1.631, 1.992",\
                 "0.5902, 0.6052, 0.6477, 0.7188, 0.8255, 0.9749, 1.172, 1.419, 1.722, 2.083",\
                 "0.6955, 0.7106, 0.7534, 0.824, 0.9305, 1.08, 1.276, 1.524, 1.826, 2.187",\
                 "0.8136, 0.8288, 0.8714, 0.9422, 1.048, 1.197, 1.394, 1.642, 1.944, 2.305");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.00698, 0.01166, 0.02808, 0.05944, 0.1083, 0.1768, 0.267, 0.3807, 0.5194, 0.6847");
          values("0.04902, 0.06368, 0.1054, 0.174, 0.2707, 0.4105, 0.6034, 0.8512, 1.155, 1.518",\
                 "0.049, 0.0637, 0.1054, 0.174, 0.2707, 0.4105, 0.6025, 0.8511, 1.155, 1.518",\
                 "0.049, 0.06356, 0.1054, 0.1734, 0.2713, 0.4105, 0.6024, 0.8502, 1.155, 1.52",\
                 "0.04916, 0.0637, 0.1054, 0.1737, 0.271, 0.4108, 0.6028, 0.851, 1.155, 1.518",\
                 "0.04958, 0.06406, 0.1059, 0.1738, 0.2711, 0.4111, 0.6036, 0.8515, 1.155, 1.519",\
                 "0.05012, 0.0648, 0.1063, 0.1747, 0.2715, 0.4107, 0.6023, 0.8495, 1.155, 1.521",\
                 "0.0508, 0.0653, 0.107, 0.1753, 0.2719, 0.411, 0.6026, 0.849, 1.154, 1.519",\
                 "0.0518, 0.0666, 0.1078, 0.1758, 0.2726, 0.4116, 0.6032, 0.8494, 1.154, 1.518",\
                 "0.0526, 0.0672, 0.1086, 0.177, 0.2734, 0.4124, 0.6034, 0.8504, 1.154, 1.518",\
                 "0.0538, 0.0686, 0.1096, 0.1778, 0.274, 0.4126, 0.6032, 0.8504, 1.154, 1.519");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.00698, 0.01166, 0.02808, 0.05944, 0.1083, 0.1768, 0.267, 0.3807, 0.5194, 0.6847");
          values("0.05048, 0.06802, 0.1253, 0.2359, 0.4171, 0.676, 1.016, 1.447, 1.97, 2.598",\
                 "0.05054, 0.0679, 0.1253, 0.2359, 0.4173, 0.6759, 1.016, 1.447, 1.97, 2.599",\
                 "0.05032, 0.06804, 0.1255, 0.2359, 0.4164, 0.6751, 1.018, 1.448, 1.973, 2.601",\
                 "0.05034, 0.06808, 0.1253, 0.2359, 0.4174, 0.6752, 1.017, 1.446, 1.974, 2.601",\
                 "0.05078, 0.06816, 0.1255, 0.2359, 0.4169, 0.6759, 1.016, 1.446, 1.973, 2.6",\
                 "0.05074, 0.06856, 0.1259, 0.2362, 0.4166, 0.6758, 1.016, 1.448, 1.974, 2.601",\
                 "0.0516, 0.0688, 0.1264, 0.2362, 0.417, 0.676, 1.016, 1.447, 1.973, 2.6",\
                 "0.0524, 0.0696, 0.1272, 0.2368, 0.4172, 0.675, 1.016, 1.447, 1.97, 2.597",\
                 "0.0536, 0.0706, 0.1282, 0.2376, 0.4174, 0.6752, 1.016, 1.444, 1.971, 2.594",\
                 "0.0552, 0.0724, 0.129, 0.238, 0.418, 0.6754, 1.017, 1.444, 1.969, 2.594");
        }
      }
    }
  }

