/*
 * 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__nand2_4) {
    area : 35.123200 ;

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!A1&!A2" ;
      value : "0.00044715" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!A1&A2" ;
      value : "0.00046371" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "A1&!A2" ;
      value : "0.00051327" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "A1&A2" ;
      value : "0.00048168" ;
    }

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

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

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

    pin(A1) {
      capacitance : 0.01907 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 15.6 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!A2" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          values("0.05678, 0.05658, 0.05637, 0.05623, 0.05628, 0.05628, 0.05629, \
                  0.05626, 0.05628, 0.05627");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          values("-0.03771, -0.03768, -0.03765, -0.0376, -0.0378, -0.03787, -0.03799, \
                  -0.03806, -0.03832, -0.03888");
        }
      }
    }

    pin(A2) {
      capacitance : 0.01935 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 15.6 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!A1" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          values("0.0566, 0.05162, 0.04981, 0.04954, 0.04955, 0.04948, 0.04952, \
                  0.04949, 0.04945, 0.04944");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          values("-0.04969, -0.04961, -0.04947, -0.04941, -0.04946, -0.04942, -0.04943, \
                  -0.0494, -0.04939, -0.04942");
        }
      }
    }

    pin(ZN) {
      direction : output ;
      function : "((!A1)|(!A2))" ;
      max_capacitance : 1.274 ;
      max_transition : 15.6 ;
      min_capacitance : 0.001 ;
      output_voltage : default ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        related_pin : "A1" ;
        when : "A2" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.009787, 0.04063, 0.09953, 0.1913, 0.32, 0.4895, 0.7029, 0.9635, 1.274");
          values("0.01117, 0.01163, 0.01209, 0.01227, 0.01235, 0.01239, 0.01241, 0.01244, 0.01243, 0.01216",\
                 "0.007642, 0.008851, 0.01054, 0.01147, 0.01193, 0.01214, 0.01228, 0.01234, 0.01239, 0.0121",\
                 "0.007807, 0.008278, 0.00964, 0.01068, 0.01142, 0.01182, 0.01201, 0.01214, 0.01215, 0.01202",\
                 "0.02196, 0.01996, 0.01686, 0.015, 0.01406, 0.01353, 0.01319, 0.01299, 0.01283, 0.01241",\
                 "0.05285, 0.04779, 0.03799, 0.02988, 0.0245, 0.02106, 0.01869, 0.01707, 0.01593, 0.01477",\
                 "0.1015, 0.09369, 0.07627, 0.05973, 0.04708, 0.03828, 0.03191, 0.02733, 0.02399, 0.02104",\
                 "0.1688, 0.1586, 0.1338, 0.1075, 0.08567, 0.06894, 0.05633, 0.04699, 0.03973, 0.03363",\
                 "0.2556, 0.2434, 0.212, 0.1754, 0.1427, 0.1163, 0.09538, 0.07908, 0.0663, 0.05502",\
                 "0.3631, 0.3493, 0.312, 0.2652, 0.2209, 0.1831, 0.1518, 0.1271, 0.106, 0.08787",\
                 "0.4923, 0.477, 0.4344, 0.3783, 0.3217, 0.2716, 0.2287, 0.1929, 0.1611, 0.133");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.009787, 0.04063, 0.09953, 0.1913, 0.32, 0.4895, 0.7029, 0.9635, 1.274");
          values("0.1569, 0.1586, 0.16, 0.1609, 0.1623, 0.1633, 0.1649, 0.1698, 0.2353, 0.5635",\
                 "0.1513, 0.1541, 0.1582, 0.1615, 0.1628, 0.1639, 0.1658, 0.1762, 0.2378, 0.5822",\
                 "0.1531, 0.1535, 0.1555, 0.1584, 0.1614, 0.1645, 0.1676, 0.1727, 0.2449, 0.6097",\
                 "0.1721, 0.1689, 0.165, 0.1631, 0.1634, 0.1651, 0.1676, 0.1757, 0.2648, 0.6661",\
                 "0.2085, 0.2027, 0.191, 0.1821, 0.1755, 0.1729, 0.1727, 0.1827, 0.2944, 0.7647",\
                 "0.2638, 0.2554, 0.2361, 0.2178, 0.2044, 0.1939, 0.1892, 0.2028, 0.3541, 0.9431",\
                 "0.3388, 0.3283, 0.3027, 0.2741, 0.2504, 0.2325, 0.2204, 0.2444, 0.4778, 1.252",\
                 "0.4353, 0.4227, 0.3912, 0.3532, 0.3176, 0.2904, 0.273, 0.3334, 0.7332, 1.738",\
                 "0.5541, 0.5399, 0.5024, 0.4557, 0.4084, 0.3695, 0.361, 0.5442, 1.243, 2.436",\
                 "0.6971, 0.6813, 0.6384, 0.5821, 0.5249, 0.4776, 0.5631, 1.097, 2.072, 3.083");
        }
      }

      internal_power() {
        related_pin : "A2" ;
        when : "A1" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.009787, 0.04063, 0.09953, 0.1913, 0.32, 0.4895, 0.7029, 0.9635, 1.274");
          values("0.01136, 0.01173, 0.01211, 0.0123, 0.01236, 0.01239, 0.01242, 0.01244, 0.0124, 0.01217",\
                 "0.007513, 0.008872, 0.01066, 0.01154, 0.01192, 0.01212, 0.01226, 0.01232, 0.0123, 0.01208",\
                 "0.004744, 0.00603, 0.008426, 0.01009, 0.01097, 0.0115, 0.01181, 0.01203, 0.01209, 0.01186",\
                 "0.01537, 0.01441, 0.01331, 0.01294, 0.01282, 0.01274, 0.01267, 0.01262, 0.01255, 0.01221",\
                 "0.04399, 0.04007, 0.03263, 0.02661, 0.02255, 0.01978, 0.01792, 0.01657, 0.01556, 0.0145",\
                 "0.09232, 0.08538, 0.07003, 0.05569, 0.04483, 0.03695, 0.03124, 0.02701, 0.02387, 0.02104",\
                 "0.161, 0.1513, 0.128, 0.1034, 0.08352, 0.06802, 0.05627, 0.04724, 0.04037, 0.03439",\
                 "0.2504, 0.2384, 0.2078, 0.1726, 0.1415, 0.1164, 0.09642, 0.08078, 0.06819, 0.05727",\
                 "0.3612, 0.3476, 0.3106, 0.2648, 0.2214, 0.185, 0.155, 0.1304, 0.1102, 0.09237",\
                 "0.4946, 0.4793, 0.4368, 0.3813, 0.3252, 0.2757, 0.2341, 0.1992, 0.1687, 0.1416");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.009787, 0.04063, 0.09953, 0.1913, 0.32, 0.4895, 0.7029, 0.9635, 1.274");
          values("0.2068, 0.207, 0.2076, 0.2083, 0.2092, 0.2108, 0.2127, 0.2204, 0.2871, 0.6208",\
                 "0.2015, 0.2025, 0.204, 0.2053, 0.2069, 0.2081, 0.2103, 0.2184, 0.286, 0.6255",\
                 "0.2033, 0.203, 0.2033, 0.2041, 0.2058, 0.2081, 0.2103, 0.2177, 0.2925, 0.6519",\
                 "0.2217, 0.2189, 0.2142, 0.2106, 0.2093, 0.2107, 0.2118, 0.221, 0.3078, 0.7094",\
                 "0.2589, 0.2538, 0.2422, 0.2317, 0.2244, 0.2206, 0.2202, 0.2292, 0.3387, 0.8144",\
                 "0.3158, 0.3086, 0.2901, 0.2704, 0.2549, 0.244, 0.2373, 0.25, 0.4033, 0.999",\
                 "0.3936, 0.3848, 0.3605, 0.3307, 0.3053, 0.2848, 0.2714, 0.2955, 0.5334, 1.309",\
                 "0.4936, 0.4832, 0.4543, 0.4159, 0.3772, 0.3468, 0.3267, 0.3883, 0.7935, 1.806",\
                 "0.6171, 0.6055, 0.5722, 0.5256, 0.4757, 0.4321, 0.4204, 0.6058, 1.312, 2.503",\
                 "0.7653, 0.7525, 0.7153, 0.6621, 0.6013, 0.5498, 0.6352, 1.173, 2.144, 3.137");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.009787, 0.04063, 0.09953, 0.1913, 0.32, 0.4895, 0.7029, 0.9635, 1.274");
          values("0.1317, 0.1808, 0.3509, 0.6756, 1.18, 1.888, 2.818, 3.991, 5.425, 7.13",\
                 "0.1525, 0.2025, 0.3741, 0.6989, 1.204, 1.912, 2.845, 4.016, 5.45, 7.158",\
                 "0.2071, 0.2757, 0.4633, 0.7882, 1.294, 2.002, 2.933, 4.109, 5.54, 7.248",\
                 "0.2358, 0.3303, 0.5911, 0.9649, 1.469, 2.176, 3.108, 4.282, 5.713, 7.421",\
                 "0.2341, 0.3562, 0.686, 1.162, 1.745, 2.455, 3.383, 4.553, 5.987, 7.694",\
                 "0.1977, 0.3475, 0.7483, 1.32, 2.027, 2.839, 3.776, 4.944, 6.371, 8.079",\
                 "0.1233, 0.2981, 0.7734, 1.443, 2.264, 3.217, 4.278, 5.465, 6.887, 8.589",\
                 "0.006, 0.2102, 0.7576, 1.527, 2.463, 3.547, 4.763, 6.091, 7.545, 9.242",\
                 "-0.1565, 0.0776, 0.6964, 1.569, 2.618, 3.831, 5.196, 6.692, 8.304, 10.05",\
                 "-0.3677, -0.106, 0.5867, 1.56, 2.733, 4.072, 5.58, 7.237, 9.029, 10.94");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.009787, 0.04063, 0.09953, 0.1913, 0.32, 0.4895, 0.7029, 0.9635, 1.274");
          values("0.1453, 0.2064, 0.4159, 0.8126, 1.429, 2.296, 3.434, 4.868, 6.622, 8.702",\
                 "0.1743, 0.237, 0.4504, 0.8499, 1.468, 2.334, 3.473, 4.908, 6.66, 8.753",\
                 "0.2869, 0.3613, 0.5755, 0.9751, 1.595, 2.461, 3.603, 5.04, 6.785, 8.883",\
                 "0.4347, 0.5373, 0.8187, 1.228, 1.844, 2.712, 3.854, 5.291, 7.034, 9.132",\
                 "0.6195, 0.7483, 1.104, 1.615, 2.246, 3.107, 4.245, 5.68, 7.428, 9.524",\
                 "0.8416, 1.001, 1.427, 2.045, 2.798, 3.675, 4.803, 6.234, 7.982, 10.07",\
                 "1.104, 1.294, 1.796, 2.512, 3.4, 4.41, 5.555, 6.977, 8.717, 10.8",\
                 "1.407, 1.628, 2.214, 3.029, 4.037, 5.204, 6.49, 7.924, 9.655, 11.73",\
                 "1.755, 2.009, 2.679, 3.599, 4.722, 6.034, 7.496, 9.069, 10.82, 12.88",\
                 "2.15, 2.436, 3.19, 4.225, 5.464, 6.909, 8.536, 10.31, 12.19, 14.26");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.009787, 0.04063, 0.09953, 0.1913, 0.32, 0.4895, 0.7029, 0.9635, 1.274");
          values("0.1528, 0.2366, 0.5287, 1.087, 1.953, 3.171, 4.766, 6.782, 9.247, 12.17",\
                 "0.1527, 0.2362, 0.5288, 1.086, 1.953, 3.17, 4.773, 6.778, 9.239, 12.17",\
                 "0.2244, 0.3017, 0.5396, 1.085, 1.952, 3.168, 4.768, 6.789, 9.235, 12.17",\
                 "0.3323, 0.4301, 0.7114, 1.15, 1.952, 3.167, 4.766, 6.79, 9.248, 12.18",\
                 "0.474, 0.594, 0.9262, 1.436, 2.108, 3.186, 4.767, 6.783, 9.25, 12.19",\
                 "0.6364, 0.786, 1.176, 1.765, 2.522, 3.455, 4.831, 6.784, 9.247, 12.18",\
                 "0.8192, 1.002, 1.465, 2.123, 2.987, 4.009, 5.227, 6.93, 9.251, 12.18",\
                 "1.022, 1.235, 1.786, 2.53, 3.472, 4.619, 5.932, 7.463, 9.514, 12.21",\
                 "1.249, 1.494, 2.127, 2.978, 4.017, 5.255, 6.704, 8.324, 10.19, 12.6",\
                 "1.492, 1.781, 2.497, 3.462, 4.604, 5.93, 7.506, 9.274, 11.22, 13.44");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.009787, 0.04063, 0.09953, 0.1913, 0.32, 0.4895, 0.7029, 0.9635, 1.274");
          values("0.1848, 0.2896, 0.6541, 1.353, 2.442, 3.966, 5.98, 8.505, 11.6, 15.32",\
                 "0.1848, 0.2891, 0.6546, 1.354, 2.44, 3.967, 5.976, 8.521, 11.59, 15.31",\
                 "0.2527, 0.3317, 0.6557, 1.353, 2.442, 3.977, 5.991, 8.501, 11.62, 15.29",\
                 "0.3668, 0.479, 0.7806, 1.363, 2.443, 3.972, 5.987, 8.525, 11.61, 15.31",\
                 "0.5052, 0.6386, 1.025, 1.576, 2.474, 3.97, 5.981, 8.522, 11.61, 15.3",\
                 "0.6698, 0.8266, 1.272, 1.949, 2.774, 4.035, 5.979, 8.514, 11.61, 15.31",\
                 "0.8502, 1.043, 1.548, 2.323, 3.289, 4.416, 6.09, 8.519, 11.6, 15.29",\
                 "1.048, 1.276, 1.866, 2.714, 3.82, 5.081, 6.556, 8.694, 11.62, 15.29",\
                 "1.266, 1.529, 2.202, 3.143, 4.354, 5.792, 7.35, 9.24, 11.84, 15.32",\
                 "1.502, 1.8, 2.572, 3.604, 4.914, 6.5, 8.27, 10.16, 12.49, 15.63");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.009787, 0.04063, 0.09953, 0.1913, 0.32, 0.4895, 0.7029, 0.9635, 1.274");
          values("0.1562, 0.2052, 0.3754, 0.6996, 1.204, 1.912, 2.844, 4.017, 5.451, 7.159",\
                 "0.1775, 0.2274, 0.399, 0.7243, 1.228, 1.937, 2.869, 4.044, 5.472, 7.183",\
                 "0.2133, 0.2743, 0.4582, 0.7842, 1.29, 1.998, 2.931, 4.105, 5.539, 7.24",\
                 "0.2257, 0.307, 0.5358, 0.8958, 1.403, 2.112, 3.043, 4.217, 5.65, 7.36",\
                 "0.1996, 0.3068, 0.594, 1.016, 1.576, 2.292, 3.223, 4.393, 5.825, 7.535",\
                 "0.1306, 0.2634, 0.6177, 1.117, 1.749, 2.532, 3.479, 4.65, 6.078, 7.784",\
                 "0.0169, 0.1739, 0.5956, 1.184, 1.902, 2.765, 3.788, 4.988, 6.416, 8.121",\
                 "-0.1498, 0.0336, 0.5209, 1.204, 2.023, 2.977, 4.088, 5.374, 6.843, 8.545",\
                 "-0.3718, -0.1611, 0.3942, 1.172, 2.099, 3.158, 4.365, 5.743, 7.306, 9.066",\
                 "-0.6525, -0.4159, 0.2085, 1.081, 2.122, 3.298, 4.613, 6.091, 7.753, 9.611");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.009787, 0.04063, 0.09953, 0.1913, 0.32, 0.4895, 0.7029, 0.9635, 1.274");
          values("0.197, 0.2581, 0.4679, 0.8652, 1.482, 2.347, 3.484, 4.918, 6.667, 8.751",\
                 "0.2264, 0.2883, 0.4997, 0.8979, 1.515, 2.38, 3.518, 4.952, 6.701, 8.788",\
                 "0.3538, 0.4179, 0.6282, 1.026, 1.644, 2.508, 3.647, 5.079, 6.829, 8.915",\
                 "0.536, 0.6256, 0.8825, 1.282, 1.895, 2.759, 3.896, 5.329, 7.078, 9.161",\
                 "0.7597, 0.8701, 1.194, 1.68, 2.301, 3.158, 4.293, 5.72, 7.468, 9.551",\
                 "1.033, 1.165, 1.548, 2.134, 2.863, 3.731, 4.856, 6.28, 8.024, 10.1",\
                 "1.358, 1.514, 1.958, 2.629, 3.487, 4.476, 5.612, 7.029, 8.767, 10.84",\
                 "1.737, 1.917, 2.426, 3.182, 4.15, 5.29, 6.555, 7.982, 9.709, 11.78",\
                 "2.172, 2.379, 2.957, 3.801, 4.871, 6.146, 7.581, 9.136, 10.88, 12.93",\
                 "2.668, 2.902, 3.551, 4.489, 5.659, 7.056, 8.649, 10.39, 12.25, 14.32");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.009787, 0.04063, 0.09953, 0.1913, 0.32, 0.4895, 0.7029, 0.9635, 1.274");
          values("0.1532, 0.2364, 0.5287, 1.086, 1.953, 3.171, 4.77, 6.785, 9.255, 12.19",\
                 "0.1531, 0.2363, 0.5283, 1.086, 1.951, 3.168, 4.769, 6.794, 9.239, 12.17",\
                 "0.2035, 0.2796, 0.5381, 1.085, 1.951, 3.167, 4.766, 6.788, 9.256, 12.17",\
                 "0.3044, 0.3834, 0.6498, 1.135, 1.952, 3.167, 4.768, 6.779, 9.245, 12.2",\
                 "0.4484, 0.538, 0.8144, 1.317, 2.069, 3.19, 4.764, 6.782, 9.248, 12.18",\
                 "0.6174, 0.727, 1.037, 1.553, 2.329, 3.381, 4.832, 6.786, 9.235, 12.18",\
                 "0.8086, 0.9372, 1.301, 1.852, 2.64, 3.725, 5.107, 6.921, 9.264, 12.18",\
                 "1.016, 1.168, 1.595, 2.211, 3.024, 4.126, 5.541, 7.282, 9.482, 12.24",\
                 "1.244, 1.423, 1.915, 2.61, 3.485, 4.601, 6.041, 7.814, 9.934, 12.54",\
                 "1.482, 1.693, 2.254, 3.037, 3.99, 5.154, 6.604, 8.422, 10.57, 13.1");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.009787, 0.04063, 0.09953, 0.1913, 0.32, 0.4895, 0.7029, 0.9635, 1.274");
          values("0.2571, 0.3628, 0.7288, 1.428, 2.515, 4.041, 6.046, 8.578, 11.66, 15.33",\
                 "0.2571, 0.3621, 0.7283, 1.428, 2.516, 4.04, 6.047, 8.58, 11.67, 15.33",\
                 "0.2979, 0.3816, 0.7285, 1.427, 2.517, 4.043, 6.051, 8.574, 11.67, 15.33",\
                 "0.4286, 0.5346, 0.8268, 1.434, 2.515, 4.042, 6.051, 8.577, 11.66, 15.34",\
                 "0.566, 0.6972, 1.075, 1.621, 2.542, 4.041, 6.05, 8.58, 11.66, 15.35",\
                 "0.723, 0.8774, 1.324, 1.994, 2.817, 4.1, 6.05, 8.583, 11.66, 15.34",\
                 "0.9054, 1.084, 1.59, 2.368, 3.328, 4.464, 6.154, 8.584, 11.67, 15.35",\
                 "1.101, 1.314, 1.881, 2.743, 3.859, 5.113, 6.606, 8.742, 11.68, 15.35",\
                 "1.313, 1.562, 2.205, 3.148, 4.378, 5.822, 7.384, 9.284, 11.9, 15.38",\
                 "1.54, 1.824, 2.562, 3.586, 4.91, 6.514, 8.29, 10.19, 12.53, 15.66");
        }
      }
    }
  }

