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

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

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

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

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

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

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

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

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

      internal_power() {
        when : "A2" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.1055, 0.1053, 0.1053, 0.1051, 0.1051, 0.1051, 0.1053, 0.1053, \
                 0.1053, 0.1053");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.04439, -0.04446, -0.04456, -0.04447, -0.04455, -0.04463, -0.04468, \
                 -0.0447, -0.0447, -0.04471");
        }
      }
    }

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

      internal_power() {
        when : "A1" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.1571, 0.1572, 0.1571, 0.1567, 0.1569, 0.1569, 0.1571, 0.1571, \
                 0.1571, 0.157");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.1313, -0.1363, -0.1479, -0.1522, -0.1534, -0.1539, -0.1547, \
                 -0.1549, -0.1552, -0.1554");
        }
      }
    }

    pin(ZN) {
      direction : output ;
      function : "((!A1)&(!A2))" ;
      max_capacitance : 0.5003 ;
      max_transition : 4 ;
      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.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.004446, 0.01654, 0.03965, 0.07564, 0.1261, 0.1926, 0.2763, 0.3785, 0.5003");
          values("-0.02454, -0.02275, -0.01894, -0.01594, -0.01436, -0.01351, -0.01301, -0.01269, -0.01253, -0.01239",\
                 "-0.02281, -0.02084, -0.01634, -0.01246, -0.01023, -0.008651, -0.007992, -0.007518, -0.006973, -0.006797",\
                 "-0.003785, -0.003691, -0.003173, -0.00238, -0.001616, -0.001125, -0.0008628, -0.0006478, -0.0005348, -0.0005041",\
                 "0.05653, 0.05243, 0.04372, 0.03435, 0.0268, 0.0211, 0.01656, 0.01325, 0.01081, 0.009044",\
                 "0.1739, 0.1658, 0.144, 0.1185, 0.09601, 0.07758, 0.06277, 0.05128, 0.04224, 0.03499",\
                 "0.3546, 0.3428, 0.3088, 0.2637, 0.2211, 0.1835, 0.1531, 0.1279, 0.1071, 0.09045",\
                 "0.6031, 0.5879, 0.5427, 0.4794, 0.4131, 0.3527, 0.3005, 0.2561, 0.219, 0.1881",\
                 "0.9228, 0.905, 0.8507, 0.7709, 0.681, 0.593, 0.5155, 0.4473, 0.389, 0.339",\
                 "1.318, 1.297, 1.235, 1.14, 1.029, 0.914, 0.8075, 0.7119, 0.6273, 0.5541",\
                 "1.791, 1.769, 1.7, 1.593, 1.46, 1.32, 1.184, 1.057, 0.9432, 0.8417");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.004446, 0.01654, 0.03965, 0.07564, 0.1261, 0.1926, 0.2763, 0.3785, 0.5003");
          values("0.4119, 0.4145, 0.4194, 0.4233, 0.4258, 0.4281, 0.4316, 0.4336, 0.4386, 0.4422",\
                 "0.4091, 0.4105, 0.4149, 0.4193, 0.4236, 0.426, 0.4306, 0.4331, 0.4376, 0.4417",\
                 "0.4367, 0.4344, 0.4303, 0.4278, 0.4275, 0.4286, 0.4316, 0.4336, 0.4381, 0.4402",\
                 "0.5183, 0.5127, 0.4977, 0.4804, 0.4665, 0.4568, 0.4531, 0.4506, 0.4486, 0.4497",\
                 "0.6608, 0.6509, 0.6253, 0.5938, 0.5609, 0.5344, 0.5151, 0.5011, 0.4906, 0.4847",\
                 "0.8707, 0.8578, 0.8214, 0.7732, 0.7237, 0.6755, 0.6356, 0.6026, 0.5761, 0.5582",\
                 "1.153, 1.138, 1.091, 1.027, 0.9582, 0.8908, 0.8281, 0.7721, 0.7251, 0.6842",\
                 "1.513, 1.496, 1.442, 1.362, 1.272, 1.184, 1.1, 1.019, 0.9476, 0.8842",\
                 "1.955, 1.936, 1.876, 1.783, 1.673, 1.562, 1.454, 1.35, 1.251, 1.162",\
                 "2.484, 2.463, 2.398, 2.294, 2.167, 2.03, 1.898, 1.771, 1.647, 1.532");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.004446, 0.01654, 0.03965, 0.07564, 0.1261, 0.1926, 0.2763, 0.3785, 0.5003");
          values("0.06576, 0.06585, 0.06632, 0.06681, 0.06713, 0.06726, 0.06743, 0.06752, 0.06747, 0.06763",\
                 "0.06014, 0.06034, 0.06074, 0.06089, 0.06132, 0.06121, 0.06144, 0.06129, 0.06123, 0.06149",\
                 "0.06899, 0.06799, 0.06538, 0.06266, 0.06046, 0.05918, 0.05812, 0.05775, 0.05724, 0.05688",\
                 "0.1286, 0.1238, 0.1124, 0.09927, 0.08783, 0.07933, 0.07333, 0.06861, 0.06535, 0.06304",\
                 "0.2574, 0.2487, 0.2242, 0.1933, 0.1649, 0.1413, 0.1231, 0.1089, 0.09767, 0.08932",\
                 "0.4634, 0.4507, 0.4124, 0.3609, 0.3082, 0.2624, 0.2242, 0.1929, 0.1684, 0.149",\
                 "0.751, 0.7341, 0.6845, 0.6111, 0.5324, 0.4575, 0.3929, 0.3383, 0.2933, 0.2562",\
                 "1.123, 1.104, 1.044, 0.9517, 0.8458, 0.7404, 0.6435, 0.559, 0.4871, 0.4259",\
                 "1.586, 1.564, 1.494, 1.386, 1.253, 1.117, 0.986, 0.8659, 0.7618, 0.6718",\
                 "2.141, 2.118, 2.041, 1.917, 1.762, 1.595, 1.429, 1.273, 1.13, 1.005");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.004446, 0.01654, 0.03965, 0.07564, 0.1261, 0.1926, 0.2763, 0.3785, 0.5003");
          values("0.5327, 0.5348, 0.5392, 0.542, 0.5444, 0.546, 0.5491, 0.5511, 0.5561, 0.5607",\
                 "0.5246, 0.5272, 0.5326, 0.5377, 0.5415, 0.5445, 0.5481, 0.5511, 0.5566, 0.5597",\
                 "0.5335, 0.5334, 0.5332, 0.5356, 0.5384, 0.5413, 0.5456, 0.5501, 0.5546, 0.5547",\
                 "0.6046, 0.6003, 0.5892, 0.5774, 0.5687, 0.5638, 0.5616, 0.5621, 0.5636, 0.5662",\
                 "0.7581, 0.7483, 0.723, 0.6929, 0.6639, 0.6399, 0.6236, 0.6116, 0.6041, 0.5987",\
                 "0.9965, 0.9832, 0.9452, 0.8938, 0.843, 0.7954, 0.7551, 0.7226, 0.6981, 0.6792",\
                 "1.321, 1.306, 1.257, 1.186, 1.112, 1.039, 0.9736, 0.9146, 0.8626, 0.8247",\
                 "1.735, 1.718, 1.663, 1.575, 1.477, 1.376, 1.284, 1.199, 1.121, 1.052",\
                 "2.245, 2.225, 2.164, 2.066, 1.944, 1.817, 1.696, 1.581, 1.475, 1.376",\
                 "2.855, 2.834, 2.767, 2.658, 2.519, 2.367, 2.214, 2.07, 1.932, 1.804");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.004446, 0.01654, 0.03965, 0.07564, 0.1261, 0.1926, 0.2763, 0.3785, 0.5003");
          values("0.04586, 0.0534, 0.07911, 0.1274, 0.2021, 0.3069, 0.4444, 0.6178, 0.8294, 1.082",\
                 "0.0513, 0.05879, 0.08459, 0.133, 0.2078, 0.3126, 0.4501, 0.6235, 0.8356, 1.088",\
                 "0.06403, 0.07387, 0.1039, 0.1527, 0.2272, 0.3318, 0.4692, 0.6425, 0.8539, 1.106",\
                 "0.06784, 0.08148, 0.1224, 0.1851, 0.266, 0.3697, 0.5063, 0.679, 0.8904, 1.142",\
                 "0.05847, 0.07631, 0.1293, 0.2095, 0.31, 0.4293, 0.5675, 0.7385, 0.9488, 1.199",\
                 "0.03486, 0.05642, 0.1215, 0.2198, 0.3425, 0.4846, 0.646, 0.8256, 1.034, 1.283",\
                 "-0.00407, 0.02168, 0.09833, 0.2147, 0.3597, 0.5272, 0.714, 0.9208, 1.148, 1.398",\
                 "-0.0592, -0.0294, 0.0588, 0.1926, 0.3598, 0.552, 0.7681, 1.003, 1.259, 1.536",\
                 "-0.1317, -0.0978, 0.0017, 0.1527, 0.342, 0.5613, 0.8043, 1.07, 1.356, 1.663",\
                 "-0.2229, -0.1852, -0.0735, 0.0947, 0.3054, 0.55, 0.8221, 1.119, 1.437, 1.776");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.004446, 0.01654, 0.03965, 0.07564, 0.1261, 0.1926, 0.2763, 0.3785, 0.5003");
          values("0.07316, 0.08833, 0.1404, 0.2386, 0.3896, 0.6014, 0.8796, 1.229, 1.657, 2.167",\
                 "0.07729, 0.09229, 0.1443, 0.2424, 0.3941, 0.6059, 0.8843, 1.234, 1.663, 2.172",\
                 "0.1044, 0.1188, 0.1683, 0.2642, 0.4145, 0.626, 0.9039, 1.253, 1.682, 2.191",\
                 "0.152, 0.1692, 0.2236, 0.3177, 0.4637, 0.6714, 0.9472, 1.296, 1.722, 2.231",\
                 "0.2162, 0.2374, 0.3012, 0.4052, 0.5513, 0.7538, 1.025, 1.369, 1.793, 2.298",\
                 "0.295, 0.3206, 0.3974, 0.5157, 0.6747, 0.8795, 1.144, 1.482, 1.9, 2.402",\
                 "0.3894, 0.4198, 0.5098, 0.6472, 0.823, 1.043, 1.311, 1.644, 2.055, 2.55",\
                 "0.4997, 0.5349, 0.6395, 0.7969, 0.9953, 1.233, 1.518, 1.855, 2.26, 2.748",\
                 "0.6272, 0.6683, 0.7871, 0.9656, 1.188, 1.45, 1.753, 2.108, 2.518, 3.001",\
                 "0.7732, 0.8187, 0.9532, 1.153, 1.4, 1.689, 2.017, 2.392, 2.822, 3.311");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.004446, 0.01654, 0.03965, 0.07564, 0.1261, 0.1926, 0.2763, 0.3785, 0.5003");
          values("0.04441, 0.05666, 0.09822, 0.1779, 0.3023, 0.4768, 0.7073, 0.9972, 1.351, 1.772",\
                 "0.04457, 0.05635, 0.09814, 0.1781, 0.3026, 0.4771, 0.7068, 0.9958, 1.351, 1.765",\
                 "0.06428, 0.07498, 0.1085, 0.1788, 0.3023, 0.4767, 0.707, 0.9945, 1.349, 1.772",\
                 "0.0992, 0.1128, 0.1538, 0.2205, 0.3179, 0.4777, 0.7058, 0.9964, 1.35, 1.772",\
                 "0.1459, 0.1634, 0.2149, 0.292, 0.3954, 0.5273, 0.7209, 0.9946, 1.349, 1.771",\
                 "0.203, 0.2258, 0.2898, 0.3816, 0.4975, 0.6406, 0.8138, 1.043, 1.359, 1.769",\
                 "0.2702, 0.2976, 0.3749, 0.4864, 0.6202, 0.777, 0.9644, 1.184, 1.453, 1.81",\
                 "0.346, 0.3802, 0.4726, 0.603, 0.7586, 0.9356, 1.138, 1.372, 1.642, 1.955",\
                 "0.4304, 0.4708, 0.5806, 0.7352, 0.9108, 1.112, 1.338, 1.585, 1.87, 2.193",\
                 "0.5226, 0.5692, 0.699, 0.8742, 1.079, 1.306, 1.554, 1.824, 2.125, 2.463");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.004446, 0.01654, 0.03965, 0.07564, 0.1261, 0.1926, 0.2763, 0.3785, 0.5003");
          values("0.1147, 0.1412, 0.2326, 0.4066, 0.6771, 1.057, 1.557, 2.185, 2.954, 3.875",\
                 "0.1143, 0.1408, 0.2325, 0.4068, 0.6785, 1.057, 1.556, 2.188, 2.959, 3.874",\
                 "0.1228, 0.1455, 0.2322, 0.4068, 0.6775, 1.057, 1.556, 2.183, 2.959, 3.875",\
                 "0.1486, 0.1732, 0.2543, 0.4103, 0.6772, 1.057, 1.556, 2.189, 2.957, 3.872",\
                 "0.1914, 0.2165, 0.2976, 0.451, 0.6897, 1.057, 1.556, 2.189, 2.958, 3.873",\
                 "0.2456, 0.2757, 0.3648, 0.515, 0.7474, 1.082, 1.558, 2.184, 2.954, 3.87",\
                 "0.308, 0.342, 0.444, 0.6052, 0.835, 1.159, 1.6, 2.191, 2.951, 3.872",\
                 "0.3792, 0.4192, 0.5378, 0.714, 0.9466, 1.269, 1.694, 2.254, 2.97, 3.876",\
                 "0.4574, 0.5026, 0.6354, 0.8368, 1.09, 1.405, 1.831, 2.366, 3.045, 3.895",\
                 "0.542, 0.5936, 0.7448, 0.968, 1.246, 1.579, 1.995, 2.527, 3.179, 3.992");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.004446, 0.01654, 0.03965, 0.07564, 0.1261, 0.1926, 0.2763, 0.3785, 0.5003");
          values("0.06363, 0.07182, 0.09884, 0.1484, 0.224, 0.3291, 0.4671, 0.6405, 0.852, 1.104",\
                 "0.06799, 0.07606, 0.103, 0.1526, 0.2282, 0.3333, 0.4712, 0.6447, 0.8561, 1.108",\
                 "0.08576, 0.09458, 0.1221, 0.1709, 0.2461, 0.3509, 0.4886, 0.6619, 0.8735, 1.125",\
                 "0.1011, 0.1128, 0.149, 0.2074, 0.285, 0.3886, 0.5253, 0.6979, 0.909, 1.161",\
                 "0.1074, 0.1224, 0.1682, 0.2409, 0.3358, 0.4506, 0.5871, 0.758, 0.9677, 1.218",\
                 "0.1046, 0.1221, 0.177, 0.2654, 0.3787, 0.514, 0.6703, 0.8467, 1.054, 1.303",\
                 "0.09153, 0.112, 0.176, 0.2785, 0.4114, 0.5683, 0.7475, 0.9486, 1.171, 1.419",\
                 "0.0689, 0.0919, 0.164, 0.2807, 0.4321, 0.6119, 0.8151, 1.041, 1.29, 1.563",\
                 "0.0362, 0.0616, 0.1412, 0.2708, 0.44, 0.6424, 0.8712, 1.124, 1.4, 1.7",\
                 "-0.0074, 0.0205, 0.1079, 0.2487, 0.4363, 0.6601, 0.9137, 1.194, 1.499, 1.826");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.004446, 0.01654, 0.03965, 0.07564, 0.1261, 0.1926, 0.2763, 0.3785, 0.5003");
          values("0.09754, 0.1129, 0.165, 0.2628, 0.4142, 0.6253, 0.9029, 1.253, 1.681, 2.19",\
                 "0.1009, 0.1162, 0.1687, 0.2674, 0.4189, 0.6306, 0.9083, 1.259, 1.687, 2.196",\
                 "0.1161, 0.1314, 0.1827, 0.2802, 0.4313, 0.6434, 0.9214, 1.272, 1.7, 2.208",\
                 "0.1456, 0.1622, 0.2157, 0.3118, 0.4596, 0.6689, 0.9454, 1.295, 1.721, 2.231",\
                 "0.1888, 0.2079, 0.2682, 0.3683, 0.5158, 0.7193, 0.991, 1.336, 1.76, 2.267",\
                 "0.2417, 0.2646, 0.3345, 0.4468, 0.5993, 0.8036, 1.069, 1.408, 1.827, 2.328",\
                 "0.3046, 0.3315, 0.4123, 0.539, 0.7065, 0.9163, 1.184, 1.515, 1.926, 2.422",\
                 "0.3764, 0.4072, 0.4999, 0.6427, 0.8289, 1.055, 1.328, 1.662, 2.066, 2.553",\
                 "0.4582, 0.4924, 0.5968, 0.7579, 0.9635, 1.21, 1.499, 1.84, 2.247, 2.727",\
                 "0.5499, 0.5883, 0.7042, 0.8826, 1.11, 1.379, 1.69, 2.047, 2.459, 2.944");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.004446, 0.01654, 0.03965, 0.07564, 0.1261, 0.1926, 0.2763, 0.3785, 0.5003");
          values("0.07229, 0.08498, 0.1286, 0.2091, 0.3341, 0.5088, 0.7387, 1.027, 1.379, 1.799",\
                 "0.07191, 0.08451, 0.1288, 0.2095, 0.3341, 0.5092, 0.7383, 1.027, 1.379, 1.799",\
                 "0.08822, 0.098, 0.1329, 0.2091, 0.3341, 0.5088, 0.738, 1.027, 1.379, 1.799",\
                 "0.1317, 0.1437, 0.1817, 0.2447, 0.3459, 0.5099, 0.7384, 1.027, 1.38, 1.799",\
                 "0.1904, 0.2057, 0.2501, 0.3222, 0.4212, 0.5533, 0.7509, 1.028, 1.379, 1.799",\
                 "0.264, 0.2822, 0.3368, 0.4191, 0.5284, 0.6674, 0.8392, 1.072, 1.39, 1.8",\
                 "0.3515, 0.3734, 0.44, 0.537, 0.6572, 0.808, 0.9896, 1.206, 1.48, 1.839",\
                 "0.4528, 0.48, 0.559, 0.6736, 0.8106, 0.9728, 1.168, 1.397, 1.663, 1.98",\
                 "0.5702, 0.6028, 0.6946, 0.8262, 0.9844, 1.164, 1.372, 1.611, 1.892, 2.212",\
                 "0.701, 0.7394, 0.8484, 0.9998, 1.177, 1.379, 1.604, 1.859, 2.149, 2.481");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.004446, 0.01654, 0.03965, 0.07564, 0.1261, 0.1926, 0.2763, 0.3785, 0.5003");
          values("0.1171, 0.1424, 0.2329, 0.4068, 0.6776, 1.057, 1.557, 2.185, 2.958, 3.867",\
                 "0.1176, 0.1428, 0.2329, 0.4067, 0.6778, 1.056, 1.557, 2.184, 2.959, 3.867",\
                 "0.1273, 0.1495, 0.2341, 0.4064, 0.6772, 1.056, 1.557, 2.187, 2.958, 3.869",\
                 "0.1581, 0.179, 0.2567, 0.4145, 0.6774, 1.056, 1.558, 2.19, 2.957, 3.876",\
                 "0.2143, 0.2352, 0.3056, 0.4506, 0.6936, 1.058, 1.555, 2.185, 2.953, 3.872",\
                 "0.2818, 0.3057, 0.3827, 0.5196, 0.7448, 1.085, 1.562, 2.185, 2.953, 3.87",\
                 "0.3582, 0.3846, 0.4722, 0.6212, 0.833, 1.151, 1.6, 2.199, 2.954, 3.869",\
                 "0.4432, 0.472, 0.5712, 0.7354, 0.9588, 1.261, 1.682, 2.248, 2.977, 3.871",\
                 "0.5356, 0.5684, 0.678, 0.8622, 1.106, 1.412, 1.811, 2.348, 3.04, 3.906",\
                 "0.6424, 0.6768, 0.7962, 0.9986, 1.265, 1.593, 1.987, 2.5, 3.156, 3.984");
        }
      }
    }
  }

