#include <metal_stdlib>

using namespace metal;
struct buf0 {
  /* 0x0000 */ packed_float2 injectionSwitch;
};
struct tint_array_wrapper {
  int arr[10];
};
struct main_out {
  float4 x_GLF_color_1;
};
struct tint_symbol_2 {
  float4 x_GLF_color_1 [[color(0)]];
};

void merge_i1_i1_i1_(thread int* const from, thread int* const mid, thread int* const to, thread tint_array_wrapper* const tint_symbol_5, thread tint_array_wrapper* const tint_symbol_6) {
  int k = 0;
  int i = 0;
  int j = 0;
  int i_1 = 0;
  int const x_262 = *(from);
  k = x_262;
  int const x_263 = *(from);
  i = x_263;
  int const x_264 = *(mid);
  j = (x_264 + 1);
  while (true) {
    int const x_270 = i;
    int const x_271 = *(mid);
    int const x_273 = j;
    int const x_274 = *(to);
    if (((x_270 <= x_271) && (x_273 <= x_274))) {
    } else {
      break;
    }
    int const x_278 = i;
    int const x_280 = (*(tint_symbol_5)).arr[x_278];
    int const x_281 = j;
    int const x_283 = (*(tint_symbol_5)).arr[x_281];
    if ((x_280 < x_283)) {
      int const x_288 = k;
      k = (x_288 + 1);
      int const x_290 = i;
      i = (x_290 + 1);
      int const x_293 = (*(tint_symbol_5)).arr[x_290];
      (*(tint_symbol_6)).arr[x_288] = x_293;
    } else {
      int const x_295 = k;
      k = (x_295 + 1);
      int const x_297 = j;
      j = (x_297 + 1);
      int const x_300 = (*(tint_symbol_5)).arr[x_297];
      (*(tint_symbol_6)).arr[x_295] = x_300;
    }
  }
  while (true) {
    int const x_306 = i;
    int const x_308 = i;
    int const x_309 = *(mid);
    if (((x_306 < 10) && (x_308 <= x_309))) {
    } else {
      break;
    }
    int const x_313 = k;
    k = (x_313 + 1);
    int const x_315 = i;
    i = (x_315 + 1);
    int const x_318 = (*(tint_symbol_5)).arr[x_315];
    (*(tint_symbol_6)).arr[x_313] = x_318;
  }
  int const x_320 = *(from);
  i_1 = x_320;
  while (true) {
    int const x_325 = i_1;
    int const x_326 = *(to);
    if ((x_325 <= x_326)) {
    } else {
      break;
    }
    int const x_329 = i_1;
    int const x_330 = i_1;
    int const x_332 = (*(tint_symbol_6)).arr[x_330];
    (*(tint_symbol_5)).arr[x_329] = x_332;
    {
      int const x_334 = i_1;
      i_1 = (x_334 + 1);
    }
  }
  return;
}

void mergeSort_(thread tint_array_wrapper* const tint_symbol_7, thread tint_array_wrapper* const tint_symbol_8) {
  int low = 0;
  int high = 0;
  int m = 0;
  int i_2 = 0;
  int from_1 = 0;
  int mid_1 = 0;
  int to_1 = 0;
  int param = 0;
  int param_1 = 0;
  int param_2 = 0;
  low = 0;
  high = 9;
  m = 1;
  while (true) {
    int const x_341 = m;
    int const x_342 = high;
    if ((x_341 <= x_342)) {
    } else {
      break;
    }
    int const x_345 = low;
    i_2 = x_345;
    while (true) {
      int const x_350 = i_2;
      int const x_351 = high;
      if ((x_350 < x_351)) {
      } else {
        break;
      }
      int const x_354 = i_2;
      from_1 = x_354;
      int const x_355 = i_2;
      int const x_356 = m;
      mid_1 = ((x_355 + x_356) - 1);
      int const x_359 = i_2;
      int const x_360 = m;
      int const x_364 = high;
      to_1 = min(((x_359 + (2 * x_360)) - 1), x_364);
      int const x_366 = from_1;
      param = x_366;
      int const x_367 = mid_1;
      param_1 = x_367;
      int const x_368 = to_1;
      param_2 = x_368;
      merge_i1_i1_i1_(&(param), &(param_1), &(param_2), tint_symbol_7, tint_symbol_8);
      {
        int const x_370 = m;
        int const x_372 = i_2;
        i_2 = (x_372 + (2 * x_370));
      }
    }
    {
      int const x_374 = m;
      m = (2 * x_374);
    }
  }
  return;
}

void main_1(constant buf0& x_28, thread tint_array_wrapper* const tint_symbol_9, thread tint_array_wrapper* const tint_symbol_10, thread float4* const tint_symbol_11, thread float4* const tint_symbol_12) {
  int i_3 = 0;
  int j_1 = 0;
  float grey = 0.0f;
  int int_i = 0;
  float const x_85 = x_28.injectionSwitch.x;
  i_3 = int(x_85);
  while (true) {
    int const x_91 = i_3;
    switch(x_91) {
      case 9: {
        int const x_121 = i_3;
        (*(tint_symbol_9)).arr[x_121] = -5;
        break;
      }
      case 8: {
        int const x_119 = i_3;
        (*(tint_symbol_9)).arr[x_119] = -4;
        break;
      }
      case 7: {
        int const x_117 = i_3;
        (*(tint_symbol_9)).arr[x_117] = -3;
        break;
      }
      case 6: {
        int const x_115 = i_3;
        (*(tint_symbol_9)).arr[x_115] = -2;
        break;
      }
      case 5: {
        int const x_113 = i_3;
        (*(tint_symbol_9)).arr[x_113] = -1;
        break;
      }
      case 4: {
        int const x_111 = i_3;
        (*(tint_symbol_9)).arr[x_111] = 0;
        break;
      }
      case 3: {
        int const x_109 = i_3;
        (*(tint_symbol_9)).arr[x_109] = 1;
        break;
      }
      case 2: {
        int const x_107 = i_3;
        (*(tint_symbol_9)).arr[x_107] = 2;
        break;
      }
      case 1: {
        int const x_105 = i_3;
        (*(tint_symbol_9)).arr[x_105] = 3;
        break;
      }
      case 0: {
        int const x_103 = i_3;
        (*(tint_symbol_9)).arr[x_103] = 4;
        break;
      }
      default: {
        break;
      }
    }
    int const x_123 = i_3;
    i_3 = (x_123 + 1);
    {
      int const x_125 = i_3;
      if ((x_125 < 10)) {
      } else {
        break;
      }
    }
  }
  j_1 = 0;
  while (true) {
    int const x_131 = j_1;
    if ((x_131 < 10)) {
    } else {
      break;
    }
    int const x_134 = j_1;
    int const x_135 = j_1;
    int const x_137 = (*(tint_symbol_9)).arr[x_135];
    (*(tint_symbol_10)).arr[x_134] = x_137;
    {
      int const x_139 = j_1;
      j_1 = (x_139 + 1);
    }
  }
  mergeSort_(tint_symbol_9, tint_symbol_10);
  float const x_143 = (*(tint_symbol_11)).y;
  if ((int(x_143) < 30)) {
    int const x_150 = (*(tint_symbol_9)).arr[0];
    grey = (0.5f + (float(x_150) / 10.0f));
  } else {
    float const x_155 = (*(tint_symbol_11)).y;
    if ((int(x_155) < 60)) {
      int const x_162 = (*(tint_symbol_9)).arr[1];
      grey = (0.5f + (float(x_162) / 10.0f));
    } else {
      float const x_167 = (*(tint_symbol_11)).y;
      if ((int(x_167) < 90)) {
        int const x_174 = (*(tint_symbol_9)).arr[2];
        grey = (0.5f + (float(x_174) / 10.0f));
      } else {
        float const x_179 = (*(tint_symbol_11)).y;
        if ((int(x_179) < 120)) {
          int const x_186 = (*(tint_symbol_9)).arr[3];
          grey = (0.5f + (float(x_186) / 10.0f));
        } else {
          float const x_191 = (*(tint_symbol_11)).y;
          if ((int(x_191) < 150)) {
            int_i = 1;
            while (true) {
              int const x_201 = int_i;
              float const x_203 = x_28.injectionSwitch.x;
              if ((x_201 > int(x_203))) {
              } else {
                break;
              }
              discard_fragment();
            }
          } else {
            float const x_208 = (*(tint_symbol_11)).y;
            if ((int(x_208) < 180)) {
              int const x_215 = (*(tint_symbol_9)).arr[5];
              grey = (0.5f + (float(x_215) / 10.0f));
            } else {
              float const x_220 = (*(tint_symbol_11)).y;
              if ((int(x_220) < 210)) {
                int const x_227 = (*(tint_symbol_9)).arr[6];
                grey = (0.5f + (float(x_227) / 10.0f));
              } else {
                float const x_232 = (*(tint_symbol_11)).y;
                if ((int(x_232) < 240)) {
                  int const x_239 = (*(tint_symbol_9)).arr[7];
                  grey = (0.5f + (float(x_239) / 10.0f));
                } else {
                  float const x_244 = (*(tint_symbol_11)).y;
                  if ((int(x_244) < 270)) {
                    int const x_251 = (*(tint_symbol_9)).arr[8];
                    grey = (0.5f + (float(x_251) / 10.0f));
                  } else {
                    discard_fragment();
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  float const x_255 = grey;
  float3 const x_256 = float3(x_255, x_255, x_255);
  *(tint_symbol_12) = float4(x_256.x, x_256.y, x_256.z, 1.0f);
  return;
}

fragment tint_symbol_2 tint_symbol(float4 gl_FragCoord_param [[position]], constant buf0& x_28 [[buffer(0)]]) {
  thread float4 tint_symbol_13 = 0.0f;
  thread tint_array_wrapper tint_symbol_14 = {};
  thread tint_array_wrapper tint_symbol_15 = {};
  thread float4 tint_symbol_16 = 0.0f;
  tint_symbol_13 = gl_FragCoord_param;
  main_1(x_28, &(tint_symbol_14), &(tint_symbol_15), &(tint_symbol_13), &(tint_symbol_16));
  main_out const tint_symbol_3 = {.x_GLF_color_1=tint_symbol_16};
  tint_symbol_2 const tint_symbol_4 = {.x_GLF_color_1=tint_symbol_3.x_GLF_color_1};
  return tint_symbol_4;
}

