/*
 * 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_mcu9t5v0__nand2_2) {
    area : 25.401600 ;

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

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

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

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

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

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

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

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

      internal_power() {
        when : "!A2" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("0.1517, 0.1515, 0.1506, 0.15, 0.1499, 0.1497, 0.1499, 0.1498, \
                  0.1499, 0.1499");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("-0.08983, -0.08977, -0.08946, -0.08942, -0.08935, -0.08927, -0.08946, \
                  -0.08926, -0.08932, -0.08949");
        }
      }
    }

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

      internal_power() {
        when : "!A1" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("0.159, 0.1478, 0.1403, 0.1373, 0.1358, 0.1349, 0.1346, 0.134, \
                  0.1339, 0.1337");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("-0.1334, -0.1334, -0.1332, -0.1329, -0.1326, -0.1326, -0.1327, \
                  -0.1324, -0.1326, -0.1326");
        }
      }
    }

    pin(ZN) {
      direction : output ;
      function : "((!A1)|(!A2))" ;
      max_capacitance : 0.6206 ;
      max_transition : 3.6 ;
      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.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.001, 0.005277, 0.02029, 0.04896, 0.09362, 0.1563, 0.2387, 0.3426, 0.4695, 0.6206");
          values("0.003124, 0.005303, 0.00883, 0.01086, 0.0121, 0.01242, 0.01272, 0.01309, 0.01312, 0.01331",\
                 "0.003438, 0.005075, 0.008197, 0.01042, 0.01168, 0.01239, 0.01265, 0.01285, 0.01316, 0.01329",\
                 "0.03884, 0.03527, 0.02853, 0.02353, 0.02019, 0.01788, 0.01652, 0.0157, 0.01508, 0.01481",\
                 "0.1482, 0.1352, 0.1078, 0.08234, 0.06298, 0.04973, 0.04023, 0.03379, 0.02901, 0.02565",\
                 "0.3456, 0.3242, 0.2718, 0.2155, 0.1687, 0.133, 0.1061, 0.08609, 0.07107, 0.05978",\
                 "0.6374, 0.6095, 0.5345, 0.4432, 0.3596, 0.291, 0.2369, 0.194, 0.1605, 0.1343",\
                 "1.03, 0.9969, 0.9031, 0.7785, 0.6536, 0.5435, 0.4527, 0.3782, 0.3175, 0.2684",\
                 "1.529, 1.492, 1.383, 1.229, 1.062, 0.9067, 0.7716, 0.6566, 0.5603, 0.4803",\
                 "2.142, 2.101, 1.98, 1.801, 1.595, 1.391, 1.206, 1.044, 0.9046, 0.786",\
                 "2.875, 2.831, 2.699, 2.498, 2.258, 2.009, 1.771, 1.555, 1.366, 1.201");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.001, 0.005277, 0.02029, 0.04896, 0.09362, 0.1563, 0.2387, 0.3426, 0.4695, 0.6206");
          values("0.3339, 0.34, 0.3508, 0.3558, 0.3583, 0.3614, 0.3654, 0.3671, 0.372, 0.3754",\
                 "0.3372, 0.3407, 0.3485, 0.3558, 0.3587, 0.3619, 0.3648, 0.3688, 0.3764, 0.382",\
                 "0.3846, 0.3803, 0.3737, 0.3693, 0.3698, 0.3694, 0.3709, 0.3737, 0.3764, 0.3798",\
                 "0.5149, 0.5007, 0.4707, 0.4433, 0.4227, 0.4098, 0.4, 0.3974, 0.3946, 0.3974",\
                 "0.7403, 0.7183, 0.6619, 0.6032, 0.5523, 0.5117, 0.4831, 0.4645, 0.4529, 0.437",\
                 "1.066, 1.039, 0.9626, 0.8675, 0.7827, 0.7077, 0.6453, 0.5992, 0.5645, 0.5387",\
                 "1.5, 1.469, 1.377, 1.25, 1.123, 1.011, 0.9121, 0.828, 0.7587, 0.7043",\
                 "2.05, 2.017, 1.915, 1.761, 1.592, 1.434, 1.293, 1.17, 1.061, 0.971",\
                 "2.725, 2.688, 2.576, 2.403, 2.197, 1.992, 1.807, 1.637, 1.483, 1.347",\
                 "3.53, 3.491, 3.371, 3.182, 2.944, 2.69, 2.456, 2.239, 2.041, 1.857");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.001, 0.005277, 0.02029, 0.04896, 0.09362, 0.1563, 0.2387, 0.3426, 0.4695, 0.6206");
          values("0.001077, 0.004111, 0.008499, 0.01094, 0.01202, 0.0126, 0.01295, 0.01316, 0.0133, 0.01336",\
                 "-0.00322, -0.0003988, 0.004944, 0.008438, 0.01053, 0.01163, 0.01216, 0.0125, 0.01283, 0.01289",\
                 "0.02083, 0.0194, 0.01745, 0.01613, 0.01535, 0.01493, 0.01438, 0.01409, 0.01391, 0.0138",\
                 "0.1256, 0.1154, 0.09296, 0.0722, 0.05647, 0.0452, 0.03726, 0.03157, 0.02743, 0.02446",\
                 "0.3293, 0.3099, 0.2615, 0.2088, 0.1652, 0.1315, 0.106, 0.08667, 0.07193, 0.06075",\
                 "0.6367, 0.6099, 0.5372, 0.4478, 0.3661, 0.2987, 0.2449, 0.2023, 0.1686, 0.1417",\
                 "1.053, 1.02, 0.9277, 0.803, 0.6779, 0.5673, 0.4754, 0.3998, 0.3383, 0.2875",\
                 "1.584, 1.547, 1.438, 1.282, 1.114, 0.9554, 0.8164, 0.6991, 0.6003, 0.5175",\
                 "2.237, 2.197, 2.074, 1.891, 1.682, 1.473, 1.283, 1.116, 0.972, 0.8488",\
                 "3.019, 2.976, 2.841, 2.635, 2.389, 2.133, 1.888, 1.666, 1.469, 1.298");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.001, 0.005277, 0.02029, 0.04896, 0.09362, 0.1563, 0.2387, 0.3426, 0.4695, 0.6206");
          values("0.4877, 0.489, 0.4902, 0.492, 0.4941, 0.4964, 0.5006, 0.504, 0.5073, 0.5134",\
                 "0.4883, 0.4883, 0.4885, 0.4901, 0.4915, 0.4944, 0.4973, 0.5013, 0.5062, 0.5139",\
                 "0.536, 0.5302, 0.5182, 0.5105, 0.5037, 0.5015, 0.5033, 0.5057, 0.5095, 0.5128",\
                 "0.672, 0.6587, 0.6266, 0.5921, 0.5654, 0.5475, 0.5369, 0.531, 0.5293, 0.5282",\
                 "0.9126, 0.8919, 0.8366, 0.7718, 0.7116, 0.663, 0.6282, 0.6041, 0.5887, 0.5777",\
                 "1.264, 1.239, 1.166, 1.066, 0.9671, 0.8809, 0.8086, 0.7543, 0.7119, 0.6822",\
                 "1.732, 1.704, 1.62, 1.491, 1.351, 1.217, 1.103, 1.005, 0.9247, 0.8659",\
                 "2.327, 2.297, 2.202, 2.053, 1.873, 1.692, 1.529, 1.385, 1.26, 1.154",\
                 "3.057, 3.024, 2.92, 2.755, 2.544, 2.319, 2.101, 1.904, 1.727, 1.573",\
                 "3.93, 3.895, 3.784, 3.603, 3.367, 3.101, 2.831, 2.576, 2.343, 2.136");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.001, 0.005277, 0.02029, 0.04896, 0.09362, 0.1563, 0.2387, 0.3426, 0.4695, 0.6206");
          values("0.04241, 0.05443, 0.09582, 0.1738, 0.2951, 0.4644, 0.6873, 0.9688, 1.312, 1.72",\
                 "0.04518, 0.05711, 0.09835, 0.1763, 0.2972, 0.467, 0.6897, 0.9708, 1.315, 1.724",\
                 "0.05179, 0.0669, 0.1114, 0.1882, 0.3082, 0.4774, 0.6998, 0.9812, 1.323, 1.732",\
                 "0.05345, 0.07335, 0.1298, 0.2157, 0.3343, 0.5014, 0.7224, 1.002, 1.344, 1.753",\
                 "0.04742, 0.07238, 0.1421, 0.2454, 0.378, 0.5445, 0.7627, 1.04, 1.38, 1.787",\
                 "0.03271, 0.06225, 0.1456, 0.2678, 0.4215, 0.6057, 0.8256, 1.099, 1.436, 1.84",\
                 "0.00857, 0.04323, 0.1389, 0.2803, 0.4573, 0.6654, 0.9056, 1.184, 1.516, 1.916",\
                 "-0.0256, 0.0131, 0.122, 0.2819, 0.481, 0.716, 0.9821, 1.283, 1.624, 2.019",\
                 "-0.0707, -0.027, 0.0938, 0.2723, 0.4945, 0.7551, 1.05, 1.379, 1.745, 2.152",\
                 "-0.1272, -0.0789, 0.0553, 0.2509, 0.4954, 0.7816, 1.105, 1.465, 1.861, 2.295");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.001, 0.005277, 0.02029, 0.04896, 0.09362, 0.1563, 0.2387, 0.3426, 0.4695, 0.6206");
          values("0.04242, 0.05621, 0.1029, 0.1895, 0.3235, 0.5109, 0.7573, 1.068, 1.448, 1.899",\
                 "0.04842, 0.06176, 0.1079, 0.1947, 0.3287, 0.5162, 0.7625, 1.073, 1.452, 1.904",\
                 "0.07071, 0.08583, 0.1312, 0.216, 0.349, 0.5361, 0.7824, 1.093, 1.472, 1.924",\
                 "0.1022, 0.1224, 0.1787, 0.2648, 0.3942, 0.579, 0.823, 1.132, 1.51, 1.96",\
                 "0.1415, 0.1672, 0.2379, 0.3405, 0.4732, 0.653, 0.8934, 1.2, 1.575, 2.023",\
                 "0.1889, 0.2203, 0.3063, 0.4293, 0.5812, 0.7656, 1.001, 1.302, 1.674, 2.118",\
                 "0.2446, 0.282, 0.3836, 0.5278, 0.704, 0.9096, 1.151, 1.446, 1.812, 2.251",\
                 "0.3094, 0.353, 0.4703, 0.6366, 0.8378, 1.07, 1.333, 1.635, 1.995, 2.43",\
                 "0.3848, 0.4337, 0.5668, 0.7551, 0.9822, 1.243, 1.535, 1.86, 2.227, 2.655",\
                 "0.4703, 0.5248, 0.674, 0.885, 1.138, 1.428, 1.751, 2.106, 2.497, 2.933");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.001, 0.005277, 0.02029, 0.04896, 0.09362, 0.1563, 0.2387, 0.3426, 0.4695, 0.6206");
          values("0.04701, 0.06758, 0.1398, 0.2756, 0.4888, 0.7861, 1.177, 1.673, 2.281, 3.001",\
                 "0.04711, 0.06749, 0.1396, 0.2758, 0.488, 0.7871, 1.178, 1.673, 2.276, 2.996",\
                 "0.06488, 0.08414, 0.1448, 0.2759, 0.4879, 0.7855, 1.179, 1.673, 2.281, 2.996",\
                 "0.09866, 0.1206, 0.1843, 0.2962, 0.4896, 0.7862, 1.179, 1.673, 2.282, 2.994",\
                 "0.1453, 0.1729, 0.2471, 0.3617, 0.5325, 0.7957, 1.179, 1.672, 2.276, 2.996",\
                 "0.204, 0.2384, 0.3288, 0.4564, 0.6273, 0.8644, 1.205, 1.673, 2.274, 2.992",\
                 "0.2738, 0.3161, 0.4234, 0.5718, 0.7568, 0.991, 1.302, 1.724, 2.288, 2.994",\
                 "0.3534, 0.4036, 0.5338, 0.7052, 0.9094, 1.156, 1.462, 1.852, 2.362, 3.021",\
                 "0.4476, 0.5036, 0.6518, 0.8484, 1.082, 1.348, 1.665, 2.048, 2.524, 3.125",\
                 "0.5522, 0.6186, 0.7846, 1.012, 1.272, 1.57, 1.9, 2.29, 2.759, 3.325");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.001, 0.005277, 0.02029, 0.04896, 0.09362, 0.1563, 0.2387, 0.3426, 0.4695, 0.6206");
          values("0.05168, 0.07516, 0.1573, 0.3145, 0.5592, 0.9016, 1.354, 1.923, 2.616, 3.442",\
                 "0.05174, 0.07507, 0.1572, 0.3156, 0.5589, 0.902, 1.354, 1.929, 2.625, 3.455",\
                 "0.07024, 0.08856, 0.1587, 0.3143, 0.5585, 0.9064, 1.353, 1.922, 2.615, 3.444",\
                 "0.1061, 0.1285, 0.1937, 0.3223, 0.5585, 0.9023, 1.357, 1.924, 2.616, 3.447",\
                 "0.1524, 0.1812, 0.2592, 0.3784, 0.5778, 0.9043, 1.353, 1.922, 2.623, 3.446",\
                 "0.2072, 0.2445, 0.3398, 0.4736, 0.6559, 0.937, 1.357, 1.922, 2.62, 3.455",\
                 "0.272, 0.3172, 0.4324, 0.5904, 0.7836, 1.038, 1.409, 1.931, 2.62, 3.443",\
                 "0.344, 0.3964, 0.5342, 0.7196, 0.9382, 1.198, 1.534, 2.003, 2.638, 3.443",\
                 "0.4258, 0.4858, 0.645, 0.8626, 1.112, 1.393, 1.728, 2.155, 2.731, 3.483",\
                 "0.5184, 0.5862, 0.7692, 1.015, 1.297, 1.61, 1.962, 2.381, 2.907, 3.595");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.001, 0.005277, 0.02029, 0.04896, 0.09362, 0.1563, 0.2387, 0.3426, 0.4695, 0.6206");
          values("0.0534, 0.0656, 0.107, 0.1852, 0.306, 0.4756, 0.699, 0.9801, 1.323, 1.731",\
                 "0.05431, 0.06645, 0.108, 0.1863, 0.3074, 0.4775, 0.7002, 0.9809, 1.324, 1.734",\
                 "0.05499, 0.06868, 0.1119, 0.1893, 0.3101, 0.4794, 0.7025, 0.9829, 1.325, 1.734",\
                 "0.04943, 0.06672, 0.1174, 0.1991, 0.3185, 0.486, 0.7078, 0.988, 1.33, 1.738",\
                 "0.0329, 0.054, 0.1156, 0.2095, 0.3357, 0.5026, 0.7216, 0.9994, 1.34, 1.747",\
                 "0.0038, 0.02866, 0.1012, 0.2108, 0.3519, 0.5277, 0.7472, 1.021, 1.359, 1.763",\
                 "-0.03933, -0.01081, 0.0724, 0.1982, 0.3579, 0.5505, 0.7805, 1.057, 1.391, 1.792",\
                 "-0.098, -0.0659, 0.028, 0.1701, 0.3491, 0.5621, 0.8103, 1.099, 1.437, 1.834",\
                 "-0.1733, -0.1378, -0.0331, 0.1245, 0.3237, 0.5589, 0.8287, 1.137, 1.488, 1.89",\
                 "-0.266, -0.2271, -0.1124, 0.0617, 0.28, 0.5382, 0.8321, 1.163, 1.534, 1.951");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.001, 0.005277, 0.02029, 0.04896, 0.09362, 0.1563, 0.2387, 0.3426, 0.4695, 0.6206");
          values("0.0596, 0.07303, 0.1188, 0.2051, 0.3388, 0.5261, 0.7716, 1.082, 1.461, 1.913",\
                 "0.06497, 0.07819, 0.1239, 0.21, 0.3436, 0.5305, 0.7771, 1.088, 1.466, 1.917",\
                 "0.09134, 0.1043, 0.1479, 0.2318, 0.3643, 0.5509, 0.7959, 1.106, 1.485, 1.937",\
                 "0.1352, 0.1515, 0.2005, 0.2825, 0.4112, 0.594, 0.838, 1.146, 1.523, 1.974",\
                 "0.192, 0.2123, 0.2721, 0.3653, 0.4928, 0.6707, 0.9099, 1.214, 1.59, 2.038",\
                 "0.2627, 0.287, 0.3585, 0.4677, 0.6095, 0.788, 1.021, 1.32, 1.689, 2.134",\
                 "0.348, 0.376, 0.4599, 0.5864, 0.7479, 0.942, 1.177, 1.468, 1.832, 2.271",\
                 "0.4483, 0.4814, 0.5772, 0.7217, 0.9044, 1.12, 1.371, 1.666, 2.021, 2.453",\
                 "0.5656, 0.6028, 0.7114, 0.8739, 1.078, 1.318, 1.592, 1.904, 2.263, 2.686",\
                 "0.7005, 0.7418, 0.8633, 1.044, 1.27, 1.535, 1.836, 2.171, 2.548, 2.974");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.001, 0.005277, 0.02029, 0.04896, 0.09362, 0.1563, 0.2387, 0.3426, 0.4695, 0.6206");
          values("0.04717, 0.06765, 0.1394, 0.2762, 0.4876, 0.7871, 1.178, 1.673, 2.282, 2.994",\
                 "0.04761, 0.0677, 0.1394, 0.2756, 0.4878, 0.7871, 1.179, 1.673, 2.276, 2.996",\
                 "0.06324, 0.08042, 0.1435, 0.2754, 0.4879, 0.7852, 1.178, 1.675, 2.275, 2.999",\
                 "0.1004, 0.1169, 0.1741, 0.29, 0.49, 0.7872, 1.177, 1.677, 2.279, 2.992",\
                 "0.1531, 0.1721, 0.2329, 0.3414, 0.519, 0.7953, 1.179, 1.672, 2.281, 2.999",\
                 "0.2178, 0.2407, 0.3096, 0.4243, 0.5926, 0.8408, 1.197, 1.675, 2.275, 2.995",\
                 "0.2933, 0.3205, 0.4014, 0.5265, 0.7028, 0.9384, 1.265, 1.71, 2.288, 2.999",\
                 "0.3786, 0.4116, 0.5062, 0.6488, 0.8342, 1.075, 1.387, 1.798, 2.337, 3.016",\
                 "0.4736, 0.5132, 0.6238, 0.785, 0.9874, 1.241, 1.554, 1.947, 2.45, 3.086",\
                 "0.5792, 0.6236, 0.7532, 0.9364, 1.16, 1.428, 1.753, 2.145, 2.626, 3.227");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.001, 0.005277, 0.02029, 0.04896, 0.09362, 0.1563, 0.2387, 0.3426, 0.4695, 0.6206");
          values("0.08588, 0.1095, 0.1917, 0.3491, 0.594, 0.9386, 1.389, 1.959, 2.65, 3.48",\
                 "0.08575, 0.1093, 0.1917, 0.3491, 0.5944, 0.9373, 1.387, 1.956, 2.653, 3.49",\
                 "0.09752, 0.1163, 0.1922, 0.3502, 0.5936, 0.937, 1.388, 1.958, 2.649, 3.477",\
                 "0.1375, 0.1568, 0.2195, 0.3542, 0.5934, 0.9371, 1.389, 1.962, 2.66, 3.48",\
                 "0.1902, 0.2145, 0.2853, 0.4034, 0.6082, 0.9384, 1.388, 1.956, 2.658, 3.489",\
                 "0.2536, 0.285, 0.37, 0.4966, 0.6786, 0.9662, 1.391, 1.955, 2.65, 3.48",\
                 "0.326, 0.3634, 0.4674, 0.6148, 0.8034, 1.058, 1.436, 1.968, 2.653, 3.477",\
                 "0.4104, 0.4548, 0.5786, 0.7478, 0.9556, 1.21, 1.551, 2.028, 2.668, 3.478",\
                 "0.5018, 0.5544, 0.696, 0.8956, 1.13, 1.401, 1.734, 2.166, 2.752, 3.511",\
                 "0.6042, 0.6656, 0.8282, 1.056, 1.321, 1.62, 1.963, 2.381, 2.914, 3.614");
        }
      }
    }
  }

