/*
 * 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.00038064" ;
    }

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

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

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

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

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

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

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

      internal_power() {
        when : "!A2" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          values("0.02843, 0.02839, 0.02823, 0.02818, 0.02815, 0.02814, 0.02816, \
                  0.02815, 0.02817, 0.02813");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          values("-0.01847, -0.01846, -0.01843, -0.01843, -0.0185, -0.01854, -0.01858, \
                  -0.01863, -0.01876, -0.01904");
        }
      }
    }

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

      internal_power() {
        when : "!A1" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          values("0.02825, 0.02584, 0.025, 0.02483, 0.02481, 0.02478, 0.02477, 0.02477, \
                  0.02477, 0.02476");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          values("-0.02488, -0.02488, -0.02481, -0.02474, -0.02477, -0.02474, -0.02472, \
                  -0.02469, -0.0247, -0.02471");
        }
      }
    }

    pin(ZN) {
      direction : output ;
      function : "((!A1)|(!A2))" ;
      max_capacitance : 0.6368 ;
      max_transition : 15.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.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.005388, 0.02079, 0.05021, 0.09604, 0.1603, 0.245, 0.3516, 0.4817, 0.6368");
          values("0.00557, 0.005784, 0.006037, 0.006121, 0.006154, 0.006194, 0.006214, 0.006215, 0.00621, 0.00609",\
                 "0.003827, 0.004431, 0.005268, 0.00571, 0.005941, 0.006045, 0.006114, 0.006135, 0.006153, 0.006039",\
                 "0.003867, 0.004121, 0.004787, 0.005392, 0.005711, 0.005892, 0.005992, 0.006074, 0.006079, 0.005977",\
                 "0.01092, 0.009936, 0.008397, 0.007493, 0.007028, 0.006753, 0.006577, 0.006479, 0.006407, 0.006201",\
                 "0.02632, 0.02385, 0.01893, 0.01492, 0.01226, 0.0105, 0.00934, 0.008556, 0.007978, 0.007383",\
                 "0.05057, 0.04677, 0.0381, 0.02989, 0.02358, 0.01914, 0.01596, 0.01369, 0.012, 0.01051",\
                 "0.08419, 0.0792, 0.06688, 0.05371, 0.04283, 0.0344, 0.0282, 0.02351, 0.01988, 0.01683",\
                 "0.1277, 0.1216, 0.106, 0.08762, 0.07137, 0.05825, 0.04778, 0.03961, 0.03317, 0.02766",\
                 "0.1814, 0.1745, 0.1559, 0.1326, 0.1103, 0.09152, 0.07616, 0.06353, 0.05318, 0.04398",\
                 "0.2459, 0.2383, 0.2171, 0.1891, 0.1608, 0.1359, 0.1144, 0.09647, 0.08074, 0.06673");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.005388, 0.02079, 0.05021, 0.09604, 0.1603, 0.245, 0.3516, 0.4817, 0.6368");
          values("0.07535, 0.07616, 0.07685, 0.07758, 0.07816, 0.07839, 0.07937, 0.08231, 0.1133, 0.2819",\
                 "0.07259, 0.07398, 0.07599, 0.07737, 0.07852, 0.07911, 0.08066, 0.08492, 0.1156, 0.2844",\
                 "0.07343, 0.07361, 0.07462, 0.0762, 0.07762, 0.07923, 0.08071, 0.08345, 0.1206, 0.2962",\
                 "0.08284, 0.08141, 0.07943, 0.07836, 0.0787, 0.07956, 0.08053, 0.08483, 0.128, 0.3229",\
                 "0.101, 0.09821, 0.09228, 0.08796, 0.08473, 0.08361, 0.08371, 0.08871, 0.1439, 0.3792",\
                 "0.1286, 0.1245, 0.1151, 0.1057, 0.09916, 0.09372, 0.09117, 0.09821, 0.1746, 0.4677",\
                 "0.166, 0.1609, 0.1482, 0.1339, 0.1222, 0.1133, 0.1066, 0.119, 0.2358, 0.6192",\
                 "0.2143, 0.208, 0.1922, 0.1736, 0.1558, 0.1421, 0.1332, 0.1631, 0.3623, 0.8649",\
                 "0.2738, 0.2667, 0.248, 0.2246, 0.2011, 0.1815, 0.1781, 0.2686, 0.6167, 1.214",\
                 "0.3453, 0.3374, 0.3162, 0.2879, 0.2592, 0.2363, 0.2779, 0.5443, 1.033, 1.538");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.005388, 0.02079, 0.05021, 0.09604, 0.1603, 0.245, 0.3516, 0.4817, 0.6368");
          values("0.005709, 0.005878, 0.006041, 0.006136, 0.006181, 0.006185, 0.006196, 0.006213, 0.006205, 0.006077",\
                 "0.003793, 0.004457, 0.005333, 0.005763, 0.005955, 0.00606, 0.006104, 0.006139, 0.006132, 0.006038",\
                 "0.002394, 0.002963, 0.004156, 0.004987, 0.005482, 0.005751, 0.005916, 0.006003, 0.006042, 0.005956",\
                 "0.007586, 0.007153, 0.006607, 0.006456, 0.006412, 0.006345, 0.006319, 0.006291, 0.006255, 0.006096",\
                 "0.02185, 0.0199, 0.01624, 0.01325, 0.01125, 0.009873, 0.008949, 0.008264, 0.007781, 0.00725",\
                 "0.04593, 0.04248, 0.0349, 0.02781, 0.02238, 0.01841, 0.01556, 0.01348, 0.01189, 0.0105",\
                 "0.08021, 0.07541, 0.06383, 0.05168, 0.04169, 0.03396, 0.02814, 0.02366, 0.02019, 0.01722",\
                 "0.1249, 0.1189, 0.1038, 0.08614, 0.07068, 0.05815, 0.04819, 0.04035, 0.03414, 0.02864",\
                 "0.1803, 0.1734, 0.1551, 0.1323, 0.1106, 0.09236, 0.07752, 0.06526, 0.05503, 0.0462",\
                 "0.247, 0.2393, 0.2183, 0.1906, 0.1626, 0.1379, 0.1171, 0.09956, 0.08435, 0.07076");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.005388, 0.02079, 0.05021, 0.09604, 0.1603, 0.245, 0.3516, 0.4817, 0.6368");
          values("0.1007, 0.1008, 0.1011, 0.1014, 0.1019, 0.1029, 0.104, 0.1072, 0.1405, 0.3052",\
                 "0.09814, 0.09853, 0.09931, 0.09994, 0.1008, 0.1016, 0.1026, 0.1065, 0.1398, 0.3085",\
                 "0.09894, 0.09882, 0.09896, 0.09949, 0.1003, 0.1013, 0.1023, 0.1062, 0.1425, 0.3222",\
                 "0.108, 0.1068, 0.1043, 0.1025, 0.1023, 0.1027, 0.1035, 0.1078, 0.151, 0.35",\
                 "0.1267, 0.1241, 0.1183, 0.1131, 0.1095, 0.1078, 0.107, 0.1123, 0.1657, 0.4025",\
                 "0.155, 0.1515, 0.1423, 0.1325, 0.1248, 0.1193, 0.1161, 0.1232, 0.1988, 0.4941",\
                 "0.1939, 0.1895, 0.1775, 0.1628, 0.1499, 0.14, 0.133, 0.1446, 0.2625, 0.6492",\
                 "0.2438, 0.2389, 0.2244, 0.2051, 0.1863, 0.1708, 0.1608, 0.1912, 0.3928, 0.8975",\
                 "0.3056, 0.2999, 0.2834, 0.26, 0.2353, 0.2135, 0.2075, 0.3001, 0.6516, 1.246",\
                 "0.3797, 0.3735, 0.355, 0.3281, 0.2978, 0.2726, 0.3145, 0.5834, 1.068, 1.566");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.005388, 0.02079, 0.05021, 0.09604, 0.1603, 0.245, 0.3516, 0.4817, 0.6368");
          values("0.133, 0.1819, 0.3518, 0.6753, 1.179, 1.886, 2.817, 3.985, 5.419, 7.117",\
                 "0.154, 0.2037, 0.3751, 0.699, 1.203, 1.909, 2.839, 4.009, 5.444, 7.144",\
                 "0.2093, 0.2775, 0.4643, 0.7888, 1.293, 2, 2.93, 4.102, 5.527, 7.237",\
                 "0.239, 0.3329, 0.5924, 0.9651, 1.468, 2.174, 3.102, 4.273, 5.706, 7.405",\
                 "0.2383, 0.3598, 0.6875, 1.163, 1.744, 2.452, 3.378, 4.547, 5.976, 7.679",\
                 "0.2025, 0.3508, 0.7502, 1.321, 2.026, 2.837, 3.772, 4.936, 6.363, 8.062",\
                 "0.1283, 0.304, 0.7767, 1.444, 2.264, 3.214, 4.274, 5.458, 6.876, 8.573",\
                 "0.0113, 0.2155, 0.7603, 1.528, 2.462, 3.544, 4.759, 6.086, 7.538, 9.228",\
                 "-0.1475, 0.0824, 0.6977, 1.57, 2.619, 3.83, 5.191, 6.684, 8.295, 10.03",\
                 "-0.3585, -0.0991, 0.5906, 1.563, 2.732, 4.074, 5.572, 7.229, 9.018, 10.93");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.005388, 0.02079, 0.05021, 0.09604, 0.1603, 0.245, 0.3516, 0.4817, 0.6368");
          values("0.1472, 0.2083, 0.4173, 0.8141, 1.431, 2.294, 3.43, 4.865, 6.61, 8.699",\
                 "0.1762, 0.239, 0.4519, 0.8503, 1.467, 2.333, 3.475, 4.904, 6.652, 8.748",\
                 "0.2896, 0.3634, 0.577, 0.9764, 1.595, 2.461, 3.598, 5.033, 6.789, 8.866",\
                 "0.4383, 0.5404, 0.8205, 1.229, 1.845, 2.71, 3.85, 5.286, 7.026, 9.11",\
                 "0.6245, 0.7527, 1.106, 1.616, 2.246, 3.105, 4.238, 5.674, 7.417, 9.508",\
                 "0.8481, 1.006, 1.43, 2.046, 2.798, 3.673, 4.801, 6.228, 7.972, 10.06",\
                 "1.11, 1.3, 1.8, 2.514, 3.4, 4.409, 5.552, 6.969, 8.711, 10.79",\
                 "1.415, 1.635, 2.219, 3.031, 4.037, 5.204, 6.487, 7.918, 9.648, 11.72",\
                 "1.764, 2.017, 2.681, 3.6, 4.722, 6.031, 7.49, 9.064, 10.81, 12.87",\
                 "2.161, 2.444, 3.195, 4.226, 5.466, 6.907, 8.531, 10.3, 12.18, 14.25");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.005388, 0.02079, 0.05021, 0.09604, 0.1603, 0.245, 0.3516, 0.4817, 0.6368");
          values("0.1554, 0.2386, 0.5295, 1.087, 1.952, 3.167, 4.77, 6.768, 9.247, 12.15",\
                 "0.1553, 0.2388, 0.5307, 1.087, 1.95, 3.164, 4.761, 6.774, 9.245, 12.15",\
                 "0.2274, 0.3039, 0.5418, 1.085, 1.949, 3.166, 4.76, 6.779, 9.223, 12.17",\
                 "0.3355, 0.4333, 0.7126, 1.151, 1.95, 3.163, 4.759, 6.775, 9.237, 12.15",\
                 "0.4784, 0.596, 0.928, 1.438, 2.108, 3.18, 4.759, 6.773, 9.232, 12.15",\
                 "0.641, 0.7902, 1.179, 1.767, 2.522, 3.451, 4.821, 6.772, 9.227, 12.16",\
                 "0.8242, 1.006, 1.468, 2.125, 2.982, 4.006, 5.222, 6.92, 9.243, 12.15",\
                 "1.031, 1.24, 1.789, 2.531, 3.472, 4.617, 5.928, 7.452, 9.494, 12.2",\
                 "1.257, 1.5, 2.133, 2.978, 4.007, 5.256, 6.7, 8.318, 10.17, 12.59",\
                 "1.505, 1.789, 2.502, 3.464, 4.594, 5.93, 7.51, 9.266, 11.21, 13.42");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.005388, 0.02079, 0.05021, 0.09604, 0.1603, 0.245, 0.3516, 0.4817, 0.6368");
          values("0.1886, 0.2933, 0.6567, 1.356, 2.444, 3.965, 5.974, 8.499, 11.58, 15.28",\
                 "0.1884, 0.2927, 0.6571, 1.355, 2.441, 3.965, 5.984, 8.512, 11.58, 15.3",\
                 "0.2557, 0.3341, 0.6582, 1.355, 2.442, 3.97, 5.986, 8.499, 11.61, 15.26",\
                 "0.372, 0.4826, 0.7836, 1.365, 2.442, 3.967, 5.981, 8.515, 11.6, 15.26",\
                 "0.5096, 0.6426, 1.027, 1.577, 2.475, 3.964, 5.975, 8.511, 11.6, 15.27",\
                 "0.6748, 0.8314, 1.276, 1.952, 2.77, 4.032, 5.972, 8.504, 11.59, 15.28",\
                 "0.8574, 1.049, 1.551, 2.327, 3.29, 4.413, 6.085, 8.508, 11.59, 15.28",\
                 "1.057, 1.282, 1.862, 2.713, 3.823, 5.074, 6.552, 8.668, 11.6, 15.27",\
                 "1.275, 1.535, 2.206, 3.141, 4.356, 5.796, 7.35, 9.228, 11.85, 15.34",\
                 "1.514, 1.808, 2.574, 3.61, 4.912, 6.5, 8.266, 10.15, 12.49, 15.61");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.005388, 0.02079, 0.05021, 0.09604, 0.1603, 0.245, 0.3516, 0.4817, 0.6368");
          values("0.1584, 0.2073, 0.3767, 0.7001, 1.204, 1.91, 2.84, 4.013, 5.44, 7.144",\
                 "0.1796, 0.2295, 0.4007, 0.7251, 1.229, 1.935, 2.865, 4.038, 5.464, 7.175",\
                 "0.2162, 0.2768, 0.4599, 0.7854, 1.29, 1.997, 2.929, 4.098, 5.525, 7.229",\
                 "0.2293, 0.3101, 0.5378, 0.8968, 1.404, 2.11, 3.04, 4.211, 5.643, 7.348",\
                 "0.2044, 0.3107, 0.5962, 1.017, 1.576, 2.29, 3.219, 4.388, 5.819, 7.523",\
                 "0.1367, 0.268, 0.6201, 1.118, 1.75, 2.53, 3.475, 4.644, 6.069, 7.775",\
                 "0.0232, 0.1787, 0.5982, 1.186, 1.902, 2.763, 3.785, 4.981, 6.407, 8.107",\
                 "-0.1423, 0.04, 0.5254, 1.206, 2.023, 2.975, 4.084, 5.368, 6.835, 8.534",\
                 "-0.3622, -0.1562, 0.3974, 1.174, 2.099, 3.156, 4.36, 5.736, 7.297, 9.054",\
                 "-0.6434, -0.4087, 0.2142, 1.082, 2.121, 3.295, 4.608, 6.083, 7.743, 9.597");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.005388, 0.02079, 0.05021, 0.09604, 0.1603, 0.245, 0.3516, 0.4817, 0.6368");
          values("0.1997, 0.2606, 0.47, 0.8665, 1.482, 2.345, 3.48, 4.911, 6.656, 8.738",\
                 "0.2291, 0.2909, 0.5019, 0.8991, 1.515, 2.378, 3.513, 4.945, 6.689, 8.77",\
                 "0.3567, 0.4204, 0.6304, 1.027, 1.644, 2.507, 3.643, 5.073, 6.817, 8.899",\
                 "0.5404, 0.6288, 0.8849, 1.283, 1.896, 2.758, 3.892, 5.322, 7.067, 9.148",\
                 "0.7653, 0.8746, 1.198, 1.682, 2.301, 3.157, 4.289, 5.714, 7.457, 9.537",\
                 "1.04, 1.171, 1.552, 2.135, 2.864, 3.729, 4.853, 6.276, 8.015, 10.09",\
                 "1.365, 1.521, 1.962, 2.631, 3.487, 4.474, 5.608, 7.021, 8.757, 10.82",\
                 "1.745, 1.925, 2.432, 3.185, 4.152, 5.29, 6.552, 7.974, 9.698, 11.77",\
                 "2.182, 2.389, 2.964, 3.804, 4.871, 6.144, 7.579, 9.131, 10.87, 12.92",\
                 "2.679, 2.912, 3.557, 4.493, 5.662, 7.053, 8.644, 10.39, 12.24, 14.31");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.005388, 0.02079, 0.05021, 0.09604, 0.1603, 0.245, 0.3516, 0.4817, 0.6368");
          values("0.1558, 0.2392, 0.5303, 1.087, 1.953, 3.163, 4.762, 6.782, 9.229, 12.14",\
                 "0.1557, 0.2389, 0.531, 1.086, 1.951, 3.165, 4.763, 6.784, 9.223, 12.18",\
                 "0.2057, 0.2818, 0.5396, 1.086, 1.95, 3.163, 4.768, 6.772, 9.222, 12.15",\
                 "0.307, 0.3861, 0.6514, 1.136, 1.951, 3.163, 4.761, 6.769, 9.238, 12.17",\
                 "0.4512, 0.5404, 0.816, 1.317, 2.068, 3.184, 4.759, 6.772, 9.225, 12.16",\
                 "0.6226, 0.7296, 1.038, 1.554, 2.327, 3.377, 4.824, 6.776, 9.218, 12.15",\
                 "0.814, 0.9416, 1.305, 1.854, 2.641, 3.72, 5.099, 6.906, 9.249, 12.15",\
                 "1.023, 1.173, 1.597, 2.21, 3.021, 4.121, 5.54, 7.268, 9.468, 12.23",\
                 "1.251, 1.429, 1.919, 2.609, 3.481, 4.598, 6.041, 7.808, 9.918, 12.53",\
                 "1.492, 1.701, 2.252, 3.04, 3.992, 5.144, 6.6, 8.404, 10.56, 13.08");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.005388, 0.02079, 0.05021, 0.09604, 0.1603, 0.245, 0.3516, 0.4817, 0.6368");
          values("0.2617, 0.3669, 0.732, 1.43, 2.514, 4.039, 6.038, 8.565, 11.64, 15.32",\
                 "0.2612, 0.3663, 0.7317, 1.43, 2.515, 4.037, 6.039, 8.565, 11.64, 15.3",\
                 "0.3014, 0.385, 0.7321, 1.43, 2.516, 4.036, 6.038, 8.562, 11.64, 15.31",\
                 "0.4326, 0.538, 0.8292, 1.436, 2.515, 4.039, 6.042, 8.562, 11.64, 15.31",\
                 "0.5722, 0.7022, 1.079, 1.623, 2.541, 4.038, 6.043, 8.563, 11.63, 15.31",\
                 "0.7302, 0.8832, 1.328, 1.996, 2.816, 4.097, 6.042, 8.567, 11.65, 15.31",\
                 "0.913, 1.091, 1.592, 2.369, 3.327, 4.46, 6.146, 8.572, 11.65, 15.32",\
                 "1.111, 1.321, 1.885, 2.747, 3.858, 5.108, 6.6, 8.728, 11.66, 15.32",\
                 "1.324, 1.569, 2.209, 3.146, 4.378, 5.818, 7.374, 9.272, 11.88, 15.35",\
                 "1.55, 1.832, 2.568, 3.586, 4.912, 6.518, 8.282, 10.18, 12.52, 15.64");
        }
      }
    }
  }

