/*
 * 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__and2_4) {
    area : 37.318400 ;

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

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

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

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

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

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

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

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

      internal_power() {
        when : "!A2" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("0.04283, 0.04271, 0.04253, 0.04252, 0.0425, 0.04254, 0.04252, \
                  0.04249, 0.04245, 0.04248");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("-0.0264, -0.02647, -0.02644, -0.02652, -0.02649, -0.02654, -0.02659, \
                  -0.02665, -0.02671, -0.02672");
        }
      }
    }

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

      internal_power() {
        when : "!A1" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("0.04405, 0.04088, 0.03921, 0.03864, 0.03835, 0.0383, 0.03822, \
                  0.03812, 0.03804, 0.03797");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("-0.03806, -0.03798, -0.03787, -0.03794, -0.03788, -0.03793, -0.03793, \
                  -0.03795, -0.03792, -0.03796");
        }
      }
    }

    pin(Z) {
      direction : output ;
      function : "(A1&A2)" ;
      max_capacitance : 1.441 ;
      max_transition : 7.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.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.01094, 0.04583, 0.1125, 0.2163, 0.3619, 0.5535, 0.795, 1.09, 1.441");
          values("0.3259, 0.3162, 0.3054, 0.3005, 0.298, 0.2964, 0.2956, 0.295, 0.2945, 0.2943",\
                 "0.325, 0.3153, 0.3044, 0.2996, 0.2971, 0.2954, 0.2946, 0.2939, 0.2935, 0.2933",\
                 "0.3381, 0.3274, 0.3145, 0.3087, 0.3057, 0.3042, 0.3031, 0.3024, 0.3019, 0.3017",\
                 "0.3986, 0.3832, 0.3613, 0.3494, 0.3433, 0.3398, 0.3376, 0.3363, 0.3355, 0.3349",\
                 "0.5054, 0.4851, 0.4512, 0.4298, 0.4175, 0.4103, 0.4061, 0.4032, 0.4015, 0.4003",\
                 "0.658, 0.6331, 0.5867, 0.5527, 0.533, 0.5197, 0.5122, 0.5067, 0.5035, 0.5013",\
                 "0.8554, 0.8268, 0.7685, 0.7218, 0.6909, 0.6712, 0.6583, 0.6499, 0.6441, 0.6401",\
                 "1.099, 1.068, 0.9993, 0.9374, 0.8955, 0.8667, 0.8476, 0.8348, 0.8259, 0.8195",\
                 "1.391, 1.358, 1.28, 1.204, 1.148, 1.11, 1.084, 1.065, 1.052, 1.042",\
                 "1.734, 1.698, 1.613, 1.523, 1.454, 1.404, 1.368, 1.343, 1.325, 1.312");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.01094, 0.04583, 0.1125, 0.2163, 0.3619, 0.5535, 0.795, 1.09, 1.441");
          values("0.2191, 0.2081, 0.1965, 0.1921, 0.1917, 0.1927, 0.1934, 0.1964, 0.2021, 0.2124",\
                 "0.2182, 0.2072, 0.1954, 0.191, 0.1906, 0.1917, 0.1941, 0.1957, 0.1982, 0.2092",\
                 "0.2299, 0.2182, 0.2044, 0.1986, 0.1975, 0.1985, 0.1992, 0.2022, 0.2057, 0.216",\
                 "0.2799, 0.2645, 0.2463, 0.2339, 0.2298, 0.2295, 0.2283, 0.2306, 0.2338, 0.2448",\
                 "0.3701, 0.3508, 0.323, 0.3058, 0.2956, 0.291, 0.2884, 0.2889, 0.2907, 0.3044",\
                 "0.5023, 0.4785, 0.4418, 0.4147, 0.3985, 0.39, 0.3871, 0.3807, 0.3811, 0.3921",\
                 "0.6763, 0.6486, 0.6027, 0.5659, 0.5402, 0.5279, 0.5185, 0.5139, 0.5096, 0.5214",\
                 "0.8937, 0.8623, 0.806, 0.7581, 0.7255, 0.7021, 0.6913, 0.6849, 0.6775, 0.6902",\
                 "1.154, 1.12, 1.053, 0.9984, 0.9542, 0.9217, 0.9004, 0.8928, 0.8871, 0.9027",\
                 "1.461, 1.425, 1.35, 1.284, 1.23, 1.189, 1.158, 1.14, 1.138, 1.166");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.01094, 0.04583, 0.1125, 0.2163, 0.3619, 0.5535, 0.795, 1.09, 1.441");
          values("0.374, 0.3625, 0.3482, 0.341, 0.3372, 0.335, 0.3338, 0.3329, 0.3323, 0.3319",\
                 "0.3729, 0.3613, 0.3467, 0.3399, 0.336, 0.3338, 0.3323, 0.3317, 0.331, 0.3306",\
                 "0.3862, 0.3739, 0.3578, 0.35, 0.3459, 0.3436, 0.3421, 0.3413, 0.3407, 0.3402",\
                 "0.449, 0.4327, 0.4081, 0.3941, 0.3866, 0.3825, 0.3797, 0.3783, 0.3772, 0.3764",\
                 "0.5626, 0.5419, 0.5056, 0.4813, 0.4674, 0.4593, 0.4541, 0.451, 0.4486, 0.4473",\
                 "0.7263, 0.7015, 0.6524, 0.6162, 0.5929, 0.5785, 0.5692, 0.5635, 0.5595, 0.5568",\
                 "0.9388, 0.9103, 0.8502, 0.7997, 0.7656, 0.7427, 0.7282, 0.7185, 0.7118, 0.7071",\
                 "1.201, 1.17, 1.1, 1.035, 0.9878, 0.9554, 0.9337, 0.9189, 0.9084, 0.9011",\
                 "1.518, 1.484, 1.405, 1.324, 1.264, 1.22, 1.19, 1.168, 1.153, 1.142",\
                 "1.888, 1.853, 1.766, 1.672, 1.596, 1.54, 1.499, 1.47, 1.449, 1.434");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.01094, 0.04583, 0.1125, 0.2163, 0.3619, 0.5535, 0.795, 1.09, 1.441");
          values("0.219, 0.2077, 0.1965, 0.1923, 0.1918, 0.1927, 0.1934, 0.196, 0.1992, 0.2099",\
                 "0.2173, 0.2061, 0.1949, 0.1902, 0.1897, 0.1909, 0.193, 0.1946, 0.1989, 0.2077",\
                 "0.2254, 0.2137, 0.2007, 0.1951, 0.1945, 0.1956, 0.1973, 0.1985, 0.2036, 0.2127",\
                 "0.2706, 0.2559, 0.2389, 0.2285, 0.2245, 0.2244, 0.2251, 0.2259, 0.2288, 0.2404",\
                 "0.3607, 0.3418, 0.3147, 0.2994, 0.2906, 0.2863, 0.2848, 0.286, 0.2889, 0.2979",\
                 "0.4947, 0.472, 0.4358, 0.4098, 0.3966, 0.3904, 0.3845, 0.3803, 0.381, 0.3928",\
                 "0.6726, 0.6466, 0.601, 0.5664, 0.5427, 0.5311, 0.5242, 0.5189, 0.515, 0.5254",\
                 "0.8949, 0.8667, 0.8116, 0.766, 0.7334, 0.7126, 0.7028, 0.6979, 0.6929, 0.7043",\
                 "1.165, 1.133, 1.07, 1.014, 0.9718, 0.9412, 0.9224, 0.9167, 0.9127, 0.9291",\
                 "1.484, 1.45, 1.378, 1.312, 1.26, 1.221, 1.194, 1.176, 1.179, 1.202");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.01094, 0.04583, 0.1125, 0.2163, 0.3619, 0.5535, 0.795, 1.09, 1.441");
          values("0.1868, 0.2182, 0.2989, 0.4242, 0.6045, 0.854, 1.182, 1.595, 2.1, 2.703",\
                 "0.1991, 0.2304, 0.3112, 0.4365, 0.6167, 0.8663, 1.194, 1.608, 2.113, 2.716",\
                 "0.2512, 0.2823, 0.3626, 0.4877, 0.6679, 0.9175, 1.245, 1.659, 2.164, 2.767",\
                 "0.3404, 0.3732, 0.4558, 0.5818, 0.7616, 1.01, 1.338, 1.751, 2.256, 2.858",\
                 "0.4477, 0.4838, 0.5725, 0.7029, 0.8843, 1.133, 1.459, 1.872, 2.376, 2.976",\
                 "0.569, 0.6099, 0.7062, 0.8443, 1.031, 1.28, 1.606, 2.018, 2.522, 3.122",\
                 "0.7055, 0.7508, 0.8563, 1.002, 1.198, 1.454, 1.782, 2.193, 2.696, 3.296",\
                 "0.8576, 0.9066, 1.022, 1.177, 1.381, 1.647, 1.984, 2.399, 2.902, 3.502",\
                 "1.027, 1.079, 1.204, 1.37, 1.582, 1.856, 2.204, 2.631, 3.14, 3.741",\
                 "1.214, 1.269, 1.403, 1.581, 1.801, 2.084, 2.442, 2.882, 3.405, 4.013");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.01094, 0.04583, 0.1125, 0.2163, 0.3619, 0.5535, 0.795, 1.09, 1.441");
          values("0.222, 0.2585, 0.3647, 0.5517, 0.84, 1.245, 1.778, 2.451, 3.271, 4.249",\
                 "0.2291, 0.2655, 0.3717, 0.5588, 0.8472, 1.252, 1.786, 2.456, 3.277, 4.253",\
                 "0.262, 0.2981, 0.4036, 0.5899, 0.8782, 1.283, 1.816, 2.489, 3.309, 4.288",\
                 "0.308, 0.3451, 0.4506, 0.6359, 0.9227, 1.327, 1.859, 2.53, 3.351, 4.332",\
                 "0.3479, 0.3869, 0.4943, 0.6787, 0.9642, 1.367, 1.898, 2.57, 3.388, 4.366",\
                 "0.3745, 0.4166, 0.5278, 0.7149, 0.9996, 1.401, 1.931, 2.6, 3.421, 4.398",\
                 "0.3855, 0.4313, 0.5471, 0.7388, 1.028, 1.43, 1.959, 2.628, 3.445, 4.421",\
                 "0.3788, 0.428, 0.5499, 0.7448, 1.039, 1.449, 1.981, 2.648, 3.464, 4.438",\
                 "0.3515, 0.4047, 0.5334, 0.7335, 1.032, 1.449, 1.99, 2.661, 3.477, 4.45",\
                 "0.3046, 0.3611, 0.4984, 0.7029, 1.005, 1.429, 1.979, 2.662, 3.484, 4.457");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.01094, 0.04583, 0.1125, 0.2163, 0.3619, 0.5535, 0.795, 1.09, 1.441");
          values("0.07054, 0.1042, 0.2019, 0.3823, 0.6761, 1.101, 1.665, 2.378, 3.25, 4.286",\
                 "0.07046, 0.1045, 0.2019, 0.3815, 0.6745, 1.101, 1.663, 2.379, 3.244, 4.28",\
                 "0.0719, 0.1057, 0.2027, 0.3825, 0.6748, 1.101, 1.664, 2.379, 3.247, 4.282",\
                 "0.08754, 0.12, 0.2133, 0.3871, 0.6764, 1.1, 1.666, 2.375, 3.249, 4.285",\
                 "0.112, 0.1458, 0.236, 0.404, 0.6834, 1.103, 1.665, 2.378, 3.243, 4.287",\
                 "0.1392, 0.1778, 0.2694, 0.4336, 0.7052, 1.11, 1.667, 2.376, 3.246, 4.286",\
                 "0.17, 0.2122, 0.3068, 0.472, 0.741, 1.139, 1.679, 2.378, 3.248, 4.283",\
                 "0.2026, 0.2496, 0.3518, 0.5114, 0.7838, 1.185, 1.721, 2.403, 3.251, 4.282",\
                 "0.2344, 0.2876, 0.398, 0.5592, 0.8288, 1.235, 1.78, 2.458, 3.288, 4.294",\
                 "0.2702, 0.326, 0.446, 0.611, 0.8786, 1.289, 1.845, 2.534, 3.359, 4.345");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.01094, 0.04583, 0.1125, 0.2163, 0.3619, 0.5535, 0.795, 1.09, 1.441");
          values("0.0869, 0.1344, 0.2994, 0.6272, 1.155, 1.898, 2.876, 4.103, 5.605, 7.396",\
                 "0.0869, 0.1343, 0.2993, 0.6273, 1.153, 1.898, 2.877, 4.102, 5.604, 7.401",\
                 "0.0875, 0.1348, 0.2994, 0.6282, 1.153, 1.895, 2.876, 4.102, 5.604, 7.396",\
                 "0.0961, 0.1422, 0.3051, 0.6289, 1.156, 1.899, 2.876, 4.101, 5.606, 7.391",\
                 "0.1104, 0.1568, 0.3146, 0.635, 1.157, 1.896, 2.873, 4.108, 5.603, 7.397",\
                 "0.1284, 0.1766, 0.3312, 0.6488, 1.163, 1.901, 2.879, 4.101, 5.601, 7.393",\
                 "0.1504, 0.2002, 0.351, 0.67, 1.186, 1.912, 2.878, 4.112, 5.602, 7.394",\
                 "0.1736, 0.2256, 0.3754, 0.6926, 1.215, 1.941, 2.895, 4.111, 5.612, 7.399",\
                 "0.1996, 0.2528, 0.403, 0.7184, 1.246, 1.984, 2.938, 4.136, 5.616, 7.408",\
                 "0.2252, 0.2816, 0.4348, 0.7442, 1.277, 2.028, 2.995, 4.192, 5.65, 7.412");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.01094, 0.04583, 0.1125, 0.2163, 0.3619, 0.5535, 0.795, 1.09, 1.441");
          values("0.2071, 0.2403, 0.3237, 0.4501, 0.6309, 0.8804, 1.208, 1.622, 2.126, 2.727",\
                 "0.2192, 0.2524, 0.3358, 0.4622, 0.643, 0.8925, 1.22, 1.634, 2.139, 2.74",\
                 "0.2729, 0.3059, 0.3888, 0.5152, 0.6959, 0.9454, 1.273, 1.687, 2.192, 2.793",\
                 "0.372, 0.4064, 0.4912, 0.6179, 0.798, 1.047, 1.374, 1.788, 2.291, 2.893",\
                 "0.4976, 0.5351, 0.6255, 0.7558, 0.9369, 1.185, 1.512, 1.924, 2.428, 3.03",\
                 "0.6468, 0.6887, 0.7869, 0.9236, 1.109, 1.357, 1.683, 2.094, 2.598, 3.199",\
                 "0.8202, 0.8662, 0.9739, 1.119, 1.311, 1.564, 1.891, 2.301, 2.804, 3.404",\
                 "1.02, 1.07, 1.187, 1.341, 1.542, 1.803, 2.135, 2.547, 3.05, 3.649",\
                 "1.247, 1.301, 1.429, 1.594, 1.803, 2.072, 2.414, 2.834, 3.339, 3.938",\
                 "1.504, 1.562, 1.7, 1.876, 2.094, 2.371, 2.722, 3.154, 3.669, 4.272");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.01094, 0.04583, 0.1125, 0.2163, 0.3619, 0.5535, 0.795, 1.09, 1.441");
          values("0.2357, 0.2721, 0.3784, 0.5654, 0.8539, 1.258, 1.792, 2.464, 3.285, 4.259",\
                 "0.2405, 0.277, 0.3831, 0.5702, 0.8584, 1.263, 1.796, 2.469, 3.29, 4.268",\
                 "0.256, 0.2923, 0.398, 0.5845, 0.8728, 1.278, 1.811, 2.483, 3.304, 4.283",\
                 "0.2804, 0.3178, 0.4241, 0.6098, 0.897, 1.301, 1.834, 2.506, 3.326, 4.301",\
                 "0.2957, 0.3359, 0.4452, 0.6313, 0.9168, 1.319, 1.851, 2.523, 3.344, 4.32",\
                 "0.2919, 0.3348, 0.4489, 0.6396, 0.9269, 1.328, 1.859, 2.529, 3.348, 4.326",\
                 "0.2635, 0.3101, 0.4301, 0.6266, 0.9204, 1.326, 1.855, 2.524, 3.341, 4.317",\
                 "0.2087, 0.2594, 0.3856, 0.5874, 0.8879, 1.303, 1.838, 2.507, 3.323, 4.297",\
                 "0.126, 0.1801, 0.3136, 0.5198, 0.8274, 1.251, 1.799, 2.475, 3.292, 4.265",\
                 "0.0121, 0.0693, 0.2105, 0.4236, 0.7365, 1.169, 1.729, 2.418, 3.245, 4.22");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.01094, 0.04583, 0.1125, 0.2163, 0.3619, 0.5535, 0.795, 1.09, 1.441");
          values("0.07788, 0.1125, 0.2078, 0.385, 0.6777, 1.101, 1.667, 2.375, 3.244, 4.282",\
                 "0.07788, 0.1124, 0.2083, 0.3852, 0.6776, 1.102, 1.663, 2.379, 3.243, 4.278",\
                 "0.07862, 0.1134, 0.209, 0.3855, 0.6775, 1.102, 1.665, 2.377, 3.246, 4.277",\
                 "0.09272, 0.1271, 0.2175, 0.3898, 0.6787, 1.101, 1.664, 2.379, 3.246, 4.28",\
                 "0.1158, 0.1522, 0.24, 0.4046, 0.6846, 1.103, 1.666, 2.375, 3.248, 4.284",\
                 "0.1448, 0.1832, 0.2728, 0.4316, 0.701, 1.11, 1.668, 2.376, 3.247, 4.284",\
                 "0.1752, 0.2186, 0.3128, 0.4682, 0.7332, 1.13, 1.676, 2.379, 3.246, 4.282",\
                 "0.208, 0.2564, 0.3562, 0.509, 0.7734, 1.169, 1.706, 2.392, 3.248, 4.281",\
                 "0.2446, 0.2964, 0.4062, 0.5564, 0.8184, 1.219, 1.756, 2.433, 3.275, 4.286",\
                 "0.281, 0.3384, 0.4578, 0.6116, 0.868, 1.27, 1.816, 2.499, 3.327, 4.323");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.01094, 0.04583, 0.1125, 0.2163, 0.3619, 0.5535, 0.795, 1.09, 1.441");
          values("0.08702, 0.1343, 0.2994, 0.6274, 1.156, 1.898, 2.876, 4.102, 5.605, 7.4",\
                 "0.08714, 0.1344, 0.2993, 0.6274, 1.153, 1.898, 2.87, 4.103, 5.602, 7.395",\
                 "0.08706, 0.1348, 0.2994, 0.6274, 1.155, 1.896, 2.876, 4.103, 5.602, 7.395",\
                 "0.0959, 0.1423, 0.3048, 0.6301, 1.153, 1.898, 2.874, 4.102, 5.602, 7.402",\
                 "0.1098, 0.1578, 0.317, 0.635, 1.157, 1.897, 2.872, 4.11, 5.603, 7.393",\
                 "0.1272, 0.177, 0.3356, 0.654, 1.167, 1.9, 2.878, 4.101, 5.603, 7.392",\
                 "0.1476, 0.2008, 0.3574, 0.679, 1.193, 1.917, 2.877, 4.105, 5.603, 7.391",\
                 "0.1686, 0.2236, 0.3826, 0.7064, 1.229, 1.956, 2.905, 4.112, 5.611, 7.39",\
                 "0.1926, 0.2482, 0.4094, 0.7342, 1.266, 2.007, 2.957, 4.15, 5.62, 7.403",\
                 "0.2178, 0.2778, 0.4424, 0.764, 1.304, 2.059, 3.023, 4.215, 5.666, 7.419");
        }
      }
    }
  }

