/*
 * 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_1) {
    area : 17.561600 ;

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

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

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

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

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

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

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

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

      internal_power() {
        when : "A2" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("0.01726, 0.0173, 0.01727, 0.01727, 0.01728, 0.01729, 0.01731, \
                  0.01727, 0.0173, 0.0173");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("-0.006148, -0.006186, -0.006216, -0.006233, -0.006227, -0.006231, \
                  -0.006266, -0.006253, -0.006278, -0.006282");
        }
      }
    }

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

      internal_power() {
        when : "A1" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("0.02384, 0.02389, 0.02393, 0.02388, 0.02393, 0.02392, 0.02397, \
                  0.02391, 0.02395, 0.02394");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("-0.02005, -0.02014, -0.0216, -0.02261, -0.0231, -0.02336, -0.02358, \
                  -0.02358, -0.02374, -0.02376");
        }
      }
    }

    pin(Z) {
      direction : output ;
      function : "(A1|A2)" ;
      max_capacitance : 0.2272 ;
      max_transition : 3.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.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.002561, 0.008041, 0.01851, 0.03481, 0.05768, 0.08778, 0.1257, 0.172, 0.2272");
          values("0.3114, 0.3042, 0.2864, 0.2676, 0.254, 0.2445, 0.238, 0.2332, 0.2296, 0.227",\
                 "0.3108, 0.3037, 0.2858, 0.2671, 0.2533, 0.2438, 0.2373, 0.2325, 0.229, 0.2264",\
                 "0.3145, 0.3074, 0.2893, 0.2704, 0.257, 0.2474, 0.2409, 0.2361, 0.2325, 0.23",\
                 "0.3329, 0.3257, 0.3072, 0.2875, 0.2734, 0.2633, 0.2566, 0.2515, 0.2478, 0.245",\
                 "0.3759, 0.3679, 0.3478, 0.3254, 0.3088, 0.2974, 0.2892, 0.2832, 0.2788, 0.2754",\
                 "0.4461, 0.4373, 0.4143, 0.3881, 0.3668, 0.3518, 0.3411, 0.3333, 0.3276, 0.3232",\
                 "0.5435, 0.534, 0.508, 0.4766, 0.4499, 0.4301, 0.4155, 0.4046, 0.3967, 0.3905",\
                 "0.6682, 0.6577, 0.6284, 0.592, 0.5588, 0.5336, 0.5141, 0.4995, 0.4884, 0.4801",\
                 "0.8189, 0.8075, 0.7757, 0.7343, 0.6945, 0.6625, 0.638, 0.6186, 0.6041, 0.5925",\
                 "0.997, 0.9847, 0.95, 0.9042, 0.8581, 0.8188, 0.7877, 0.7636, 0.7446, 0.7296");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.002561, 0.008041, 0.01851, 0.03481, 0.05768, 0.08778, 0.1257, 0.172, 0.2272");
          values("0.1449, 0.1423, 0.1385, 0.1356, 0.1344, 0.1337, 0.1335, 0.1352, 0.1358, 0.1381",\
                 "0.1456, 0.1429, 0.139, 0.1364, 0.135, 0.1346, 0.1354, 0.1361, 0.1371, 0.1381",\
                 "0.1517, 0.149, 0.1443, 0.141, 0.1394, 0.1386, 0.1381, 0.1397, 0.1401, 0.142",\
                 "0.1749, 0.1718, 0.1646, 0.1584, 0.1549, 0.1527, 0.1516, 0.1523, 0.153, 0.1535",\
                 "0.2161, 0.2112, 0.2009, 0.192, 0.185, 0.1801, 0.1775, 0.1769, 0.1768, 0.1772",\
                 "0.2766, 0.2703, 0.2567, 0.2431, 0.2333, 0.2258, 0.2209, 0.2175, 0.2155, 0.2146",\
                 "0.3574, 0.3503, 0.3329, 0.3154, 0.3, 0.2898, 0.2825, 0.2768, 0.2732, 0.2696",\
                 "0.4603, 0.4515, 0.4311, 0.4085, 0.3891, 0.3731, 0.3634, 0.3565, 0.3503, 0.3455",\
                 "0.5853, 0.5756, 0.5513, 0.5256, 0.5013, 0.4798, 0.4647, 0.4547, 0.4477, 0.4406",\
                 "0.7338, 0.7233, 0.696, 0.6645, 0.6351, 0.6096, 0.5892, 0.5745, 0.5648, 0.5589");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.002561, 0.008041, 0.01851, 0.03481, 0.05768, 0.08778, 0.1257, 0.172, 0.2272");
          values("0.3305, 0.3234, 0.3055, 0.2867, 0.273, 0.2636, 0.257, 0.2522, 0.2486, 0.246",\
                 "0.3294, 0.3222, 0.3043, 0.2855, 0.2718, 0.2623, 0.2559, 0.251, 0.2475, 0.2447",\
                 "0.3303, 0.3232, 0.3053, 0.2863, 0.2726, 0.263, 0.2565, 0.2518, 0.2482, 0.2455",\
                 "0.3479, 0.3407, 0.3221, 0.3024, 0.2878, 0.2779, 0.271, 0.2659, 0.2622, 0.2594",\
                 "0.3956, 0.3875, 0.3671, 0.3446, 0.3274, 0.3156, 0.3073, 0.3011, 0.2965, 0.2931",\
                 "0.4781, 0.469, 0.4454, 0.4182, 0.3959, 0.3801, 0.3687, 0.3601, 0.354, 0.3494",\
                 "0.594, 0.5842, 0.5573, 0.5245, 0.4958, 0.4742, 0.4583, 0.4463, 0.4373, 0.4305",\
                 "0.7418, 0.7309, 0.7012, 0.6626, 0.6267, 0.5985, 0.577, 0.5608, 0.548, 0.5384",\
                 "0.9206, 0.9091, 0.8768, 0.8334, 0.7902, 0.7538, 0.7259, 0.7041, 0.6874, 0.674",\
                 "1.132, 1.12, 1.085, 1.037, 0.9872, 0.9428, 0.9074, 0.8796, 0.8574, 0.8397");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.002561, 0.008041, 0.01851, 0.03481, 0.05768, 0.08778, 0.1257, 0.172, 0.2272");
          values("0.1656, 0.1624, 0.1568, 0.1527, 0.1504, 0.1489, 0.1491, 0.1499, 0.1511, 0.1518",\
                 "0.1649, 0.1618, 0.1559, 0.1521, 0.1498, 0.1491, 0.1484, 0.1493, 0.1505, 0.1512",\
                 "0.1687, 0.1655, 0.1591, 0.1549, 0.152, 0.1503, 0.1505, 0.1511, 0.152, 0.1529",\
                 "0.1931, 0.1891, 0.1811, 0.1738, 0.1686, 0.1653, 0.1638, 0.1643, 0.1641, 0.1655",\
                 "0.2395, 0.2343, 0.2229, 0.2127, 0.2039, 0.1979, 0.194, 0.1928, 0.1922, 0.1925",\
                 "0.3102, 0.3035, 0.2888, 0.2731, 0.2615, 0.2522, 0.2459, 0.2416, 0.2388, 0.2381",\
                 "0.4065, 0.3991, 0.3805, 0.3606, 0.3429, 0.3305, 0.3207, 0.3133, 0.3084, 0.3047",\
                 "0.5306, 0.5213, 0.4997, 0.4751, 0.452, 0.4338, 0.4202, 0.4101, 0.4024, 0.396",\
                 "0.6832, 0.6734, 0.6475, 0.6175, 0.5901, 0.5649, 0.5451, 0.5328, 0.5218, 0.5137",\
                 "0.8661, 0.8549, 0.826, 0.7914, 0.7567, 0.7281, 0.701, 0.6813, 0.6681, 0.6561");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.002561, 0.008041, 0.01851, 0.03481, 0.05768, 0.08778, 0.1257, 0.172, 0.2272");
          values("0.2596, 0.2768, 0.3271, 0.4049, 0.5087, 0.6428, 0.8119, 1.022, 1.277, 1.582",\
                 "0.2623, 0.2795, 0.3299, 0.4075, 0.5115, 0.6455, 0.8146, 1.024, 1.28, 1.584",\
                 "0.2829, 0.3, 0.3504, 0.4279, 0.5317, 0.6658, 0.835, 1.045, 1.3, 1.605",\
                 "0.3369, 0.3541, 0.4039, 0.4811, 0.5847, 0.7187, 0.8876, 1.097, 1.353, 1.657",\
                 "0.4279, 0.4449, 0.4945, 0.5713, 0.6745, 0.8079, 0.9766, 1.186, 1.441, 1.745",\
                 "0.5504, 0.5676, 0.6181, 0.6956, 0.7987, 0.9317, 1.1, 1.309, 1.563, 1.867",\
                 "0.6999, 0.7181, 0.7709, 0.8511, 0.9558, 1.089, 1.257, 1.465, 1.719, 2.022",\
                 "0.8745, 0.8942, 0.95, 1.034, 1.143, 1.28, 1.449, 1.656, 1.909, 2.211",\
                 "1.077, 1.097, 1.156, 1.244, 1.359, 1.5, 1.673, 1.883, 2.136, 2.438",\
                 "1.306, 1.328, 1.391, 1.483, 1.602, 1.749, 1.929, 2.144, 2.4, 2.702");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.002561, 0.008041, 0.01851, 0.03481, 0.05768, 0.08778, 0.1257, 0.172, 0.2272");
          values("0.1511, 0.1648, 0.2097, 0.2925, 0.4218, 0.604, 0.8441, 1.147, 1.517, 1.956",\
                 "0.1549, 0.1684, 0.2134, 0.2962, 0.4256, 0.6078, 0.8477, 1.15, 1.52, 1.961",\
                 "0.1685, 0.1821, 0.2267, 0.3092, 0.4383, 0.6205, 0.8604, 1.163, 1.533, 1.973",\
                 "0.1877, 0.2015, 0.2453, 0.3267, 0.4548, 0.636, 0.8755, 1.178, 1.547, 1.988",\
                 "0.1943, 0.2086, 0.2531, 0.3336, 0.4603, 0.64, 0.8785, 1.181, 1.549, 1.989",\
                 "0.1822, 0.1975, 0.2435, 0.3244, 0.4503, 0.629, 0.866, 1.167, 1.535, 1.974",\
                 "0.1485, 0.165, 0.2129, 0.2948, 0.4206, 0.5997, 0.8363, 1.135, 1.502, 1.941",\
                 "0.092, 0.1097, 0.1606, 0.2431, 0.3696, 0.5489, 0.7864, 1.086, 1.451, 1.888",\
                 "0.0108, 0.0296, 0.084, 0.1688, 0.2955, 0.4747, 0.713, 1.014, 1.381, 1.817",\
                 "-0.0963, -0.0759, -0.0182, 0.0692, 0.1962, 0.376, 0.6156, 0.918, 1.287, 1.725");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.002561, 0.008041, 0.01851, 0.03481, 0.05768, 0.08778, 0.1257, 0.172, 0.2272");
          values("0.1177, 0.1363, 0.1909, 0.2808, 0.4189, 0.616, 0.8854, 1.233, 1.665, 2.186",\
                 "0.1176, 0.136, 0.1906, 0.281, 0.4188, 0.6153, 0.8844, 1.233, 1.666, 2.184",\
                 "0.1175, 0.1363, 0.191, 0.2814, 0.4188, 0.6162, 0.8853, 1.233, 1.666, 2.187",\
                 "0.1178, 0.1368, 0.1915, 0.2817, 0.4192, 0.6158, 0.8857, 1.233, 1.666, 2.187",\
                 "0.1224, 0.1407, 0.195, 0.2848, 0.4207, 0.6179, 0.8868, 1.234, 1.666, 2.185",\
                 "0.1344, 0.1534, 0.2068, 0.2948, 0.4278, 0.6216, 0.888, 1.235, 1.667, 2.185",\
                 "0.1528, 0.1732, 0.2278, 0.3136, 0.4416, 0.6316, 0.8928, 1.236, 1.667, 2.186",\
                 "0.1754, 0.197, 0.2534, 0.341, 0.4694, 0.6518, 0.9056, 1.243, 1.67, 2.187",\
                 "0.1988, 0.2202, 0.2806, 0.3718, 0.5028, 0.6852, 0.9344, 1.262, 1.677, 2.189",\
                 "0.2244, 0.2478, 0.3104, 0.4058, 0.54, 0.7242, 0.9742, 1.298, 1.702, 2.2");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.002561, 0.008041, 0.01851, 0.03481, 0.05768, 0.08778, 0.1257, 0.172, 0.2272");
          values("0.07788, 0.0978, 0.1717, 0.321, 0.5592, 0.8942, 1.337, 1.891, 2.57, 3.379",\
                 "0.07766, 0.09796, 0.1717, 0.3212, 0.5592, 0.8943, 1.336, 1.891, 2.569, 3.378",\
                 "0.0777, 0.09778, 0.1721, 0.321, 0.5592, 0.8944, 1.337, 1.891, 2.57, 3.379",\
                 "0.08228, 0.1017, 0.1743, 0.3216, 0.5591, 0.8939, 1.337, 1.89, 2.57, 3.377",\
                 "0.09188, 0.1105, 0.1794, 0.3244, 0.5599, 0.8945, 1.337, 1.89, 2.57, 3.378",\
                 "0.1038, 0.1223, 0.1885, 0.3305, 0.5644, 0.8966, 1.336, 1.894, 2.568, 3.376",\
                 "0.1175, 0.1373, 0.2003, 0.3388, 0.5726, 0.9034, 1.34, 1.892, 2.57, 3.377",\
                 "0.1326, 0.1526, 0.2162, 0.35, 0.5826, 0.9152, 1.351, 1.9, 2.577, 3.38",\
                 "0.1496, 0.1708, 0.2336, 0.3626, 0.592, 0.9284, 1.367, 1.916, 2.584, 3.384",\
                 "0.1686, 0.1906, 0.2546, 0.3786, 0.6032, 0.94, 1.385, 1.936, 2.604, 3.4");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.002561, 0.008041, 0.01851, 0.03481, 0.05768, 0.08778, 0.1257, 0.172, 0.2272");
          values("0.2841, 0.3013, 0.3516, 0.4293, 0.5332, 0.6672, 0.8364, 1.046, 1.301, 1.606",\
                 "0.286, 0.3032, 0.3535, 0.4311, 0.535, 0.6691, 0.8382, 1.048, 1.303, 1.608",\
                 "0.2965, 0.3138, 0.3641, 0.4416, 0.5454, 0.6795, 0.8485, 1.058, 1.314, 1.618",\
                 "0.3321, 0.3492, 0.399, 0.4764, 0.58, 0.7138, 0.8829, 1.093, 1.348, 1.652",\
                 "0.4011, 0.4183, 0.4681, 0.5451, 0.6484, 0.7816, 0.9504, 1.16, 1.415, 1.719",\
                 "0.498, 0.516, 0.5679, 0.6465, 0.7504, 0.8836, 1.052, 1.26, 1.514, 1.818",\
                 "0.6144, 0.6341, 0.6898, 0.7735, 0.8814, 1.016, 1.184, 1.392, 1.646, 1.949",\
                 "0.7497, 0.7702, 0.8299, 0.9193, 1.034, 1.175, 1.347, 1.555, 1.808, 2.109",\
                 "0.9027, 0.925, 0.989, 1.085, 1.206, 1.355, 1.534, 1.748, 2.002, 2.303",\
                 "1.075, 1.099, 1.167, 1.269, 1.398, 1.555, 1.743, 1.966, 2.227, 2.529");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.002561, 0.008041, 0.01851, 0.03481, 0.05768, 0.08778, 0.1257, 0.172, 0.2272");
          values("0.1688, 0.1827, 0.2273, 0.3102, 0.4392, 0.6211, 0.8608, 1.163, 1.532, 1.972",\
                 "0.1714, 0.1855, 0.2303, 0.3129, 0.4419, 0.6242, 0.8639, 1.166, 1.535, 1.975",\
                 "0.1841, 0.198, 0.2425, 0.3248, 0.4538, 0.6355, 0.8748, 1.177, 1.546, 1.987",\
                 "0.2071, 0.2208, 0.2647, 0.3459, 0.4736, 0.6544, 0.8937, 1.195, 1.564, 2.003",\
                 "0.2212, 0.2356, 0.2801, 0.3604, 0.4865, 0.6659, 0.9037, 1.205, 1.572, 2.012",\
                 "0.2201, 0.2355, 0.2815, 0.3618, 0.4873, 0.6652, 0.9018, 1.202, 1.569, 2.008",\
                 "0.2014, 0.2183, 0.2666, 0.3481, 0.4731, 0.6513, 0.8865, 1.185, 1.551, 1.989",\
                 "0.1645, 0.1823, 0.2341, 0.3169, 0.4429, 0.6211, 0.8572, 1.155, 1.52, 1.956",\
                 "0.1079, 0.1274, 0.1825, 0.2679, 0.3944, 0.5733, 0.8104, 1.11, 1.475, 1.91",\
                 "0.0311, 0.0521, 0.1115, 0.2006, 0.327, 0.507, 0.7454, 1.046, 1.413, 1.85");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.002561, 0.008041, 0.01851, 0.03481, 0.05768, 0.08778, 0.1257, 0.172, 0.2272");
          values("0.1177, 0.1363, 0.1909, 0.2811, 0.4181, 0.6162, 0.8855, 1.234, 1.666, 2.187",\
                 "0.1177, 0.1364, 0.1907, 0.2809, 0.4186, 0.616, 0.8853, 1.233, 1.665, 2.187",\
                 "0.1174, 0.1365, 0.1905, 0.281, 0.4188, 0.6157, 0.8846, 1.233, 1.665, 2.186",\
                 "0.1181, 0.1373, 0.191, 0.2819, 0.4196, 0.6172, 0.8857, 1.233, 1.666, 2.185",\
                 "0.1245, 0.1434, 0.1965, 0.2857, 0.4223, 0.6175, 0.8864, 1.234, 1.666, 2.185",\
                 "0.1419, 0.1602, 0.214, 0.2994, 0.431, 0.6244, 0.889, 1.235, 1.667, 2.185",\
                 "0.164, 0.185, 0.2418, 0.329, 0.4548, 0.6382, 0.8976, 1.238, 1.667, 2.187",\
                 "0.1882, 0.211, 0.273, 0.3656, 0.4938, 0.6724, 0.9192, 1.25, 1.672, 2.186",\
                 "0.216, 0.2408, 0.3072, 0.4046, 0.5388, 0.7204, 0.9636, 1.282, 1.688, 2.19",\
                 "0.2436, 0.2704, 0.343, 0.4476, 0.588, 0.7742, 1.022, 1.338, 1.731, 2.216");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.001, 0.002561, 0.008041, 0.01851, 0.03481, 0.05768, 0.08778, 0.1257, 0.172, 0.2272");
          values("0.08094, 0.1006, 0.1736, 0.3222, 0.5594, 0.8953, 1.335, 1.893, 2.57, 3.377",\
                 "0.0811, 0.1006, 0.1733, 0.3221, 0.5596, 0.8943, 1.336, 1.891, 2.57, 3.377",\
                 "0.08058, 0.1003, 0.1735, 0.3223, 0.5594, 0.8953, 1.335, 1.893, 2.569, 3.376",\
                 "0.08448, 0.1037, 0.1754, 0.3227, 0.5597, 0.8945, 1.336, 1.891, 2.569, 3.376",\
                 "0.09378, 0.1123, 0.1808, 0.3263, 0.5618, 0.8949, 1.335, 1.89, 2.569, 3.378",\
                 "0.1065, 0.1251, 0.1903, 0.3321, 0.5653, 0.897, 1.338, 1.892, 2.57, 3.378",\
                 "0.1215, 0.1405, 0.204, 0.3422, 0.574, 0.905, 1.34, 1.896, 2.573, 3.38",\
                 "0.139, 0.159, 0.222, 0.3546, 0.586, 0.9176, 1.352, 1.9, 2.577, 3.386",\
                 "0.159, 0.1792, 0.2424, 0.3692, 0.5978, 0.932, 1.37, 1.917, 2.584, 3.387",\
                 "0.1798, 0.2012, 0.2662, 0.389, 0.6124, 0.9484, 1.391, 1.94, 2.606, 3.399");
        }
      }
    }
  }

