/*
 * 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__dffq_2) {
    area : 68.051200 ;

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

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!CLK&!D" ;
      value : "0.02229425" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!CLK&D" ;
      value : "0.0305514" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "CLK&!D" ;
      value : "0.0211035" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "CLK&D" ;
      value : "0.02417855" ;
    }

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

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

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

    pin(CLK) {
      capacitance : 0.00324 ;
      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.978 ;
      min_pulse_width_high : 0.486 ;
      min_pulse_width_low : 0.477 ;
      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.3588, 0.359, 0.3663, 0.3943, 0.4509, 0.5386, 0.659, 0.8133, \
                  1.003, 1.229");
        }

        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.2619, 0.2618, 0.2667, 0.2891, 0.3372, 0.4133, 0.5197, 0.6576, \
                  0.8283, 1.033");
        }
      }

      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.3491, 0.3494, 0.3568, 0.385, 0.4419, 0.5295, 0.65, 0.8038, 0.9932, \
                  1.219");
        }

        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.2598, 0.2601, 0.2648, 0.2877, 0.3358, 0.4125, 0.5191, 0.6569, \
                  0.8272, 1.032");
        }
      }

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

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

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

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

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

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

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

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

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

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

    pin(D) {
      capacitance : 0.002432 ;
      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 : "!CLK" ;

        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.214, 0.2132, 0.214, 0.2243, 0.2491, 0.2905, 0.3487, 0.424, 0.5167, \
                  0.6272");
        }

        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.1385, 0.1391, 0.142, 0.1525, 0.1729, 0.205, 0.2499, 0.3082, \
                  0.3806, 0.4679");
        }
      }

      internal_power() {
        when : "CLK" ;

        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.01188, 0.01186, 0.01184, 0.01185, 0.01187, 0.01188, 0.0119, \
                  0.01189, 0.0119, 0.01189");
        }

        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.009247, -0.009238, -0.00922, -0.009167, -0.009137, -0.009133, \
                  -0.009131, -0.009169, -0.009184, -0.009158");
        }
      }

      timing() {
        related_pin : "CLK" ;
        timing_type : hold_rising ;

        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.109, 0.105, 0.126, 0.15, 0.18, 0.2, 0.22, 0.225, 0.232, 0.223",\
                 "0.104, 0.106, 0.124, 0.144, 0.176, 0.197, 0.215, 0.226, 0.226, 0.223",\
                 "0.09, 0.087, 0.107, 0.13, 0.165, 0.184, 0.198, 0.209, 0.208, 0.206",\
                 "0.047, 0.049, 0.066, 0.093, 0.117, 0.141, 0.157, 0.166, 0.167, 0.161",\
                 "-0.013, -0.012, -0.001, 0.024, 0.056, 0.079, 0.089, 0.097, 0.099, 0.092",\
                 "-0.086, -0.092, -0.077, -0.048, -0.024, -0.009, 0.006, 0.004, -0.001, -0.011",\
                 "-0.175, -0.177, -0.166, -0.14, -0.119, -0.109, -0.095, -0.108, -0.115, -0.129",\
                 "-0.28, -0.288, -0.268, -0.251, -0.228, -0.223, -0.217, -0.236, -0.248, -0.268",\
                 "-0.399, -0.408, -0.395, -0.372, -0.359, -0.355, -0.363, -0.388, -0.406, -0.426",\
                 "-0.534, -0.545, -0.535, -0.513, -0.504, -0.515, -0.519, -0.558, -0.584, -0.613");
        }

        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.057, 0.062, 0.08, 0.102, 0.127, 0.146, 0.168, 0.174, 0.185, 0.188",\
                 "0.061, 0.059, 0.075, 0.1, 0.122, 0.148, 0.169, 0.175, 0.185, 0.188",\
                 "0.051, 0.055, 0.077, 0.098, 0.122, 0.143, 0.166, 0.172, 0.18, 0.188",\
                 "0.052, 0.055, 0.072, 0.093, 0.117, 0.141, 0.157, 0.166, 0.175, 0.18",\
                 "0.063, 0.066, 0.076, 0.099, 0.117, 0.141, 0.158, 0.166, 0.17, 0.17",\
                 "0.087, 0.09, 0.105, 0.124, 0.139, 0.16, 0.166, 0.167, 0.173, 0.169",\
                 "0.14, 0.143, 0.154, 0.175, 0.188, 0.196, 0.204, 0.201, 0.197, 0.192",\
                 "0.218, 0.221, 0.233, 0.245, 0.261, 0.265, 0.27, 0.255, 0.25, 0.239",\
                 "0.325, 0.329, 0.342, 0.352, 0.359, 0.357, 0.358, 0.343, 0.33, 0.313",\
                 "0.459, 0.463, 0.478, 0.486, 0.488, 0.478, 0.479, 0.45, 0.433, 0.414");
        }
      }

      timing() {
        related_pin : "CLK" ;
        timing_type : setup_rising ;

        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.206, 0.203, 0.19, 0.158, 0.132, 0.103, 0.088, 0.075, 0.077, 0.088",\
                 "0.204, 0.205, 0.193, 0.16, 0.129, 0.101, 0.09, 0.077, 0.078, 0.09",\
                 "0.226, 0.222, 0.203, 0.179, 0.145, 0.123, 0.106, 0.095, 0.099, 0.105",\
                 "0.272, 0.272, 0.256, 0.225, 0.195, 0.171, 0.157, 0.142, 0.147, 0.162",\
                 "0.362, 0.364, 0.345, 0.318, 0.29, 0.263, 0.247, 0.236, 0.233, 0.252",\
                 "0.497, 0.495, 0.479, 0.452, 0.421, 0.394, 0.374, 0.363, 0.366, 0.378",\
                 "0.663, 0.657, 0.646, 0.62, 0.583, 0.557, 0.544, 0.53, 0.534, 0.538",\
                 "0.855, 0.853, 0.844, 0.815, 0.78, 0.754, 0.737, 0.728, 0.725, 0.736",\
                 "1.083, 1.084, 1.069, 1.038, 1.006, 0.973, 0.957, 0.948, 0.946, 0.959",\
                 "1.337, 1.336, 1.326, 1.29, 1.26, 1.226, 1.214, 1.195, 1.198, 1.209");
        }

        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.212, 0.203, 0.19, 0.158, 0.132, 0.098, 0.088, 0.075, 0.077, 0.097",\
                 "0.216, 0.205, 0.193, 0.16, 0.129, 0.101, 0.09, 0.077, 0.078, 0.098",\
                 "0.226, 0.222, 0.203, 0.173, 0.145, 0.117, 0.098, 0.089, 0.092, 0.105",\
                 "0.246, 0.233, 0.218, 0.194, 0.155, 0.131, 0.114, 0.102, 0.111, 0.125",\
                 "0.256, 0.247, 0.225, 0.202, 0.167, 0.139, 0.119, 0.116, 0.122, 0.134",\
                 "0.248, 0.241, 0.231, 0.201, 0.164, 0.141, 0.127, 0.116, 0.122, 0.139",\
                 "0.228, 0.222, 0.206, 0.175, 0.148, 0.12, 0.109, 0.1, 0.115, 0.129",\
                 "0.189, 0.18, 0.161, 0.137, 0.109, 0.082, 0.071, 0.066, 0.077, 0.099",\
                 "0.124, 0.118, 0.103, 0.08, 0.044, 0.017, 0.012, 0.006, 0.019, 0.045",\
                 "0.033, 0.032, 0.011, -0.005, -0.046, -0.07, -0.082, -0.079, -0.067, -0.033");
        }
      }
    }

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

      internal_power() {
        related_pin : "CLK" ;

        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.004159, 0.01525, 0.03642, 0.06941, 0.1157, 0.1766, 0.2533, 0.347, 0.4587");
          values("0.5745, 0.5586, 0.5235, 0.4933, 0.4744, 0.4621, 0.4539, 0.4481, 0.444, 0.4413",\
                 "0.5742, 0.5583, 0.5234, 0.4929, 0.4741, 0.4621, 0.4538, 0.4481, 0.4439, 0.4412",\
                 "0.5745, 0.5584, 0.5235, 0.493, 0.4741, 0.4621, 0.4538, 0.448, 0.4439, 0.4413",\
                 "0.576, 0.5599, 0.525, 0.4945, 0.4755, 0.4635, 0.4553, 0.4495, 0.4454, 0.4427",\
                 "0.5784, 0.5626, 0.5275, 0.497, 0.4783, 0.4661, 0.4579, 0.4523, 0.4483, 0.4455",\
                 "0.5825, 0.5664, 0.5316, 0.5014, 0.4826, 0.4703, 0.4619, 0.4561, 0.4521, 0.4492",\
                 "0.5871, 0.5708, 0.5357, 0.5056, 0.4868, 0.4743, 0.4663, 0.4607, 0.4565, 0.4537",\
                 "0.5929, 0.5767, 0.5416, 0.5115, 0.4923, 0.48, 0.4717, 0.4662, 0.4619, 0.459",\
                 "0.5992, 0.5833, 0.548, 0.5173, 0.4986, 0.4863, 0.4779, 0.4723, 0.468, 0.4653",\
                 "0.6064, 0.5903, 0.5556, 0.525, 0.5057, 0.4934, 0.4848, 0.4792, 0.4752, 0.4724");
        }

        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.004159, 0.01525, 0.03642, 0.06941, 0.1157, 0.1766, 0.2533, 0.347, 0.4587");
          values("0.5956, 0.5784, 0.5413, 0.5115, 0.4903, 0.4752, 0.4672, 0.4636, 0.4614, 0.4603",\
                 "0.595, 0.5774, 0.5419, 0.511, 0.4899, 0.4753, 0.4669, 0.4634, 0.4611, 0.4595",\
                 "0.5954, 0.5779, 0.5416, 0.5112, 0.4899, 0.4756, 0.4671, 0.463, 0.4608, 0.4608",\
                 "0.5963, 0.5793, 0.5422, 0.513, 0.4912, 0.4765, 0.4679, 0.4644, 0.4622, 0.4616",\
                 "0.6011, 0.5839, 0.5476, 0.5178, 0.4957, 0.4809, 0.4725, 0.469, 0.4662, 0.4652",\
                 "0.6079, 0.5909, 0.5544, 0.5235, 0.5021, 0.4877, 0.4783, 0.4748, 0.4731, 0.4721",\
                 "0.6176, 0.5995, 0.5631, 0.5334, 0.5128, 0.4975, 0.4895, 0.4843, 0.4815, 0.4805",\
                 "0.6305, 0.6131, 0.576, 0.5449, 0.5238, 0.5112, 0.5023, 0.4966, 0.4933, 0.4927",\
                 "0.6471, 0.6298, 0.5931, 0.5621, 0.538, 0.5241, 0.5185, 0.5144, 0.5105, 0.51",\
                 "0.6671, 0.6498, 0.6126, 0.5813, 0.5576, 0.5408, 0.5339, 0.5326, 0.5309, 0.5309");
        }
      }

      timing() {
        related_pin : "CLK" ;
        timing_type : rising_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.004159, 0.01525, 0.03642, 0.06941, 0.1157, 0.1766, 0.2533, 0.347, 0.4587");
          values("0.5498, 0.5671, 0.6144, 0.6858, 0.7834, 0.9129, 1.081, 1.292, 1.551, 1.859",\
                 "0.5528, 0.5702, 0.6174, 0.6889, 0.7865, 0.916, 1.084, 1.295, 1.554, 1.862",\
                 "0.5669, 0.5842, 0.6315, 0.7028, 0.8005, 0.93, 1.098, 1.309, 1.568, 1.876",\
                 "0.5958, 0.6132, 0.6604, 0.7317, 0.8294, 0.9589, 1.127, 1.338, 1.597, 1.905",\
                 "0.6297, 0.6471, 0.6943, 0.7657, 0.8633, 0.9928, 1.161, 1.372, 1.631, 1.939",\
                 "0.661, 0.6783, 0.7255, 0.797, 0.8947, 1.024, 1.192, 1.404, 1.662, 1.971",\
                 "0.6864, 0.7037, 0.7509, 0.8223, 0.92, 1.049, 1.217, 1.429, 1.687, 1.996",\
                 "0.7047, 0.7221, 0.7692, 0.8406, 0.9382, 1.068, 1.236, 1.447, 1.705, 2.014",\
                 "0.7142, 0.7316, 0.7789, 0.8502, 0.9478, 1.077, 1.245, 1.457, 1.715, 2.023",\
                 "0.7148, 0.7321, 0.7793, 0.8507, 0.9484, 1.078, 1.246, 1.457, 1.716, 2.024");
        }

        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.004159, 0.01525, 0.03642, 0.06941, 0.1157, 0.1766, 0.2533, 0.347, 0.4587");
          values("0.6246, 0.6432, 0.6938, 0.7777, 0.9049, 1.086, 1.326, 1.63, 2.003, 2.447",\
                 "0.6276, 0.6461, 0.6971, 0.7807, 0.908, 1.089, 1.329, 1.634, 2.006, 2.45",\
                 "0.6416, 0.6601, 0.711, 0.7945, 0.9219, 1.103, 1.343, 1.647, 2.02, 2.464",\
                 "0.671, 0.6896, 0.7402, 0.8242, 0.9514, 1.132, 1.373, 1.677, 2.049, 2.494",\
                 "0.7074, 0.7259, 0.7765, 0.8605, 0.9876, 1.169, 1.409, 1.713, 2.085, 2.529",\
                 "0.7422, 0.7608, 0.8115, 0.8952, 1.022, 1.203, 1.444, 1.747, 2.12, 2.564",\
                 "0.7726, 0.7911, 0.842, 0.9255, 1.053, 1.234, 1.474, 1.778, 2.15, 2.595",\
                 "0.7981, 0.8167, 0.8676, 0.9511, 1.078, 1.259, 1.499, 1.803, 2.176, 2.62",\
                 "0.8167, 0.8352, 0.8859, 0.9697, 1.097, 1.278, 1.518, 1.822, 2.194, 2.638",\
                 "0.8286, 0.8472, 0.898, 0.9815, 1.109, 1.29, 1.53, 1.833, 2.206, 2.65");
        }

        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.004159, 0.01525, 0.03642, 0.06941, 0.1157, 0.1766, 0.2533, 0.347, 0.4587");
          values("0.07782, 0.09686, 0.149, 0.237, 0.3766, 0.5826, 0.8639, 1.224, 1.667, 2.192",\
                 "0.07768, 0.09682, 0.1491, 0.2368, 0.3768, 0.5827, 0.8642, 1.225, 1.667, 2.194",\
                 "0.0778, 0.09678, 0.1489, 0.2373, 0.3766, 0.5823, 0.8639, 1.224, 1.667, 2.192",\
                 "0.07782, 0.09678, 0.149, 0.2372, 0.3768, 0.5827, 0.8638, 1.224, 1.667, 2.192",\
                 "0.0778, 0.09688, 0.1492, 0.2368, 0.3766, 0.5824, 0.8634, 1.223, 1.667, 2.195",\
                 "0.0778, 0.0966, 0.1488, 0.237, 0.3768, 0.583, 0.8644, 1.225, 1.667, 2.192",\
                 "0.0776, 0.0964, 0.1484, 0.2368, 0.3764, 0.5818, 0.8642, 1.225, 1.667, 2.195",\
                 "0.0776, 0.0966, 0.1488, 0.237, 0.3768, 0.5822, 0.8626, 1.222, 1.665, 2.193",\
                 "0.0776, 0.097, 0.1492, 0.2368, 0.3766, 0.5824, 0.8624, 1.223, 1.664, 2.191",\
                 "0.0778, 0.0968, 0.149, 0.2368, 0.3768, 0.5824, 0.8636, 1.223, 1.666, 2.19");
        }

        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.004159, 0.01525, 0.03642, 0.06941, 0.1157, 0.1766, 0.2533, 0.347, 0.4587");
          values("0.08654, 0.1083, 0.1759, 0.3147, 0.5484, 0.8859, 1.332, 1.896, 2.585, 3.398",\
                 "0.0863, 0.1087, 0.1759, 0.3148, 0.5483, 0.8854, 1.332, 1.896, 2.585, 3.399",\
                 "0.0868, 0.1085, 0.1758, 0.3147, 0.5484, 0.8854, 1.331, 1.897, 2.585, 3.399",\
                 "0.08624, 0.1083, 0.1759, 0.3155, 0.5484, 0.8858, 1.332, 1.897, 2.585, 3.399",\
                 "0.0864, 0.1086, 0.176, 0.3154, 0.5484, 0.8856, 1.333, 1.897, 2.585, 3.4",\
                 "0.0864, 0.1082, 0.1756, 0.3148, 0.548, 0.8856, 1.333, 1.893, 2.58, 3.398",\
                 "0.0868, 0.1084, 0.176, 0.3152, 0.5484, 0.8848, 1.331, 1.894, 2.584, 3.405",\
                 "0.0872, 0.1088, 0.1762, 0.3154, 0.5484, 0.8854, 1.332, 1.896, 2.583, 3.406",\
                 "0.0868, 0.109, 0.1764, 0.3154, 0.5486, 0.885, 1.335, 1.893, 2.584, 3.405",\
                 "0.0876, 0.1092, 0.1774, 0.3158, 0.5492, 0.8856, 1.332, 1.894, 2.58, 3.401");
        }
      }
    }
  }

