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

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!A1&!A2" ;
      value : "7.3791e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!A1&A2" ;
      value : "7.3791e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "A1&!A2" ;
      value : "9.7389e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "A1&A2" ;
      value : "9.1719e-05" ;
    }

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

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

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

    pin(A1) {
      capacitance : 0.008604 ;
      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 : "!A2" ;

        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.02706, 0.02702, 0.02693, 0.02693, 0.02691, 0.02695, 0.02696, \
                  0.02698, 0.02696, 0.02696");
        }

        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.01966, -0.01964, -0.01963, -0.01967, -0.01968, -0.01974, -0.01975, \
                  -0.01977, -0.0198, -0.01985");
        }
      }
    }

    pin(A2) {
      capacitance : 0.008902 ;
      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 : "!A1" ;

        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.02565, 0.02388, 0.02379, 0.02376, 0.02375, 0.0238, 0.02381, \
                  0.0238, 0.0238, 0.0238");
        }

        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.02378, -0.02378, -0.02372, -0.02371, -0.02369, -0.02372, -0.02373, \
                  -0.02377, -0.02373, -0.02377");
        }
      }
    }

    pin(Z) {
      direction : output ;
      function : "(A1&A2)" ;
      max_capacitance : 1.427 ;
      max_transition : 11 ;
      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.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.01084, 0.0454, 0.1114, 0.2142, 0.3584, 0.5482, 0.7873, 1.079, 1.427");
          values("0.1893, 0.1902, 0.193, 0.1952, 0.1963, 0.197, 0.1973, 0.1976, 0.1977, 0.1978",\
                 "0.1875, 0.1885, 0.1912, 0.1936, 0.1947, 0.1953, 0.1957, 0.1959, 0.196, 0.196",\
                 "0.1849, 0.1853, 0.1878, 0.1905, 0.1919, 0.1926, 0.1929, 0.1932, 0.1935, 0.1934",\
                 "0.189, 0.1884, 0.1889, 0.1913, 0.1928, 0.1938, 0.1943, 0.1946, 0.1949, 0.195",\
                 "0.2, 0.198, 0.1969, 0.1977, 0.1992, 0.2001, 0.2007, 0.201, 0.2014, 0.2014",\
                 "0.2166, 0.2127, 0.2099, 0.21, 0.2109, 0.2115, 0.2123, 0.2127, 0.213, 0.2132",\
                 "0.2393, 0.2339, 0.2292, 0.2277, 0.228, 0.2287, 0.2292, 0.2296, 0.2299, 0.2301",\
                 "0.2688, 0.2616, 0.2548, 0.2522, 0.2516, 0.2517, 0.252, 0.2523, 0.2526, 0.2527",\
                 "0.3054, 0.2967, 0.2876, 0.2832, 0.2816, 0.2812, 0.2811, 0.2814, 0.2816, 0.2817",\
                 "0.3494, 0.3389, 0.3275, 0.3212, 0.3186, 0.3176, 0.3171, 0.3172, 0.3173, 0.3175");
        }

        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.001, 0.01084, 0.0454, 0.1114, 0.2142, 0.3584, 0.5482, 0.7873, 1.079, 1.427");
          values("0.1116, 0.1117, 0.1141, 0.1173, 0.1206, 0.1229, 0.1265, 0.1284, 0.1341, 0.1754",\
                 "0.1107, 0.1109, 0.113, 0.1161, 0.1193, 0.122, 0.1247, 0.1275, 0.1327, 0.1723",\
                 "0.1093, 0.109, 0.1108, 0.1136, 0.1169, 0.1196, 0.1226, 0.1254, 0.1324, 0.1726",\
                 "0.1128, 0.112, 0.1123, 0.1141, 0.1177, 0.1205, 0.1229, 0.1278, 0.1336, 0.182",\
                 "0.1216, 0.1198, 0.1179, 0.12, 0.122, 0.1238, 0.1274, 0.1305, 0.1365, 0.1955",\
                 "0.1355, 0.133, 0.1296, 0.1288, 0.1323, 0.134, 0.1364, 0.1392, 0.1494, 0.2215",\
                 "0.1551, 0.1516, 0.1471, 0.1453, 0.1457, 0.1508, 0.1529, 0.1553, 0.1635, 0.258",\
                 "0.1811, 0.1767, 0.1703, 0.1682, 0.1665, 0.1682, 0.1742, 0.1767, 0.189, 0.3213",\
                 "0.2134, 0.2075, 0.2001, 0.1958, 0.1949, 0.1934, 0.197, 0.2056, 0.2287, 0.4284",\
                 "0.2524, 0.2452, 0.2363, 0.2311, 0.2284, 0.2282, 0.2282, 0.2347, 0.2887, 0.606");
        }
      }

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

        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.001, 0.01084, 0.0454, 0.1114, 0.2142, 0.3584, 0.5482, 0.7873, 1.079, 1.427");
          values("0.2099, 0.2103, 0.2125, 0.2147, 0.216, 0.2166, 0.2171, 0.2173, 0.2175, 0.2176",\
                 "0.2082, 0.2084, 0.2108, 0.213, 0.2143, 0.215, 0.2155, 0.2157, 0.2159, 0.216",\
                 "0.2068, 0.2068, 0.2089, 0.2112, 0.2127, 0.2134, 0.2139, 0.2142, 0.2144, 0.2145",\
                 "0.2112, 0.2102, 0.2109, 0.2127, 0.2142, 0.2152, 0.2158, 0.2162, 0.2165, 0.2166",\
                 "0.2228, 0.2204, 0.219, 0.2196, 0.2209, 0.2218, 0.2225, 0.2229, 0.2231, 0.2234",\
                 "0.2406, 0.2364, 0.2335, 0.2324, 0.2332, 0.2339, 0.2345, 0.2349, 0.2352, 0.2354",\
                 "0.2639, 0.2582, 0.2532, 0.2514, 0.2514, 0.2517, 0.2522, 0.2525, 0.2528, 0.2531",\
                 "0.2939, 0.2871, 0.28, 0.2765, 0.2757, 0.2758, 0.276, 0.2764, 0.2765, 0.2768",\
                 "0.3313, 0.3227, 0.3136, 0.3086, 0.3069, 0.3066, 0.3065, 0.3065, 0.3068, 0.3068",\
                 "0.3762, 0.3664, 0.3548, 0.3485, 0.3454, 0.3441, 0.3436, 0.3436, 0.3436, 0.3437");
        }

        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.001, 0.01084, 0.0454, 0.1114, 0.2142, 0.3584, 0.5482, 0.7873, 1.079, 1.427");
          values("0.1117, 0.1118, 0.114, 0.1173, 0.1208, 0.1235, 0.125, 0.1284, 0.1344, 0.1763",\
                 "0.1107, 0.1108, 0.1133, 0.1164, 0.1199, 0.1223, 0.1241, 0.1275, 0.1339, 0.1721",\
                 "0.1088, 0.1088, 0.1106, 0.1139, 0.1173, 0.1202, 0.1226, 0.1251, 0.1324, 0.1777",\
                 "0.1107, 0.1101, 0.1111, 0.1135, 0.1167, 0.1196, 0.1217, 0.1254, 0.131, 0.1801",\
                 "0.1176, 0.1163, 0.1151, 0.1178, 0.12, 0.1229, 0.1253, 0.1287, 0.1341, 0.1921",\
                 "0.1303, 0.1278, 0.1255, 0.1257, 0.1297, 0.131, 0.134, 0.1368, 0.1436, 0.2137",\
                 "0.1492, 0.1463, 0.1425, 0.1411, 0.1416, 0.1472, 0.1493, 0.1514, 0.1596, 0.2571",\
                 "0.174, 0.1701, 0.1653, 0.163, 0.1626, 0.1643, 0.1706, 0.1731, 0.185, 0.3138",\
                 "0.2058, 0.2005, 0.1948, 0.1916, 0.1891, 0.1889, 0.1931, 0.2023, 0.224, 0.4133",\
                 "0.2443, 0.2378, 0.2302, 0.2262, 0.2238, 0.2243, 0.2231, 0.2306, 0.2822, 0.5868");
        }
      }

      timing() {
        related_pin : "A1" ;
        timing_sense : positive_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.001, 0.01084, 0.0454, 0.1114, 0.2142, 0.3584, 0.5482, 0.7873, 1.079, 1.427");
          values("0.3167, 0.3675, 0.4905, 0.6772, 0.9506, 1.331, 1.83, 2.459, 3.228, 4.143",\
                 "0.3412, 0.3919, 0.5148, 0.7017, 0.9749, 1.355, 1.854, 2.483, 3.252, 4.168",\
                 "0.4346, 0.4851, 0.6076, 0.7947, 1.068, 1.448, 1.948, 2.577, 3.346, 4.26",\
                 "0.6034, 0.6573, 0.7837, 0.9718, 1.245, 1.625, 2.125, 2.754, 3.522, 4.438",\
                 "0.7944, 0.8556, 0.9942, 1.189, 1.464, 1.844, 2.343, 2.972, 3.74, 4.654",\
                 "1.004, 1.073, 1.224, 1.426, 1.704, 2.085, 2.584, 3.212, 3.981, 4.897",\
                 "1.243, 1.317, 1.481, 1.691, 1.971, 2.352, 2.852, 3.481, 4.248, 5.163",\
                 "1.513, 1.592, 1.769, 1.989, 2.272, 2.653, 3.152, 3.781, 4.549, 5.464",\
                 "1.813, 1.898, 2.089, 2.321, 2.609, 2.991, 3.49, 4.119, 4.886, 5.801",\
                 "2.144, 2.233, 2.439, 2.687, 2.984, 3.367, 3.866, 4.494, 5.262, 6.177");
        }

        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.001, 0.01084, 0.0454, 0.1114, 0.2142, 0.3584, 0.5482, 0.7873, 1.079, 1.427");
          values("0.3278, 0.3897, 0.5608, 0.8614, 1.324, 1.972, 2.822, 3.894, 5.205, 6.766",\
                 "0.3458, 0.4076, 0.5788, 0.8793, 1.342, 1.99, 2.842, 3.914, 5.222, 6.778",\
                 "0.4149, 0.4764, 0.6472, 0.9475, 1.41, 2.059, 2.908, 3.982, 5.286, 6.85",\
                 "0.5174, 0.5819, 0.7549, 1.055, 1.517, 2.164, 3.016, 4.09, 5.4, 6.957",\
                 "0.6017, 0.6704, 0.8479, 1.149, 1.612, 2.258, 3.111, 4.183, 5.491, 7.05",\
                 "0.6644, 0.7389, 0.9215, 1.222, 1.684, 2.333, 3.183, 4.256, 5.563, 7.126",\
                 "0.7072, 0.7865, 0.9773, 1.278, 1.739, 2.386, 3.238, 4.309, 5.617, 7.175",\
                 "0.7262, 0.8116, 1.012, 1.315, 1.774, 2.42, 3.271, 4.343, 5.651, 7.208",\
                 "0.719, 0.8092, 1.022, 1.329, 1.79, 2.434, 3.285, 4.356, 5.664, 7.222",\
                 "0.6827, 0.778, 1.004, 1.32, 1.78, 2.426, 3.275, 4.346, 5.654, 7.212");
        }

        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.001, 0.01084, 0.0454, 0.1114, 0.2142, 0.3584, 0.5482, 0.7873, 1.079, 1.427");
          values("0.0981, 0.1451, 0.2822, 0.5454, 0.979, 1.603, 2.424, 3.463, 4.73, 6.245",\
                 "0.0983, 0.1451, 0.282, 0.545, 0.9792, 1.601, 2.427, 3.465, 4.73, 6.243",\
                 "0.0982, 0.1456, 0.2823, 0.5458, 0.9794, 1.602, 2.427, 3.461, 4.73, 6.233",\
                 "0.1126, 0.1586, 0.289, 0.548, 0.9798, 1.603, 2.427, 3.466, 4.735, 6.236",\
                 "0.1368, 0.1882, 0.3142, 0.561, 0.9848, 1.604, 2.424, 3.468, 4.733, 6.237",\
                 "0.1592, 0.216, 0.3428, 0.5798, 0.9924, 1.606, 2.427, 3.46, 4.728, 6.244",\
                 "0.18, 0.2418, 0.373, 0.5992, 1.001, 1.611, 2.43, 3.463, 4.724, 6.242",\
                 "0.203, 0.268, 0.407, 0.6224, 1.013, 1.615, 2.432, 3.466, 4.727, 6.237",\
                 "0.2278, 0.2972, 0.446, 0.6534, 1.03, 1.62, 2.436, 3.466, 4.73, 6.236",\
                 "0.2538, 0.3268, 0.4886, 0.6922, 1.053, 1.633, 2.438, 3.47, 4.732, 6.238");
        }

        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.001, 0.01084, 0.0454, 0.1114, 0.2142, 0.3584, 0.5482, 0.7873, 1.079, 1.427");
          values("0.1149, 0.1873, 0.4298, 0.9254, 1.714, 2.82, 4.282, 6.117, 8.355, 11.03",\
                 "0.1161, 0.1866, 0.4298, 0.9252, 1.713, 2.821, 4.279, 6.115, 8.367, 11.02",\
                 "0.1154, 0.1872, 0.4299, 0.9265, 1.713, 2.82, 4.282, 6.109, 8.361, 11.04",\
                 "0.1268, 0.197, 0.435, 0.9266, 1.712, 2.822, 4.279, 6.121, 8.358, 11.02",\
                 "0.1438, 0.215, 0.4446, 0.9326, 1.715, 2.819, 4.275, 6.108, 8.352, 11.02",\
                 "0.1614, 0.2342, 0.4552, 0.9356, 1.718, 2.821, 4.272, 6.104, 8.359, 11.02",\
                 "0.1786, 0.2564, 0.4692, 0.9362, 1.721, 2.823, 4.274, 6.109, 8.35, 11.02",\
                 "0.1984, 0.281, 0.4894, 0.943, 1.718, 2.822, 4.278, 6.102, 8.335, 11.02",\
                 "0.2184, 0.3064, 0.5166, 0.953, 1.724, 2.825, 4.279, 6.106, 8.337, 11.01",\
                 "0.2406, 0.3318, 0.5486, 0.9712, 1.732, 2.828, 4.276, 6.104, 8.34, 11");
        }
      }

      timing() {
        related_pin : "A2" ;
        timing_sense : positive_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.001, 0.01084, 0.0454, 0.1114, 0.2142, 0.3584, 0.5482, 0.7873, 1.079, 1.427");
          values("0.3505, 0.4021, 0.5264, 0.714, 0.9877, 1.368, 1.868, 2.497, 3.264, 4.179",\
                 "0.3752, 0.427, 0.5514, 0.7389, 1.013, 1.393, 1.892, 2.521, 3.289, 4.204",\
                 "0.471, 0.5227, 0.6468, 0.8347, 1.108, 1.489, 1.988, 2.618, 3.385, 4.3",\
                 "0.6505, 0.7043, 0.8302, 1.019, 1.293, 1.673, 2.172, 2.802, 3.569, 4.484",\
                 "0.8596, 0.9211, 1.059, 1.252, 1.528, 1.908, 2.407, 3.036, 3.804, 4.718",\
                 "1.089, 1.158, 1.307, 1.509, 1.786, 2.167, 2.666, 3.295, 4.063, 4.978",\
                 "1.349, 1.423, 1.585, 1.794, 2.074, 2.455, 2.954, 3.584, 4.351, 5.266",\
                 "1.643, 1.722, 1.897, 2.114, 2.396, 2.778, 3.277, 3.906, 4.673, 5.588",\
                 "1.974, 2.059, 2.246, 2.473, 2.759, 3.141, 3.64, 4.269, 5.037, 5.952",\
                 "2.343, 2.432, 2.632, 2.872, 3.165, 3.548, 4.047, 4.676, 5.443, 6.357");
        }

        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.001, 0.01084, 0.0454, 0.1114, 0.2142, 0.3584, 0.5482, 0.7873, 1.079, 1.427");
          values("0.3438, 0.4056, 0.5768, 0.8774, 1.34, 1.988, 2.839, 3.909, 5.221, 6.778",\
                 "0.3615, 0.4235, 0.5947, 0.8953, 1.358, 2.005, 2.857, 3.928, 5.239, 6.798",\
                 "0.4109, 0.4725, 0.6434, 0.9438, 1.406, 2.054, 2.906, 3.978, 5.288, 6.843",\
                 "0.4849, 0.5496, 0.7231, 1.023, 1.486, 2.134, 2.985, 4.056, 5.367, 6.929",\
                 "0.5511, 0.6202, 0.7984, 1.1, 1.563, 2.209, 3.061, 4.135, 5.439, 6.999",\
                 "0.5977, 0.6712, 0.8565, 1.158, 1.621, 2.268, 3.119, 4.191, 5.5, 7.057",\
                 "0.6215, 0.7011, 0.8936, 1.197, 1.658, 2.305, 3.156, 4.227, 5.535, 7.094",\
                 "0.6175, 0.7028, 0.9067, 1.213, 1.674, 2.32, 3.171, 4.241, 5.548, 7.106",\
                 "0.584, 0.6738, 0.8907, 1.203, 1.664, 2.31, 3.161, 4.231, 5.539, 7.096",\
                 "0.5179, 0.6128, 0.8419, 1.163, 1.628, 2.275, 3.124, 4.194, 5.501, 7.059");
        }

        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.001, 0.01084, 0.0454, 0.1114, 0.2142, 0.3584, 0.5482, 0.7873, 1.079, 1.427");
          values("0.1025, 0.1492, 0.2847, 0.5472, 0.9793, 1.603, 2.425, 3.465, 4.734, 6.241",\
                 "0.1025, 0.1491, 0.2848, 0.5459, 0.9793, 1.602, 2.424, 3.464, 4.733, 6.243",\
                 "0.1025, 0.1491, 0.2852, 0.5468, 0.979, 1.602, 2.427, 3.467, 4.734, 6.235",\
                 "0.113, 0.158, 0.2896, 0.5484, 0.9796, 1.602, 2.427, 3.467, 4.73, 6.239",\
                 "0.1378, 0.1872, 0.3126, 0.561, 0.984, 1.602, 2.428, 3.464, 4.733, 6.243",\
                 "0.162, 0.2156, 0.3396, 0.5778, 0.9922, 1.606, 2.426, 3.461, 4.73, 6.235",\
                 "0.1836, 0.2418, 0.3694, 0.596, 1, 1.61, 2.429, 3.463, 4.727, 6.241",\
                 "0.2044, 0.2662, 0.4002, 0.6176, 1.01, 1.614, 2.43, 3.465, 4.727, 6.237",\
                 "0.2278, 0.2932, 0.4334, 0.6418, 1.023, 1.619, 2.435, 3.467, 4.731, 6.234",\
                 "0.2514, 0.3208, 0.4714, 0.6744, 1.042, 1.627, 2.436, 3.472, 4.732, 6.238");
        }

        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.001, 0.01084, 0.0454, 0.1114, 0.2142, 0.3584, 0.5482, 0.7873, 1.079, 1.427");
          values("0.1151, 0.1874, 0.4298, 0.9254, 1.714, 2.821, 4.279, 6.119, 8.365, 11.04",\
                 "0.1153, 0.1875, 0.4298, 0.9255, 1.713, 2.822, 4.276, 6.117, 8.356, 11.04",\
                 "0.1154, 0.187, 0.4298, 0.9266, 1.712, 2.822, 4.275, 6.11, 8.368, 11.04",\
                 "0.1249, 0.1968, 0.4344, 0.9252, 1.714, 2.817, 4.278, 6.118, 8.366, 11.04",\
                 "0.1382, 0.2114, 0.444, 0.9294, 1.715, 2.82, 4.28, 6.106, 8.36, 11.03",\
                 "0.1544, 0.2298, 0.4558, 0.9328, 1.717, 2.817, 4.273, 6.107, 8.355, 11.03",\
                 "0.1716, 0.251, 0.4708, 0.9376, 1.719, 2.819, 4.27, 6.108, 8.349, 11.03",\
                 "0.1906, 0.2744, 0.491, 0.9448, 1.717, 2.821, 4.271, 6.101, 8.332, 11.01",\
                 "0.2096, 0.2992, 0.5182, 0.9592, 1.725, 2.825, 4.278, 6.1, 8.333, 11",\
                 "0.2288, 0.3226, 0.5484, 0.9782, 1.736, 2.829, 4.276, 6.1, 8.336, 10.99");
        }
      }
    }
  }

