/*
 * 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__dffnq_2) {
    area : 72.441600 ;

    ff(IQ1,IQN1) {
      clocked_on : "(!CLKN)" ;
      next_state : "D" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!CLKN&!D" ;
      value : "0.0258478" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!CLKN&D" ;
      value : "0.02741805" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "CLKN&!D" ;
      value : "0.01939905" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "CLKN&D" ;
      value : "0.0273196" ;
    }

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

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

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

    pin(CLKN) {
      capacitance : 0.003451 ;
      clock : true ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 3.4 ;
      min_period : 0.81 ;
      min_pulse_width_high : 0.378 ;
      min_pulse_width_low : 0.395 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!D" ;

        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.3806, 0.3807, 0.3877, 0.4167, 0.4757, 0.5677, 0.6936, 0.8557, \
                  1.054, 1.291");
        }

        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.2471, 0.2469, 0.2519, 0.2757, 0.3256, 0.4046, 0.5148, 0.6575, \
                  0.8343, 1.046");
        }
      }

      internal_power() {
        when : "D" ;

        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.3803, 0.3803, 0.3874, 0.4162, 0.4752, 0.5672, 0.6936, 0.8553, \
                  1.054, 1.291");
        }

        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.2472, 0.2474, 0.2522, 0.2761, 0.3259, 0.4049, 0.5149, 0.6577, \
                  0.8346, 1.047");
        }
      }

      timing() {
        related_pin : "CLKN" ;
        sdf_cond : "ENABLE_NOT_D === 1'b1" ;
        timing_type : min_pulse_width ;
        when : "!D" ;

        fall_constraint(scalar) {
          values("0.345");
        }

        rise_constraint(scalar) {
          values("0.378");
        }
      }

      timing() {
        related_pin : "CLKN" ;
        sdf_cond : "ENABLE_D === 1'b1" ;
        timing_type : min_pulse_width ;
        when : "D" ;

        fall_constraint(scalar) {
          values("0.395");
        }

        rise_constraint(scalar) {
          values("0.321");
        }
      }

      timing() {
        related_pin : "CLKN" ;
        sdf_cond : "ENABLE_NOT_D === 1'b1" ;
        timing_type : minimum_period ;
        when : "!D" ;

        fall_constraint(scalar) {
          values("0.763");
        }
      }

      timing() {
        related_pin : "CLKN" ;
        sdf_cond : "ENABLE_D === 1'b1" ;
        timing_type : minimum_period ;
        when : "D" ;

        fall_constraint(scalar) {
          values("0.81");
        }
      }
    }

    pin(D) {
      capacitance : 0.002459 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 3.4 ;
      nextstate_type : data ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!CLKN" ;

        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.07186, 0.07245, 0.08157, 0.1047, 0.145, 0.2037, 0.2823, 0.382, \
                  0.5042, 0.6504");
        }

        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.005909, 0.006357, 0.01235, 0.03047, 0.06377, 0.1134, 0.1809, \
                  0.2672, 0.3734, 0.5007");
        }
      }

      internal_power() {
        when : "CLKN" ;

        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.2652, 0.2657, 0.2722, 0.2936, 0.3362, 0.4026, 0.4939, 0.6108, \
                  0.7545, 0.9261");
        }

        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.1714, 0.1718, 0.1771, 0.1946, 0.2286, 0.2815, 0.3551, 0.4507, \
                  0.5692, 0.7123");
        }
      }

      timing() {
        related_pin : "CLKN" ;
        timing_type : hold_falling ;

        fall_constraint(cnst_ctin_rtin_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.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("0.103, 0.112, 0.126, 0.166, 0.218, 0.275, 0.341, 0.418, 0.507, 0.603",\
                 "0.098, 0.106, 0.116, 0.161, 0.215, 0.269, 0.329, 0.411, 0.496, 0.597",\
                 "0.074, 0.079, 0.087, 0.13, 0.182, 0.243, 0.302, 0.385, 0.472, 0.57",\
                 "0.015, 0.022, 0.034, 0.078, 0.127, 0.181, 0.244, 0.325, 0.409, 0.503",\
                 "-0.051, -0.051, -0.036, 0.004, 0.049, 0.102, 0.158, 0.235, 0.32, 0.416",\
                 "-0.135, -0.131, -0.119, -0.081, -0.04, 0.01, 0.057, 0.132, 0.208, 0.297",\
                 "-0.228, -0.222, -0.214, -0.175, -0.138, -0.103, -0.054, 0.006, 0.08, 0.163",\
                 "-0.336, -0.329, -0.321, -0.285, -0.26, -0.223, -0.185, -0.123, -0.06, 0.018",\
                 "-0.453, -0.449, -0.444, -0.409, -0.391, -0.364, -0.324, -0.278, -0.216, -0.148",\
                 "-0.594, -0.588, -0.579, -0.55, -0.534, -0.52, -0.49, -0.448, -0.394, -0.331");
        }

        rise_constraint(cnst_ctin_rtin_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.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("0.132, 0.136, 0.157, 0.198, 0.264, 0.34, 0.431, 0.525, 0.634, 0.75",\
                 "0.129, 0.132, 0.157, 0.194, 0.262, 0.34, 0.428, 0.524, 0.631, 0.753",\
                 "0.121, 0.12, 0.145, 0.187, 0.251, 0.331, 0.422, 0.513, 0.625, 0.739",\
                 "0.11, 0.116, 0.135, 0.179, 0.242, 0.32, 0.41, 0.507, 0.614, 0.735",\
                 "0.117, 0.121, 0.145, 0.185, 0.247, 0.327, 0.415, 0.51, 0.619, 0.73",\
                 "0.135, 0.139, 0.158, 0.204, 0.271, 0.347, 0.43, 0.527, 0.634, 0.748",\
                 "0.178, 0.181, 0.202, 0.245, 0.306, 0.385, 0.469, 0.567, 0.675, 0.788",\
                 "0.243, 0.252, 0.265, 0.307, 0.367, 0.441, 0.53, 0.624, 0.726, 0.838",\
                 "0.345, 0.349, 0.363, 0.403, 0.461, 0.522, 0.612, 0.697, 0.8, 0.913",\
                 "0.477, 0.481, 0.495, 0.532, 0.576, 0.638, 0.713, 0.801, 0.901, 1.01");
        }
      }

      timing() {
        related_pin : "CLKN" ;
        timing_type : setup_falling ;

        fall_constraint(cnst_ctin_rtin_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.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("0.246, 0.24, 0.221, 0.185, 0.132, 0.071, 0.013, -0.067, -0.151, -0.24",\
                 "0.253, 0.251, 0.226, 0.188, 0.136, 0.079, 0.014, -0.062, -0.145, -0.232",\
                 "0.28, 0.271, 0.252, 0.21, 0.162, 0.099, 0.042, -0.033, -0.117, -0.206",\
                 "0.331, 0.327, 0.3, 0.264, 0.21, 0.151, 0.088, 0.017, -0.065, -0.152",\
                 "0.416, 0.411, 0.388, 0.343, 0.296, 0.232, 0.178, 0.098, 0.02, -0.072",\
                 "0.524, 0.517, 0.496, 0.459, 0.405, 0.338, 0.276, 0.208, 0.131, 0.038",\
                 "0.656, 0.657, 0.63, 0.594, 0.534, 0.471, 0.408, 0.335, 0.261, 0.176",\
                 "0.819, 0.817, 0.79, 0.747, 0.692, 0.633, 0.567, 0.492, 0.415, 0.333",\
                 "1.003, 1.003, 0.979, 0.936, 0.872, 0.808, 0.743, 0.665, 0.59, 0.513",\
                 "1.216, 1.214, 1.192, 1.142, 1.074, 1.009, 0.939, 0.864, 0.788, 0.704");
        }

        rise_constraint(cnst_ctin_rtin_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.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("0.16, 0.147, 0.128, 0.089, 0.033, -0.037, -0.115, -0.189, -0.272, -0.378",\
                 "0.161, 0.152, 0.136, 0.094, 0.035, -0.037, -0.108, -0.185, -0.273, -0.362",\
                 "0.18, 0.165, 0.145, 0.11, 0.05, -0.024, -0.094, -0.177, -0.263, -0.357",\
                 "0.193, 0.183, 0.168, 0.124, 0.064, -0.008, -0.087, -0.16, -0.255, -0.356",\
                 "0.218, 0.208, 0.182, 0.142, 0.08, 0.007, -0.069, -0.159, -0.256, -0.357",\
                 "0.227, 0.225, 0.196, 0.154, 0.094, 0.01, -0.074, -0.153, -0.251, -0.366",\
                 "0.228, 0.215, 0.198, 0.157, 0.089, 0.006, -0.081, -0.168, -0.265, -0.379",\
                 "0.215, 0.2, 0.183, 0.137, 0.072, -0.003, -0.091, -0.189, -0.289, -0.402",\
                 "0.185, 0.172, 0.152, 0.109, 0.036, -0.035, -0.124, -0.221, -0.324, -0.445",\
                 "0.136, 0.127, 0.1, 0.059, -0.007, -0.091, -0.176, -0.274, -0.374, -0.497");
        }
      }
    }

    pin(Q) {
      direction : output ;
      function : "IQ1" ;
      max_capacitance : 0.4113 ;
      max_transition : 3.4 ;
      min_capacitance : 0.001 ;
      output_voltage : default ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        related_pin : "CLKN" ;

        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.003832, 0.01377, 0.03275, 0.06232, 0.1038, 0.1584, 0.2272, 0.3112, 0.4113");
          values("0.7694, 0.7556, 0.7241, 0.6949, 0.6768, 0.6647, 0.6565, 0.6505, 0.6463, 0.6432",\
                 "0.7695, 0.7556, 0.7242, 0.695, 0.6768, 0.6648, 0.6564, 0.6505, 0.6462, 0.6432",\
                 "0.7698, 0.7563, 0.7246, 0.6954, 0.677, 0.665, 0.6569, 0.6507, 0.6467, 0.6434",\
                 "0.7714, 0.7579, 0.7262, 0.6974, 0.6789, 0.6669, 0.6586, 0.6528, 0.6484, 0.6453",\
                 "0.7794, 0.766, 0.7344, 0.7051, 0.6867, 0.6747, 0.6662, 0.6603, 0.6561, 0.653",\
                 "0.7938, 0.7801, 0.7482, 0.7187, 0.7005, 0.6883, 0.68, 0.674, 0.6697, 0.6665",\
                 "0.8135, 0.7993, 0.7676, 0.7382, 0.7197, 0.7074, 0.6989, 0.6928, 0.6885, 0.6855",\
                 "0.8365, 0.8231, 0.791, 0.7609, 0.7422, 0.7298, 0.7208, 0.7147, 0.7103, 0.707",\
                 "0.8642, 0.8502, 0.818, 0.7877, 0.7686, 0.7556, 0.7473, 0.741, 0.7364, 0.7332",\
                 "0.8955, 0.8816, 0.8485, 0.8175, 0.7984, 0.7854, 0.7762, 0.7699, 0.7653, 0.7619");
        }

        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.003832, 0.01377, 0.03275, 0.06232, 0.1038, 0.1584, 0.2272, 0.3112, 0.4113");
          values("0.8976, 0.8859, 0.8631, 0.8443, 0.8307, 0.8225, 0.8185, 0.8179, 0.8172, 0.8179",\
                 "0.8979, 0.8853, 0.8625, 0.8445, 0.8309, 0.8227, 0.8191, 0.8179, 0.8172, 0.8184",\
                 "0.898, 0.8869, 0.8638, 0.8452, 0.8317, 0.8234, 0.8197, 0.8185, 0.8183, 0.819",\
                 "0.9018, 0.8891, 0.8663, 0.8479, 0.8348, 0.8266, 0.8228, 0.8216, 0.8215, 0.8216",\
                 "0.9087, 0.8971, 0.8744, 0.855, 0.8419, 0.8338, 0.8298, 0.8291, 0.8284, 0.8291",\
                 "0.9195, 0.9075, 0.8844, 0.8668, 0.8534, 0.8449, 0.8417, 0.8399, 0.8398, 0.8405",\
                 "0.9355, 0.9232, 0.9006, 0.8826, 0.8692, 0.8604, 0.8572, 0.8555, 0.8548, 0.8555",\
                 "0.9557, 0.9432, 0.9198, 0.9011, 0.889, 0.881, 0.8759, 0.8742, 0.8735, 0.8742",\
                 "0.9761, 0.9662, 0.9427, 0.9229, 0.9084, 0.9014, 0.8991, 0.8963, 0.8944, 0.8946",\
                 "0.9985, 0.9861, 0.9629, 0.9435, 0.9293, 0.9209, 0.9183, 0.9193, 0.9197, 0.9171");
        }
      }

      timing() {
        related_pin : "CLKN" ;
        timing_type : falling_edge ;

        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.003832, 0.01377, 0.03275, 0.06232, 0.1038, 0.1584, 0.2272, 0.3112, 0.4113");
          values("0.5188, 0.5348, 0.5794, 0.6469, 0.7365, 0.8535, 1.004, 1.194, 1.425, 1.702",\
                 "0.5239, 0.54, 0.5845, 0.652, 0.7415, 0.8586, 1.009, 1.199, 1.431, 1.707",\
                 "0.5456, 0.5616, 0.6064, 0.6738, 0.7633, 0.8804, 1.031, 1.221, 1.452, 1.728",\
                 "0.5917, 0.6076, 0.6522, 0.7198, 0.8094, 0.9264, 1.077, 1.267, 1.498, 1.775",\
                 "0.6596, 0.6755, 0.7202, 0.7877, 0.8773, 0.9943, 1.145, 1.334, 1.566, 1.842",\
                 "0.7424, 0.7586, 0.8031, 0.8705, 0.9601, 1.077, 1.228, 1.417, 1.649, 1.925",\
                 "0.8362, 0.8525, 0.897, 0.9645, 1.054, 1.171, 1.322, 1.511, 1.743, 2.019",\
                 "0.94, 0.9558, 1.001, 1.068, 1.158, 1.274, 1.425, 1.615, 1.846, 2.122",\
                 "1.053, 1.069, 1.114, 1.181, 1.271, 1.388, 1.538, 1.728, 1.959, 2.236",\
                 "1.176, 1.192, 1.237, 1.304, 1.394, 1.511, 1.661, 1.851, 2.082, 2.359");
        }

        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.003832, 0.01377, 0.03275, 0.06232, 0.1038, 0.1584, 0.2272, 0.3112, 0.4113");
          values("0.578, 0.5941, 0.6405, 0.7231, 0.8511, 1.032, 1.273, 1.575, 1.946, 2.388",\
                 "0.5834, 0.599, 0.6455, 0.728, 0.8562, 1.037, 1.278, 1.58, 1.951, 2.394",\
                 "0.6053, 0.6214, 0.6678, 0.7502, 0.8784, 1.059, 1.3, 1.603, 1.974, 2.416",\
                 "0.6532, 0.6688, 0.7153, 0.7979, 0.926, 1.107, 1.347, 1.65, 2.021, 2.464",\
                 "0.7239, 0.7399, 0.7862, 0.8686, 0.9968, 1.178, 1.418, 1.721, 2.092, 2.534",\
                 "0.8113, 0.8271, 0.8737, 0.9565, 1.084, 1.266, 1.505, 1.809, 2.179, 2.622",\
                 "0.9115, 0.9274, 0.9738, 1.057, 1.184, 1.366, 1.606, 1.909, 2.279, 2.722",\
                 "1.022, 1.038, 1.084, 1.167, 1.295, 1.476, 1.716, 2.019, 2.39, 2.832",\
                 "1.141, 1.158, 1.204, 1.287, 1.415, 1.596, 1.835, 2.138, 2.509, 2.951",\
                 "1.271, 1.286, 1.333, 1.416, 1.543, 1.724, 1.964, 2.267, 2.637, 3.08");
        }

        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.003832, 0.01377, 0.03275, 0.06232, 0.1038, 0.1584, 0.2272, 0.3112, 0.4113");
          values("0.07752, 0.09484, 0.1441, 0.2231, 0.3452, 0.5272, 0.7779, 1.099, 1.496, 1.968",\
                 "0.07762, 0.09506, 0.1441, 0.2231, 0.3459, 0.5276, 0.7773, 1.099, 1.496, 1.969",\
                 "0.07812, 0.09472, 0.144, 0.2232, 0.3453, 0.5275, 0.778, 1.1, 1.496, 1.968",\
                 "0.07756, 0.09486, 0.1441, 0.223, 0.3454, 0.5276, 0.778, 1.1, 1.494, 1.968",\
                 "0.0777, 0.09518, 0.144, 0.2232, 0.3456, 0.5276, 0.7768, 1.099, 1.496, 1.968",\
                 "0.0778, 0.0948, 0.1442, 0.2232, 0.3458, 0.5272, 0.7768, 1.1, 1.496, 1.968",\
                 "0.078, 0.0952, 0.1446, 0.2232, 0.3456, 0.5268, 0.7774, 1.099, 1.496, 1.969",\
                 "0.078, 0.0956, 0.1448, 0.2232, 0.3464, 0.527, 0.7768, 1.099, 1.494, 1.969",\
                 "0.0782, 0.0958, 0.1448, 0.2238, 0.3464, 0.5268, 0.7768, 1.098, 1.493, 1.965",\
                 "0.079, 0.096, 0.145, 0.224, 0.3466, 0.5278, 0.7774, 1.1, 1.494, 1.966");
        }

        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.003832, 0.01377, 0.03275, 0.06232, 0.1038, 0.1584, 0.2272, 0.3112, 0.4113");
          values("0.07566, 0.09556, 0.1653, 0.3117, 0.5469, 0.8825, 1.329, 1.89, 2.569, 3.384",\
                 "0.07564, 0.0953, 0.1654, 0.3116, 0.5469, 0.8827, 1.329, 1.89, 2.569, 3.384",\
                 "0.07534, 0.0956, 0.1653, 0.3116, 0.5469, 0.8827, 1.329, 1.89, 2.569, 3.384",\
                 "0.07566, 0.09528, 0.1653, 0.3117, 0.5469, 0.8828, 1.329, 1.89, 2.569, 3.387",\
                 "0.0756, 0.0954, 0.1652, 0.3118, 0.547, 0.8826, 1.329, 1.89, 2.569, 3.384",\
                 "0.075, 0.0948, 0.1652, 0.3112, 0.5468, 0.883, 1.328, 1.887, 2.571, 3.383",\
                 "0.0752, 0.095, 0.1652, 0.311, 0.5466, 0.883, 1.329, 1.886, 2.569, 3.384",\
                 "0.0754, 0.0952, 0.1654, 0.3116, 0.5474, 0.883, 1.327, 1.89, 2.575, 3.384",\
                 "0.0756, 0.0956, 0.1654, 0.3118, 0.5472, 0.8834, 1.329, 1.886, 2.572, 3.384",\
                 "0.0758, 0.0958, 0.166, 0.3118, 0.5468, 0.8834, 1.327, 1.887, 2.569, 3.385");
        }
      }
    }
  }

