/*
 * 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__or2_4) {
    area : 39.513600 ;

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

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

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

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

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "9.3528e-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.009057 ;
      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.01832, 0.01833, 0.01834, 0.01833, 0.01833, 0.01836, 0.01833, \
                  0.01831, 0.01826, 0.01821");
        }

        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.009321, -0.009356, -0.009416, -0.009417, -0.009419, -0.009461, \
                  -0.009462, -0.009458, -0.009462, -0.009462");
        }
      }
    }

    pin(A2) {
      capacitance : 0.009331 ;
      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.02591, 0.02589, 0.0259, 0.02585, 0.02591, 0.02597, 0.02595, \
                  0.02597, 0.02596, 0.02595");
        }

        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.02237, -0.02397, -0.02474, -0.025, -0.02517, -0.0253, -0.02537, \
                  -0.02541, -0.02543, -0.02545");
        }
      }
    }

    pin(Z) {
      direction : output ;
      function : "(A1|A2)" ;
      max_capacitance : 1.434 ;
      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.01089, 0.0456, 0.1119, 0.2152, 0.3601, 0.5508, 0.791, 1.084, 1.434");
          values("0.2131, 0.2115, 0.2118, 0.2128, 0.2141, 0.2147, 0.2151, 0.2154, 0.2155, 0.2156",\
                 "0.2107, 0.2089, 0.209, 0.2104, 0.2115, 0.2122, 0.2126, 0.2129, 0.213, 0.2132",\
                 "0.2084, 0.2065, 0.2064, 0.2078, 0.209, 0.2098, 0.2103, 0.2106, 0.2108, 0.2109",\
                 "0.2122, 0.2097, 0.2087, 0.2096, 0.2108, 0.2116, 0.2122, 0.2127, 0.2129, 0.2131",\
                 "0.2247, 0.2207, 0.2175, 0.2172, 0.2178, 0.2184, 0.2191, 0.2193, 0.2196, 0.2198",\
                 "0.2426, 0.2367, 0.2313, 0.2299, 0.2297, 0.23, 0.2305, 0.2308, 0.231, 0.2311",\
                 "0.2653, 0.2577, 0.2507, 0.2474, 0.2467, 0.2467, 0.2468, 0.2471, 0.2473, 0.2475",\
                 "0.2931, 0.2844, 0.2749, 0.2708, 0.2689, 0.2687, 0.2685, 0.2687, 0.2687, 0.2689",\
                 "0.3277, 0.3177, 0.3061, 0.3001, 0.2976, 0.2965, 0.2963, 0.2962, 0.2962, 0.2963",\
                 "0.3693, 0.3579, 0.3439, 0.3364, 0.3326, 0.331, 0.3303, 0.3301, 0.3299, 0.3299");
        }

        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.01089, 0.0456, 0.1119, 0.2152, 0.3601, 0.5508, 0.791, 1.084, 1.434");
          values("0.1088, 0.1102, 0.1143, 0.118, 0.1212, 0.1238, 0.1266, 0.1284, 0.1363, 0.1725",\
                 "0.1088, 0.1102, 0.1144, 0.1181, 0.1213, 0.1244, 0.1263, 0.1287, 0.1333, 0.1775",\
                 "0.1085, 0.1093, 0.1121, 0.116, 0.1196, 0.122, 0.1245, 0.1275, 0.1336, 0.1796",\
                 "0.1113, 0.1109, 0.1124, 0.115, 0.1182, 0.1223, 0.1242, 0.1272, 0.1358, 0.1814",\
                 "0.1186, 0.1173, 0.1167, 0.1198, 0.122, 0.125, 0.1272, 0.1302, 0.1408, 0.1963",\
                 "0.1312, 0.1293, 0.1272, 0.1272, 0.1316, 0.1337, 0.135, 0.1377, 0.1497, 0.2199",\
                 "0.1494, 0.1471, 0.1432, 0.1424, 0.1433, 0.1493, 0.1503, 0.1523, 0.1612, 0.2573",\
                 "0.1741, 0.1705, 0.1655, 0.1624, 0.1632, 0.1643, 0.1704, 0.1734, 0.1835, 0.3124",\
                 "0.2045, 0.1997, 0.1935, 0.1902, 0.1883, 0.1883, 0.192, 0.2005, 0.2225, 0.4016",\
                 "0.2419, 0.2357, 0.2281, 0.2226, 0.2213, 0.2201, 0.2223, 0.2279, 0.2748, 0.5579");
        }
      }

      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.01089, 0.0456, 0.1119, 0.2152, 0.3601, 0.5508, 0.791, 1.084, 1.434");
          values("0.2301, 0.2283, 0.2284, 0.2299, 0.2309, 0.2317, 0.232, 0.2323, 0.2324, 0.2325",\
                 "0.2281, 0.2264, 0.2265, 0.2278, 0.229, 0.2297, 0.23, 0.2303, 0.2305, 0.2306",\
                 "0.2253, 0.2235, 0.2234, 0.2249, 0.2261, 0.2267, 0.2272, 0.2275, 0.2276, 0.2278",\
                 "0.2266, 0.2244, 0.2235, 0.2245, 0.2257, 0.2265, 0.227, 0.2273, 0.2276, 0.2277",\
                 "0.2345, 0.2312, 0.2291, 0.2292, 0.2302, 0.2309, 0.2315, 0.2318, 0.2321, 0.2323",\
                 "0.2492, 0.2447, 0.2412, 0.2406, 0.2414, 0.2417, 0.2423, 0.2426, 0.2429, 0.2431",\
                 "0.2711, 0.2653, 0.2605, 0.2586, 0.2588, 0.2592, 0.2598, 0.2601, 0.2603, 0.2605",\
                 "0.3006, 0.2937, 0.2872, 0.2841, 0.2833, 0.2836, 0.2838, 0.2842, 0.2844, 0.2845",\
                 "0.3381, 0.3298, 0.3211, 0.3167, 0.3154, 0.3149, 0.3152, 0.3151, 0.3153, 0.3154",\
                 "0.3834, 0.374, 0.3633, 0.3573, 0.3544, 0.3537, 0.3533, 0.3534, 0.3534, 0.3535");
        }

        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.01089, 0.0456, 0.1119, 0.2152, 0.3601, 0.5508, 0.791, 1.084, 1.434");
          values("0.1231, 0.1242, 0.1278, 0.1315, 0.1341, 0.1367, 0.1392, 0.1413, 0.1444, 0.1892",\
                 "0.1217, 0.1228, 0.1264, 0.1297, 0.1332, 0.1352, 0.1377, 0.1392, 0.1429, 0.1871",\
                 "0.1206, 0.121, 0.1239, 0.1273, 0.1306, 0.1331, 0.1353, 0.1374, 0.1411, 0.1885",\
                 "0.1236, 0.1234, 0.1246, 0.1267, 0.1298, 0.1331, 0.1353, 0.1377, 0.1424, 0.1954",\
                 "0.1313, 0.1303, 0.1292, 0.1319, 0.134, 0.137, 0.1404, 0.1425, 0.1486, 0.2079",\
                 "0.1448, 0.1429, 0.1405, 0.1411, 0.1448, 0.1469, 0.1488, 0.1515, 0.1581, 0.2349",\
                 "0.1642, 0.1619, 0.1583, 0.1576, 0.1581, 0.164, 0.1647, 0.1658, 0.1768, 0.2732",\
                 "0.1902, 0.187, 0.1827, 0.181, 0.1797, 0.1811, 0.1887, 0.1911, 0.2007, 0.3345",\
                 "0.2236, 0.2191, 0.213, 0.2103, 0.2092, 0.2096, 0.2121, 0.2212, 0.2441, 0.4298",\
                 "0.2639, 0.2583, 0.2517, 0.2474, 0.2453, 0.2459, 0.2451, 0.2512, 0.3023, 0.6035");
        }
      }

      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.01089, 0.0456, 0.1119, 0.2152, 0.3601, 0.5508, 0.791, 1.084, 1.434");
          values("0.5048, 0.5665, 0.716, 0.9236, 1.2, 1.566, 2.042, 2.64, 3.369, 4.239",\
                 "0.5188, 0.5806, 0.7301, 0.9377, 1.214, 1.581, 2.056, 2.654, 3.384, 4.252",\
                 "0.5966, 0.6585, 0.8077, 1.015, 1.292, 1.658, 2.134, 2.731, 3.461, 4.33",\
                 "0.7678, 0.8298, 0.979, 1.187, 1.463, 1.83, 2.305, 2.903, 3.633, 4.501",\
                 "0.9953, 1.062, 1.219, 1.431, 1.71, 2.077, 2.553, 3.15, 3.88, 4.749",\
                 "1.25, 1.322, 1.489, 1.709, 1.993, 2.362, 2.838, 3.436, 4.165, 5.034",\
                 "1.539, 1.616, 1.796, 2.022, 2.309, 2.68, 3.158, 3.757, 4.487, 5.355",\
                 "1.873, 1.955, 2.144, 2.379, 2.67, 3.042, 3.52, 4.12, 4.85, 5.72",\
                 "2.258, 2.342, 2.541, 2.787, 3.082, 3.456, 3.933, 4.532, 5.263, 6.134",\
                 "2.692, 2.782, 2.992, 3.249, 3.551, 3.925, 4.403, 5.002, 5.731, 6.602");
        }

        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.01089, 0.0456, 0.1119, 0.2152, 0.3601, 0.5508, 0.791, 1.084, 1.434");
          values("0.2388, 0.29, 0.4508, 0.7501, 1.213, 1.861, 2.712, 3.785, 5.089, 6.655",\
                 "0.262, 0.3132, 0.4742, 0.7732, 1.236, 1.883, 2.733, 3.804, 5.118, 6.672",\
                 "0.34, 0.391, 0.5507, 0.8497, 1.313, 1.961, 2.81, 3.881, 5.193, 6.756",\
                 "0.4299, 0.4849, 0.6456, 0.9437, 1.406, 2.054, 2.907, 3.979, 5.285, 6.85",\
                 "0.4917, 0.5524, 0.716, 1.013, 1.475, 2.124, 2.974, 4.048, 5.358, 6.911",\
                 "0.5233, 0.5903, 0.7594, 1.055, 1.517, 2.164, 3.015, 4.088, 5.396, 6.955",\
                 "0.5216, 0.5954, 0.7729, 1.068, 1.528, 2.175, 3.026, 4.098, 5.406, 6.963",\
                 "0.4824, 0.5624, 0.7513, 1.048, 1.507, 2.154, 3.004, 4.074, 5.381, 6.941",\
                 "0.4029, 0.4881, 0.6908, 0.991, 1.451, 2.096, 2.946, 4.016, 5.324, 6.882",\
                 "0.2812, 0.3712, 0.5872, 0.8931, 1.354, 2.001, 2.851, 3.921, 5.228, 6.786");
        }

        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.01089, 0.0456, 0.1119, 0.2152, 0.3601, 0.5508, 0.791, 1.084, 1.434");
          values("0.1417, 0.1996, 0.3458, 0.591, 0.978, 1.549, 2.322, 3.306, 4.51, 5.947",\
                 "0.1418, 0.1996, 0.3458, 0.5909, 0.9782, 1.549, 2.321, 3.303, 4.507, 5.942",\
                 "0.1418, 0.1995, 0.3464, 0.5912, 0.9778, 1.549, 2.321, 3.303, 4.507, 5.942",\
                 "0.1446, 0.202, 0.3478, 0.5922, 0.978, 1.549, 2.321, 3.303, 4.507, 5.94",\
                 "0.1686, 0.2256, 0.3672, 0.6048, 0.9852, 1.551, 2.322, 3.306, 4.51, 5.943",\
                 "0.1932, 0.2532, 0.3946, 0.6266, 1.002, 1.562, 2.324, 3.306, 4.503, 5.941",\
                 "0.215, 0.2788, 0.4244, 0.6476, 1.015, 1.572, 2.335, 3.311, 4.506, 5.944",\
                 "0.2342, 0.3016, 0.4544, 0.6714, 1.028, 1.576, 2.338, 3.316, 4.512, 5.945",\
                 "0.2552, 0.3252, 0.486, 0.6956, 1.043, 1.583, 2.339, 3.316, 4.518, 5.945",\
                 "0.2788, 0.352, 0.52, 0.7286, 1.064, 1.596, 2.342, 3.324, 4.518, 5.952");
        }

        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.01089, 0.0456, 0.1119, 0.2152, 0.3601, 0.5508, 0.791, 1.084, 1.434");
          values("0.09576, 0.1638, 0.4198, 0.9263, 1.716, 2.826, 4.283, 6.126, 8.363, 11.04",\
                 "0.09578, 0.1639, 0.4199, 0.9267, 1.715, 2.826, 4.283, 6.12, 8.365, 11.04",\
                 "0.09748, 0.1647, 0.4201, 0.9252, 1.715, 2.82, 4.284, 6.119, 8.354, 11.05",\
                 "0.1142, 0.1774, 0.4228, 0.9252, 1.716, 2.824, 4.28, 6.124, 8.365, 11.04",\
                 "0.1342, 0.1952, 0.4282, 0.9286, 1.715, 2.821, 4.281, 6.109, 8.364, 11.04",\
                 "0.1526, 0.2174, 0.436, 0.9286, 1.716, 2.818, 4.272, 6.112, 8.353, 11.04",\
                 "0.1728, 0.2436, 0.4496, 0.9318, 1.716, 2.82, 4.271, 6.11, 8.342, 11.03",\
                 "0.1926, 0.2694, 0.4702, 0.937, 1.72, 2.825, 4.273, 6.101, 8.339, 11.01",\
                 "0.2124, 0.2964, 0.498, 0.947, 1.722, 2.824, 4.272, 6.102, 8.335, 11.02",\
                 "0.2336, 0.3222, 0.5284, 0.961, 1.734, 2.831, 4.278, 6.106, 8.337, 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.01089, 0.0456, 0.1119, 0.2152, 0.3601, 0.5508, 0.791, 1.084, 1.434");
          values("0.5453, 0.6072, 0.7567, 0.9645, 1.241, 1.607, 2.083, 2.68, 3.41, 4.28",\
                 "0.5652, 0.6271, 0.7766, 0.984, 1.26, 1.627, 2.103, 2.7, 3.43, 4.299",\
                 "0.6313, 0.6932, 0.8426, 1.05, 1.326, 1.693, 2.169, 2.766, 3.496, 4.365",\
                 "0.7527, 0.8149, 0.9647, 1.172, 1.449, 1.815, 2.291, 2.889, 3.618, 4.487",\
                 "0.9129, 0.9789, 1.137, 1.351, 1.63, 1.997, 2.473, 3.07, 3.8, 4.67",\
                 "1.112, 1.181, 1.348, 1.57, 1.855, 2.225, 2.7, 3.298, 4.028, 4.898",\
                 "1.356, 1.429, 1.603, 1.832, 2.122, 2.495, 2.972, 3.57, 4.3, 5.168",\
                 "1.646, 1.722, 1.903, 2.141, 2.436, 2.81, 3.289, 3.888, 4.618, 5.487",\
                 "1.978, 2.058, 2.249, 2.496, 2.798, 3.175, 3.654, 4.252, 4.982, 5.852",\
                 "2.35, 2.435, 2.636, 2.896, 3.206, 3.588, 4.069, 4.667, 5.397, 6.266");
        }

        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.01089, 0.0456, 0.1119, 0.2152, 0.3601, 0.5508, 0.791, 1.084, 1.434");
          values("0.2645, 0.316, 0.4771, 0.7766, 1.239, 1.887, 2.737, 3.809, 5.116, 6.672",\
                 "0.286, 0.3378, 0.4988, 0.7978, 1.261, 1.908, 2.758, 3.83, 5.138, 6.694",\
                 "0.3654, 0.4167, 0.5768, 0.876, 1.339, 1.986, 2.836, 3.907, 5.216, 6.774",\
                 "0.4708, 0.5255, 0.6859, 0.9837, 1.447, 2.094, 2.945, 4.017, 5.325, 6.881",\
                 "0.5512, 0.6109, 0.7738, 1.071, 1.533, 2.181, 3.032, 4.104, 5.412, 6.969",\
                 "0.6029, 0.6684, 0.8361, 1.132, 1.594, 2.241, 3.092, 4.164, 5.47, 7.03",\
                 "0.6254, 0.697, 0.8716, 1.167, 1.628, 2.275, 3.126, 4.197, 5.506, 7.063",\
                 "0.6152, 0.693, 0.8775, 1.174, 1.634, 2.28, 3.13, 4.202, 5.509, 7.068",\
                 "0.5712, 0.6537, 0.8504, 1.15, 1.61, 2.256, 3.105, 4.176, 5.484, 7.042",\
                 "0.4916, 0.579, 0.788, 1.092, 1.553, 2.199, 3.048, 4.121, 5.428, 6.985");
        }

        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.01089, 0.0456, 0.1119, 0.2152, 0.3601, 0.5508, 0.791, 1.084, 1.434");
          values("0.142, 0.1996, 0.3458, 0.5907, 0.9782, 1.549, 2.322, 3.306, 4.51, 5.947",\
                 "0.1417, 0.1995, 0.3461, 0.591, 0.9778, 1.548, 2.321, 3.304, 4.508, 5.938",\
                 "0.1417, 0.1999, 0.3458, 0.5908, 0.9786, 1.549, 2.322, 3.306, 4.51, 5.941",\
                 "0.1458, 0.2028, 0.348, 0.592, 0.9798, 1.549, 2.322, 3.303, 4.51, 5.937",\
                 "0.1602, 0.2198, 0.3676, 0.6052, 0.985, 1.551, 2.323, 3.303, 4.503, 5.943",\
                 "0.1746, 0.2364, 0.389, 0.6274, 1.002, 1.56, 2.325, 3.305, 4.506, 5.947",\
                 "0.1892, 0.2526, 0.4102, 0.6482, 1.017, 1.57, 2.33, 3.308, 4.508, 5.937",\
                 "0.2064, 0.272, 0.4328, 0.671, 1.033, 1.579, 2.336, 3.31, 4.507, 5.94",\
                 "0.2274, 0.2956, 0.4614, 0.697, 1.053, 1.589, 2.34, 3.313, 4.511, 5.94",\
                 "0.25, 0.321, 0.495, 0.7304, 1.082, 1.606, 2.35, 3.318, 4.514, 5.942");
        }

        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.01089, 0.0456, 0.1119, 0.2152, 0.3601, 0.5508, 0.791, 1.084, 1.434");
          values("0.09788, 0.166, 0.4213, 0.9265, 1.714, 2.822, 4.273, 6.11, 8.345, 11.02",\
                 "0.09792, 0.1663, 0.4213, 0.9273, 1.715, 2.822, 4.272, 6.112, 8.343, 11.02",\
                 "0.099, 0.1658, 0.4212, 0.9258, 1.713, 2.819, 4.276, 6.109, 8.343, 11.02",\
                 "0.1126, 0.1758, 0.4228, 0.9262, 1.714, 2.823, 4.273, 6.113, 8.352, 11.02",\
                 "0.1306, 0.1924, 0.4278, 0.9272, 1.715, 2.819, 4.277, 6.108, 8.349, 11.01",\
                 "0.1496, 0.212, 0.4348, 0.9296, 1.715, 2.819, 4.276, 6.112, 8.341, 11.02",\
                 "0.1662, 0.2356, 0.4454, 0.9316, 1.72, 2.821, 4.271, 6.109, 8.345, 11",\
                 "0.1848, 0.2606, 0.463, 0.9366, 1.72, 2.822, 4.272, 6.102, 8.345, 11.01",\
                 "0.2038, 0.2842, 0.4852, 0.9432, 1.725, 2.826, 4.273, 6.102, 8.335, 11",\
                 "0.2224, 0.3078, 0.513, 0.9556, 1.73, 2.831, 4.28, 6.104, 8.336, 11");
        }
      }
    }
  }

