uniform float4 u1;
uniform float4 u2;
uniform float4 u3;
uniform float4 u4;
float index_clamped_out_of_bounds_0()
{
	for (int i = 7;i < 8; i++) 
	{
		return u4[i];
	}
}
float4 main()
{
	float _2_sum = 0.0;
	for (int _3_i = 0;_3_i < 4; ++_3_i) 
	{
		_2_sum += u2[_3_i];
	}
	float _5_prod = 1.0;
	for (int _6_i = 0;_6_i < 4; ++_6_i) 
	{
		_5_prod *= u3[_6_i < 2 ? 0 : _6_i];
	}
	return half4(float4(u1.x, _2_sum, _5_prod, index_clamped_out_of_bounds_0()));
}
