/*
 * 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 : "0.0001332252" ;
    }

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

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

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

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

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

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

    pin(A1) {
      capacitance : 0.009237 ;
      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.02844, 0.02849, 0.02847, 0.02845, 0.02846, 0.02844, 0.02852, \
                  0.02848, 0.02847, 0.02846");
        }

        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.01218, -0.01223, -0.01231, -0.01234, -0.01233, -0.01235, -0.0124, \
                  -0.0124, -0.01239, -0.01239");
        }
      }
    }

    pin(A2) {
      capacitance : 0.009404 ;
      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.03979, 0.03985, 0.03983, 0.03978, 0.03982, 0.03981, 0.03996, \
                  0.03995, 0.03996, 0.03989");
        }

        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.03324, -0.03609, -0.03845, -0.03877, -0.03899, -0.03911, -0.03927, \
                  -0.03931, -0.03938, -0.03936");
        }
      }
    }

    pin(Z) {
      direction : output ;
      function : "(A1|A2)" ;
      max_capacitance : 1.426 ;
      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.01083, 0.04535, 0.1113, 0.2139, 0.358, 0.5476, 0.7865, 1.078, 1.426");
          values("0.3658, 0.3508, 0.3302, 0.3203, 0.3149, 0.3115, 0.3094, 0.3081, 0.3074, 0.3068",\
                 "0.3632, 0.3481, 0.3279, 0.3176, 0.3122, 0.3092, 0.3071, 0.3058, 0.305, 0.3045",\
                 "0.3698, 0.3545, 0.3338, 0.3235, 0.318, 0.3147, 0.3127, 0.3114, 0.3105, 0.31",\
                 "0.407, 0.3901, 0.3657, 0.3524, 0.3455, 0.3412, 0.3388, 0.3374, 0.3363, 0.3356",\
                 "0.4756, 0.4563, 0.4253, 0.4068, 0.3965, 0.3907, 0.3871, 0.3849, 0.3833, 0.3824",\
                 "0.576, 0.5534, 0.5153, 0.4907, 0.4757, 0.4665, 0.4613, 0.4578, 0.4555, 0.4537",\
                 "0.7123, 0.6873, 0.6401, 0.6072, 0.5858, 0.5727, 0.5645, 0.5591, 0.5556, 0.5528",\
                 "0.8835, 0.8559, 0.7995, 0.7573, 0.7294, 0.7108, 0.6994, 0.6912, 0.6858, 0.6819",\
                 "1.09, 1.06, 0.9964, 0.9433, 0.9073, 0.8828, 0.8671, 0.8561, 0.8487, 0.843",\
                 "1.333, 1.302, 1.23, 1.166, 1.122, 1.092, 1.07, 1.055, 1.045, 1.038");
        }

        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.01083, 0.04535, 0.1113, 0.2139, 0.358, 0.5476, 0.7865, 1.078, 1.426");
          values("0.1711, 0.169, 0.1706, 0.1727, 0.1761, 0.1774, 0.1834, 0.1864, 0.1907, 0.2002",\
                 "0.1715, 0.1695, 0.171, 0.1735, 0.1754, 0.1785, 0.1838, 0.1867, 0.1904, 0.1991",\
                 "0.1845, 0.1812, 0.178, 0.1791, 0.1809, 0.185, 0.1881, 0.1929, 0.1976, 0.2005",\
                 "0.2188, 0.2118, 0.2041, 0.1994, 0.2004, 0.2015, 0.2057, 0.2083, 0.2152, 0.2178",\
                 "0.2784, 0.2681, 0.2536, 0.2469, 0.2426, 0.2419, 0.2435, 0.2465, 0.2526, 0.256",\
                 "0.3669, 0.3529, 0.331, 0.3144, 0.3101, 0.3081, 0.3076, 0.307, 0.3106, 0.3114",\
                 "0.4842, 0.4644, 0.4383, 0.4165, 0.4018, 0.3999, 0.398, 0.3948, 0.3956, 0.3971",\
                 "0.6324, 0.6088, 0.5748, 0.5452, 0.5247, 0.5144, 0.5135, 0.5129, 0.5111, 0.5087",\
                 "0.8119, 0.783, 0.7412, 0.707, 0.6812, 0.6623, 0.6543, 0.6558, 0.6551, 0.6541",\
                 "1.022, 0.9906, 0.9391, 0.9005, 0.8672, 0.8441, 0.8278, 0.8218, 0.8279, 0.8233");
        }
      }

      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.01083, 0.04535, 0.1113, 0.2139, 0.358, 0.5476, 0.7865, 1.078, 1.426");
          values("0.395, 0.3799, 0.3595, 0.3495, 0.344, 0.3409, 0.3388, 0.3374, 0.3365, 0.3362",\
                 "0.3921, 0.3771, 0.3565, 0.3462, 0.3408, 0.3377, 0.3356, 0.3343, 0.3334, 0.3328",\
                 "0.3938, 0.3788, 0.3574, 0.3471, 0.3418, 0.3386, 0.3363, 0.3351, 0.3342, 0.3337",\
                 "0.4268, 0.4105, 0.3861, 0.3732, 0.3666, 0.3624, 0.3599, 0.3583, 0.3573, 0.3567",\
                 "0.4967, 0.4785, 0.4487, 0.4317, 0.4219, 0.4164, 0.4131, 0.4106, 0.409, 0.4081",\
                 "0.6092, 0.5885, 0.5509, 0.5269, 0.513, 0.5044, 0.4991, 0.4956, 0.493, 0.4913",\
                 "0.7611, 0.738, 0.6923, 0.6602, 0.6401, 0.6272, 0.6189, 0.6137, 0.6097, 0.6073",\
                 "0.9521, 0.9266, 0.8733, 0.8312, 0.8038, 0.7867, 0.7751, 0.7672, 0.7618, 0.7579",\
                 "1.183, 1.156, 1.096, 1.044, 1.008, 0.9848, 0.9692, 0.9582, 0.9505, 0.9452",\
                 "1.456, 1.426, 1.36, 1.298, 1.254, 1.224, 1.203, 1.189, 1.179, 1.171");
        }

        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.01083, 0.04535, 0.1113, 0.2139, 0.358, 0.5476, 0.7865, 1.078, 1.426");
          values("0.1974, 0.1947, 0.1937, 0.1955, 0.197, 0.1999, 0.2041, 0.2063, 0.2096, 0.2136",\
                 "0.1955, 0.1921, 0.1914, 0.1932, 0.1948, 0.197, 0.2016, 0.2027, 0.2096, 0.2111",\
                 "0.2052, 0.2008, 0.1969, 0.1969, 0.1978, 0.201, 0.2052, 0.2078, 0.2107, 0.2136",\
                 "0.2418, 0.2342, 0.2257, 0.2211, 0.2206, 0.2215, 0.2242, 0.2268, 0.2305, 0.2363",\
                 "0.3081, 0.2973, 0.2817, 0.2731, 0.2687, 0.2665, 0.2692, 0.2711, 0.273, 0.2781",\
                 "0.407, 0.3932, 0.3712, 0.3538, 0.3465, 0.3428, 0.3409, 0.3417, 0.3453, 0.3465",\
                 "0.5399, 0.5215, 0.4935, 0.4701, 0.4549, 0.4515, 0.4464, 0.4436, 0.4443, 0.4505",\
                 "0.7098, 0.6865, 0.6525, 0.6229, 0.5996, 0.5865, 0.5846, 0.5818, 0.5768, 0.5775",\
                 "0.917, 0.8896, 0.8484, 0.8124, 0.7827, 0.7622, 0.7513, 0.7528, 0.7471, 0.7435",\
                 "1.162, 1.131, 1.082, 1.039, 1.003, 0.9804, 0.9583, 0.9497, 0.9501, 0.9494");
        }
      }

      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.01083, 0.04535, 0.1113, 0.2139, 0.358, 0.5476, 0.7865, 1.078, 1.426");
          values("0.205, 0.2313, 0.2976, 0.3946, 0.5254, 0.6995, 0.9259, 1.211, 1.559, 1.973",\
                 "0.2103, 0.2366, 0.3028, 0.3998, 0.5306, 0.7047, 0.9311, 1.216, 1.564, 1.978",\
                 "0.2448, 0.2712, 0.3372, 0.434, 0.5648, 0.739, 0.9653, 1.25, 1.598, 2.013",\
                 "0.3223, 0.3485, 0.4145, 0.5114, 0.6422, 0.8162, 1.042, 1.327, 1.675, 2.089",\
                 "0.4307, 0.458, 0.5254, 0.6239, 0.7554, 0.9295, 1.156, 1.44, 1.788, 2.202",\
                 "0.5703, 0.5993, 0.6694, 0.7691, 0.9015, 1.076, 1.302, 1.587, 1.934, 2.348",\
                 "0.7389, 0.7708, 0.8453, 0.9484, 1.082, 1.258, 1.484, 1.768, 2.115, 2.529",\
                 "0.9373, 0.9717, 1.052, 1.16, 1.299, 1.477, 1.703, 1.988, 2.335, 2.748",\
                 "1.166, 1.203, 1.289, 1.404, 1.549, 1.732, 1.962, 2.246, 2.593, 3.007",\
                 "1.428, 1.467, 1.559, 1.68, 1.831, 2.021, 2.257, 2.547, 2.894, 3.307");
        }

        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.01083, 0.04535, 0.1113, 0.2139, 0.358, 0.5476, 0.7865, 1.078, 1.426");
          values("0.1092, 0.1322, 0.2058, 0.3438, 0.5586, 0.8591, 1.255, 1.754, 2.36, 3.088",\
                 "0.1171, 0.1401, 0.2136, 0.3518, 0.5667, 0.8669, 1.263, 1.762, 2.37, 3.095",\
                 "0.1431, 0.1659, 0.2383, 0.3759, 0.5906, 0.8918, 1.287, 1.786, 2.394, 3.12",\
                 "0.1636, 0.1872, 0.2593, 0.3956, 0.6094, 0.9098, 1.306, 1.804, 2.413, 3.137",\
                 "0.1666, 0.1918, 0.265, 0.4001, 0.6126, 0.9121, 1.307, 1.805, 2.414, 3.139",\
                 "0.1478, 0.175, 0.2502, 0.3846, 0.5962, 0.8951, 1.289, 1.787, 2.395, 3.12",\
                 "0.1041, 0.1336, 0.2119, 0.3477, 0.5593, 0.8582, 1.251, 1.748, 2.354, 3.079",\
                 "0.0346, 0.0666, 0.1484, 0.2844, 0.4981, 0.7976, 1.191, 1.688, 2.294, 3.017",\
                 "-0.0641, -0.0297, 0.0561, 0.1949, 0.4086, 0.7112, 1.107, 1.603, 2.209, 2.932",\
                 "-0.1933, -0.1559, -0.0652, 0.0758, 0.2898, 0.5944, 0.9934, 1.493, 2.099, 2.822");
        }

        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.01083, 0.04535, 0.1113, 0.2139, 0.358, 0.5476, 0.7865, 1.078, 1.426");
          values("0.06804, 0.09424, 0.1644, 0.2829, 0.4695, 0.7433, 1.112, 1.585, 2.164, 2.855",\
                 "0.06798, 0.09412, 0.1648, 0.283, 0.4687, 0.7431, 1.112, 1.585, 2.162, 2.855",\
                 "0.0682, 0.09408, 0.1647, 0.2838, 0.4685, 0.7432, 1.112, 1.586, 2.164, 2.854",\
                 "0.07178, 0.09766, 0.1673, 0.2854, 0.4706, 0.7435, 1.113, 1.586, 2.162, 2.855",\
                 "0.08006, 0.1061, 0.1753, 0.292, 0.4744, 0.7442, 1.115, 1.586, 2.165, 2.854",\
                 "0.0922, 0.1188, 0.1852, 0.3002, 0.4796, 0.7486, 1.116, 1.587, 2.163, 2.854",\
                 "0.1074, 0.1366, 0.2024, 0.3146, 0.4884, 0.7526, 1.119, 1.588, 2.165, 2.851",\
                 "0.1242, 0.1552, 0.2254, 0.3356, 0.508, 0.7636, 1.123, 1.59, 2.165, 2.85",\
                 "0.1416, 0.175, 0.2498, 0.3612, 0.5352, 0.7896, 1.139, 1.595, 2.167, 2.853",\
                 "0.1598, 0.1964, 0.2752, 0.3878, 0.565, 0.8224, 1.171, 1.618, 2.178, 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.01083, 0.04535, 0.1113, 0.2139, 0.358, 0.5476, 0.7865, 1.078, 1.426");
          values("0.04488, 0.07774, 0.1982, 0.4367, 0.8097, 1.334, 2.019, 2.886, 3.951, 5.208",\
                 "0.04478, 0.07788, 0.1983, 0.437, 0.809, 1.334, 2.021, 2.885, 3.945, 5.205",\
                 "0.04638, 0.079, 0.1984, 0.4368, 0.8092, 1.333, 2.021, 2.888, 3.954, 5.206",\
                 "0.0529, 0.0847, 0.2005, 0.4371, 0.8088, 1.333, 2.02, 2.887, 3.946, 5.208",\
                 "0.06174, 0.09288, 0.2045, 0.4386, 0.8093, 1.331, 2.018, 2.885, 3.944, 5.201",\
                 "0.0734, 0.1033, 0.2118, 0.4424, 0.811, 1.331, 2.017, 2.883, 3.94, 5.203",\
                 "0.0852, 0.1164, 0.2216, 0.4496, 0.8174, 1.334, 2.018, 2.885, 3.94, 5.201",\
                 "0.0978, 0.131, 0.2336, 0.458, 0.8296, 1.344, 2.023, 2.883, 3.939, 5.199",\
                 "0.112, 0.1476, 0.248, 0.4674, 0.8396, 1.361, 2.036, 2.892, 3.94, 5.201",\
                 "0.1268, 0.1632, 0.2642, 0.4786, 0.8508, 1.377, 2.056, 2.907, 3.95, 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.01083, 0.04535, 0.1113, 0.2139, 0.358, 0.5476, 0.7865, 1.078, 1.426");
          values("0.2272, 0.2536, 0.3198, 0.4168, 0.5476, 0.7217, 0.9481, 1.233, 1.581, 1.995",\
                 "0.2321, 0.2583, 0.3246, 0.4215, 0.5524, 0.7265, 0.9529, 1.238, 1.585, 2",\
                 "0.2531, 0.2793, 0.3454, 0.4422, 0.573, 0.7472, 0.9736, 1.258, 1.606, 2.021",\
                 "0.304, 0.3309, 0.3974, 0.4947, 0.6254, 0.7996, 1.026, 1.31, 1.658, 2.073",\
                 "0.3869, 0.4146, 0.4834, 0.5824, 0.7144, 0.8886, 1.115, 1.399, 1.747, 2.162",\
                 "0.4977, 0.5271, 0.5997, 0.7017, 0.8354, 1.01, 1.237, 1.521, 1.868, 2.282",\
                 "0.6296, 0.6618, 0.7396, 0.8484, 0.9869, 1.164, 1.39, 1.674, 2.021, 2.435",\
                 "0.7838, 0.818, 0.9014, 1.017, 1.163, 1.347, 1.575, 1.86, 2.207, 2.62",\
                 "0.96, 0.9967, 1.086, 1.208, 1.362, 1.555, 1.792, 2.079, 2.426, 2.84",\
                 "1.159, 1.199, 1.293, 1.422, 1.584, 1.786, 2.034, 2.331, 2.682, 3.095");
        }

        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.01083, 0.04535, 0.1113, 0.2139, 0.358, 0.5476, 0.7865, 1.078, 1.426");
          values("0.123, 0.1461, 0.2195, 0.3576, 0.5723, 0.8729, 1.268, 1.766, 2.374, 3.097",\
                 "0.1301, 0.153, 0.2265, 0.3646, 0.5791, 0.8798, 1.275, 1.773, 2.38, 3.104",\
                 "0.1575, 0.1802, 0.2527, 0.3903, 0.6046, 0.9054, 1.301, 1.799, 2.407, 3.13",\
                 "0.1857, 0.2092, 0.2813, 0.4176, 0.6313, 0.9315, 1.327, 1.825, 2.431, 3.156",\
                 "0.1997, 0.2246, 0.2975, 0.432, 0.6444, 0.9438, 1.339, 1.836, 2.444, 3.169",\
                 "0.1963, 0.2231, 0.2979, 0.4323, 0.6433, 0.9417, 1.336, 1.833, 2.44, 3.164",\
                 "0.1734, 0.2025, 0.2801, 0.4147, 0.6262, 0.9241, 1.317, 1.814, 2.421, 3.145",\
                 "0.1301, 0.1616, 0.2427, 0.379, 0.5915, 0.8904, 1.283, 1.779, 2.384, 3.108",\
                 "0.0655, 0.0995, 0.1838, 0.3215, 0.5358, 0.8369, 1.232, 1.728, 2.333, 3.055",\
                 "-0.0225, 0.014, 0.1036, 0.2434, 0.4582, 0.7621, 1.16, 1.658, 2.263, 2.984");
        }

        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.01083, 0.04535, 0.1113, 0.2139, 0.358, 0.5476, 0.7865, 1.078, 1.426");
          values("0.06778, 0.094, 0.1643, 0.2832, 0.4693, 0.7432, 1.112, 1.586, 2.162, 2.855",\
                 "0.06784, 0.09448, 0.1646, 0.2832, 0.4686, 0.7433, 1.112, 1.586, 2.164, 2.855",\
                 "0.06792, 0.0945, 0.1646, 0.2832, 0.4686, 0.7432, 1.114, 1.586, 2.164, 2.854",\
                 "0.07246, 0.09844, 0.1678, 0.2853, 0.4692, 0.7441, 1.114, 1.585, 2.164, 2.854",\
                 "0.07838, 0.1057, 0.1755, 0.2919, 0.4744, 0.744, 1.115, 1.586, 2.164, 2.854",\
                 "0.0906, 0.1192, 0.189, 0.3038, 0.4816, 0.748, 1.115, 1.587, 2.162, 2.855",\
                 "0.1046, 0.136, 0.21, 0.3258, 0.4982, 0.7566, 1.118, 1.586, 2.163, 2.85",\
                 "0.1198, 0.1536, 0.2326, 0.3526, 0.5294, 0.7812, 1.131, 1.589, 2.163, 2.851",\
                 "0.1356, 0.1716, 0.256, 0.381, 0.5642, 0.8208, 1.163, 1.607, 2.17, 2.85",\
                 "0.1532, 0.1918, 0.2806, 0.4106, 0.6002, 0.865, 1.213, 1.651, 2.193, 2.859");
        }

        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.01083, 0.04535, 0.1113, 0.2139, 0.358, 0.5476, 0.7865, 1.078, 1.426");
          values("0.04614, 0.07914, 0.1996, 0.4371, 0.8095, 1.331, 2.019, 2.884, 3.942, 5.198",\
                 "0.04606, 0.0792, 0.1991, 0.4375, 0.8094, 1.331, 2.018, 2.889, 3.94, 5.201",\
                 "0.04662, 0.07972, 0.1991, 0.4373, 0.8089, 1.331, 2.019, 2.885, 3.941, 5.202",\
                 "0.05314, 0.08456, 0.2008, 0.4387, 0.8092, 1.331, 2.018, 2.884, 3.941, 5.201",\
                 "0.06152, 0.09258, 0.2043, 0.4392, 0.8098, 1.331, 2.018, 2.884, 3.939, 5.2",\
                 "0.0721, 0.1023, 0.2118, 0.4424, 0.8118, 1.331, 2.018, 2.883, 3.938, 5.197",\
                 "0.0836, 0.1148, 0.221, 0.4496, 0.8182, 1.334, 2.018, 2.882, 3.94, 5.199",\
                 "0.0958, 0.1288, 0.2322, 0.4584, 0.8284, 1.343, 2.023, 2.883, 3.94, 5.207",\
                 "0.1094, 0.144, 0.2454, 0.4684, 0.84, 1.359, 2.035, 2.891, 3.941, 5.195",\
                 "0.1252, 0.1612, 0.2604, 0.479, 0.8538, 1.377, 2.056, 2.905, 3.947, 5.199");
        }
      }
    }
  }

