#version 310 es

void f() {
  {
    uvec2 tint_loop_idx = uvec2(4294967295u);
    int i0520 = 0;
    while(true) {
      if (all(equal(tint_loop_idx, uvec2(0u)))) {
        break;
      }
      if (false) {
      } else {
        break;
      }
      {
        uint tint_low_inc = (tint_loop_idx.x - 1u);
        tint_loop_idx.x = tint_low_inc;
        uint tint_carry = uint((tint_low_inc == 4294967295u));
        tint_loop_idx.y = (tint_loop_idx.y - tint_carry);
      }
      continue;
    }
  }
  {
    uvec2 tint_loop_idx = uvec2(4294967295u);
    int i62 = 0;
    while(true) {
      if (all(equal(tint_loop_idx, uvec2(0u)))) {
        break;
      }
      if (false) {
      } else {
        break;
      }
      {
        uint tint_low_inc_1 = (tint_loop_idx.x - 1u);
        tint_loop_idx.x = tint_low_inc_1;
        uint tint_carry_1 = uint((tint_low_inc_1 == 4294967295u));
        tint_loop_idx.y = (tint_loop_idx.y - tint_carry_1);
      }
      continue;
    }
  }
  {
    uvec2 tint_loop_idx = uvec2(4294967295u);
    int i0520 = 0;
    while(true) {
      if (all(equal(tint_loop_idx, uvec2(0u)))) {
        break;
      }
      if (false) {
      } else {
        break;
      }
      {
        uint tint_low_inc_2 = (tint_loop_idx.x - 1u);
        tint_loop_idx.x = tint_low_inc_2;
        uint tint_carry_2 = uint((tint_low_inc_2 == 4294967295u));
        tint_loop_idx.y = (tint_loop_idx.y - tint_carry_2);
      }
      continue;
    }
  }
  {
    uvec2 tint_loop_idx = uvec2(4294967295u);
    int i62 = 0;
    while(true) {
      if (all(equal(tint_loop_idx, uvec2(0u)))) {
        break;
      }
      if (false) {
      } else {
        break;
      }
      {
        uint tint_low_inc_3 = (tint_loop_idx.x - 1u);
        tint_loop_idx.x = tint_low_inc_3;
        uint tint_carry_3 = uint((tint_low_inc_3 == 4294967295u));
        tint_loop_idx.y = (tint_loop_idx.y - tint_carry_3);
      }
      continue;
    }
  }
  {
    uvec2 tint_loop_idx = uvec2(4294967295u);
    int i62 = 0;
    while(true) {
      if (all(equal(tint_loop_idx, uvec2(0u)))) {
        break;
      }
      if (false) {
      } else {
        break;
      }
      {
        uint tint_low_inc_4 = (tint_loop_idx.x - 1u);
        tint_loop_idx.x = tint_low_inc_4;
        uint tint_carry_4 = uint((tint_low_inc_4 == 4294967295u));
        tint_loop_idx.y = (tint_loop_idx.y - tint_carry_4);
      }
      continue;
    }
  }
  {
    uvec2 tint_loop_idx = uvec2(4294967295u);
    int i60 = 0;
    while(true) {
      if (all(equal(tint_loop_idx, uvec2(0u)))) {
        break;
      }
      if (false) {
      } else {
        break;
      }
      {
        uint tint_low_inc_5 = (tint_loop_idx.x - 1u);
        tint_loop_idx.x = tint_low_inc_5;
        uint tint_carry_5 = uint((tint_low_inc_5 == 4294967295u));
        tint_loop_idx.y = (tint_loop_idx.y - tint_carry_5);
      }
      continue;
    }
  }
  {
    uvec2 tint_loop_idx = uvec2(4294967295u);
    int i62 = 0;
    while(true) {
      if (all(equal(tint_loop_idx, uvec2(0u)))) {
        break;
      }
      if (false) {
      } else {
        break;
      }
      {
        uint tint_low_inc_6 = (tint_loop_idx.x - 1u);
        tint_loop_idx.x = tint_low_inc_6;
        uint tint_carry_6 = uint((tint_low_inc_6 == 4294967295u));
        tint_loop_idx.y = (tint_loop_idx.y - tint_carry_6);
      }
      continue;
    }
  }
  {
    uvec2 tint_loop_idx = uvec2(4294967295u);
    int i60 = 0;
    while(true) {
      if (all(equal(tint_loop_idx, uvec2(0u)))) {
        break;
      }
      if (false) {
      } else {
        break;
      }
      {
        uint tint_low_inc_7 = (tint_loop_idx.x - 1u);
        tint_loop_idx.x = tint_low_inc_7;
        uint tint_carry_7 = uint((tint_low_inc_7 == 4294967295u));
        tint_loop_idx.y = (tint_loop_idx.y - tint_carry_7);
      }
      continue;
    }
  }
}
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
void main() {
}
