/*
 * 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.0001453056" ;
    }

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

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

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

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

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

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

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

      internal_power() {
        when : "!I" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          values("0.09799, 0.09655, 0.09881, 0.1074, 0.123, 0.1464, 0.1784, 0.2197, \
                 0.2727, 0.3409");
        }

        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.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          values("0.2853, 0.2838, 0.2857, 0.2964, 0.3191, 0.3566, 0.4097, 0.4804, \
                 0.5703, 0.6805");
        }

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

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

      internal_power() {
        when : "!EN" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          values("0.1235, 0.1231, 0.1229, 0.1228, 0.1229, 0.1232, 0.1232, 0.1232, \
                 0.1231, 0.1232");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          values("-0.1229, -0.1226, -0.1226, -0.1225, -0.1225, -0.1228, -0.1229, \
                 -0.1229, -0.1229, -0.1229");
        }
      }
    }

    pin(Z) {
      capacitance : 0.03161 ;
      direction : output ;
      function : "I" ;
      max_capacitance : 5.538 ;
      max_transition : 8.6 ;
      min_capacitance : 0.03261 ;
      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.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.03261, 0.07061, 0.204, 0.4587, 0.8555, 1.412, 2.145, 3.068, 4.195, 5.538");
          values("0.5968, 0.5965, 0.5964, 0.5964, 0.5964, 0.5965, 0.5963, 0.5964, 0.5966, 0.5968",\
                 "0.5971, 0.5971, 0.5968, 0.5968, 0.5968, 0.5969, 0.5967, 0.5971, 0.597, 0.5972",\
                 "0.6023, 0.6023, 0.6023, 0.6022, 0.602, 0.6021, 0.6022, 0.6023, 0.6023, 0.6024",\
                 "0.6146, 0.6145, 0.6143, 0.6141, 0.6139, 0.6139, 0.614, 0.6141, 0.6142, 0.6143",\
                 "0.6349, 0.6346, 0.6347, 0.6345, 0.6343, 0.6343, 0.6345, 0.6345, 0.6346, 0.6346",\
                 "0.6644, 0.6642, 0.6643, 0.6642, 0.6642, 0.664, 0.664, 0.6641, 0.6642, 0.6642",\
                 "0.7034, 0.7038, 0.7036, 0.7037, 0.7036, 0.7037, 0.7037, 0.7036, 0.7037, 0.7038",\
                 "0.7539, 0.7538, 0.7537, 0.7536, 0.7535, 0.7534, 0.7535, 0.7537, 0.7537, 0.7536",\
                 "0.8145, 0.8146, 0.8145, 0.8145, 0.8143, 0.8141, 0.8142, 0.8143, 0.8144, 0.8145",\
                 "0.8868, 0.8867, 0.8867, 0.8865, 0.8862, 0.8861, 0.8861, 0.8862, 0.8863, 0.8863");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.03261, 0.07061, 0.204, 0.4587, 0.8555, 1.412, 2.145, 3.068, 4.195, 5.538");
          values("0.57, 0.5711, 0.5729, 0.5709, 0.5743, 0.5818, 0.5869, 0.5984, 0.6093, 0.661",\
                 "0.5695, 0.5708, 0.5719, 0.5702, 0.5743, 0.5788, 0.5899, 0.5984, 0.6192, 0.6712",\
                 "0.5712, 0.5721, 0.5735, 0.5722, 0.5753, 0.5821, 0.5905, 0.6017, 0.6192, 0.6785",\
                 "0.5801, 0.5796, 0.5813, 0.5798, 0.5835, 0.5881, 0.5958, 0.6083, 0.6253, 0.6864",\
                 "0.5985, 0.5991, 0.602, 0.6032, 0.607, 0.6132, 0.6212, 0.6281, 0.6517, 0.7213",\
                 "0.63, 0.6302, 0.6316, 0.6319, 0.641, 0.6462, 0.6545, 0.6578, 0.6841, 0.7778",\
                 "0.6761, 0.6767, 0.6788, 0.6755, 0.6815, 0.6947, 0.7007, 0.7093, 0.7292, 0.8355",\
                 "0.738, 0.7391, 0.7397, 0.7431, 0.7393, 0.7491, 0.7684, 0.7753, 0.7836, 0.9363",\
                 "0.8169, 0.8179, 0.8195, 0.823, 0.8208, 0.8224, 0.8357, 0.8611, 0.8826, 1.095",\
                 "0.9141, 0.9153, 0.9173, 0.918, 0.9168, 0.9174, 0.9205, 0.9423, 1.012, 1.333");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.03261, 0.07061, 0.204, 0.4587, 0.8555, 1.412, 2.145, 3.068, 4.195, 5.538");
          values("0.9861, 1.004, 1.031, 1.045, 1.051, 1.054, 1.056, 1.057, 1.058, 1.058",\
                 "0.9735, 0.9911, 1.017, 1.031, 1.038, 1.041, 1.043, 1.044, 1.045, 1.045",\
                 "0.9712, 0.986, 1.01, 1.026, 1.035, 1.039, 1.041, 1.043, 1.043, 1.044",\
                 "1.006, 1.017, 1.038, 1.056, 1.066, 1.072, 1.075, 1.078, 1.079, 1.08",\
                 "1.093, 1.102, 1.121, 1.139, 1.151, 1.158, 1.164, 1.167, 1.169, 1.17",\
                 "1.243, 1.252, 1.269, 1.286, 1.299, 1.308, 1.314, 1.318, 1.321, 1.323",\
                 "1.464, 1.472, 1.488, 1.504, 1.518, 1.528, 1.534, 1.539, 1.543, 1.545",\
                 "1.762, 1.769, 1.784, 1.799, 1.812, 1.822, 1.83, 1.836, 1.84, 1.843",\
                 "2.14, 2.147, 2.16, 2.173, 2.186, 2.196, 2.204, 2.211, 2.215, 2.219",\
                 "2.602, 2.608, 2.619, 2.632, 2.643, 2.653, 2.662, 2.669, 2.674, 2.678");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.03261, 0.07061, 0.204, 0.4587, 0.8555, 1.412, 2.145, 3.068, 4.195, 5.538");
          values("0.5491, 0.5662, 0.5915, 0.6002, 0.6082, 0.6167, 0.6261, 0.6383, 0.6591, 0.7045",\
                 "0.5398, 0.5544, 0.5797, 0.5893, 0.5993, 0.6085, 0.6178, 0.6284, 0.6459, 0.6982",\
                 "0.5232, 0.5349, 0.5562, 0.5718, 0.5822, 0.5959, 0.6033, 0.6152, 0.6294, 0.6886",\
                 "0.5318, 0.5407, 0.5579, 0.5738, 0.5901, 0.6035, 0.6136, 0.6251, 0.6393, 0.7097",\
                 "0.585, 0.5928, 0.6071, 0.6262, 0.6402, 0.6553, 0.6677, 0.6812, 0.7047, 0.7738",\
                 "0.6944, 0.6997, 0.7136, 0.7259, 0.7491, 0.7623, 0.7782, 0.7868, 0.8065, 0.8922",\
                 "0.8723, 0.8785, 0.8899, 0.8988, 0.9138, 0.9438, 0.9558, 0.9683, 0.9808, 1.098",\
                 "1.126, 1.131, 1.141, 1.15, 1.162, 1.179, 1.213, 1.224, 1.237, 1.373",\
                 "1.458, 1.463, 1.47, 1.481, 1.488, 1.5, 1.522, 1.561, 1.583, 1.79",\
                 "1.871, 1.876, 1.885, 1.893, 1.902, 1.909, 1.919, 1.952, 2.022, 2.353");
        }
      }

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

        cell_fall(tmg_ntin_10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          values("0.956, 0.975, 1.041, 1.172, 1.388, 1.697, 2.066, 2.469, 2.921, \
                 3.429");
        }

        cell_rise(tmg_ntin_10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          values("0.586, 0.599, 0.67, 0.791, 0.945, 1.143, 1.382, 1.664, 1.984, \
                 2.351");
        }

        fall_transition(tmg_ntin_10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          values("0, 0, 0, 0, 0, 0, 0, 0, 0, 0");
        }

        rise_transition(tmg_ntin_10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.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.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.03261, 0.07061, 0.204, 0.4587, 0.8555, 1.412, 2.145, 3.068, 4.195, 5.538");
          values("0.3357, 0.4153, 0.596, 0.8314, 1.107, 1.428, 1.805, 2.253, 2.786, 3.414",\
                 "0.3515, 0.4309, 0.6117, 0.847, 1.123, 1.444, 1.821, 2.27, 2.801, 3.43",\
                 "0.4066, 0.4861, 0.6668, 0.902, 1.178, 1.498, 1.876, 2.324, 2.856, 3.484",\
                 "0.4925, 0.5762, 0.7611, 0.9983, 1.275, 1.596, 1.974, 2.422, 2.955, 3.583",\
                 "0.5483, 0.6446, 0.851, 1.098, 1.379, 1.702, 2.081, 2.529, 3.062, 3.69",\
                 "0.5566, 0.6584, 0.8687, 1.117, 1.399, 1.721, 2.1, 2.548, 3.081, 3.709",\
                 "0.5168, 0.6203, 0.8313, 1.081, 1.363, 1.686, 2.065, 2.513, 3.045, 3.673",\
                 "0.4338, 0.5372, 0.7508, 1.002, 1.284, 1.609, 1.987, 2.436, 2.968, 3.595",\
                 "0.3065, 0.4119, 0.6274, 0.88, 1.164, 1.489, 1.868, 2.317, 2.849, 3.476",\
                 "0.1368, 0.2419, 0.4593, 0.7137, 0.9991, 1.325, 1.705, 2.154, 2.686, 3.314");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.03261, 0.07061, 0.204, 0.4587, 0.8555, 1.412, 2.145, 3.068, 4.195, 5.538");
          values("0.3969, 0.4816, 0.6659, 0.9204, 1.276, 1.766, 2.408, 3.22, 4.206, 5.384",\
                 "0.4113, 0.4962, 0.68, 0.9347, 1.29, 1.78, 2.423, 3.232, 4.224, 5.402",\
                 "0.4609, 0.5457, 0.7296, 0.9845, 1.34, 1.83, 2.472, 3.283, 4.273, 5.451",\
                 "0.5431, 0.632, 0.819, 1.074, 1.43, 1.92, 2.563, 3.374, 4.362, 5.542",\
                 "0.6073, 0.7134, 0.9228, 1.186, 1.544, 2.033, 2.676, 3.485, 4.477, 5.655",\
                 "0.6341, 0.7574, 0.9965, 1.278, 1.641, 2.13, 2.773, 3.583, 4.572, 5.748",\
                 "0.6211, 0.7623, 1.035, 1.338, 1.709, 2.2, 2.842, 3.65, 4.638, 5.819",\
                 "0.565, 0.7245, 1.032, 1.364, 1.747, 2.24, 2.881, 3.69, 4.677, 5.854",\
                 "0.4638, 0.6412, 0.985, 1.35, 1.749, 2.248, 2.89, 3.698, 4.685, 5.861",\
                 "0.3158, 0.5102, 0.8906, 1.292, 1.714, 2.22, 2.865, 3.673, 4.66, 5.837");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.03261, 0.07061, 0.204, 0.4587, 0.8555, 1.412, 2.145, 3.068, 4.195, 5.538");
          values("0.1712, 0.2451, 0.4225, 0.6624, 0.9622, 1.352, 1.87, 2.543, 3.392, 4.419",\
                 "0.171, 0.245, 0.4225, 0.6622, 0.9623, 1.352, 1.87, 2.544, 3.392, 4.419",\
                 "0.1712, 0.2448, 0.4231, 0.6627, 0.9618, 1.353, 1.871, 2.544, 3.39, 4.419",\
                 "0.188, 0.2569, 0.429, 0.6666, 0.9632, 1.354, 1.871, 2.544, 3.393, 4.422",\
                 "0.2222, 0.3004, 0.4706, 0.6898, 0.9768, 1.363, 1.876, 2.547, 3.393, 4.42",\
                 "0.2422, 0.32, 0.4812, 0.6952, 0.979, 1.362, 1.877, 2.547, 3.39, 4.42",\
                 "0.2486, 0.324, 0.4856, 0.698, 0.9818, 1.363, 1.875, 2.544, 3.392, 4.421",\
                 "0.2516, 0.328, 0.4898, 0.7012, 0.9842, 1.366, 1.878, 2.545, 3.388, 4.417",\
                 "0.2554, 0.3318, 0.4936, 0.7066, 0.9884, 1.369, 1.88, 2.547, 3.389, 4.417",\
                 "0.259, 0.3358, 0.4982, 0.7116, 0.9924, 1.373, 1.882, 2.549, 3.392, 4.421");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.03261, 0.07061, 0.204, 0.4587, 0.8555, 1.412, 2.145, 3.068, 4.195, 5.538");
          values("0.1765, 0.2458, 0.431, 0.7784, 1.362, 2.213, 3.348, 4.781, 6.521, 8.6",\
                 "0.1765, 0.2456, 0.431, 0.779, 1.361, 2.214, 3.344, 4.776, 6.517, 8.599",\
                 "0.1765, 0.2458, 0.4309, 0.7784, 1.363, 2.212, 3.345, 4.777, 6.518, 8.6",\
                 "0.1903, 0.2543, 0.4352, 0.78, 1.363, 2.214, 3.348, 4.777, 6.522, 8.606",\
                 "0.2306, 0.3016, 0.4676, 0.7934, 1.366, 2.212, 3.345, 4.774, 6.516, 8.598",\
                 "0.2708, 0.3518, 0.5216, 0.8268, 1.376, 2.216, 3.344, 4.778, 6.52, 8.609",\
                 "0.3122, 0.4066, 0.5838, 0.8684, 1.396, 2.222, 3.349, 4.77, 6.512, 8.612",\
                 "0.3538, 0.4612, 0.6552, 0.9256, 1.422, 2.231, 3.349, 4.774, 6.517, 8.599",\
                 "0.3952, 0.5174, 0.7314, 0.9972, 1.466, 2.248, 3.355, 4.775, 6.517, 8.594",\
                 "0.4352, 0.5712, 0.8124, 1.084, 1.522, 2.277, 3.366, 4.782, 6.516, 8.592");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.03261, 0.07061, 0.204, 0.4587, 0.8555, 1.412, 2.145, 3.068, 4.195, 5.538");
          values("0.4331, 0.5149, 0.6969, 0.9302, 1.204, 1.524, 1.901, 2.348, 2.881, 3.509",\
                 "0.441, 0.523, 0.7051, 0.9386, 1.213, 1.532, 1.909, 2.357, 2.889, 3.517",\
                 "0.4892, 0.5707, 0.7529, 0.9875, 1.262, 1.582, 1.959, 2.407, 2.939, 3.567",\
                 "0.5774, 0.6603, 0.845, 1.081, 1.357, 1.677, 2.055, 2.502, 3.035, 3.663",\
                 "0.7066, 0.7912, 0.9794, 1.22, 1.498, 1.819, 2.197, 2.646, 3.178, 3.806",\
                 "0.8934, 0.9817, 1.174, 1.417, 1.699, 2.023, 2.403, 2.852, 3.385, 4.013",\
                 "1.128, 1.227, 1.437, 1.691, 1.979, 2.307, 2.69, 3.141, 3.675, 4.303",\
                 "1.403, 1.519, 1.76, 2.042, 2.348, 2.686, 3.072, 3.526, 4.062, 4.692",\
                 "1.72, 1.857, 2.138, 2.462, 2.804, 3.161, 3.559, 4.017, 4.554, 5.185",\
                 "2.084, 2.244, 2.573, 2.948, 3.338, 3.731, 4.148, 4.615, 5.155, 5.787");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.03261, 0.07061, 0.204, 0.4587, 0.8555, 1.412, 2.145, 3.068, 4.195, 5.538");
          values("0.4909, 0.5761, 0.7595, 1.014, 1.369, 1.859, 2.502, 3.314, 4.304, 5.478",\
                 "0.4958, 0.5805, 0.7639, 1.018, 1.374, 1.864, 2.508, 3.318, 4.308, 5.488",\
                 "0.5102, 0.5949, 0.7787, 1.034, 1.391, 1.881, 2.524, 3.336, 4.322, 5.502",\
                 "0.5181, 0.6038, 0.7891, 1.045, 1.402, 1.893, 2.536, 3.348, 4.337, 5.513",\
                 "0.5257, 0.6126, 0.8003, 1.059, 1.417, 1.908, 2.552, 3.363, 4.354, 5.534",\
                 "0.5322, 0.6275, 0.8234, 1.085, 1.445, 1.937, 2.581, 3.392, 4.382, 5.558",\
                 "0.5179, 0.6282, 0.8474, 1.123, 1.486, 1.979, 2.624, 3.435, 4.424, 5.601",\
                 "0.4788, 0.608, 0.8578, 1.159, 1.541, 2.036, 2.681, 3.492, 4.481, 5.659",\
                 "0.4173, 0.567, 0.853, 1.185, 1.593, 2.106, 2.754, 3.565, 4.555, 5.734",\
                 "0.3354, 0.5066, 0.8321, 1.199, 1.636, 2.177, 2.843, 3.657, 4.646, 5.825");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.03261, 0.07061, 0.204, 0.4587, 0.8555, 1.412, 2.145, 3.068, 4.195, 5.538");
          values("0.161, 0.2337, 0.4122, 0.6533, 0.955, 1.347, 1.867, 2.543, 3.392, 4.418",\
                 "0.1614, 0.234, 0.4124, 0.6535, 0.955, 1.348, 1.868, 2.542, 3.392, 4.42",\
                 "0.1629, 0.2357, 0.4135, 0.6546, 0.9552, 1.348, 1.867, 2.543, 3.391, 4.419",\
                 "0.1712, 0.2434, 0.4194, 0.6588, 0.956, 1.349, 1.868, 2.543, 3.388, 4.421",\
                 "0.1774, 0.2504, 0.4282, 0.6662, 0.9622, 1.354, 1.87, 2.543, 3.392, 4.42",\
                 "0.1898, 0.2612, 0.4358, 0.6762, 0.9738, 1.361, 1.876, 2.546, 3.39, 4.419",\
                 "0.2208, 0.2956, 0.467, 0.6994, 0.992, 1.375, 1.888, 2.555, 3.396, 4.426",\
                 "0.2638, 0.3494, 0.534, 0.7632, 1.037, 1.405, 1.908, 2.569, 3.406, 4.43",\
                 "0.3192, 0.4176, 0.6258, 0.8716, 1.132, 1.47, 1.947, 2.589, 3.417, 4.434",\
                 "0.3848, 0.4986, 0.734, 1.006, 1.278, 1.587, 2.02, 2.631, 3.437, 4.445");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07922, 0.2871, 0.6841, 1.303, 2.17, 3.312, 4.751, 6.507, 8.6");
          index_2("0.03261, 0.07061, 0.204, 0.4587, 0.8555, 1.412, 2.145, 3.068, 4.195, 5.538");
          values("0.1614, 0.2305, 0.4222, 0.7742, 1.361, 2.214, 3.348, 4.781, 6.53, 8.601",\
                 "0.1614, 0.231, 0.4225, 0.7742, 1.361, 2.212, 3.347, 4.776, 6.526, 8.613",\
                 "0.1643, 0.2343, 0.4241, 0.775, 1.362, 2.214, 3.348, 4.781, 6.518, 8.597",\
                 "0.1696, 0.238, 0.425, 0.7756, 1.36, 2.212, 3.347, 4.779, 6.53, 8.606",\
                 "0.1744, 0.2444, 0.4312, 0.7802, 1.364, 2.213, 3.349, 4.775, 6.527, 8.6",\
                 "0.1972, 0.2654, 0.4452, 0.787, 1.367, 2.215, 3.347, 4.778, 6.525, 8.604",\
                 "0.2342, 0.308, 0.4848, 0.8124, 1.374, 2.218, 3.349, 4.774, 6.52, 8.594",\
                 "0.2802, 0.3626, 0.5436, 0.871, 1.412, 2.231, 3.353, 4.778, 6.518, 8.594",\
                 "0.3312, 0.4236, 0.6134, 0.943, 1.483, 2.276, 3.364, 4.778, 6.515, 8.594",\
                 "0.3862, 0.4894, 0.6912, 1.027, 1.575, 2.363, 3.418, 4.793, 6.521, 8.593");
        }
      }
    }
  }

