/*
 * 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_mcu9t5v0__dffnq_2) {
    area : 87.494400 ;

    ff(IQ1,IQN1) {
      clocked_on : "(!CLKN)" ;
      next_state : "D" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!CLKN&!D" ;
      value : "0.000609675" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!CLKN&D" ;
      value : "0.000625735" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "CLKN&!D" ;
      value : "0.0005300955" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "CLKN&D" ;
      value : "0.000523622" ;
    }

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

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

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

    pin(CLKN) {
      capacitance : 0.004993 ;
      clock : true ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 2.8 ;
      min_period : 0.4986 ;
      min_pulse_width_high : 0.1998 ;
      min_pulse_width_low : 0.2442 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!D" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          values("0.4891, 0.4902, 0.5052, 0.5572, 0.6535, 0.7977, 0.9914, 1.237, \
                  1.536, 1.891");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          values("0.3111, 0.311, 0.323, 0.3679, 0.451, 0.5793, 0.7524, 0.9729, 1.243, \
                  1.565");
        }
      }

      internal_power() {
        when : "D" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          values("0.4905, 0.4909, 0.506, 0.5579, 0.6545, 0.7984, 0.9922, 1.237, \
                  1.536, 1.893");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          values("0.3103, 0.3105, 0.3227, 0.3674, 0.4503, 0.5782, 0.7518, 0.9719, \
                  1.243, 1.565");
        }
      }

      timing() {
        related_pin : "CLKN" ;
        sdf_cond : "ENABLE_NOT_D === 1'b1" ;
        timing_type : min_pulse_width ;
        when : "!D" ;

        fall_constraint(scalar) {
          values("0.2237");
        }

        rise_constraint(scalar) {
          values("0.1998");
        }
      }

      timing() {
        related_pin : "CLKN" ;
        sdf_cond : "ENABLE_D === 1'b1" ;
        timing_type : min_pulse_width ;
        when : "D" ;

        fall_constraint(scalar) {
          values("0.2442");
        }

        rise_constraint(scalar) {
          values("0.1998");
        }
      }

      timing() {
        related_pin : "CLKN" ;
        sdf_cond : "ENABLE_NOT_D === 1'b1" ;
        timing_type : minimum_period ;
        when : "!D" ;

        fall_constraint(scalar) {
          values("0.4601");
        }
      }

      timing() {
        related_pin : "CLKN" ;
        sdf_cond : "ENABLE_D === 1'b1" ;
        timing_type : minimum_period ;
        when : "D" ;

        fall_constraint(scalar) {
          values("0.4986");
        }
      }
    }

    pin(D) {
      capacitance : 0.003887 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 2.8 ;
      nextstate_type : data ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!CLKN" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          values("0.1066, 0.1092, 0.1264, 0.1672, 0.2355, 0.3339, 0.4644, 0.6299, \
                  0.8319, 1.074");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          values("0.005005, 0.006137, 0.01835, 0.05241, 0.1121, 0.1995, 0.3169, \
                  0.4659, 0.649, 0.8678");
        }
      }

      internal_power() {
        when : "CLKN" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          values("0.3758, 0.3775, 0.3905, 0.4296, 0.5027, 0.6116, 0.7587, 0.9453, \
                  1.173, 1.443");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          values("0.2572, 0.2581, 0.2685, 0.3014, 0.3626, 0.4564, 0.5841, 0.7479, \
                  0.949, 1.19");
        }
      }

      timing() {
        related_pin : "CLKN" ;
        timing_type : hold_falling ;

        fall_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          values("0.0229, 0.0309, 0.0463, 0.0737, 0.1118, 0.149, 0.2004, 0.2624, 0.335, 0.417",\
                 "0.0178, 0.0258, 0.0402, 0.0707, 0.107, 0.151, 0.1959, 0.2556, 0.331, 0.411",\
                 "-0.0022, 0.006, 0.018, 0.0487, 0.0839, 0.1224, 0.175, 0.2347, 0.308, 0.387",\
                 "-0.0347, -0.0302, -0.0146, 0.0138, 0.0489, 0.0863, 0.1404, 0.1966, 0.268, 0.343",\
                 "-0.078, -0.0724, -0.0612, -0.0314, -0, 0.0403, 0.0918, 0.1389, 0.208, 0.289",\
                 "-0.1302, -0.1221, -0.1122, -0.0863, -0.0536, -0.0159, 0.0287, 0.0804, 0.144, 0.212",\
                 "-0.194, -0.1893, -0.175, -0.1479, -0.1169, -0.0869, -0.0457, 0.005, 0.067, 0.14",\
                 "-0.2622, -0.2556, -0.2437, -0.2255, -0.197, -0.1636, -0.1275, -0.079, -0.023, 0.047",\
                 "-0.3404, -0.3365, -0.3252, -0.3055, -0.2804, -0.2535, -0.2134, -0.1713, -0.1163, -0.05",\
                 "-0.4311, -0.4256, -0.4169, -0.397, -0.3711, -0.3448, -0.3154, -0.2748, -0.2177, -0.158");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          values("0.0687, 0.0735, 0.0904, 0.1322, 0.1794, 0.2429, 0.3097, 0.3914, 0.476, 0.568",\
                 "0.0665, 0.0709, 0.0865, 0.1263, 0.1765, 0.2467, 0.3131, 0.3864, 0.473, 0.571",\
                 "0.0566, 0.06, 0.0808, 0.117, 0.1672, 0.2296, 0.298, 0.3794, 0.465, 0.558",\
                 "0.0532, 0.0508, 0.0708, 0.1103, 0.163, 0.2232, 0.2892, 0.3694, 0.453, 0.551",\
                 "0.0369, 0.0456, 0.0598, 0.1003, 0.1545, 0.213, 0.2845, 0.3604, 0.446, 0.543",\
                 "0.0389, 0.0405, 0.0613, 0.0963, 0.1524, 0.215, 0.2905, 0.3654, 0.45, 0.548",\
                 "0.0504, 0.052, 0.0712, 0.1051, 0.1596, 0.2234, 0.2915, 0.3724, 0.457, 0.559",\
                 "0.0736, 0.0752, 0.0901, 0.1306, 0.178, 0.2345, 0.3083, 0.3874, 0.467, 0.567",\
                 "0.1053, 0.107, 0.1248, 0.1616, 0.2091, 0.263, 0.3323, 0.4104, 0.491, 0.588",\
                 "0.1545, 0.1564, 0.1704, 0.2064, 0.2525, 0.3023, 0.3656, 0.4452, 0.524, 0.618");
        }
      }

      timing() {
        related_pin : "CLKN" ;
        timing_type : setup_falling ;

        fall_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          values("0.1317, 0.1334, 0.1081, 0.0824, 0.0369, -0.0081, -0.0718, -0.1332, -0.205, -0.2866",\
                 "0.1404, 0.1353, 0.1139, 0.0811, 0.0386, -0.0074, -0.0654, -0.125, -0.2001, -0.2801",\
                 "0.1565, 0.1559, 0.1346, 0.0991, 0.0599, 0.0102, -0.0451, -0.1084, -0.1791, -0.2608",\
                 "0.2006, 0.1921, 0.1739, 0.1379, 0.1003, 0.045, -0.0065, -0.0716, -0.1395, -0.219",\
                 "0.2537, 0.2528, 0.2353, 0.1982, 0.1545, 0.1059, 0.0507, -0.0174, -0.082, -0.1577",\
                 "0.3275, 0.3233, 0.3061, 0.2688, 0.2263, 0.1752, 0.1168, 0.0563, -0.0134, -0.0877",\
                 "0.4127, 0.4111, 0.387, 0.3562, 0.3096, 0.2614, 0.2001, 0.1381, 0.0718, -0.004",\
                 "0.5034, 0.5084, 0.4874, 0.4464, 0.3974, 0.3474, 0.2908, 0.2291, 0.1611, 0.0878",\
                 "0.606, 0.609, 0.588, 0.551, 0.505, 0.45, 0.4, 0.337, 0.264, 0.196",\
                 "0.728, 0.724, 0.707, 0.667, 0.617, 0.566, 0.51, 0.448, 0.382, 0.309");
        }

        rise_constraint(cnst_ctin_rtin_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          values("0.0973, 0.0969, 0.0787, 0.0532, 0.0099, -0.0269, -0.0589, -0.0987, -0.1483, -0.1926",\
                 "0.1039, 0.1031, 0.0831, 0.0508, 0.0178, -0.0266, -0.0589, -0.0987, -0.1432, -0.1854",\
                 "0.1197, 0.1173, 0.0987, 0.0651, 0.0296, -0.0153, -0.0519, -0.0904, -0.1264, -0.179",\
                 "0.142, 0.1364, 0.117, 0.0827, 0.0388, -0.0064, -0.0437, -0.0812, -0.1272, -0.1726",\
                 "0.1591, 0.1556, 0.1369, 0.1103, 0.0586, 0.0129, -0.0331, -0.0861, -0.1217, -0.1742",\
                 "0.177, 0.1796, 0.1581, 0.1205, 0.0735, 0.0239, -0.0287, -0.0863, -0.1444, -0.1852",\
                 "0.194, 0.1893, 0.1682, 0.133, 0.0835, 0.0287, -0.0285, -0.0933, -0.1562, -0.2083",\
                 "0.1935, 0.1946, 0.1806, 0.1389, 0.0914, 0.0328, -0.0292, -0.0869, -0.162, -0.237",\
                 "0.194, 0.189, 0.173, 0.139, 0.089, 0.028, -0.0311, -0.1059, -0.185, -0.2602",\
                 "0.178, 0.178, 0.164, 0.126, 0.076, 0.017, -0.045, -0.12, -0.202, -0.282");
        }
      }
    }

    pin(Q) {
      direction : output ;
      function : "IQ1" ;
      max_capacitance : 0.7568 ;
      max_transition : 2.8 ;
      min_capacitance : 0.001 ;
      output_voltage : default ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        related_pin : "CLKN" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.001, 0.006217, 0.02453, 0.0595, 0.114, 0.1904, 0.291, 0.4177, 0.5724, 0.7568");
          values("1.01, 0.9851, 0.9361, 0.9044, 0.8862, 0.8745, 0.8667, 0.8612, 0.8575, 0.8549",\
                 "1.009, 0.9842, 0.9352, 0.9032, 0.8854, 0.8734, 0.8654, 0.8603, 0.8565, 0.8539",\
                 "1.009, 0.9843, 0.9357, 0.9039, 0.8856, 0.8738, 0.866, 0.8606, 0.8571, 0.8544",\
                 "1.013, 0.9888, 0.9393, 0.9072, 0.8891, 0.8776, 0.8697, 0.8644, 0.8606, 0.8581",\
                 "1.025, 1.001, 0.9519, 0.9195, 0.9013, 0.8896, 0.8819, 0.8766, 0.8728, 0.8701",\
                 "1.043, 1.018, 0.9691, 0.9368, 0.9187, 0.9066, 0.8987, 0.8932, 0.8894, 0.8867",\
                 "1.067, 1.042, 0.9924, 0.9605, 0.942, 0.9296, 0.922, 0.9165, 0.9128, 0.9105",\
                 "1.095, 1.07, 1.021, 0.9883, 0.969, 0.9577, 0.9494, 0.9438, 0.9401, 0.9374",\
                 "1.129, 1.105, 1.054, 1.021, 1.002, 0.9895, 0.9816, 0.9761, 0.9721, 0.9694",\
                 "1.166, 1.141, 1.09, 1.057, 1.038, 1.025, 1.017, 1.012, 1.008, 1.005");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.001, 0.006217, 0.02453, 0.0595, 0.114, 0.1904, 0.291, 0.4177, 0.5724, 0.7568");
          values("1.099, 1.079, 1.05, 1.029, 1.013, 1.006, 1.004, 1.006, 1.007, 1.014",\
                 "1.099, 1.08, 1.05, 1.027, 1.013, 1.007, 1.003, 1.005, 1.007, 1.012",\
                 "1.101, 1.081, 1.051, 1.029, 1.015, 1.007, 1.003, 1.007, 1.009, 1.014",\
                 "1.106, 1.086, 1.056, 1.033, 1.02, 1.012, 1.011, 1.01, 1.015, 1.021",\
                 "1.115, 1.095, 1.065, 1.044, 1.029, 1.021, 1.02, 1.02, 1.027, 1.029",\
                 "1.127, 1.106, 1.077, 1.055, 1.04, 1.033, 1.029, 1.031, 1.035, 1.04",\
                 "1.143, 1.124, 1.09, 1.069, 1.058, 1.048, 1.047, 1.045, 1.053, 1.055",\
                 "1.16, 1.14, 1.111, 1.086, 1.074, 1.069, 1.065, 1.066, 1.067, 1.073",\
                 "1.179, 1.16, 1.129, 1.105, 1.091, 1.088, 1.091, 1.087, 1.089, 1.089",\
                 "1.196, 1.177, 1.146, 1.125, 1.111, 1.1, 1.104, 1.109, 1.11, 1.114");
        }
      }

      timing() {
        related_pin : "CLKN" ;
        timing_type : falling_edge ;

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.001, 0.006217, 0.02453, 0.0595, 0.114, 0.1904, 0.291, 0.4177, 0.5724, 0.7568");
          values("0.3352, 0.349, 0.3849, 0.4381, 0.5111, 0.6102, 0.7405, 0.905, 1.106, 1.346",\
                 "0.3393, 0.3532, 0.389, 0.4422, 0.5152, 0.6143, 0.7446, 0.9091, 1.11, 1.35",\
                 "0.3577, 0.3715, 0.4074, 0.4606, 0.5335, 0.6327, 0.763, 0.9275, 1.129, 1.368",\
                 "0.3961, 0.41, 0.4459, 0.4991, 0.572, 0.6712, 0.8015, 0.966, 1.167, 1.407",\
                 "0.4509, 0.4647, 0.5006, 0.5538, 0.6267, 0.7259, 0.8562, 1.021, 1.222, 1.462",\
                 "0.517, 0.5308, 0.5667, 0.62, 0.6929, 0.792, 0.9223, 1.087, 1.288, 1.528",\
                 "0.592, 0.6058, 0.6418, 0.695, 0.7679, 0.8671, 0.9973, 1.162, 1.363, 1.603",\
                 "0.676, 0.6899, 0.7257, 0.7789, 0.8518, 0.9509, 1.081, 1.246, 1.447, 1.687",\
                 "0.7683, 0.7821, 0.8182, 0.8713, 0.9442, 1.043, 1.174, 1.338, 1.539, 1.779",\
                 "0.8695, 0.8833, 0.9192, 0.9724, 1.045, 1.144, 1.275, 1.439, 1.64, 1.88");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.001, 0.006217, 0.02453, 0.0595, 0.114, 0.1904, 0.291, 0.4177, 0.5724, 0.7568");
          values("0.3686, 0.3823, 0.4216, 0.4936, 0.6074, 0.7684, 0.9811, 1.25, 1.577, 1.969",\
                 "0.3728, 0.3865, 0.4258, 0.4978, 0.6115, 0.7725, 0.9854, 1.254, 1.582, 1.974",\
                 "0.3915, 0.4052, 0.4445, 0.5166, 0.6303, 0.7914, 1.004, 1.273, 1.6, 1.992",\
                 "0.4304, 0.4442, 0.4834, 0.5554, 0.6691, 0.8302, 1.043, 1.311, 1.64, 2.03",\
                 "0.4851, 0.4988, 0.5381, 0.6101, 0.7239, 0.885, 1.097, 1.366, 1.694, 2.086",\
                 "0.551, 0.5647, 0.6041, 0.6761, 0.7898, 0.9509, 1.164, 1.432, 1.76, 2.152",\
                 "0.6263, 0.6401, 0.6791, 0.7512, 0.8648, 1.026, 1.239, 1.507, 1.836, 2.227",\
                 "0.7092, 0.723, 0.7623, 0.8343, 0.9479, 1.109, 1.322, 1.59, 1.918, 2.31",\
                 "0.7997, 0.8135, 0.8527, 0.9247, 1.038, 1.199, 1.412, 1.68, 2.008, 2.399",\
                 "0.8987, 0.9124, 0.9517, 1.024, 1.137, 1.298, 1.511, 1.779, 2.107, 2.498");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.001, 0.006217, 0.02453, 0.0595, 0.114, 0.1904, 0.291, 0.4177, 0.5724, 0.7568");
          values("0.04108, 0.05592, 0.0952, 0.1599, 0.2658, 0.4245, 0.6386, 0.91, 1.242, 1.637",\
                 "0.04114, 0.05596, 0.09528, 0.1599, 0.2658, 0.4239, 0.638, 0.9099, 1.242, 1.636",\
                 "0.04118, 0.05586, 0.09514, 0.1598, 0.2658, 0.4245, 0.6386, 0.9088, 1.242, 1.637",\
                 "0.04118, 0.05598, 0.09514, 0.1599, 0.2658, 0.4245, 0.6381, 0.9097, 1.242, 1.635",\
                 "0.04114, 0.05614, 0.0953, 0.16, 0.2658, 0.4245, 0.6384, 0.9098, 1.241, 1.637",\
                 "0.04126, 0.0559, 0.09542, 0.1598, 0.2658, 0.4238, 0.638, 0.9098, 1.242, 1.637",\
                 "0.0412, 0.0562, 0.0952, 0.1602, 0.2656, 0.4236, 0.638, 0.9088, 1.24, 1.638",\
                 "0.0414, 0.0562, 0.0956, 0.1602, 0.2656, 0.424, 0.6372, 0.9088, 1.24, 1.635",\
                 "0.0414, 0.0564, 0.0954, 0.1602, 0.2658, 0.4246, 0.6378, 0.9088, 1.24, 1.635",\
                 "0.0414, 0.0562, 0.0958, 0.1602, 0.2658, 0.424, 0.6382, 0.9096, 1.239, 1.634");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.001, 0.006217, 0.02453, 0.0595, 0.114, 0.1904, 0.291, 0.4177, 0.5724, 0.7568");
          values("0.03914, 0.05626, 0.1166, 0.2407, 0.4392, 0.7203, 1.089, 1.557, 2.123, 2.801",\
                 "0.03912, 0.0564, 0.1166, 0.2404, 0.4392, 0.72, 1.088, 1.557, 2.123, 2.805",\
                 "0.03924, 0.05646, 0.1166, 0.2404, 0.4394, 0.7197, 1.089, 1.556, 2.123, 2.805",\
                 "0.03908, 0.05636, 0.1169, 0.2404, 0.4393, 0.72, 1.088, 1.554, 2.123, 2.8",\
                 "0.03906, 0.05584, 0.1168, 0.2403, 0.4394, 0.7195, 1.089, 1.555, 2.124, 2.802",\
                 "0.03968, 0.05576, 0.1166, 0.2404, 0.4394, 0.7198, 1.089, 1.554, 2.123, 2.804",\
                 "0.039, 0.0558, 0.1166, 0.2402, 0.439, 0.7196, 1.09, 1.554, 2.126, 2.8",\
                 "0.0392, 0.056, 0.1166, 0.2402, 0.4392, 0.72, 1.09, 1.557, 2.124, 2.803",\
                 "0.0388, 0.0554, 0.1164, 0.2402, 0.4392, 0.7202, 1.088, 1.554, 2.123, 2.8",\
                 "0.0394, 0.0558, 0.1166, 0.2408, 0.4398, 0.7194, 1.09, 1.553, 2.121, 2.798");
        }
      }
    }
  }

