/*
 * 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_2) {
    area : 21.952000 ;

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

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

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

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

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "8.32932e-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.004671 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 5.2 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "A2" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.01375, 0.01378, 0.0138, 0.01378, 0.0138, 0.01376, 0.01381, 0.01379, \
                  0.01379, 0.01379");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("-0.006065, -0.006082, -0.006126, -0.006121, -0.006143, -0.006137, \
                  -0.006174, -0.00617, -0.006163, -0.00617");
        }
      }
    }

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

      internal_power() {
        when : "A1" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.01989, 0.0199, 0.01991, 0.01983, 0.01988, 0.01989, 0.01997, \
                  0.01995, 0.01997, 0.01995");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("-0.0166, -0.01804, -0.01921, -0.01937, -0.01946, -0.01953, -0.01965, \
                  -0.01966, -0.01967, -0.01969");
        }
      }
    }

    pin(Z) {
      direction : output ;
      function : "(A1|A2)" ;
      max_capacitance : 0.714 ;
      max_transition : 5.2 ;
      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.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.005921, 0.02319, 0.05618, 0.1076, 0.1797, 0.2746, 0.3941, 0.54, 0.714");
          values("0.1844, 0.177, 0.1665, 0.1613, 0.1583, 0.1565, 0.1554, 0.1547, 0.1542, 0.1539",\
                 "0.1834, 0.1759, 0.1654, 0.1599, 0.1571, 0.1554, 0.1543, 0.1536, 0.1532, 0.1529",\
                 "0.1864, 0.1788, 0.1681, 0.1626, 0.1598, 0.1581, 0.157, 0.1563, 0.156, 0.1557",\
                 "0.2047, 0.1964, 0.184, 0.1771, 0.1733, 0.1713, 0.17, 0.1692, 0.1687, 0.1683",\
                 "0.239, 0.2292, 0.2138, 0.2045, 0.1991, 0.196, 0.1941, 0.1929, 0.1921, 0.1915",\
                 "0.2889, 0.2779, 0.2587, 0.2458, 0.2385, 0.2338, 0.231, 0.2292, 0.228, 0.2272",\
                 "0.3571, 0.3445, 0.321, 0.3045, 0.2935, 0.2869, 0.2825, 0.2798, 0.2781, 0.2767",\
                 "0.4428, 0.4292, 0.4013, 0.3797, 0.3657, 0.3562, 0.35, 0.3461, 0.3433, 0.3413",\
                 "0.5459, 0.5314, 0.4993, 0.4726, 0.455, 0.4424, 0.4342, 0.4286, 0.4247, 0.4219",\
                 "0.6678, 0.6523, 0.6169, 0.5849, 0.5626, 0.5468, 0.5361, 0.5285, 0.5232, 0.5194");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.005921, 0.02319, 0.05618, 0.1076, 0.1797, 0.2746, 0.3941, 0.54, 0.714");
          values("0.0858, 0.08484, 0.08536, 0.08712, 0.08814, 0.08927, 0.09172, 0.09377, 0.09764, 0.09743",\
                 "0.08632, 0.08539, 0.08582, 0.08708, 0.08817, 0.08999, 0.09208, 0.09413, 0.09548, 0.09779",\
                 "0.09231, 0.09068, 0.08899, 0.08967, 0.09026, 0.09262, 0.09352, 0.09557, 0.09836, 0.1003",\
                 "0.1095, 0.106, 0.1023, 0.1002, 0.1001, 0.1015, 0.1032, 0.1053, 0.1074, 0.109",\
                 "0.139, 0.1342, 0.1266, 0.1228, 0.1217, 0.1209, 0.1216, 0.1229, 0.1257, 0.1266",\
                 "0.1833, 0.1764, 0.1656, 0.1574, 0.1548, 0.1536, 0.1529, 0.1528, 0.1542, 0.1554",\
                 "0.2417, 0.2322, 0.2186, 0.2082, 0.2005, 0.199, 0.1986, 0.1971, 0.197, 0.1993",\
                 "0.3156, 0.304, 0.2869, 0.2728, 0.2618, 0.257, 0.257, 0.2561, 0.2553, 0.2538",\
                 "0.4056, 0.3915, 0.3713, 0.3535, 0.3407, 0.3304, 0.3275, 0.3285, 0.3284, 0.3265",\
                 "0.511, 0.4953, 0.4706, 0.4501, 0.4329, 0.4228, 0.4132, 0.4106, 0.413, 0.4115");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.005921, 0.02319, 0.05618, 0.1076, 0.1797, 0.2746, 0.3941, 0.54, 0.714");
          values("0.1991, 0.1918, 0.1812, 0.176, 0.1729, 0.1712, 0.1701, 0.1693, 0.1688, 0.1685",\
                 "0.1977, 0.19, 0.1796, 0.1743, 0.1714, 0.1698, 0.1686, 0.1678, 0.1674, 0.1671",\
                 "0.1984, 0.1909, 0.1802, 0.1746, 0.1717, 0.17, 0.1689, 0.1681, 0.1679, 0.1675",\
                 "0.2148, 0.2066, 0.1943, 0.1877, 0.1841, 0.182, 0.1807, 0.1798, 0.1793, 0.179",\
                 "0.2497, 0.2405, 0.2256, 0.2169, 0.2118, 0.2089, 0.2073, 0.2059, 0.2052, 0.2046",\
                 "0.3056, 0.2951, 0.2766, 0.2644, 0.2572, 0.2526, 0.25, 0.2482, 0.2469, 0.2461",\
                 "0.3816, 0.3699, 0.3474, 0.3309, 0.3208, 0.3144, 0.3101, 0.3074, 0.3053, 0.3039",\
                 "0.4767, 0.4644, 0.4379, 0.4167, 0.4029, 0.394, 0.388, 0.3842, 0.3813, 0.3793",\
                 "0.5925, 0.579, 0.5491, 0.5226, 0.505, 0.4931, 0.4851, 0.4796, 0.4758, 0.473",\
                 "0.7286, 0.7145, 0.6813, 0.6497, 0.6281, 0.6125, 0.6025, 0.5952, 0.5899, 0.5859");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.005921, 0.02319, 0.05618, 0.1076, 0.1797, 0.2746, 0.3941, 0.54, 0.714");
          values("0.09852, 0.09685, 0.09631, 0.09688, 0.09783, 0.09935, 0.1013, 0.1027, 0.1037, 0.1071",\
                 "0.0976, 0.09609, 0.09551, 0.09638, 0.097, 0.09856, 0.101, 0.1016, 0.1029, 0.1056",\
                 "0.1023, 0.1001, 0.09811, 0.09789, 0.0984, 0.1, 0.1017, 0.1034, 0.1055, 0.1063",\
                 "0.1207, 0.1171, 0.113, 0.1097, 0.1096, 0.1104, 0.1118, 0.1131, 0.1159, 0.1161",\
                 "0.1535, 0.1483, 0.14, 0.1362, 0.1333, 0.1324, 0.1337, 0.1344, 0.1361, 0.1387",\
                 "0.2027, 0.1959, 0.185, 0.1759, 0.1729, 0.1705, 0.1697, 0.1704, 0.1721, 0.1722",\
                 "0.2692, 0.2601, 0.246, 0.2348, 0.2276, 0.2243, 0.2227, 0.2211, 0.2214, 0.2244",\
                 "0.3541, 0.3426, 0.3258, 0.3101, 0.299, 0.2936, 0.2911, 0.2899, 0.2873, 0.2883",\
                 "0.4577, 0.4439, 0.4237, 0.4055, 0.3908, 0.3803, 0.3746, 0.3745, 0.3729, 0.3714",\
                 "0.5804, 0.5649, 0.5412, 0.5199, 0.5017, 0.4891, 0.4783, 0.4746, 0.4745, 0.4726");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.005921, 0.02319, 0.05618, 0.1076, 0.1797, 0.2746, 0.3941, 0.54, 0.714");
          values("0.2111, 0.2373, 0.3041, 0.4016, 0.5331, 0.7074, 0.9338, 1.219, 1.566, 1.98",\
                 "0.2163, 0.2425, 0.3093, 0.4069, 0.5382, 0.7126, 0.939, 1.224, 1.571, 1.986",\
                 "0.2507, 0.277, 0.3435, 0.4409, 0.5723, 0.7467, 0.9731, 1.258, 1.606, 2.02",\
                 "0.3282, 0.3546, 0.4209, 0.5183, 0.6495, 0.8239, 1.05, 1.335, 1.682, 2.097",\
                 "0.4372, 0.4646, 0.5325, 0.6314, 0.7635, 0.9378, 1.164, 1.448, 1.796, 2.21",\
                 "0.5774, 0.6066, 0.677, 0.7769, 0.9101, 1.085, 1.311, 1.596, 1.943, 2.357",\
                 "0.7471, 0.7789, 0.8539, 0.9577, 1.092, 1.267, 1.494, 1.778, 2.125, 2.539",\
                 "0.9468, 0.9806, 1.061, 1.17, 1.31, 1.488, 1.714, 1.998, 2.346, 2.759",\
                 "1.177, 1.214, 1.3, 1.415, 1.561, 1.744, 1.974, 2.258, 2.605, 3.019",\
                 "1.439, 1.479, 1.571, 1.692, 1.844, 2.035, 2.271, 2.559, 2.906, 3.32");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.005921, 0.02319, 0.05618, 0.1076, 0.1797, 0.2746, 0.3941, 0.54, 0.714");
          values("0.1124, 0.1355, 0.209, 0.3473, 0.5617, 0.8628, 1.257, 1.757, 2.366, 3.091",\
                 "0.1205, 0.1434, 0.2169, 0.355, 0.5698, 0.8708, 1.266, 1.765, 2.371, 3.099",\
                 "0.1466, 0.1695, 0.2418, 0.3795, 0.5943, 0.8952, 1.291, 1.788, 2.397, 3.119",\
                 "0.1682, 0.1918, 0.2641, 0.4002, 0.6137, 0.9143, 1.309, 1.808, 2.417, 3.141",\
                 "0.1722, 0.1973, 0.2706, 0.4049, 0.6183, 0.9176, 1.312, 1.81, 2.418, 3.142",\
                 "0.1545, 0.1818, 0.2568, 0.3916, 0.6027, 0.9018, 1.296, 1.793, 2.4, 3.124",\
                 "0.1121, 0.1415, 0.2198, 0.3555, 0.5668, 0.8652, 1.259, 1.755, 2.362, 3.085",\
                 "0.0434, 0.0752, 0.1571, 0.2939, 0.5058, 0.806, 1.199, 1.696, 2.302, 3.024",\
                 "-0.0542, -0.0199, 0.0665, 0.2049, 0.4184, 0.7202, 1.116, 1.613, 2.218, 2.941",\
                 "-0.1822, -0.1452, -0.0543, 0.0862, 0.3007, 0.6051, 1.004, 1.503, 2.11, 2.832");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.005921, 0.02319, 0.05618, 0.1076, 0.1797, 0.2746, 0.3941, 0.54, 0.714");
          values("0.0701, 0.09654, 0.1668, 0.2867, 0.4712, 0.7448, 1.113, 1.587, 2.162, 2.855",\
                 "0.07016, 0.09694, 0.1672, 0.286, 0.4714, 0.744, 1.113, 1.587, 2.163, 2.855",\
                 "0.07052, 0.09638, 0.1673, 0.2862, 0.4709, 0.7452, 1.113, 1.587, 2.163, 2.854",\
                 "0.07386, 0.09958, 0.1694, 0.2878, 0.4724, 0.7452, 1.113, 1.587, 2.165, 2.853",\
                 "0.08262, 0.1082, 0.1776, 0.2948, 0.4758, 0.7456, 1.114, 1.585, 2.164, 2.85",\
                 "0.0944, 0.1208, 0.1872, 0.302, 0.4818, 0.7504, 1.116, 1.585, 2.162, 2.853",\
                 "0.1102, 0.139, 0.205, 0.3166, 0.4902, 0.7542, 1.119, 1.589, 2.165, 2.852",\
                 "0.126, 0.158, 0.2296, 0.3382, 0.5098, 0.7654, 1.124, 1.59, 2.165, 2.85",\
                 "0.1438, 0.1776, 0.2522, 0.3638, 0.5374, 0.7908, 1.139, 1.596, 2.167, 2.852",\
                 "0.162, 0.1994, 0.2792, 0.393, 0.5676, 0.824, 1.172, 1.618, 2.175, 2.855");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.005921, 0.02319, 0.05618, 0.1076, 0.1797, 0.2746, 0.3941, 0.54, 0.714");
          values("0.04642, 0.07926, 0.1996, 0.4382, 0.811, 1.333, 2.022, 2.888, 3.947, 5.213",\
                 "0.04636, 0.07936, 0.2001, 0.4381, 0.8103, 1.333, 2.021, 2.887, 3.951, 5.211",\
                 "0.04782, 0.08046, 0.1998, 0.4381, 0.8103, 1.333, 2.02, 2.893, 3.944, 5.213",\
                 "0.05454, 0.08614, 0.2018, 0.438, 0.8103, 1.333, 2.02, 2.887, 3.943, 5.206",\
                 "0.0635, 0.09432, 0.2058, 0.439, 0.8106, 1.332, 2.023, 2.886, 3.943, 5.208",\
                 "0.07486, 0.105, 0.2134, 0.4434, 0.8122, 1.332, 2.018, 2.884, 3.942, 5.206",\
                 "0.0864, 0.1182, 0.2236, 0.4506, 0.8186, 1.335, 2.018, 2.885, 3.94, 5.198",\
                 "0.0992, 0.1326, 0.2356, 0.459, 0.8292, 1.345, 2.025, 2.884, 3.939, 5.199",\
                 "0.1144, 0.1484, 0.2496, 0.4684, 0.8398, 1.361, 2.037, 2.891, 3.94, 5.196",\
                 "0.1284, 0.1652, 0.2664, 0.4804, 0.8514, 1.376, 2.058, 2.907, 3.949, 5.199");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.005921, 0.02319, 0.05618, 0.1076, 0.1797, 0.2746, 0.3941, 0.54, 0.714");
          values("0.2325, 0.259, 0.3257, 0.4234, 0.5546, 0.729, 0.9554, 1.24, 1.588, 2.002",\
                 "0.2374, 0.2638, 0.3305, 0.4281, 0.5594, 0.7339, 0.9602, 1.245, 1.593, 2.007",\
                 "0.2583, 0.2847, 0.3512, 0.4488, 0.5801, 0.7544, 0.9809, 1.265, 1.613, 2.028",\
                 "0.3095, 0.3364, 0.4033, 0.501, 0.6324, 0.8067, 1.033, 1.318, 1.665, 2.08",\
                 "0.3928, 0.4205, 0.4894, 0.5892, 0.7216, 0.8961, 1.122, 1.407, 1.754, 2.169",\
                 "0.5038, 0.5337, 0.6065, 0.7088, 0.843, 1.018, 1.244, 1.529, 1.876, 2.29",\
                 "0.637, 0.6688, 0.7472, 0.856, 0.995, 1.172, 1.398, 1.682, 2.029, 2.443",\
                 "0.792, 0.826, 0.9094, 1.025, 1.172, 1.356, 1.585, 1.869, 2.216, 2.629",\
                 "0.9689, 1.006, 1.095, 1.217, 1.372, 1.565, 1.802, 2.089, 2.436, 2.849",\
                 "1.169, 1.208, 1.303, 1.432, 1.595, 1.797, 2.044, 2.341, 2.692, 3.105");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.005921, 0.02319, 0.05618, 0.1076, 0.1797, 0.2746, 0.3941, 0.54, 0.714");
          values("0.1262, 0.1491, 0.2225, 0.3605, 0.5751, 0.8754, 1.27, 1.769, 2.376, 3.101",\
                 "0.1333, 0.1563, 0.2296, 0.3678, 0.5821, 0.8827, 1.278, 1.776, 2.383, 3.108",\
                 "0.1607, 0.1835, 0.256, 0.3933, 0.6076, 0.9084, 1.303, 1.802, 2.41, 3.134",\
                 "0.19, 0.2135, 0.2857, 0.4215, 0.635, 0.935, 1.33, 1.828, 2.435, 3.159",\
                 "0.2048, 0.2295, 0.3023, 0.4373, 0.6494, 0.9486, 1.343, 1.841, 2.448, 3.171",\
                 "0.2023, 0.2291, 0.3039, 0.4378, 0.6489, 0.9474, 1.341, 1.838, 2.446, 3.169",\
                 "0.1803, 0.2092, 0.2865, 0.422, 0.6335, 0.931, 1.324, 1.82, 2.427, 3.15",\
                 "0.1377, 0.1689, 0.2503, 0.3861, 0.5988, 0.8976, 1.29, 1.786, 2.391, 3.115",\
                 "0.074, 0.1079, 0.1927, 0.3303, 0.5441, 0.845, 1.239, 1.735, 2.34, 3.063",\
                 "-0.013, 0.0235, 0.1133, 0.2534, 0.4678, 0.7715, 1.168, 1.666, 2.271, 2.993");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.005921, 0.02319, 0.05618, 0.1076, 0.1797, 0.2746, 0.3941, 0.54, 0.714");
          values("0.07024, 0.09686, 0.1675, 0.2859, 0.4714, 0.7442, 1.113, 1.587, 2.162, 2.855",\
                 "0.07024, 0.09634, 0.1672, 0.2862, 0.4708, 0.7451, 1.113, 1.585, 2.164, 2.85",\
                 "0.07026, 0.09694, 0.1671, 0.2858, 0.4706, 0.7441, 1.113, 1.586, 2.162, 2.854",\
                 "0.07456, 0.1005, 0.1702, 0.2882, 0.4716, 0.7455, 1.115, 1.587, 2.164, 2.851",\
                 "0.08072, 0.1078, 0.1779, 0.2947, 0.4758, 0.7464, 1.114, 1.585, 2.164, 2.85",\
                 "0.0928, 0.1208, 0.1912, 0.3058, 0.4842, 0.7494, 1.116, 1.587, 2.162, 2.854",\
                 "0.1066, 0.1378, 0.2122, 0.3278, 0.5008, 0.7576, 1.119, 1.587, 2.164, 2.852",\
                 "0.1222, 0.1552, 0.2348, 0.3546, 0.5314, 0.7822, 1.13, 1.589, 2.162, 2.849",\
                 "0.1378, 0.1738, 0.2578, 0.3824, 0.5662, 0.8214, 1.163, 1.608, 2.169, 2.85",\
                 "0.155, 0.1944, 0.2836, 0.4128, 0.6022, 0.865, 1.213, 1.65, 2.192, 2.858");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.005921, 0.02319, 0.05618, 0.1076, 0.1797, 0.2746, 0.3941, 0.54, 0.714");
          values("0.04768, 0.08076, 0.2004, 0.4383, 0.8103, 1.332, 2.018, 2.885, 3.945, 5.208",\
                 "0.04776, 0.08056, 0.2005, 0.4384, 0.8104, 1.332, 2.02, 2.888, 3.945, 5.199",\
                 "0.04816, 0.08116, 0.2005, 0.4385, 0.8105, 1.332, 2.018, 2.885, 3.94, 5.202",\
                 "0.05448, 0.08628, 0.2022, 0.4387, 0.8105, 1.332, 2.019, 2.885, 3.939, 5.202",\
                 "0.0631, 0.09434, 0.2058, 0.4397, 0.8112, 1.332, 2.019, 2.884, 3.943, 5.199",\
                 "0.073, 0.1038, 0.2128, 0.4434, 0.8132, 1.333, 2.018, 2.883, 3.938, 5.197",\
                 "0.0852, 0.1164, 0.2224, 0.4504, 0.818, 1.335, 2.019, 2.888, 3.938, 5.198",\
                 "0.0976, 0.1312, 0.234, 0.4596, 0.829, 1.344, 2.024, 2.884, 3.94, 5.197",\
                 "0.1122, 0.1452, 0.2474, 0.469, 0.8416, 1.36, 2.034, 2.889, 3.941, 5.197",\
                 "0.1264, 0.1618, 0.2624, 0.48, 0.8536, 1.378, 2.055, 2.905, 3.949, 5.199");
        }
      }
    }
  }

