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

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

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

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

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

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

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

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

    pin(A1) {
      capacitance : 0.009311 ;
      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.03042, 0.03039, 0.03041, 0.03042, 0.03042, 0.0305, 0.03046, \
                  0.03044, 0.03038, 0.03034");
        }

        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.01185, -0.01192, -0.01196, -0.012, -0.01202, -0.01205, -0.01205, \
                  -0.01205, -0.01204, -0.01205");
        }
      }
    }

    pin(A2) {
      capacitance : 0.009455 ;
      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.04126, 0.04126, 0.04125, 0.04124, 0.04122, 0.04137, 0.04134, \
                  0.04132, 0.04131, 0.04129");
        }

        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.03265, -0.03511, -0.03854, -0.03978, -0.04026, -0.04062, -0.04067, \
                  -0.04079, -0.04083, -0.04085");
        }
      }
    }

    pin(Z) {
      direction : output ;
      function : "(A1|A2)" ;
      max_capacitance : 1.444 ;
      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.01096, 0.04593, 0.1127, 0.2168, 0.3627, 0.5548, 0.7968, 1.092, 1.444");
          values("0.4182, 0.4002, 0.369, 0.3493, 0.3384, 0.3316, 0.3273, 0.3244, 0.3226, 0.3211",\
                 "0.4156, 0.3976, 0.3662, 0.3467, 0.3357, 0.3294, 0.3249, 0.3219, 0.3201, 0.3187",\
                 "0.4245, 0.4063, 0.3748, 0.3549, 0.3441, 0.3372, 0.3328, 0.3301, 0.3281, 0.3267",\
                 "0.4714, 0.4516, 0.4161, 0.3928, 0.3799, 0.3722, 0.367, 0.3637, 0.3615, 0.3598",\
                 "0.5631, 0.5405, 0.4969, 0.4663, 0.4487, 0.4377, 0.4308, 0.4263, 0.4232, 0.421",\
                 "0.6993, 0.6733, 0.6213, 0.58, 0.5547, 0.5389, 0.5287, 0.5219, 0.5172, 0.5139",\
                 "0.8829, 0.8535, 0.7915, 0.7381, 0.7035, 0.6803, 0.6654, 0.6551, 0.6479, 0.6429",\
                 "1.113, 1.08, 1.01, 0.9422, 0.8958, 0.8641, 0.8433, 0.8286, 0.8185, 0.8109",\
                 "1.388, 1.355, 1.275, 1.194, 1.135, 1.094, 1.065, 1.045, 1.031, 1.021",\
                 "1.713, 1.678, 1.591, 1.498, 1.424, 1.371, 1.334, 1.307, 1.288, 1.274");
        }

        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.01096, 0.04593, 0.1127, 0.2168, 0.3627, 0.5548, 0.7968, 1.092, 1.444");
          values("0.1864, 0.1831, 0.1823, 0.1837, 0.185, 0.188, 0.1915, 0.193, 0.1974, 0.2083",\
                 "0.1881, 0.1839, 0.1834, 0.185, 0.1866, 0.1894, 0.1922, 0.1955, 0.1988, 0.2094",\
                 "0.206, 0.2004, 0.195, 0.1942, 0.1954, 0.1977, 0.2001, 0.2034, 0.2071, 0.2176",\
                 "0.254, 0.2442, 0.2315, 0.225, 0.2229, 0.224, 0.2253, 0.2279, 0.2309, 0.2457",\
                 "0.3356, 0.3212, 0.2997, 0.2864, 0.2809, 0.278, 0.2768, 0.2786, 0.2827, 0.2952",\
                 "0.4542, 0.4349, 0.4034, 0.3812, 0.3695, 0.3654, 0.361, 0.3593, 0.359, 0.3722",\
                 "0.611, 0.5864, 0.5468, 0.5145, 0.4943, 0.4832, 0.4798, 0.4759, 0.4736, 0.4814",\
                 "0.8081, 0.7787, 0.7304, 0.6885, 0.657, 0.6376, 0.6292, 0.6271, 0.6222, 0.6334",\
                 "1.047, 1.014, 0.9545, 0.9044, 0.8641, 0.8349, 0.8175, 0.8096, 0.8114, 0.8238",\
                 "1.327, 1.291, 1.222, 1.162, 1.113, 1.075, 1.046, 1.031, 1.029, 1.055");
        }
      }

      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.01096, 0.04593, 0.1127, 0.2168, 0.3627, 0.5548, 0.7968, 1.092, 1.444");
          values("0.45, 0.4321, 0.4007, 0.381, 0.3702, 0.3633, 0.3591, 0.3561, 0.354, 0.3527",\
                 "0.4464, 0.4284, 0.3969, 0.3774, 0.3664, 0.3599, 0.3554, 0.3525, 0.3506, 0.3491",\
                 "0.4496, 0.4314, 0.3998, 0.3797, 0.3685, 0.3617, 0.3574, 0.3545, 0.3525, 0.3511",\
                 "0.4953, 0.4753, 0.4396, 0.4163, 0.4033, 0.3953, 0.3901, 0.3867, 0.3843, 0.3825",\
                 "0.5972, 0.575, 0.5318, 0.5004, 0.482, 0.4707, 0.4635, 0.4586, 0.4552, 0.4528",\
                 "0.7576, 0.7323, 0.6794, 0.6368, 0.6096, 0.5925, 0.5812, 0.5738, 0.5687, 0.5647",\
                 "0.9728, 0.9446, 0.8827, 0.8259, 0.7881, 0.7631, 0.7465, 0.7344, 0.7266, 0.7204",\
                 "1.241, 1.211, 1.141, 1.07, 1.019, 0.9849, 0.9613, 0.9444, 0.9321, 0.9231",\
                 "1.565, 1.533, 1.456, 1.373, 1.307, 1.262, 1.229, 1.206, 1.189, 1.176",\
                 "1.949, 1.915, 1.831, 1.736, 1.655, 1.596, 1.554, 1.523, 1.5, 1.483");
        }

        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.01096, 0.04593, 0.1127, 0.2168, 0.3627, 0.5548, 0.7968, 1.092, 1.444");
          values("0.2194, 0.2143, 0.2104, 0.2104, 0.212, 0.2142, 0.2174, 0.2203, 0.2232, 0.2313",\
                 "0.2175, 0.2126, 0.2083, 0.2084, 0.2096, 0.2124, 0.2152, 0.2174, 0.2214, 0.2288",\
                 "0.2313, 0.2245, 0.2172, 0.2147, 0.2153, 0.2171, 0.2202, 0.2224, 0.2258, 0.2345",\
                 "0.284, 0.2731, 0.2587, 0.2505, 0.2463, 0.2469, 0.2476, 0.2498, 0.2528, 0.2654",\
                 "0.3768, 0.362, 0.3384, 0.3232, 0.3148, 0.3099, 0.3088, 0.3099, 0.3104, 0.3233",\
                 "0.5153, 0.4954, 0.4633, 0.436, 0.4216, 0.4136, 0.4089, 0.4057, 0.4061, 0.4167",\
                 "0.7022, 0.6775, 0.6357, 0.5981, 0.5735, 0.5598, 0.5518, 0.545, 0.5434, 0.553",\
                 "0.9403, 0.911, 0.8594, 0.8129, 0.7755, 0.7506, 0.7383, 0.7311, 0.7245, 0.7341",\
                 "1.231, 1.198, 1.136, 1.077, 1.031, 0.9947, 0.9694, 0.9575, 0.9517, 0.9633",\
                 "1.577, 1.541, 1.468, 1.401, 1.341, 1.294, 1.258, 1.236, 1.225, 1.246");
        }
      }

      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.01096, 0.04593, 0.1127, 0.2168, 0.3627, 0.5548, 0.7968, 1.092, 1.444");
          values("0.2979, 0.336, 0.4321, 0.5716, 0.758, 1.002, 1.316, 1.71, 2.191, 2.764",\
                 "0.3041, 0.342, 0.4383, 0.5776, 0.7641, 1.008, 1.322, 1.716, 2.197, 2.77",\
                 "0.3533, 0.3912, 0.4869, 0.6262, 0.8126, 1.056, 1.37, 1.764, 2.245, 2.819",\
                 "0.4691, 0.5067, 0.6022, 0.741, 0.9273, 1.171, 1.485, 1.879, 2.36, 2.933",\
                 "0.6378, 0.6764, 0.7739, 0.9145, 1.102, 1.345, 1.659, 2.052, 2.533, 3.106",\
                 "0.8553, 0.8968, 0.9978, 1.141, 1.331, 1.576, 1.89, 2.282, 2.763, 3.335",\
                 "1.119, 1.164, 1.272, 1.423, 1.618, 1.865, 2.179, 2.572, 3.051, 3.624",\
                 "1.43, 1.478, 1.595, 1.754, 1.958, 2.214, 2.531, 2.925, 3.404, 3.976",\
                 "1.791, 1.842, 1.967, 2.137, 2.35, 2.617, 2.944, 3.344, 3.824, 4.395",\
                 "2.205, 2.259, 2.393, 2.572, 2.796, 3.074, 3.415, 3.826, 4.312, 4.886");
        }

        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.01096, 0.04593, 0.1127, 0.2168, 0.3627, 0.5548, 0.7968, 1.092, 1.444");
          values("0.154, 0.1856, 0.2851, 0.4708, 0.7594, 1.165, 1.698, 2.368, 3.185, 4.166",\
                 "0.1647, 0.196, 0.2955, 0.4813, 0.7696, 1.175, 1.708, 2.379, 3.199, 4.176",\
                 "0.1992, 0.2303, 0.3283, 0.513, 0.8013, 1.206, 1.738, 2.408, 3.228, 4.208",\
                 "0.2224, 0.2551, 0.353, 0.5355, 0.8224, 1.227, 1.758, 2.43, 3.249, 4.222",\
                 "0.2145, 0.2495, 0.3498, 0.531, 0.8163, 1.219, 1.75, 2.42, 3.239, 4.213",\
                 "0.1689, 0.2073, 0.3103, 0.4931, 0.7785, 1.18, 1.71, 2.379, 3.197, 4.17",\
                 "0.0818, 0.1238, 0.232, 0.4158, 0.7039, 1.107, 1.636, 2.304, 3.12, 4.095",\
                 "-0.0497, -0.004, 0.1105, 0.2964, 0.5845, 0.9928, 1.525, 2.193, 3.008, 3.981",\
                 "-0.2281, -0.1787, -0.0569, 0.1324, 0.4221, 0.8318, 1.371, 2.044, 2.86, 3.832",\
                 "-0.4568, -0.4036, -0.2738, -0.0809, 0.2113, 0.6243, 1.167, 1.846, 2.67, 3.644");
        }

        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.01096, 0.04593, 0.1127, 0.2168, 0.3627, 0.5548, 0.7968, 1.092, 1.444");
          values("0.1118, 0.1512, 0.2536, 0.4254, 0.6917, 1.078, 1.603, 2.278, 3.107, 4.095",\
                 "0.1117, 0.1509, 0.2536, 0.4254, 0.6914, 1.076, 1.604, 2.278, 3.107, 4.095",\
                 "0.1117, 0.1514, 0.2539, 0.4258, 0.6916, 1.077, 1.603, 2.278, 3.101, 4.092",\
                 "0.1166, 0.1555, 0.2573, 0.4287, 0.6918, 1.077, 1.604, 2.278, 3.107, 4.095",\
                 "0.1314, 0.1702, 0.2706, 0.4386, 0.6998, 1.081, 1.605, 2.278, 3.101, 4.088",\
                 "0.1548, 0.195, 0.2942, 0.457, 0.7126, 1.09, 1.607, 2.279, 3.107, 4.094",\
                 "0.1848, 0.226, 0.3268, 0.49, 0.7374, 1.104, 1.616, 2.282, 3.108, 4.092",\
                 "0.2166, 0.2622, 0.3694, 0.531, 0.7798, 1.14, 1.637, 2.292, 3.11, 4.094",\
                 "0.2492, 0.3014, 0.4134, 0.5784, 0.8338, 1.196, 1.686, 2.321, 3.123, 4.095",\
                 "0.285, 0.341, 0.4626, 0.6304, 0.8876, 1.259, 1.755, 2.383, 3.164, 4.116");
        }

        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.01096, 0.04593, 0.1127, 0.2168, 0.3627, 0.5548, 0.7968, 1.092, 1.444");
          values("0.06976, 0.1165, 0.2858, 0.6232, 1.151, 1.893, 2.867, 4.094, 5.601, 7.384",\
                 "0.06958, 0.1161, 0.2857, 0.6233, 1.151, 1.892, 2.865, 4.095, 5.594, 7.384",\
                 "0.07228, 0.1181, 0.2861, 0.6232, 1.151, 1.892, 2.867, 4.099, 5.6, 7.384",\
                 "0.0842, 0.1276, 0.2907, 0.625, 1.153, 1.894, 2.866, 4.095, 5.59, 7.407",\
                 "0.09938, 0.1423, 0.3003, 0.6286, 1.153, 1.894, 2.866, 4.095, 5.598, 7.406",\
                 "0.1196, 0.1618, 0.314, 0.6396, 1.161, 1.895, 2.867, 4.093, 5.593, 7.384",\
                 "0.1394, 0.1844, 0.3316, 0.6532, 1.18, 1.908, 2.873, 4.099, 5.594, 7.378",\
                 "0.1632, 0.212, 0.3538, 0.6696, 1.197, 1.934, 2.893, 4.106, 5.601, 7.388",\
                 "0.1888, 0.2404, 0.38, 0.6884, 1.217, 1.964, 2.927, 4.132, 5.612, 7.388",\
                 "0.2148, 0.2682, 0.4104, 0.7092, 1.238, 1.988, 2.962, 4.176, 5.647, 7.409");
        }
      }

      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.01096, 0.04593, 0.1127, 0.2168, 0.3627, 0.5548, 0.7968, 1.092, 1.444");
          values("0.3326, 0.3704, 0.4667, 0.6062, 0.7925, 1.036, 1.35, 1.744, 2.225, 2.799",\
                 "0.3383, 0.3762, 0.4724, 0.6119, 0.7983, 1.042, 1.356, 1.75, 2.231, 2.804",\
                 "0.3663, 0.404, 0.4999, 0.6393, 0.8256, 1.069, 1.383, 1.777, 2.258, 2.832",\
                 "0.4433, 0.4815, 0.5778, 0.7172, 0.9034, 1.147, 1.461, 1.855, 2.336, 2.909",\
                 "0.5713, 0.6112, 0.7109, 0.8534, 1.041, 1.285, 1.599, 1.992, 2.472, 3.046",\
                 "0.739, 0.7824, 0.8896, 1.039, 1.231, 1.477, 1.791, 2.183, 2.663, 3.236",\
                 "0.9393, 0.9859, 1.103, 1.264, 1.467, 1.721, 2.036, 2.429, 2.908, 3.479",\
                 "1.172, 1.223, 1.348, 1.523, 1.741, 2.009, 2.334, 2.729, 3.208, 3.779",\
                 "1.441, 1.495, 1.629, 1.816, 2.05, 2.334, 2.677, 3.085, 3.567, 4.139",\
                 "1.746, 1.803, 1.946, 2.146, 2.395, 2.696, 3.058, 3.486, 3.984, 4.561");
        }

        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.01096, 0.04593, 0.1127, 0.2168, 0.3627, 0.5548, 0.7968, 1.092, 1.444");
          values("0.1746, 0.2064, 0.3061, 0.4918, 0.7801, 1.185, 1.717, 2.388, 3.207, 4.183",\
                 "0.1836, 0.2155, 0.315, 0.5008, 0.7894, 1.194, 1.726, 2.397, 3.216, 4.19",\
                 "0.2196, 0.2508, 0.349, 0.5337, 0.8222, 1.226, 1.758, 2.43, 3.249, 4.222",\
                 "0.2542, 0.2867, 0.3843, 0.5668, 0.8536, 1.257, 1.789, 2.458, 3.276, 4.253",\
                 "0.2623, 0.2975, 0.3972, 0.5784, 0.8627, 1.264, 1.796, 2.466, 3.284, 4.26",\
                 "0.2399, 0.2783, 0.3815, 0.5631, 0.8478, 1.248, 1.777, 2.446, 3.263, 4.239",\
                 "0.1846, 0.2266, 0.335, 0.5182, 0.8047, 1.207, 1.735, 2.401, 3.218, 4.191",\
                 "0.0948, 0.1409, 0.2554, 0.4415, 0.7291, 1.135, 1.666, 2.333, 3.147, 4.119",\
                 "-0.0312, 0.0193, 0.1419, 0.3304, 0.6211, 1.03, 1.566, 2.237, 3.051, 4.022",\
                 "-0.1954, -0.1413, -0.0093, 0.1846, 0.476, 0.8893, 1.43, 2.107, 2.927, 3.898");
        }

        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.01096, 0.04593, 0.1127, 0.2168, 0.3627, 0.5548, 0.7968, 1.092, 1.444");
          values("0.1119, 0.1512, 0.2537, 0.4252, 0.6913, 1.077, 1.602, 2.277, 3.102, 4.092",\
                 "0.1117, 0.151, 0.2537, 0.4254, 0.6913, 1.076, 1.604, 2.278, 3.107, 4.095",\
                 "0.1119, 0.1514, 0.2543, 0.4255, 0.6913, 1.078, 1.604, 2.276, 3.106, 4.095",\
                 "0.1187, 0.1579, 0.259, 0.4282, 0.6932, 1.077, 1.603, 2.276, 3.107, 4.094",\
                 "0.1346, 0.1748, 0.2766, 0.4418, 0.7014, 1.082, 1.605, 2.278, 3.107, 4.095",\
                 "0.1614, 0.2046, 0.3092, 0.4698, 0.72, 1.091, 1.607, 2.28, 3.107, 4.095",\
                 "0.1896, 0.2388, 0.3524, 0.5176, 0.765, 1.121, 1.621, 2.281, 3.106, 4.093",\
                 "0.2218, 0.2748, 0.399, 0.575, 0.8284, 1.182, 1.663, 2.301, 3.109, 4.093",\
                 "0.2568, 0.3144, 0.448, 0.636, 0.9, 1.266, 1.746, 2.36, 3.139, 4.099",\
                 "0.2944, 0.3562, 0.5024, 0.7, 0.9772, 1.355, 1.85, 2.463, 3.216, 4.143");
        }

        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.01096, 0.04593, 0.1127, 0.2168, 0.3627, 0.5548, 0.7968, 1.092, 1.444");
          values("0.07296, 0.119, 0.2878, 0.6238, 1.151, 1.895, 2.867, 4.095, 5.591, 7.378",\
                 "0.07284, 0.119, 0.2877, 0.6237, 1.153, 1.894, 2.865, 4.095, 5.594, 7.379",\
                 "0.07378, 0.1198, 0.2878, 0.6237, 1.154, 1.894, 2.865, 4.094, 5.593, 7.381",\
                 "0.08522, 0.1287, 0.2919, 0.6251, 1.153, 1.894, 2.866, 4.092, 5.592, 7.383",\
                 "0.1006, 0.1438, 0.3008, 0.63, 1.154, 1.893, 2.868, 4.094, 5.593, 7.381",\
                 "0.1204, 0.1628, 0.3168, 0.6418, 1.162, 1.896, 2.873, 4.094, 5.591, 7.377",\
                 "0.1422, 0.1874, 0.3342, 0.6564, 1.18, 1.91, 2.873, 4.104, 5.606, 7.381",\
                 "0.168, 0.215, 0.3578, 0.6758, 1.203, 1.934, 2.892, 4.106, 5.603, 7.381",\
                 "0.1976, 0.246, 0.386, 0.6964, 1.225, 1.967, 2.926, 4.131, 5.609, 7.386",\
                 "0.229, 0.283, 0.422, 0.7218, 1.249, 2, 2.97, 4.175, 5.644, 7.403");
        }
      }
    }
  }

