/* Shader 23 source, checksum 109657 */
/*#extension GL_ARB_draw_buffers : enable*/
ivec4 A[1];
bvec4 P[1];
uniform vec2 PixelCenterAdjustment;
vec4 V[16], O[12], R[32];
void shader_fn (const int aL);
uniform vec4 C[4];
uniform vec4 C1, C2;
const bool B1 = false;
/*attribute vec4 Position0;*/
/*attribute vec4 Normal0;*/
/*attribute vec4 TexCoord0;*/
varying vec4 VO3;
void
main (void)
{
  for (int i = 0; i < 16; ++i)
    {
      V[i] = vec4 (0.0, 0.0, 0.0, 1.0);
  }

 for (int i = 0; i < 12; ++i)
    {
      O[i] = vec4 (0.0, 0.0, 0.0, 1.0);
  }

 for (int i = 0; i < 32; ++i)
    {
      R[i] = vec4 (0.0, 0.0, 0.0, 1.0);
    }

//  V[0] = vec4 (gl_Vertex.x, gl_Vertex.y, gl_Vertex.z, 1.0);
  V[0] = ftransform();
  V[3] = vec4 (gl_Normal.x, gl_Normal.y, gl_Normal.z, 1.0);
  V[7] = vec4 (gl_MultiTexCoord0.x, gl_MultiTexCoord0.y, 0.0, 1.0);
  shader_fn (0);
  gl_Position = O[0];
//  {
//    vec4 t = gl_Position;
//    gl_Position = vec4 (t.x, -t.y, t.z + t.z - t.w, t.w);
//  }

  //gl_Position.xy += gl_Position.w * PixelCenterAdjustment.xy;
  gl_FrontColor = O[1];
  gl_FrontSecondaryColor = O[2];
  VO3 = O[3];
}

vec4
MUL (const vec4 v0, const vec4 v1)
{
  return v0 * v1;
}

vec4
DP3 (const vec4 v0, const vec4 v1)
{
  return vec4 (dot (v0.xyz, v1.xyz));
}

void
shader_fn (const int aL)
{
  O[0] = (V[0]);
  R[0] = DP3 (C[0], V[3]);
  O[1] = (C[3]);
  if (!B1)
    {
      O[1] = MUL (R[0], C1);
    }
  else
    {
      O[1] = MUL (R[0], C2);
    }
  O[3] = (V[7]);
}

/* Compile status: ok */
/* GPU code */
/*
# Vertex Program/Shader
  0: MOV TEMP[0].x, CONST[5].xxxx;
  1: MOV TEMP[1], CONST[10];
  2: MOV TEMP[2], CONST[10];
  3: MOV TEMP[3], CONST[10];
  4: MOV TEMP[4], CONST[10];
  5: MOV TEMP[5], CONST[10];
  6: MOV TEMP[6], CONST[10];
  7: MOV TEMP[7], CONST[10];
  8: MOV TEMP[8], CONST[10];
  9: MOV TEMP[0].y, INPUT[16].xxxx;
 10: MOV TEMP[0].z, INPUT[16].yyyy;
 11: MOV TEMP[0].w, INPUT[16].zzzz;
 12: MOV TEMP[9].x, TEMP[0].yyyy;
 13: MOV TEMP[9].y, TEMP[0].zzzw;
 14: MOV TEMP[9].z, TEMP[0].wyww;
 15: MOV TEMP[9].w, CONST[10].wwww;
 16: MOV TEMP[1], TEMP[9];
 17: MOV TEMP[0].y, INPUT[17].xxxx;
 18: MOV TEMP[0].z, INPUT[17].yyyy;
 19: MOV TEMP[0].w, INPUT[17].zzzz;
 20: MOV TEMP[9].x, TEMP[0].yyyy;
 21: MOV TEMP[9].y, TEMP[0].zzzw;
 22: MOV TEMP[9].z, TEMP[0].wyww;
 23: MOV TEMP[9].w, CONST[10].wwww;
 24: MOV TEMP[2], TEMP[9];
 25: MOV TEMP[0].y, INPUT[18].xxxx;
 26: MOV TEMP[0].z, INPUT[18].yyyy;
 27: MOV TEMP[9].x, TEMP[0].yyyy;
 28: MOV TEMP[9].y, TEMP[0].zzzw;
 29: MOV TEMP[9].z, CONST[5].xxxx;
 30: MOV TEMP[9].w, CONST[10].wwww;
 31: MOV TEMP[3], TEMP[9];
 32: MOV TEMP[0].y, CONST[5].xxxx;
 33: MOV TEMP[4], TEMP[1];
 34: DP3 TEMP[0].z, UNIFORM[1], TEMP[2];
 35: MOV TEMP[9], TEMP[0].zzzz;
 36: MOV TEMP[8], TEMP[9];
 37: MOV TEMP[5], UNIFORM[4];
 38: SEQ TEMP[0].z, TEMP[0].xxxx, CONST[5].xxxx;  # NOT
 39: IF TEMP[0].zzzz;  # (if false, goto 43);
 40:    MUL TEMP[9], TEMP[8], UNIFORM[2];
 41:    MOV TEMP[5], TEMP[9];
 42: ELSE; # (goto 46)
 43:    MUL TEMP[9], TEMP[8], UNIFORM[3];
 44:    MOV TEMP[6], TEMP[9];
 45: ENDIF;
 46: MOV TEMP[7], TEMP[3];
 47: MOV TEMP[1], TEMP[4];
 48: MOV TEMP[9], TEMP[1];
 49: MOV TEMP[0].y, TEMP[9].xxxx;
 50: MOV TEMP[0].z, TEMP[9].-y-y-y-y;
 51: ADD TEMP[2].y, TEMP[9].zzzz, TEMP[9].zzzz;
 52: SUB TEMP[2].x, TEMP[2].yyyy, TEMP[9].wwww;
 53: MOV TEMP[2].y, TEMP[9].wwww;
 54: MOV TEMP[1].x, TEMP[0].yyyy;
 55: MOV TEMP[1].y, TEMP[0].zzzw;
 56: MOV TEMP[1].z, TEMP[2].xyxw;
 57: MOV TEMP[1].w, TEMP[2].yyzy;
 58: MUL TEMP[2].xy, TEMP[1].wwww, UNIFORM[0];
 59: ADD TEMP[1].xy, TEMP[1], TEMP[2];
 60: MOV TEMP[9].xy, TEMP[1];
 61: MOV OUTPUT[1], TEMP[5];
 62: MOV OUTPUT[2], TEMP[6];
 63: MOV VARYING[0], TEMP[7];
 64: MOV OUTPUT[0], TEMP[1];
 65: END
*/
/* Parameters / constants */
/*
param list 0x7fc8e01e1fd0
dirty state flags: 0x0
param[0] sz=2 UNIFORM PixelCenterAdjustment = {0, 0, 0, 0}
param[1] sz=16 UNIFORM C = {0, 0, 0, 0}
param[2] sz=12 UNIFORM C = {0, 0, 0, 0}
param[3] sz=8 UNIFORM C = {0, 0, 0, 0}
param[4] sz=4 UNIFORM C = {0, 0, 0, 0}
param[5] sz=1 CONST (null) = {0, 0, 0, 0}
param[6] sz=1 SAMPLER SV0 = {0, 0, 0, 0}
param[7] sz=1 SAMPLER SV1 = {1, 0, 0, 0}
param[8] sz=1 SAMPLER SV2 = {2, 0, 0, 0}
param[9] sz=1 SAMPLER SV3 = {3, 0, 0, 0}
param[10] sz=4 CONST (null) = {0, 0, 0, 1}
*/
