#version 130

uniform sampler2D sampler;
varying mediump vec2 coord;

struct lunarStruct1 {
    int i;
    float f;
};

struct lunarStruct2 {
    int i;
    float f;
	lunarStruct1 s1_1;
};

struct lunarStruct3 {
	lunarStruct2 s2_1;
    int i;
    float f;
	lunarStruct1 s1_1;
};


uniform lunarStruct1 foo;
uniform lunarStruct2 foo2;
uniform lunarStruct3 foo3;

void main()
{
	lunarStruct2 locals2;

	if (foo3.s2_1.i > 0)
		locals2 = foo3.s2_1;
	else
		locals2 = foo2;

	gl_FragColor =  locals2.s1_1.f * texture2D(sampler, coord);
}
