uniform half4 colorGreen, colorRed;
uniform float unknownInput;

half4 main(float2 coords) {
    float x = 1, y = 2;
    int z = 3U;
    x = x - x + y * x * x * (y - x);
    y = x / y / x;
    z = (z / 2u % 3 << 4) >> 2 << 1;
    bool b = (x > 4) == x < 2 || 2 >= unknownInput && y <= x;
    bool c = unknownInput > 2;
    bool d = b ^^ c;
    bool e = b && c;
    bool f = b || c;
    x += 12;
    x -= 12;
    x *= y /= 10;
    z |= 0;
    z &= -1;
    z ^= 0;
    z >>= 2;
    z <<= 4;
    z %= 5;
    x = (colorGreen.xy, 6);
    y = (float(b) * float(c) * float(d) * float(e) * float(f), 6.0);
    z = (colorRed.zw, 6);
    int2 w = int2(~5);
    w = ~w;

    return (w.x == 5 && w.y == 5 && x == 6 && y == 6 && z == 6) ? colorGreen : colorRed;
}
