/*
 * 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__nand2_2) {
    area : 19.756800 ;

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

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

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

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

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

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

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

    pin(A1) {
      capacitance : 0.009163 ;
      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.08295, 0.08267, 0.08225, 0.08197, 0.08169, 0.08162, 0.08167, \
                 0.08162, 0.08163, 0.08162");
        }

        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.05239, -0.05232, -0.05226, -0.05215, -0.05216, -0.05223, -0.05236, \
                 -0.05234, -0.05222, -0.05228");
        }
      }
    }

    pin(A2) {
      capacitance : 0.009551 ;
      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.08161, 0.07735, 0.07429, 0.0731, 0.07277, 0.07265, 0.07266, \
                 0.07266, 0.07261, 0.07265");
        }

        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.07327, -0.07309, -0.07288, -0.07265, -0.07251, -0.07247, -0.07263, \
                 -0.07254, -0.07251, -0.07243");
        }
      }
    }

    pin(ZN) {
      direction : output ;
      function : "((!A1)|(!A2))" ;
      max_capacitance : 0.4248 ;
      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.003925, 0.01419, 0.0338, 0.06435, 0.1072, 0.1636, 0.2347, 0.3214, 0.4248");
          values("0.004021, 0.005262, 0.006921, 0.008045, 0.008581, 0.008799, 0.008959, 0.009045, 0.009143, 0.009206",\
                 "0.002374, 0.003401, 0.005632, 0.00714, 0.007962, 0.008478, 0.008693, 0.00886, 0.009035, 0.009123",\
                 "0.01271, 0.01191, 0.01078, 0.01018, 0.009923, 0.009643, 0.009611, 0.009543, 0.009463, 0.009411",\
                 "0.05207, 0.0478, 0.03858, 0.03032, 0.02427, 0.02003, 0.01724, 0.01526, 0.01386, 0.01286",\
                 "0.128, 0.1198, 0.09995, 0.07917, 0.06251, 0.04969, 0.04036, 0.03344, 0.02834, 0.02448",\
                 "0.2429, 0.2316, 0.2012, 0.1653, 0.1335, 0.108, 0.08792, 0.07232, 0.06028, 0.0509",\
                 "0.3993, 0.385, 0.3455, 0.2942, 0.2452, 0.203, 0.1682, 0.1401, 0.1176, 0.09944",\
                 "0.5992, 0.5828, 0.5357, 0.4705, 0.4028, 0.3411, 0.2884, 0.2444, 0.2077, 0.1773",\
                 "0.8452, 0.8272, 0.7735, 0.696, 0.6099, 0.5278, 0.4545, 0.3911, 0.3373, 0.2916",\
                 "1.14, 1.12, 1.061, 0.9728, 0.8704, 0.7665, 0.671, 0.5854, 0.5117, 0.4477");
        }

        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.003925, 0.01419, 0.0338, 0.06435, 0.1072, 0.1636, 0.2347, 0.3214, 0.4248");
          values("0.2028, 0.2058, 0.2103, 0.2128, 0.2151, 0.217, 0.2189, 0.2205, 0.2216, 0.225",\
                 "0.2016, 0.2036, 0.208, 0.2119, 0.2148, 0.2164, 0.2189, 0.222, 0.2246, 0.226",\
                 "0.2168, 0.216, 0.2146, 0.2153, 0.2158, 0.2179, 0.2198, 0.222, 0.2241, 0.227",\
                 "0.2657, 0.2604, 0.2501, 0.2401, 0.2332, 0.2304, 0.2294, 0.2285, 0.2276, 0.2325",\
                 "0.3541, 0.345, 0.3227, 0.3013, 0.281, 0.2666, 0.2566, 0.252, 0.2471, 0.2455",\
                 "0.4841, 0.4723, 0.4402, 0.4027, 0.3696, 0.3392, 0.3161, 0.3015, 0.2876, 0.279",\
                 "0.658, 0.6445, 0.6046, 0.5529, 0.5016, 0.4565, 0.4168, 0.384, 0.3581, 0.338",\
                 "0.8795, 0.8643, 0.8192, 0.753, 0.6839, 0.6205, 0.5639, 0.5145, 0.4706, 0.439",\
                 "1.151, 1.135, 1.084, 1.008, 0.9209, 0.8365, 0.7614, 0.695, 0.6341, 0.5805",\
                 "1.476, 1.459, 1.404, 1.319, 1.217, 1.112, 1.014, 0.9275, 0.8476, 0.7745");
        }
      }

      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.003925, 0.01419, 0.0338, 0.06435, 0.1072, 0.1636, 0.2347, 0.3214, 0.4248");
          values("0.00392, 0.005173, 0.007033, 0.008022, 0.008577, 0.008839, 0.00896, 0.009008, 0.009096, 0.009146",\
                 "0.0002389, 0.001842, 0.004735, 0.006758, 0.007764, 0.008287, 0.008662, 0.008843, 0.008979, 0.00906",\
                 "0.004988, 0.005338, 0.006166, 0.00732, 0.008048, 0.008505, 0.008766, 0.008909, 0.009013, 0.009093",\
                 "0.04121, 0.03793, 0.03118, 0.02508, 0.02073, 0.01766, 0.0155, 0.01406, 0.01296, 0.01216",\
                 "0.118, 0.1105, 0.09256, 0.07409, 0.05916, 0.04771, 0.03912, 0.03272, 0.02794, 0.02431",\
                 "0.2373, 0.2262, 0.1971, 0.1628, 0.1327, 0.1081, 0.08879, 0.07359, 0.06172, 0.0524",\
                 "0.4011, 0.3873, 0.3483, 0.298, 0.2493, 0.2076, 0.1733, 0.1455, 0.1229, 0.1044",\
                 "0.6115, 0.5955, 0.5484, 0.4831, 0.4147, 0.3533, 0.3004, 0.2561, 0.2191, 0.1882",\
                 "0.8713, 0.8532, 0.7992, 0.7207, 0.6336, 0.5504, 0.4761, 0.4118, 0.357, 0.3105",\
                 "1.182, 1.163, 1.103, 1.013, 0.9081, 0.8031, 0.7057, 0.6189, 0.5431, 0.4776");
        }

        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.003925, 0.01419, 0.0338, 0.06435, 0.1072, 0.1636, 0.2347, 0.3214, 0.4248");
          values("0.278, 0.2786, 0.2798, 0.2811, 0.2821, 0.2831, 0.2854, 0.2887, 0.2913, 0.2986",\
                 "0.2765, 0.2767, 0.2776, 0.2797, 0.2804, 0.2815, 0.2855, 0.2877, 0.2923, 0.2971",\
                 "0.2919, 0.29, 0.2866, 0.285, 0.2845, 0.2848, 0.2864, 0.2882, 0.2918, 0.2946",\
                 "0.3422, 0.3373, 0.3256, 0.3135, 0.3046, 0.2991, 0.2975, 0.2962, 0.2988, 0.2991",\
                 "0.4355, 0.4271, 0.4053, 0.3801, 0.3577, 0.3404, 0.3293, 0.3222, 0.3188, 0.3176",\
                 "0.5735, 0.5628, 0.5324, 0.4923, 0.4536, 0.4209, 0.3935, 0.3752, 0.3628, 0.3526",\
                 "0.7587, 0.7467, 0.7095, 0.6554, 0.599, 0.5477, 0.5042, 0.4677, 0.4383, 0.4191",\
                 "0.9945, 0.9812, 0.9394, 0.875, 0.8, 0.7283, 0.6648, 0.6092, 0.5618, 0.5236",\
                 "1.284, 1.269, 1.223, 1.152, 1.061, 0.9677, 0.8818, 0.8032, 0.7363, 0.6786",\
                 "1.631, 1.615, 1.565, 1.486, 1.384, 1.271, 1.161, 1.062, 0.9698, 0.8906");
        }
      }

      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.003925, 0.01419, 0.0338, 0.06435, 0.1072, 0.1636, 0.2347, 0.3214, 0.4248");
          values("0.05141, 0.06454, 0.1098, 0.1954, 0.3288, 0.5147, 0.76, 1.069, 1.445, 1.895",\
                 "0.05505, 0.06821, 0.1136, 0.1994, 0.3323, 0.5187, 0.7638, 1.073, 1.45, 1.899",\
                 "0.06617, 0.0823, 0.1305, 0.2156, 0.348, 0.5342, 0.7791, 1.088, 1.465, 1.914",\
                 "0.0739, 0.09493, 0.1558, 0.2507, 0.3819, 0.5666, 0.811, 1.119, 1.495, 1.944",\
                 "0.074, 0.1006, 0.1763, 0.2898, 0.4376, 0.6219, 0.864, 1.17, 1.545, 1.993",\
                 "0.06503, 0.09745, 0.1883, 0.3234, 0.4938, 0.6999, 0.9434, 1.246, 1.619, 2.065",\
                 "0.04705, 0.08423, 0.1908, 0.3479, 0.5432, 0.7753, 1.045, 1.353, 1.722, 2.165",\
                 "0.0179, 0.061, 0.183, 0.3616, 0.5843, 0.844, 1.142, 1.479, 1.857, 2.296",\
                 "-0.0233, 0.0265, 0.1633, 0.3631, 0.613, 0.9031, 1.231, 1.6, 2.01, 2.463",\
                 "-0.0753, -0.0208, 0.1317, 0.3544, 0.63, 0.9509, 1.312, 1.712, 2.155, 2.643");
        }

        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.003925, 0.01419, 0.0338, 0.06435, 0.1072, 0.1636, 0.2347, 0.3214, 0.4248");
          values("0.05358, 0.06936, 0.1228, 0.2227, 0.3766, 0.5933, 0.8772, 1.236, 1.673, 2.191",\
                 "0.05985, 0.0754, 0.1289, 0.2288, 0.3831, 0.5992, 0.8844, 1.243, 1.68, 2.199",\
                 "0.08575, 0.1025, 0.1547, 0.2536, 0.4079, 0.6239, 0.9071, 1.266, 1.703, 2.223",\
                 "0.1243, 0.1457, 0.2084, 0.308, 0.4593, 0.6735, 0.9565, 1.313, 1.751, 2.271",\
                 "0.1721, 0.1996, 0.2769, 0.393, 0.5475, 0.7575, 1.037, 1.392, 1.827, 2.344",\
                 "0.2288, 0.2626, 0.3566, 0.4938, 0.6687, 0.8836, 1.158, 1.509, 1.94, 2.457",\
                 "0.2948, 0.3351, 0.4468, 0.6075, 0.8063, 1.045, 1.326, 1.67, 2.097, 2.608",\
                 "0.3713, 0.4175, 0.5476, 0.7327, 0.9592, 1.223, 1.531, 1.883, 2.304, 2.809",\
                 "0.4581, 0.5115, 0.659, 0.8696, 1.125, 1.42, 1.753, 2.135, 2.563, 3.063",\
                 "0.5561, 0.6163, 0.7821, 1.018, 1.304, 1.632, 1.997, 2.406, 2.865, 3.373");
        }

        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.003925, 0.01419, 0.0338, 0.06435, 0.1072, 0.1636, 0.2347, 0.3214, 0.4248");
          values("0.05711, 0.07922, 0.1554, 0.3007, 0.529, 0.8456, 1.263, 1.791, 2.433, 3.199",\
                 "0.05708, 0.07905, 0.1556, 0.3021, 0.5276, 0.8452, 1.263, 1.791, 2.433, 3.203",\
                 "0.07518, 0.09554, 0.1597, 0.3014, 0.5278, 0.8458, 1.263, 1.791, 2.433, 3.199",\
                 "0.1087, 0.1315, 0.2007, 0.3205, 0.5286, 0.846, 1.265, 1.79, 2.434, 3.2",\
                 "0.156, 0.1835, 0.2616, 0.3879, 0.5721, 0.8533, 1.264, 1.793, 2.434, 3.2",\
                 "0.2119, 0.2464, 0.3401, 0.4777, 0.6696, 0.9254, 1.288, 1.791, 2.434, 3.203",\
                 "0.2782, 0.3193, 0.431, 0.5886, 0.7914, 1.056, 1.39, 1.841, 2.442, 3.205",\
                 "0.3506, 0.4016, 0.5322, 0.7158, 0.9374, 1.212, 1.556, 1.978, 2.52, 3.223",\
                 "0.4328, 0.489, 0.6438, 0.8566, 1.104, 1.398, 1.75, 2.179, 2.692, 3.336",\
                 "0.5234, 0.5896, 0.7638, 1.004, 1.288, 1.605, 1.974, 2.412, 2.936, 3.545");
        }

        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.003925, 0.01419, 0.0338, 0.06435, 0.1072, 0.1636, 0.2347, 0.3214, 0.4248");
          values("0.06692, 0.0932, 0.185, 0.3602, 0.6346, 1.016, 1.52, 2.157, 2.934, 3.854",\
                 "0.06697, 0.09304, 0.1847, 0.3603, 0.6327, 1.016, 1.522, 2.155, 2.93, 3.854",\
                 "0.0834, 0.1038, 0.1852, 0.3613, 0.6329, 1.016, 1.52, 2.155, 2.933, 3.854",\
                 "0.1185, 0.142, 0.2175, 0.3657, 0.6326, 1.016, 1.52, 2.155, 2.932, 3.853",\
                 "0.1653, 0.1948, 0.2781, 0.4195, 0.6488, 1.019, 1.52, 2.154, 2.93, 3.856",\
                 "0.2217, 0.257, 0.3562, 0.5081, 0.7248, 1.046, 1.521, 2.158, 2.93, 3.852",\
                 "0.2822, 0.3282, 0.446, 0.6182, 0.8444, 1.145, 1.571, 2.159, 2.938, 3.852",\
                 "0.3504, 0.404, 0.5466, 0.7436, 0.9844, 1.294, 1.692, 2.231, 2.95, 3.852",\
                 "0.4276, 0.4886, 0.654, 0.88, 1.15, 1.472, 1.875, 2.377, 3.032, 3.882",\
                 "0.5112, 0.579, 0.7684, 1.029, 1.33, 1.675, 2.086, 2.591, 3.205, 3.996");
        }
      }

      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.003925, 0.01419, 0.0338, 0.06435, 0.1072, 0.1636, 0.2347, 0.3214, 0.4248");
          values("0.0628, 0.07597, 0.1213, 0.2068, 0.3397, 0.5261, 0.7711, 1.08, 1.457, 1.906",\
                 "0.06488, 0.07818, 0.124, 0.2097, 0.3427, 0.5292, 0.7745, 1.083, 1.46, 1.909",\
                 "0.06918, 0.08395, 0.1313, 0.2169, 0.3499, 0.5363, 0.7816, 1.09, 1.467, 1.917",\
                 "0.06973, 0.08824, 0.1429, 0.2334, 0.3657, 0.551, 0.7954, 1.103, 1.48, 1.929",\
                 "0.06034, 0.08355, 0.1508, 0.2532, 0.393, 0.5785, 0.8209, 1.128, 1.503, 1.951",\
                 "0.03884, 0.06685, 0.1472, 0.2681, 0.4224, 0.6173, 0.8617, 1.166, 1.539, 1.986",\
                 "0.00435, 0.03677, 0.1308, 0.2706, 0.4465, 0.6573, 0.9127, 1.221, 1.591, 2.035",\
                 "-0.0452, -0.0079, 0.0992, 0.259, 0.458, 0.6923, 0.9642, 1.285, 1.662, 2.103",\
                 "-0.1107, -0.069, 0.0519, 0.2316, 0.4548, 0.715, 1.011, 1.349, 1.739, 2.189",\
                 "-0.1936, -0.1473, -0.0128, 0.1867, 0.4344, 0.7223, 1.046, 1.409, 1.817, 2.28");
        }

        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.003925, 0.01419, 0.0338, 0.06435, 0.1072, 0.1636, 0.2347, 0.3214, 0.4248");
          values("0.07184, 0.08711, 0.1398, 0.2392, 0.3933, 0.6085, 0.892, 1.25, 1.688, 2.208",\
                 "0.07794, 0.09309, 0.1458, 0.245, 0.3988, 0.6142, 0.8988, 1.257, 1.694, 2.214",\
                 "0.1068, 0.1217, 0.1726, 0.2709, 0.4239, 0.6392, 0.9233, 1.28, 1.717, 2.237",\
                 "0.1556, 0.1738, 0.2305, 0.3267, 0.477, 0.69, 0.9718, 1.329, 1.765, 2.285",\
                 "0.2186, 0.241, 0.3086, 0.4172, 0.5672, 0.7759, 1.054, 1.408, 1.842, 2.361",\
                 "0.2952, 0.3221, 0.403, 0.5279, 0.6947, 0.9048, 1.178, 1.527, 1.957, 2.472",\
                 "0.386, 0.4181, 0.5125, 0.6571, 0.8433, 1.073, 1.349, 1.691, 2.116, 2.626",\
                 "0.4928, 0.5296, 0.6387, 0.8038, 1.013, 1.264, 1.562, 1.909, 2.326, 2.831",\
                 "0.6147, 0.657, 0.7808, 0.9669, 1.202, 1.478, 1.799, 2.169, 2.591, 3.089",\
                 "0.7545, 0.8017, 0.9409, 1.149, 1.409, 1.714, 2.06, 2.456, 2.904, 3.406");
        }

        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.003925, 0.01419, 0.0338, 0.06435, 0.1072, 0.1636, 0.2347, 0.3214, 0.4248");
          values("0.05725, 0.07916, 0.1556, 0.3009, 0.5276, 0.8454, 1.263, 1.792, 2.434, 3.199",\
                 "0.05738, 0.07908, 0.1557, 0.3009, 0.5278, 0.8453, 1.263, 1.791, 2.433, 3.199",\
                 "0.0711, 0.0903, 0.1586, 0.301, 0.5277, 0.8459, 1.264, 1.791, 2.434, 3.199",\
                 "0.1061, 0.1238, 0.1863, 0.3137, 0.5291, 0.8453, 1.264, 1.791, 2.435, 3.201",\
                 "0.1569, 0.1773, 0.2411, 0.3597, 0.556, 0.8527, 1.263, 1.791, 2.434, 3.201",\
                 "0.2184, 0.2424, 0.3156, 0.4367, 0.6207, 0.896, 1.283, 1.792, 2.435, 3.203",\
                 "0.288, 0.3163, 0.4028, 0.5366, 0.722, 0.982, 1.344, 1.826, 2.444, 3.203",\
                 "0.3664, 0.3994, 0.5004, 0.6512, 0.85, 1.106, 1.451, 1.908, 2.493, 3.224",\
                 "0.4524, 0.4928, 0.6078, 0.7808, 0.9972, 1.266, 1.601, 2.038, 2.596, 3.29",\
                 "0.5462, 0.593, 0.7258, 0.9204, 1.159, 1.446, 1.79, 2.216, 2.752, 3.416");
        }

        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.003925, 0.01419, 0.0338, 0.06435, 0.1072, 0.1636, 0.2347, 0.3214, 0.4248");
          values("0.0998, 0.1264, 0.2189, 0.3947, 0.6684, 1.051, 1.553, 2.189, 2.963, 3.884",\
                 "0.09985, 0.1263, 0.2185, 0.3952, 0.6671, 1.05, 1.555, 2.189, 2.962, 3.886",\
                 "0.1087, 0.1314, 0.2186, 0.3946, 0.6683, 1.051, 1.554, 2.189, 2.964, 3.888",\
                 "0.1458, 0.1684, 0.2434, 0.3981, 0.6677, 1.051, 1.553, 2.19, 2.963, 3.886",\
                 "0.1957, 0.2222, 0.3032, 0.4451, 0.6799, 1.051, 1.554, 2.188, 2.962, 3.885",\
                 "0.2543, 0.2866, 0.3817, 0.5298, 0.7492, 1.077, 1.555, 2.187, 2.961, 3.885",\
                 "0.321, 0.3604, 0.472, 0.636, 0.8618, 1.168, 1.598, 2.193, 2.962, 3.884",\
                 "0.3948, 0.4424, 0.5728, 0.7592, 0.9988, 1.311, 1.714, 2.255, 2.974, 3.882",\
                 "0.4774, 0.5306, 0.683, 0.8972, 1.161, 1.481, 1.888, 2.394, 3.057, 3.906",\
                 "0.5622, 0.6278, 0.8012, 1.043, 1.336, 1.675, 2.09, 2.6, 3.222, 4.014");
        }
      }
    }
  }

