/*
 * 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__nor2_1) {
    area : 13.171200 ;

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!A1&!A2" ;
      value : "5.1876e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!A1&A2" ;
      value : "5.73408e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "A1&!A2" ;
      value : "3.97692e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "A1&A2" ;
      value : "3.97692e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "5.73408e-05" ;
    }

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

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

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

      internal_power() {
        when : "A2" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.01523, 0.01519, 0.01508, 0.0151, 0.0151, 0.0151, 0.01512, 0.01512, \
                  0.01512, 0.0151");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("-0.006201, -0.006205, -0.006205, -0.006198, -0.006211, -0.006209, \
                  -0.006222, -0.006223, -0.006224, -0.006226");
        }
      }
    }

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

      internal_power() {
        when : "A1" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.01998, 0.01991, 0.01992, 0.01979, 0.0199, 0.01989, 0.01991, \
                  0.01992, 0.01995, 0.01996");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("-0.01677, -0.01811, -0.01923, -0.01942, -0.01951, -0.01956, -0.01964, \
                  -0.01968, -0.0197, -0.0197");
        }
      }
    }

    pin(ZN) {
      direction : output ;
      function : "((!A1)&(!A2))" ;
      max_capacitance : 0.192 ;
      max_transition : 5.2 ;
      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.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.002318, 0.006946, 0.01578, 0.02955, 0.04887, 0.07429, 0.1063, 0.1454, 0.192");
          values("0.0004631, 0.0006997, 0.001225, 0.001499, 0.001638, 0.001682, 0.001765, 0.00176, 0.001784, 0.001792",\
                 "0.0005914, 0.0008576, 0.001534, 0.001971, 0.00228, 0.002396, 0.002489, 0.002529, 0.002572, 0.002593",\
                 "0.00349, 0.003447, 0.003348, 0.003354, 0.003353, 0.003349, 0.003371, 0.003353, 0.003322, 0.003318",\
                 "0.0134, 0.01256, 0.0107, 0.008944, 0.007553, 0.006557, 0.005817, 0.005284, 0.004903, 0.004618",\
                 "0.03254, 0.03089, 0.02667, 0.02204, 0.01814, 0.01503, 0.01266, 0.01082, 0.009404, 0.008326",\
                 "0.06168, 0.05934, 0.05285, 0.0448, 0.03728, 0.0311, 0.02613, 0.02213, 0.0189, 0.01637",\
                 "0.1016, 0.09857, 0.09009, 0.07865, 0.06707, 0.05693, 0.04839, 0.04132, 0.03551, 0.0307",\
                 "0.1526, 0.1492, 0.139, 0.1245, 0.1087, 0.09402, 0.08114, 0.0702, 0.0609, 0.05316",\
                 "0.2156, 0.2118, 0.2002, 0.183, 0.1633, 0.1437, 0.1259, 0.1103, 0.09685, 0.08526",\
                 "0.291, 0.287, 0.274, 0.2545, 0.2311, 0.2069, 0.1838, 0.163, 0.1447, 0.1285");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.002318, 0.006946, 0.01578, 0.02955, 0.04887, 0.07429, 0.1063, 0.1454, 0.192");
          values("0.05118, 0.05113, 0.05173, 0.05218, 0.05231, 0.05232, 0.05222, 0.05207, 0.0518, 0.05119",\
                 "0.0506, 0.05085, 0.05103, 0.05161, 0.05195, 0.05207, 0.05208, 0.05196, 0.05173, 0.05123",\
                 "0.05476, 0.05425, 0.05378, 0.05271, 0.05325, 0.05239, 0.05226, 0.05203, 0.0518, 0.05126",\
                 "0.06782, 0.06686, 0.0636, 0.06043, 0.05883, 0.05635, 0.05514, 0.05423, 0.05346, 0.05285",\
                 "0.09056, 0.08862, 0.08379, 0.07764, 0.07186, 0.06877, 0.06572, 0.06118, 0.05882, 0.0572",\
                 "0.1243, 0.1216, 0.1143, 0.1056, 0.09627, 0.08785, 0.08113, 0.0755, 0.07095, 0.06728",\
                 "0.1696, 0.1663, 0.1571, 0.1451, 0.1329, 0.1202, 0.1092, 0.1001, 0.09216, 0.08543",\
                 "0.2276, 0.2239, 0.2128, 0.1976, 0.1814, 0.1655, 0.15, 0.1362, 0.1241, 0.1139",\
                 "0.2987, 0.2947, 0.2823, 0.264, 0.2437, 0.2239, 0.2042, 0.1854, 0.169, 0.1544",\
                 "0.3839, 0.3794, 0.3658, 0.3451, 0.321, 0.2965, 0.2729, 0.2501, 0.2277, 0.2083");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.002318, 0.006946, 0.01578, 0.02955, 0.04887, 0.07429, 0.1063, 0.1454, 0.192");
          values("0.01321, 0.01315, 0.01319, 0.01326, 0.01329, 0.01332, 0.01334, 0.01333, 0.01334, 0.01333",\
                 "0.01223, 0.01227, 0.01231, 0.01237, 0.01239, 0.01243, 0.01244, 0.01244, 0.01244, 0.01243",\
                 "0.01423, 0.01399, 0.01335, 0.01289, 0.01256, 0.01234, 0.01218, 0.0121, 0.01202, 0.01199",\
                 "0.02439, 0.02351, 0.02118, 0.01882, 0.0169, 0.01553, 0.01455, 0.01384, 0.01334, 0.01298",\
                 "0.04545, 0.04374, 0.0391, 0.03361, 0.02875, 0.02489, 0.02192, 0.01977, 0.01808, 0.01682",\
                 "0.07835, 0.07592, 0.06892, 0.05966, 0.05074, 0.04316, 0.03702, 0.0322, 0.02846, 0.02549",\
                 "0.1238, 0.1207, 0.1115, 0.09873, 0.08519, 0.07283, 0.06237, 0.05378, 0.04678, 0.04116",\
                 "0.1824, 0.1789, 0.1679, 0.1517, 0.1335, 0.116, 0.1002, 0.08675, 0.07549, 0.0661",\
                 "0.2549, 0.2509, 0.2385, 0.2192, 0.1967, 0.1737, 0.1523, 0.1331, 0.1165, 0.1025",\
                 "0.3419, 0.3376, 0.3238, 0.302, 0.2754, 0.2472, 0.2198, 0.1944, 0.1718, 0.152");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.002318, 0.006946, 0.01578, 0.02955, 0.04887, 0.07429, 0.1063, 0.1454, 0.192");
          values("0.06569, 0.06599, 0.06652, 0.06684, 0.06693, 0.06693, 0.06684, 0.06658, 0.0662, 0.06581",\
                 "0.0645, 0.06481, 0.06552, 0.06619, 0.06657, 0.06665, 0.06666, 0.0664, 0.06631, 0.06577",\
                 "0.06609, 0.06608, 0.06585, 0.06598, 0.06621, 0.06643, 0.06648, 0.06643, 0.0662, 0.0657",\
                 "0.078, 0.07704, 0.07447, 0.07205, 0.07038, 0.06942, 0.06871, 0.06798, 0.06739, 0.06663",\
                 "0.1028, 0.1008, 0.09576, 0.08971, 0.08435, 0.0804, 0.07735, 0.07493, 0.0729, 0.07139",\
                 "0.1408, 0.1381, 0.1304, 0.1208, 0.1114, 0.1029, 0.09589, 0.09044, 0.08589, 0.08226",\
                 "0.1925, 0.1892, 0.1795, 0.1661, 0.1525, 0.1393, 0.1275, 0.1178, 0.1094, 0.1028",\
                 "0.2584, 0.2546, 0.2433, 0.2269, 0.2084, 0.1907, 0.1736, 0.1587, 0.1458, 0.1347",\
                 "0.3394, 0.3352, 0.3227, 0.3033, 0.2807, 0.2575, 0.236, 0.2154, 0.1971, 0.1809",\
                 "0.4363, 0.4319, 0.4182, 0.3966, 0.3699, 0.3422, 0.3148, 0.2892, 0.2645, 0.2425");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.002318, 0.006946, 0.01578, 0.02955, 0.04887, 0.07429, 0.1063, 0.1454, 0.192");
          values("0.04332, 0.0523, 0.08319, 0.1415, 0.232, 0.3591, 0.5259, 0.7363, 0.9931, 1.299",\
                 "0.05106, 0.06003, 0.09107, 0.1496, 0.2402, 0.3671, 0.5342, 0.7446, 1.001, 1.307",\
                 "0.06484, 0.07806, 0.1173, 0.1776, 0.268, 0.3949, 0.5617, 0.772, 1.028, 1.335",\
                 "0.06636, 0.0851, 0.1393, 0.2204, 0.3225, 0.4489, 0.615, 0.8246, 1.081, 1.387",\
                 "0.05099, 0.07538, 0.1462, 0.2502, 0.3793, 0.5303, 0.7013, 0.9093, 1.164, 1.469",\
                 "0.01763, 0.04765, 0.1348, 0.2634, 0.4206, 0.6017, 0.8064, 1.031, 1.285, 1.589",\
                 "-0.0355, 0.0003, 0.1028, 0.2561, 0.4425, 0.6569, 0.8948, 1.157, 1.441, 1.749",\
                 "-0.1099, -0.0686, 0.0508, 0.2269, 0.4441, 0.6907, 0.9642, 1.263, 1.588, 1.936",\
                 "-0.2076, -0.1605, -0.0245, 0.1747, 0.4211, 0.7028, 1.014, 1.35, 1.713, 2.104",\
                 "-0.3299, -0.2768, -0.1244, 0.0992, 0.3741, 0.6897, 1.037, 1.415, 1.818, 2.25");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.002318, 0.006946, 0.01578, 0.02955, 0.04887, 0.07429, 0.1063, 0.1454, 0.192");
          values("0.07714, 0.09709, 0.1666, 0.2972, 0.4995, 0.7827, 1.155, 1.624, 2.197, 2.879",\
                 "0.08358, 0.1034, 0.1727, 0.3036, 0.5065, 0.7898, 1.162, 1.632, 2.205, 2.887",\
                 "0.1194, 0.1394, 0.2058, 0.3341, 0.5354, 0.8184, 1.191, 1.66, 2.233, 2.915",\
                 "0.1788, 0.203, 0.2778, 0.4048, 0.6014, 0.8809, 1.251, 1.718, 2.29, 2.972",\
                 "0.2582, 0.288, 0.3754, 0.5183, 0.7156, 0.989, 1.353, 1.817, 2.385, 3.065",\
                 "0.3575, 0.3931, 0.4973, 0.6575, 0.8758, 1.152, 1.51, 1.967, 2.53, 3.205",\
                 "0.4762, 0.5186, 0.6409, 0.8256, 1.064, 1.364, 1.726, 2.176, 2.732, 3.4",\
                 "0.6159, 0.6658, 0.8077, 1.018, 1.282, 1.605, 1.995, 2.45, 2.997, 3.658",\
                 "0.7783, 0.8352, 0.9974, 1.235, 1.53, 1.88, 2.294, 2.778, 3.333, 3.985",\
                 "0.965, 1.028, 1.21, 1.477, 1.806, 2.188, 2.628, 3.141, 3.727, 4.386");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.002318, 0.006946, 0.01578, 0.02955, 0.04887, 0.07429, 0.1063, 0.1454, 0.192");
          values("0.04474, 0.05907, 0.1097, 0.2062, 0.3572, 0.5684, 0.8461, 1.195, 1.622, 2.13",\
                 "0.04557, 0.05928, 0.1096, 0.2065, 0.3569, 0.5682, 0.8459, 1.195, 1.622, 2.131",\
                 "0.07346, 0.08716, 0.1285, 0.2092, 0.3566, 0.5678, 0.8457, 1.195, 1.622, 2.13",\
                 "0.116, 0.1337, 0.1859, 0.2692, 0.3829, 0.5705, 0.8456, 1.195, 1.622, 2.13",\
                 "0.1716, 0.1951, 0.2608, 0.3586, 0.4882, 0.6462, 0.8709, 1.197, 1.621, 2.13",\
                 "0.238, 0.2676, 0.3502, 0.4678, 0.6134, 0.7942, 1.005, 1.271, 1.642, 2.131",\
                 "0.3146, 0.3514, 0.4524, 0.5934, 0.7626, 0.9612, 1.199, 1.469, 1.782, 2.2",\
                 "0.401, 0.4462, 0.5668, 0.7348, 0.932, 1.154, 1.409, 1.708, 2.04, 2.411",\
                 "0.4958, 0.5496, 0.6932, 0.8876, 1.115, 1.368, 1.647, 1.966, 2.327, 2.727",\
                 "0.598, 0.6626, 0.8322, 1.054, 1.316, 1.601, 1.914, 2.254, 2.642, 3.068");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.002318, 0.006946, 0.01578, 0.02955, 0.04887, 0.07429, 0.1063, 0.1454, 0.192");
          values("0.118, 0.1522, 0.2727, 0.501, 0.857, 1.354, 2.009, 2.835, 3.843, 5.042",\
                 "0.1174, 0.1519, 0.2726, 0.5009, 0.8569, 1.355, 2.01, 2.835, 3.843, 5.041",\
                 "0.1318, 0.1609, 0.2716, 0.501, 0.8547, 1.354, 2.009, 2.835, 3.843, 5.042",\
                 "0.1629, 0.1959, 0.3036, 0.5055, 0.8547, 1.353, 2.008, 2.834, 3.843, 5.044",\
                 "0.2157, 0.2489, 0.3589, 0.5605, 0.872, 1.352, 2.007, 2.835, 3.842, 5.044",\
                 "0.2816, 0.3216, 0.4374, 0.6434, 0.9516, 1.387, 2.012, 2.834, 3.843, 5.045",\
                 "0.3572, 0.4028, 0.5372, 0.7462, 1.064, 1.49, 2.062, 2.842, 3.842, 5.042",\
                 "0.4422, 0.4978, 0.6488, 0.8798, 1.194, 1.634, 2.192, 2.916, 3.859, 5.044",\
                 "0.5358, 0.5988, 0.7734, 1.03, 1.36, 1.798, 2.371, 3.073, 3.956, 5.074",\
                 "0.638, 0.7094, 0.907, 1.194, 1.553, 1.994, 2.57, 3.289, 4.142, 5.196");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.002318, 0.006946, 0.01578, 0.02955, 0.04887, 0.07429, 0.1063, 0.1454, 0.192");
          values("0.05783, 0.06748, 0.09986, 0.1595, 0.2508, 0.3782, 0.5453, 0.7558, 1.012, 1.318",\
                 "0.06481, 0.07436, 0.1066, 0.1662, 0.2576, 0.3849, 0.5521, 0.7625, 1.019, 1.325",\
                 "0.08651, 0.09834, 0.1342, 0.1935, 0.2844, 0.4115, 0.5785, 0.7888, 1.045, 1.351",\
                 "0.1007, 0.1168, 0.1653, 0.2414, 0.3394, 0.4657, 0.6318, 0.8415, 1.098, 1.403",\
                 "0.1029, 0.1233, 0.1851, 0.2808, 0.4036, 0.55, 0.7186, 0.9266, 1.181, 1.486",\
                 "0.09221, 0.1166, 0.1916, 0.3079, 0.4552, 0.6296, 0.8286, 1.05, 1.303, 1.606",\
                 "0.0678, 0.0961, 0.1835, 0.3199, 0.4933, 0.6957, 0.9256, 1.182, 1.462, 1.769",\
                 "0.0298, 0.062, 0.1607, 0.3169, 0.5152, 0.7474, 1.009, 1.299, 1.617, 1.96",\
                 "-0.0238, 0.0125, 0.1227, 0.297, 0.5205, 0.7822, 1.076, 1.4, 1.753, 2.137",\
                 "-0.093, -0.0526, 0.0697, 0.2607, 0.5081, 0.7991, 1.127, 1.486, 1.875, 2.296");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.002318, 0.006946, 0.01578, 0.02955, 0.04887, 0.07429, 0.1063, 0.1454, 0.192");
          values("0.1006, 0.1207, 0.1898, 0.3202, 0.5224, 0.8057, 1.178, 1.647, 2.219, 2.902",\
                 "0.1062, 0.1264, 0.1961, 0.3272, 0.5299, 0.8133, 1.186, 1.655, 2.228, 2.91",\
                 "0.1276, 0.1484, 0.2168, 0.3469, 0.5493, 0.8331, 1.206, 1.675, 2.248, 2.93",\
                 "0.1668, 0.1893, 0.2619, 0.3913, 0.5897, 0.8707, 1.242, 1.71, 2.282, 2.964",\
                 "0.224, 0.2508, 0.3319, 0.4673, 0.6661, 0.941, 1.307, 1.771, 2.341, 3.021",\
                 "0.2956, 0.3277, 0.4221, 0.5709, 0.7771, 1.054, 1.412, 1.87, 2.433, 3.109",\
                 "0.3803, 0.418, 0.5281, 0.6963, 0.9178, 1.202, 1.564, 2.014, 2.569, 3.239",\
                 "0.4786, 0.5215, 0.6482, 0.8394, 1.084, 1.383, 1.753, 2.208, 2.755, 3.415",\
                 "0.5915, 0.64, 0.7828, 0.998, 1.268, 1.592, 1.976, 2.44, 2.994, 3.645",\
                 "0.7197, 0.7741, 0.9334, 1.173, 1.471, 1.824, 2.232, 2.708, 3.272, 3.93");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.002318, 0.006946, 0.01578, 0.02955, 0.04887, 0.07429, 0.1063, 0.1454, 0.192");
          values("0.06605, 0.08133, 0.1333, 0.2308, 0.3814, 0.5923, 0.8697, 1.219, 1.645, 2.154",\
                 "0.06518, 0.08066, 0.1332, 0.2308, 0.3815, 0.5924, 0.87, 1.219, 1.645, 2.153",\
                 "0.09242, 0.1056, 0.1454, 0.2317, 0.3816, 0.5925, 0.87, 1.219, 1.645, 2.154",\
                 "0.1412, 0.1581, 0.2073, 0.2875, 0.4033, 0.5942, 0.8699, 1.219, 1.646, 2.153",\
                 "0.2055, 0.2264, 0.2869, 0.38, 0.5067, 0.665, 0.893, 1.221, 1.645, 2.153",\
                 "0.2822, 0.3097, 0.3835, 0.493, 0.6342, 0.813, 1.021, 1.292, 1.665, 2.155",\
                 "0.3718, 0.4052, 0.497, 0.627, 0.7852, 0.9824, 1.215, 1.484, 1.801, 2.221",\
                 "0.476, 0.5158, 0.626, 0.778, 0.9608, 1.173, 1.428, 1.721, 2.053, 2.426",\
                 "0.5938, 0.6412, 0.7702, 0.9488, 1.157, 1.393, 1.665, 1.982, 2.339, 2.74",\
                 "0.7268, 0.7814, 0.9292, 1.136, 1.373, 1.639, 1.933, 2.266, 2.646, 3.075");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.002318, 0.006946, 0.01578, 0.02955, 0.04887, 0.07429, 0.1063, 0.1454, 0.192");
          values("0.1196, 0.153, 0.273, 0.5012, 0.8558, 1.354, 2.01, 2.834, 3.842, 5.042",\
                 "0.12, 0.1532, 0.2728, 0.501, 0.8571, 1.355, 2.01, 2.834, 3.842, 5.043",\
                 "0.1337, 0.1628, 0.2741, 0.5011, 0.8564, 1.354, 2.009, 2.836, 3.843, 5.042",\
                 "0.1684, 0.1969, 0.3017, 0.5086, 0.8564, 1.355, 2.009, 2.836, 3.842, 5.042",\
                 "0.2302, 0.2587, 0.3546, 0.5517, 0.8747, 1.355, 2.009, 2.835, 3.842, 5.043",\
                 "0.3024, 0.335, 0.4382, 0.625, 0.9334, 1.386, 2.014, 2.835, 3.843, 5.043",\
                 "0.3842, 0.4216, 0.5404, 0.734, 1.027, 1.462, 2.06, 2.848, 3.841, 5.044",\
                 "0.4736, 0.5162, 0.6504, 0.8666, 1.158, 1.577, 2.152, 2.908, 3.867, 5.046",\
                 "0.5742, 0.6208, 0.771, 1.011, 1.325, 1.732, 2.291, 3.019, 3.944, 5.083",\
                 "0.6828, 0.734, 0.9018, 1.167, 1.511, 1.934, 2.469, 3.184, 4.075, 5.177");
        }
      }
    }
  }

