convert this shader into unity shader preserving all the function (this shader is a reflection shader)
//////////////////////////////////////////
//
// NOTE: This is *not* a valid shader file
//
///////////////////////////////////////////
Shader "TFG/Zoba/Reflective" {
Properties {
_MainTex ("Texture", 2D) = "white" { }
_ReflectionIntensity ("Reflection Intensity", Range(0, 1)) = 0.15
[Toggle(RENDER_CONSTANT_COLOR)] _RenderConstantColor ("Surface Color Instead of Texture", Float) = 0
_ConstantColor ("Surface Color", Color) = (1,1,1,1)
_ZOffset ("Z Offset", Float) = 0
}
SubShader {
 Tags { "RenderType" = "Opaque" }
 Pass {
  Name "Unlit"
  Tags { "RenderType" = "Opaque" }
  GpuProgramID 51994
Program "vp" {
SubProgram "gles hw_tier00 " {
"#ifdef VERTEX
#version 100

uniform 	vec4 _ProjectionParams;
uniform 	vec4 hlslcc_mtx4x4unity_ObjectToWorld[4];
uniform 	vec4 hlslcc_mtx4x4unity_MatrixVP[4];
uniform 	vec4 _MainTex_ST;
attribute highp vec4 in_POSITION0;
attribute highp vec2 in_TEXCOORD0;
varying highp vec2 vs_TEXCOORD0;
varying highp vec4 vs_TEXCOORD1;
varying highp vec4 vs_TEXCOORD2;
varying highp vec4 vs_TEXCOORD3;
vec4 u_xlat0;
vec4 u_xlat1;
vec4 u_xlat2;
void main()
{
    vs_TEXCOORD0.xy = in_TEXCOORD0.xy * _MainTex_ST.xy + _MainTex_ST.zw;
    u_xlat0 = in_POSITION0.yyyy * hlslcc_mtx4x4unity_ObjectToWorld[1];
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[0] * in_POSITION0.xxxx + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[2] * in_POSITION0.zzzz + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[3] * in_POSITION0.wwww + u_xlat0;
    u_xlat1 = u_xlat0.xxxx * hlslcc_mtx4x4unity_MatrixVP[0];
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[1] * u_xlat0.yyyy + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat1;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat2;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat2;
    vs_TEXCOORD3 = u_xlat0;
    gl_Position = u_xlat2;
    vs_TEXCOORD1.zw = u_xlat2.zw;
    u_xlat0.x = 0.5;
    u_xlat0.y = _ProjectionParams.x;
    u_xlat2.xyz = u_xlat0.xyx * u_xlat2.xyw;
    u_xlat0.xy = u_xlat0.xy * u_xlat1.xy;
    u_xlat2.w = u_xlat2.y * 0.5;
    vs_TEXCOORD1.xy = u_xlat2.zz + u_xlat2.xw;
    u_xlat0.z = u_xlat0.y * 0.5;
    vs_TEXCOORD2.xy = u_xlat1.ww * vec2(0.5, 0.5) + u_xlat0.xz;
    vs_TEXCOORD2.zw = u_xlat1.zw;
    return;
}

#endif
#ifdef FRAGMENT
#version 100

#ifdef GL_FRAGMENT_PRECISION_HIGH
    precision highp float;
#else
    precision mediump float;
#endif
precision highp int;
uniform 	float _ReflectionIntensity;
uniform lowp sampler2D _MainTex;
uniform lowp sampler2D _reflectionLight;
varying highp vec2 vs_TEXCOORD0;
varying highp vec4 vs_TEXCOORD1;
#define SV_Target0 gl_FragData[0]
vec3 u_xlat0;
mediump vec3 u_xlat16_0;
lowp vec4 u_xlat10_0;
lowp vec3 u_xlat10_1;
float u_xlat6;
void main()
{
    u_xlat0.y = (-vs_TEXCOORD1.y) + vs_TEXCOORD1.w;
    u_xlat0.x = vs_TEXCOORD1.x;
    u_xlat0.xy = u_xlat0.xy / vs_TEXCOORD1.ww;
    u_xlat10_0 = texture2D(_reflectionLight, u_xlat0.xy);
    u_xlat6 = u_xlat10_0.w * _ReflectionIntensity;
    u_xlat10_1.xyz = texture2D(_MainTex, vs_TEXCOORD0.xy).xyz;
    u_xlat16_0.xyz = u_xlat10_0.xyz + (-u_xlat10_1.xyz);
    u_xlat0.xyz = vec3(u_xlat6) * u_xlat16_0.xyz + u_xlat10_1.xyz;
    SV_Target0.xyz = u_xlat0.xyz;
    SV_Target0.w = 1.0;
    return;
}

#endif
"
}
SubProgram "gles hw_tier01 " {
"#ifdef VERTEX
#version 100

uniform 	vec4 _ProjectionParams;
uniform 	vec4 hlslcc_mtx4x4unity_ObjectToWorld[4];
uniform 	vec4 hlslcc_mtx4x4unity_MatrixVP[4];
uniform 	vec4 _MainTex_ST;
attribute highp vec4 in_POSITION0;
attribute highp vec2 in_TEXCOORD0;
varying highp vec2 vs_TEXCOORD0;
varying highp vec4 vs_TEXCOORD1;
varying highp vec4 vs_TEXCOORD2;
varying highp vec4 vs_TEXCOORD3;
vec4 u_xlat0;
vec4 u_xlat1;
vec4 u_xlat2;
void main()
{
    vs_TEXCOORD0.xy = in_TEXCOORD0.xy * _MainTex_ST.xy + _MainTex_ST.zw;
    u_xlat0 = in_POSITION0.yyyy * hlslcc_mtx4x4unity_ObjectToWorld[1];
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[0] * in_POSITION0.xxxx + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[2] * in_POSITION0.zzzz + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[3] * in_POSITION0.wwww + u_xlat0;
    u_xlat1 = u_xlat0.xxxx * hlslcc_mtx4x4unity_MatrixVP[0];
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[1] * u_xlat0.yyyy + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat1;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat2;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat2;
    vs_TEXCOORD3 = u_xlat0;
    gl_Position = u_xlat2;
    vs_TEXCOORD1.zw = u_xlat2.zw;
    u_xlat0.x = 0.5;
    u_xlat0.y = _ProjectionParams.x;
    u_xlat2.xyz = u_xlat0.xyx * u_xlat2.xyw;
    u_xlat0.xy = u_xlat0.xy * u_xlat1.xy;
    u_xlat2.w = u_xlat2.y * 0.5;
    vs_TEXCOORD1.xy = u_xlat2.zz + u_xlat2.xw;
    u_xlat0.z = u_xlat0.y * 0.5;
    vs_TEXCOORD2.xy = u_xlat1.ww * vec2(0.5, 0.5) + u_xlat0.xz;
    vs_TEXCOORD2.zw = u_xlat1.zw;
    return;
}

#endif
#ifdef FRAGMENT
#version 100

#ifdef GL_FRAGMENT_PRECISION_HIGH
    precision highp float;
#else
    precision mediump float;
#endif
precision highp int;
uniform 	float _ReflectionIntensity;
uniform lowp sampler2D _MainTex;
uniform lowp sampler2D _reflectionLight;
varying highp vec2 vs_TEXCOORD0;
varying highp vec4 vs_TEXCOORD1;
#define SV_Target0 gl_FragData[0]
vec3 u_xlat0;
mediump vec3 u_xlat16_0;
lowp vec4 u_xlat10_0;
lowp vec3 u_xlat10_1;
float u_xlat6;
void main()
{
    u_xlat0.y = (-vs_TEXCOORD1.y) + vs_TEXCOORD1.w;
    u_xlat0.x = vs_TEXCOORD1.x;
    u_xlat0.xy = u_xlat0.xy / vs_TEXCOORD1.ww;
    u_xlat10_0 = texture2D(_reflectionLight, u_xlat0.xy);
    u_xlat6 = u_xlat10_0.w * _ReflectionIntensity;
    u_xlat10_1.xyz = texture2D(_MainTex, vs_TEXCOORD0.xy).xyz;
    u_xlat16_0.xyz = u_xlat10_0.xyz + (-u_xlat10_1.xyz);
    u_xlat0.xyz = vec3(u_xlat6) * u_xlat16_0.xyz + u_xlat10_1.xyz;
    SV_Target0.xyz = u_xlat0.xyz;
    SV_Target0.w = 1.0;
    return;
}

#endif
"
}
SubProgram "gles hw_tier02 " {
"#ifdef VERTEX
#version 100

uniform 	vec4 _ProjectionParams;
uniform 	vec4 hlslcc_mtx4x4unity_ObjectToWorld[4];
uniform 	vec4 hlslcc_mtx4x4unity_MatrixVP[4];
uniform 	vec4 _MainTex_ST;
attribute highp vec4 in_POSITION0;
attribute highp vec2 in_TEXCOORD0;
varying highp vec2 vs_TEXCOORD0;
varying highp vec4 vs_TEXCOORD1;
varying highp vec4 vs_TEXCOORD2;
varying highp vec4 vs_TEXCOORD3;
vec4 u_xlat0;
vec4 u_xlat1;
vec4 u_xlat2;
void main()
{
    vs_TEXCOORD0.xy = in_TEXCOORD0.xy * _MainTex_ST.xy + _MainTex_ST.zw;
    u_xlat0 = in_POSITION0.yyyy * hlslcc_mtx4x4unity_ObjectToWorld[1];
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[0] * in_POSITION0.xxxx + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[2] * in_POSITION0.zzzz + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[3] * in_POSITION0.wwww + u_xlat0;
    u_xlat1 = u_xlat0.xxxx * hlslcc_mtx4x4unity_MatrixVP[0];
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[1] * u_xlat0.yyyy + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat1;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat2;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat2;
    vs_TEXCOORD3 = u_xlat0;
    gl_Position = u_xlat2;
    vs_TEXCOORD1.zw = u_xlat2.zw;
    u_xlat0.x = 0.5;
    u_xlat0.y = _ProjectionParams.x;
    u_xlat2.xyz = u_xlat0.xyx * u_xlat2.xyw;
    u_xlat0.xy = u_xlat0.xy * u_xlat1.xy;
    u_xlat2.w = u_xlat2.y * 0.5;
    vs_TEXCOORD1.xy = u_xlat2.zz + u_xlat2.xw;
    u_xlat0.z = u_xlat0.y * 0.5;
    vs_TEXCOORD2.xy = u_xlat1.ww * vec2(0.5, 0.5) + u_xlat0.xz;
    vs_TEXCOORD2.zw = u_xlat1.zw;
    return;
}

#endif
#ifdef FRAGMENT
#version 100

#ifdef GL_FRAGMENT_PRECISION_HIGH
    precision highp float;
#else
    precision mediump float;
#endif
precision highp int;
uniform 	float _ReflectionIntensity;
uniform lowp sampler2D _MainTex;
uniform lowp sampler2D _reflectionLight;
varying highp vec2 vs_TEXCOORD0;
varying highp vec4 vs_TEXCOORD1;
#define SV_Target0 gl_FragData[0]
vec3 u_xlat0;
mediump vec3 u_xlat16_0;
lowp vec4 u_xlat10_0;
lowp vec3 u_xlat10_1;
float u_xlat6;
void main()
{
    u_xlat0.y = (-vs_TEXCOORD1.y) + vs_TEXCOORD1.w;
    u_xlat0.x = vs_TEXCOORD1.x;
    u_xlat0.xy = u_xlat0.xy / vs_TEXCOORD1.ww;
    u_xlat10_0 = texture2D(_reflectionLight, u_xlat0.xy);
    u_xlat6 = u_xlat10_0.w * _ReflectionIntensity;
    u_xlat10_1.xyz = texture2D(_MainTex, vs_TEXCOORD0.xy).xyz;
    u_xlat16_0.xyz = u_xlat10_0.xyz + (-u_xlat10_1.xyz);
    u_xlat0.xyz = vec3(u_xlat6) * u_xlat16_0.xyz + u_xlat10_1.xyz;
    SV_Target0.xyz = u_xlat0.xyz;
    SV_Target0.w = 1.0;
    return;
}

#endif
"
}
SubProgram "gles3 hw_tier00 " {
"#ifdef VERTEX
#version 300 es

uniform 	vec4 _ProjectionParams;
uniform 	vec4 hlslcc_mtx4x4unity_ObjectToWorld[4];
uniform 	vec4 hlslcc_mtx4x4unity_MatrixVP[4];
uniform 	vec4 _MainTex_ST;
in highp vec4 in_POSITION0;
in highp vec2 in_TEXCOORD0;
out highp vec2 vs_TEXCOORD0;
out highp vec4 vs_TEXCOORD1;
out highp vec4 vs_TEXCOORD2;
out highp vec4 vs_TEXCOORD3;
vec4 u_xlat0;
vec4 u_xlat1;
vec4 u_xlat2;
void main()
{
    vs_TEXCOORD0.xy = in_TEXCOORD0.xy * _MainTex_ST.xy + _MainTex_ST.zw;
    u_xlat0 = in_POSITION0.yyyy * hlslcc_mtx4x4unity_ObjectToWorld[1];
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[0] * in_POSITION0.xxxx + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[2] * in_POSITION0.zzzz + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[3] * in_POSITION0.wwww + u_xlat0;
    u_xlat1 = u_xlat0.xxxx * hlslcc_mtx4x4unity_MatrixVP[0];
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[1] * u_xlat0.yyyy + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat1;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat2;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat2;
    vs_TEXCOORD3 = u_xlat0;
    gl_Position = u_xlat2;
    vs_TEXCOORD1.zw = u_xlat2.zw;
    u_xlat0.x = 0.5;
    u_xlat0.y = _ProjectionParams.x;
    u_xlat2.xyz = u_xlat0.xyx * u_xlat2.xyw;
    u_xlat0.xy = u_xlat0.xy * u_xlat1.xy;
    u_xlat2.w = u_xlat2.y * 0.5;
    vs_TEXCOORD1.xy = u_xlat2.zz + u_xlat2.xw;
    u_xlat0.z = u_xlat0.y * 0.5;
    vs_TEXCOORD2.xy = u_xlat1.ww * vec2(0.5, 0.5) + u_xlat0.xz;
    vs_TEXCOORD2.zw = u_xlat1.zw;
    return;
}

#endif
#ifdef FRAGMENT
#version 300 es

precision highp float;
precision highp int;
uniform 	float _ReflectionIntensity;
uniform mediump sampler2D _MainTex;
uniform mediump sampler2D _reflectionLight;
in highp vec2 vs_TEXCOORD0;
in highp vec4 vs_TEXCOORD1;
layout(location = 0) out mediump vec4 SV_Target0;
vec3 u_xlat0;
mediump vec4 u_xlat16_0;
mediump vec3 u_xlat16_1;
float u_xlat6;
void main()
{
    u_xlat0.y = (-vs_TEXCOORD1.y) + vs_TEXCOORD1.w;
    u_xlat0.x = vs_TEXCOORD1.x;
    u_xlat0.xy = u_xlat0.xy / vs_TEXCOORD1.ww;
    u_xlat16_0 = texture(_reflectionLight, u_xlat0.xy);
    u_xlat6 = u_xlat16_0.w * _ReflectionIntensity;
    u_xlat16_1.xyz = texture(_MainTex, vs_TEXCOORD0.xy).xyz;
    u_xlat16_0.xyz = u_xlat16_0.xyz + (-u_xlat16_1.xyz);
    u_xlat0.xyz = vec3(u_xlat6) * u_xlat16_0.xyz + u_xlat16_1.xyz;
    SV_Target0.xyz = u_xlat0.xyz;
    SV_Target0.w = 1.0;
    return;
}

#endif
"
}
SubProgram "gles3 hw_tier01 " {
"#ifdef VERTEX
#version 300 es

uniform 	vec4 _ProjectionParams;
uniform 	vec4 hlslcc_mtx4x4unity_ObjectToWorld[4];
uniform 	vec4 hlslcc_mtx4x4unity_MatrixVP[4];
uniform 	vec4 _MainTex_ST;
in highp vec4 in_POSITION0;
in highp vec2 in_TEXCOORD0;
out highp vec2 vs_TEXCOORD0;
out highp vec4 vs_TEXCOORD1;
out highp vec4 vs_TEXCOORD2;
out highp vec4 vs_TEXCOORD3;
vec4 u_xlat0;
vec4 u_xlat1;
vec4 u_xlat2;
void main()
{
    vs_TEXCOORD0.xy = in_TEXCOORD0.xy * _MainTex_ST.xy + _MainTex_ST.zw;
    u_xlat0 = in_POSITION0.yyyy * hlslcc_mtx4x4unity_ObjectToWorld[1];
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[0] * in_POSITION0.xxxx + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[2] * in_POSITION0.zzzz + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[3] * in_POSITION0.wwww + u_xlat0;
    u_xlat1 = u_xlat0.xxxx * hlslcc_mtx4x4unity_MatrixVP[0];
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[1] * u_xlat0.yyyy + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat1;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat2;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat2;
    vs_TEXCOORD3 = u_xlat0;
    gl_Position = u_xlat2;
    vs_TEXCOORD1.zw = u_xlat2.zw;
    u_xlat0.x = 0.5;
    u_xlat0.y = _ProjectionParams.x;
    u_xlat2.xyz = u_xlat0.xyx * u_xlat2.xyw;
    u_xlat0.xy = u_xlat0.xy * u_xlat1.xy;
    u_xlat2.w = u_xlat2.y * 0.5;
    vs_TEXCOORD1.xy = u_xlat2.zz + u_xlat2.xw;
    u_xlat0.z = u_xlat0.y * 0.5;
    vs_TEXCOORD2.xy = u_xlat1.ww * vec2(0.5, 0.5) + u_xlat0.xz;
    vs_TEXCOORD2.zw = u_xlat1.zw;
    return;
}

#endif
#ifdef FRAGMENT
#version 300 es

precision highp float;
precision highp int;
uniform 	float _ReflectionIntensity;
uniform mediump sampler2D _MainTex;
uniform mediump sampler2D _reflectionLight;
in highp vec2 vs_TEXCOORD0;
in highp vec4 vs_TEXCOORD1;
layout(location = 0) out mediump vec4 SV_Target0;
vec3 u_xlat0;
mediump vec4 u_xlat16_0;
mediump vec3 u_xlat16_1;
float u_xlat6;
void main()
{
    u_xlat0.y = (-vs_TEXCOORD1.y) + vs_TEXCOORD1.w;
    u_xlat0.x = vs_TEXCOORD1.x;
    u_xlat0.xy = u_xlat0.xy / vs_TEXCOORD1.ww;
    u_xlat16_0 = texture(_reflectionLight, u_xlat0.xy);
    u_xlat6 = u_xlat16_0.w * _ReflectionIntensity;
    u_xlat16_1.xyz = texture(_MainTex, vs_TEXCOORD0.xy).xyz;
    u_xlat16_0.xyz = u_xlat16_0.xyz + (-u_xlat16_1.xyz);
    u_xlat0.xyz = vec3(u_xlat6) * u_xlat16_0.xyz + u_xlat16_1.xyz;
    SV_Target0.xyz = u_xlat0.xyz;
    SV_Target0.w = 1.0;
    return;
}

#endif
"
}
SubProgram "gles3 hw_tier02 " {
"#ifdef VERTEX
#version 300 es

uniform 	vec4 _ProjectionParams;
uniform 	vec4 hlslcc_mtx4x4unity_ObjectToWorld[4];
uniform 	vec4 hlslcc_mtx4x4unity_MatrixVP[4];
uniform 	vec4 _MainTex_ST;
in highp vec4 in_POSITION0;
in highp vec2 in_TEXCOORD0;
out highp vec2 vs_TEXCOORD0;
out highp vec4 vs_TEXCOORD1;
out highp vec4 vs_TEXCOORD2;
out highp vec4 vs_TEXCOORD3;
vec4 u_xlat0;
vec4 u_xlat1;
vec4 u_xlat2;
void main()
{
    vs_TEXCOORD0.xy = in_TEXCOORD0.xy * _MainTex_ST.xy + _MainTex_ST.zw;
    u_xlat0 = in_POSITION0.yyyy * hlslcc_mtx4x4unity_ObjectToWorld[1];
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[0] * in_POSITION0.xxxx + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[2] * in_POSITION0.zzzz + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[3] * in_POSITION0.wwww + u_xlat0;
    u_xlat1 = u_xlat0.xxxx * hlslcc_mtx4x4unity_MatrixVP[0];
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[1] * u_xlat0.yyyy + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat1;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat2;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat2;
    vs_TEXCOORD3 = u_xlat0;
    gl_Position = u_xlat2;
    vs_TEXCOORD1.zw = u_xlat2.zw;
    u_xlat0.x = 0.5;
    u_xlat0.y = _ProjectionParams.x;
    u_xlat2.xyz = u_xlat0.xyx * u_xlat2.xyw;
    u_xlat0.xy = u_xlat0.xy * u_xlat1.xy;
    u_xlat2.w = u_xlat2.y * 0.5;
    vs_TEXCOORD1.xy = u_xlat2.zz + u_xlat2.xw;
    u_xlat0.z = u_xlat0.y * 0.5;
    vs_TEXCOORD2.xy = u_xlat1.ww * vec2(0.5, 0.5) + u_xlat0.xz;
    vs_TEXCOORD2.zw = u_xlat1.zw;
    return;
}

#endif
#ifdef FRAGMENT
#version 300 es

precision highp float;
precision highp int;
uniform 	float _ReflectionIntensity;
uniform mediump sampler2D _MainTex;
uniform mediump sampler2D _reflectionLight;
in highp vec2 vs_TEXCOORD0;
in highp vec4 vs_TEXCOORD1;
layout(location = 0) out mediump vec4 SV_Target0;
vec3 u_xlat0;
mediump vec4 u_xlat16_0;
mediump vec3 u_xlat16_1;
float u_xlat6;
void main()
{
    u_xlat0.y = (-vs_TEXCOORD1.y) + vs_TEXCOORD1.w;
    u_xlat0.x = vs_TEXCOORD1.x;
    u_xlat0.xy = u_xlat0.xy / vs_TEXCOORD1.ww;
    u_xlat16_0 = texture(_reflectionLight, u_xlat0.xy);
    u_xlat6 = u_xlat16_0.w * _ReflectionIntensity;
    u_xlat16_1.xyz = texture(_MainTex, vs_TEXCOORD0.xy).xyz;
    u_xlat16_0.xyz = u_xlat16_0.xyz + (-u_xlat16_1.xyz);
    u_xlat0.xyz = vec3(u_xlat6) * u_xlat16_0.xyz + u_xlat16_1.xyz;
    SV_Target0.xyz = u_xlat0.xyz;
    SV_Target0.w = 1.0;
    return;
}

#endif
"
}
SubProgram "gles hw_tier00 " {
Keywords { "RENDER_CONSTANT_COLOR" }
"#ifdef VERTEX
#version 100

uniform 	vec4 _ProjectionParams;
uniform 	vec4 hlslcc_mtx4x4unity_ObjectToWorld[4];
uniform 	vec4 hlslcc_mtx4x4unity_MatrixVP[4];
uniform 	vec4 _MainTex_ST;
attribute highp vec4 in_POSITION0;
attribute highp vec2 in_TEXCOORD0;
varying highp vec2 vs_TEXCOORD0;
varying highp vec4 vs_TEXCOORD1;
varying highp vec4 vs_TEXCOORD2;
varying highp vec4 vs_TEXCOORD3;
vec4 u_xlat0;
vec4 u_xlat1;
vec4 u_xlat2;
void main()
{
    vs_TEXCOORD0.xy = in_TEXCOORD0.xy * _MainTex_ST.xy + _MainTex_ST.zw;
    u_xlat0 = in_POSITION0.yyyy * hlslcc_mtx4x4unity_ObjectToWorld[1];
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[0] * in_POSITION0.xxxx + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[2] * in_POSITION0.zzzz + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[3] * in_POSITION0.wwww + u_xlat0;
    u_xlat1 = u_xlat0.xxxx * hlslcc_mtx4x4unity_MatrixVP[0];
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[1] * u_xlat0.yyyy + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat1;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat2;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat2;
    vs_TEXCOORD3 = u_xlat0;
    gl_Position = u_xlat2;
    vs_TEXCOORD1.zw = u_xlat2.zw;
    u_xlat0.x = 0.5;
    u_xlat0.y = _ProjectionParams.x;
    u_xlat2.xyz = u_xlat0.xyx * u_xlat2.xyw;
    u_xlat0.xy = u_xlat0.xy * u_xlat1.xy;
    u_xlat2.w = u_xlat2.y * 0.5;
    vs_TEXCOORD1.xy = u_xlat2.zz + u_xlat2.xw;
    u_xlat0.z = u_xlat0.y * 0.5;
    vs_TEXCOORD2.xy = u_xlat1.ww * vec2(0.5, 0.5) + u_xlat0.xz;
    vs_TEXCOORD2.zw = u_xlat1.zw;
    return;
}

#endif
#ifdef FRAGMENT
#version 100

#ifdef GL_FRAGMENT_PRECISION_HIGH
    precision highp float;
#else
    precision mediump float;
#endif
precision highp int;
uniform 	float _ReflectionIntensity;
uniform 	vec4 _ConstantColor;
uniform lowp sampler2D _reflectionLight;
varying highp vec4 vs_TEXCOORD1;
#define SV_Target0 gl_FragData[0]
vec3 u_xlat0;
lowp vec4 u_xlat10_0;
float u_xlat3;
void main()
{
    u_xlat0.y = (-vs_TEXCOORD1.y) + vs_TEXCOORD1.w;
    u_xlat0.x = vs_TEXCOORD1.x;
    u_xlat0.xy = u_xlat0.xy / vs_TEXCOORD1.ww;
    u_xlat10_0 = texture2D(_reflectionLight, u_xlat0.xy);
    u_xlat3 = u_xlat10_0.w * _ReflectionIntensity;
    u_xlat0.xyz = u_xlat10_0.xyz + (-_ConstantColor.xyz);
    u_xlat0.xyz = vec3(u_xlat3) * u_xlat0.xyz + _ConstantColor.xyz;
    SV_Target0.xyz = u_xlat0.xyz;
    SV_Target0.w = 1.0;
    return;
}

#endif
"
}
SubProgram "gles hw_tier01 " {
Keywords { "RENDER_CONSTANT_COLOR" }
"#ifdef VERTEX
#version 100

uniform 	vec4 _ProjectionParams;
uniform 	vec4 hlslcc_mtx4x4unity_ObjectToWorld[4];
uniform 	vec4 hlslcc_mtx4x4unity_MatrixVP[4];
uniform 	vec4 _MainTex_ST;
attribute highp vec4 in_POSITION0;
attribute highp vec2 in_TEXCOORD0;
varying highp vec2 vs_TEXCOORD0;
varying highp vec4 vs_TEXCOORD1;
varying highp vec4 vs_TEXCOORD2;
varying highp vec4 vs_TEXCOORD3;
vec4 u_xlat0;
vec4 u_xlat1;
vec4 u_xlat2;
void main()
{
    vs_TEXCOORD0.xy = in_TEXCOORD0.xy * _MainTex_ST.xy + _MainTex_ST.zw;
    u_xlat0 = in_POSITION0.yyyy * hlslcc_mtx4x4unity_ObjectToWorld[1];
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[0] * in_POSITION0.xxxx + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[2] * in_POSITION0.zzzz + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[3] * in_POSITION0.wwww + u_xlat0;
    u_xlat1 = u_xlat0.xxxx * hlslcc_mtx4x4unity_MatrixVP[0];
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[1] * u_xlat0.yyyy + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat1;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat2;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat2;
    vs_TEXCOORD3 = u_xlat0;
    gl_Position = u_xlat2;
    vs_TEXCOORD1.zw = u_xlat2.zw;
    u_xlat0.x = 0.5;
    u_xlat0.y = _ProjectionParams.x;
    u_xlat2.xyz = u_xlat0.xyx * u_xlat2.xyw;
    u_xlat0.xy = u_xlat0.xy * u_xlat1.xy;
    u_xlat2.w = u_xlat2.y * 0.5;
    vs_TEXCOORD1.xy = u_xlat2.zz + u_xlat2.xw;
    u_xlat0.z = u_xlat0.y * 0.5;
    vs_TEXCOORD2.xy = u_xlat1.ww * vec2(0.5, 0.5) + u_xlat0.xz;
    vs_TEXCOORD2.zw = u_xlat1.zw;
    return;
}

#endif
#ifdef FRAGMENT
#version 100

#ifdef GL_FRAGMENT_PRECISION_HIGH
    precision highp float;
#else
    precision mediump float;
#endif
precision highp int;
uniform 	float _ReflectionIntensity;
uniform 	vec4 _ConstantColor;
uniform lowp sampler2D _reflectionLight;
varying highp vec4 vs_TEXCOORD1;
#define SV_Target0 gl_FragData[0]
vec3 u_xlat0;
lowp vec4 u_xlat10_0;
float u_xlat3;
void main()
{
    u_xlat0.y = (-vs_TEXCOORD1.y) + vs_TEXCOORD1.w;
    u_xlat0.x = vs_TEXCOORD1.x;
    u_xlat0.xy = u_xlat0.xy / vs_TEXCOORD1.ww;
    u_xlat10_0 = texture2D(_reflectionLight, u_xlat0.xy);
    u_xlat3 = u_xlat10_0.w * _ReflectionIntensity;
    u_xlat0.xyz = u_xlat10_0.xyz + (-_ConstantColor.xyz);
    u_xlat0.xyz = vec3(u_xlat3) * u_xlat0.xyz + _ConstantColor.xyz;
    SV_Target0.xyz = u_xlat0.xyz;
    SV_Target0.w = 1.0;
    return;
}

#endif
"
}
SubProgram "gles hw_tier02 " {
Keywords { "RENDER_CONSTANT_COLOR" }
"#ifdef VERTEX
#version 100

uniform 	vec4 _ProjectionParams;
uniform 	vec4 hlslcc_mtx4x4unity_ObjectToWorld[4];
uniform 	vec4 hlslcc_mtx4x4unity_MatrixVP[4];
uniform 	vec4 _MainTex_ST;
attribute highp vec4 in_POSITION0;
attribute highp vec2 in_TEXCOORD0;
varying highp vec2 vs_TEXCOORD0;
varying highp vec4 vs_TEXCOORD1;
varying highp vec4 vs_TEXCOORD2;
varying highp vec4 vs_TEXCOORD3;
vec4 u_xlat0;
vec4 u_xlat1;
vec4 u_xlat2;
void main()
{
    vs_TEXCOORD0.xy = in_TEXCOORD0.xy * _MainTex_ST.xy + _MainTex_ST.zw;
    u_xlat0 = in_POSITION0.yyyy * hlslcc_mtx4x4unity_ObjectToWorld[1];
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[0] * in_POSITION0.xxxx + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[2] * in_POSITION0.zzzz + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[3] * in_POSITION0.wwww + u_xlat0;
    u_xlat1 = u_xlat0.xxxx * hlslcc_mtx4x4unity_MatrixVP[0];
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[1] * u_xlat0.yyyy + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat1;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat2;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat2;
    vs_TEXCOORD3 = u_xlat0;
    gl_Position = u_xlat2;
    vs_TEXCOORD1.zw = u_xlat2.zw;
    u_xlat0.x = 0.5;
    u_xlat0.y = _ProjectionParams.x;
    u_xlat2.xyz = u_xlat0.xyx * u_xlat2.xyw;
    u_xlat0.xy = u_xlat0.xy * u_xlat1.xy;
    u_xlat2.w = u_xlat2.y * 0.5;
    vs_TEXCOORD1.xy = u_xlat2.zz + u_xlat2.xw;
    u_xlat0.z = u_xlat0.y * 0.5;
    vs_TEXCOORD2.xy = u_xlat1.ww * vec2(0.5, 0.5) + u_xlat0.xz;
    vs_TEXCOORD2.zw = u_xlat1.zw;
    return;
}

#endif
#ifdef FRAGMENT
#version 100

#ifdef GL_FRAGMENT_PRECISION_HIGH
    precision highp float;
#else
    precision mediump float;
#endif
precision highp int;
uniform 	float _ReflectionIntensity;
uniform 	vec4 _ConstantColor;
uniform lowp sampler2D _reflectionLight;
varying highp vec4 vs_TEXCOORD1;
#define SV_Target0 gl_FragData[0]
vec3 u_xlat0;
lowp vec4 u_xlat10_0;
float u_xlat3;
void main()
{
    u_xlat0.y = (-vs_TEXCOORD1.y) + vs_TEXCOORD1.w;
    u_xlat0.x = vs_TEXCOORD1.x;
    u_xlat0.xy = u_xlat0.xy / vs_TEXCOORD1.ww;
    u_xlat10_0 = texture2D(_reflectionLight, u_xlat0.xy);
    u_xlat3 = u_xlat10_0.w * _ReflectionIntensity;
    u_xlat0.xyz = u_xlat10_0.xyz + (-_ConstantColor.xyz);
    u_xlat0.xyz = vec3(u_xlat3) * u_xlat0.xyz + _ConstantColor.xyz;
    SV_Target0.xyz = u_xlat0.xyz;
    SV_Target0.w = 1.0;
    return;
}

#endif
"
}
SubProgram "gles3 hw_tier00 " {
Keywords { "RENDER_CONSTANT_COLOR" }
"#ifdef VERTEX
#version 300 es

uniform 	vec4 _ProjectionParams;
uniform 	vec4 hlslcc_mtx4x4unity_ObjectToWorld[4];
uniform 	vec4 hlslcc_mtx4x4unity_MatrixVP[4];
uniform 	vec4 _MainTex_ST;
in highp vec4 in_POSITION0;
in highp vec2 in_TEXCOORD0;
out highp vec2 vs_TEXCOORD0;
out highp vec4 vs_TEXCOORD1;
out highp vec4 vs_TEXCOORD2;
out highp vec4 vs_TEXCOORD3;
vec4 u_xlat0;
vec4 u_xlat1;
vec4 u_xlat2;
void main()
{
    vs_TEXCOORD0.xy = in_TEXCOORD0.xy * _MainTex_ST.xy + _MainTex_ST.zw;
    u_xlat0 = in_POSITION0.yyyy * hlslcc_mtx4x4unity_ObjectToWorld[1];
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[0] * in_POSITION0.xxxx + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[2] * in_POSITION0.zzzz + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[3] * in_POSITION0.wwww + u_xlat0;
    u_xlat1 = u_xlat0.xxxx * hlslcc_mtx4x4unity_MatrixVP[0];
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[1] * u_xlat0.yyyy + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat1;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat2;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat2;
    vs_TEXCOORD3 = u_xlat0;
    gl_Position = u_xlat2;
    vs_TEXCOORD1.zw = u_xlat2.zw;
    u_xlat0.x = 0.5;
    u_xlat0.y = _ProjectionParams.x;
    u_xlat2.xyz = u_xlat0.xyx * u_xlat2.xyw;
    u_xlat0.xy = u_xlat0.xy * u_xlat1.xy;
    u_xlat2.w = u_xlat2.y * 0.5;
    vs_TEXCOORD1.xy = u_xlat2.zz + u_xlat2.xw;
    u_xlat0.z = u_xlat0.y * 0.5;
    vs_TEXCOORD2.xy = u_xlat1.ww * vec2(0.5, 0.5) + u_xlat0.xz;
    vs_TEXCOORD2.zw = u_xlat1.zw;
    return;
}

#endif
#ifdef FRAGMENT
#version 300 es

precision highp float;
precision highp int;
uniform 	float _ReflectionIntensity;
uniform 	vec4 _ConstantColor;
uniform mediump sampler2D _reflectionLight;
in highp vec4 vs_TEXCOORD1;
layout(location = 0) out mediump vec4 SV_Target0;
vec3 u_xlat0;
mediump vec4 u_xlat16_0;
float u_xlat3;
void main()
{
    u_xlat0.y = (-vs_TEXCOORD1.y) + vs_TEXCOORD1.w;
    u_xlat0.x = vs_TEXCOORD1.x;
    u_xlat0.xy = u_xlat0.xy / vs_TEXCOORD1.ww;
    u_xlat16_0 = texture(_reflectionLight, u_xlat0.xy);
    u_xlat3 = u_xlat16_0.w * _ReflectionIntensity;
    u_xlat0.xyz = u_xlat16_0.xyz + (-_ConstantColor.xyz);
    u_xlat0.xyz = vec3(u_xlat3) * u_xlat0.xyz + _ConstantColor.xyz;
    SV_Target0.xyz = u_xlat0.xyz;
    SV_Target0.w = 1.0;
    return;
}

#endif
"
}
SubProgram "gles3 hw_tier01 " {
Keywords { "RENDER_CONSTANT_COLOR" }
"#ifdef VERTEX
#version 300 es

uniform 	vec4 _ProjectionParams;
uniform 	vec4 hlslcc_mtx4x4unity_ObjectToWorld[4];
uniform 	vec4 hlslcc_mtx4x4unity_MatrixVP[4];
uniform 	vec4 _MainTex_ST;
in highp vec4 in_POSITION0;
in highp vec2 in_TEXCOORD0;
out highp vec2 vs_TEXCOORD0;
out highp vec4 vs_TEXCOORD1;
out highp vec4 vs_TEXCOORD2;
out highp vec4 vs_TEXCOORD3;
vec4 u_xlat0;
vec4 u_xlat1;
vec4 u_xlat2;
void main()
{
    vs_TEXCOORD0.xy = in_TEXCOORD0.xy * _MainTex_ST.xy + _MainTex_ST.zw;
    u_xlat0 = in_POSITION0.yyyy * hlslcc_mtx4x4unity_ObjectToWorld[1];
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[0] * in_POSITION0.xxxx + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[2] * in_POSITION0.zzzz + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[3] * in_POSITION0.wwww + u_xlat0;
    u_xlat1 = u_xlat0.xxxx * hlslcc_mtx4x4unity_MatrixVP[0];
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[1] * u_xlat0.yyyy + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat1;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat2;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat2;
    vs_TEXCOORD3 = u_xlat0;
    gl_Position = u_xlat2;
    vs_TEXCOORD1.zw = u_xlat2.zw;
    u_xlat0.x = 0.5;
    u_xlat0.y = _ProjectionParams.x;
    u_xlat2.xyz = u_xlat0.xyx * u_xlat2.xyw;
    u_xlat0.xy = u_xlat0.xy * u_xlat1.xy;
    u_xlat2.w = u_xlat2.y * 0.5;
    vs_TEXCOORD1.xy = u_xlat2.zz + u_xlat2.xw;
    u_xlat0.z = u_xlat0.y * 0.5;
    vs_TEXCOORD2.xy = u_xlat1.ww * vec2(0.5, 0.5) + u_xlat0.xz;
    vs_TEXCOORD2.zw = u_xlat1.zw;
    return;
}

#endif
#ifdef FRAGMENT
#version 300 es

precision highp float;
precision highp int;
uniform 	float _ReflectionIntensity;
uniform 	vec4 _ConstantColor;
uniform mediump sampler2D _reflectionLight;
in highp vec4 vs_TEXCOORD1;
layout(location = 0) out mediump vec4 SV_Target0;
vec3 u_xlat0;
mediump vec4 u_xlat16_0;
float u_xlat3;
void main()
{
    u_xlat0.y = (-vs_TEXCOORD1.y) + vs_TEXCOORD1.w;
    u_xlat0.x = vs_TEXCOORD1.x;
    u_xlat0.xy = u_xlat0.xy / vs_TEXCOORD1.ww;
    u_xlat16_0 = texture(_reflectionLight, u_xlat0.xy);
    u_xlat3 = u_xlat16_0.w * _ReflectionIntensity;
    u_xlat0.xyz = u_xlat16_0.xyz + (-_ConstantColor.xyz);
    u_xlat0.xyz = vec3(u_xlat3) * u_xlat0.xyz + _ConstantColor.xyz;
    SV_Target0.xyz = u_xlat0.xyz;
    SV_Target0.w = 1.0;
    return;
}

#endif
"
}
SubProgram "gles3 hw_tier02 " {
Keywords { "RENDER_CONSTANT_COLOR" }
"#ifdef VERTEX
#version 300 es

uniform 	vec4 _ProjectionParams;
uniform 	vec4 hlslcc_mtx4x4unity_ObjectToWorld[4];
uniform 	vec4 hlslcc_mtx4x4unity_MatrixVP[4];
uniform 	vec4 _MainTex_ST;
in highp vec4 in_POSITION0;
in highp vec2 in_TEXCOORD0;
out highp vec2 vs_TEXCOORD0;
out highp vec4 vs_TEXCOORD1;
out highp vec4 vs_TEXCOORD2;
out highp vec4 vs_TEXCOORD3;
vec4 u_xlat0;
vec4 u_xlat1;
vec4 u_xlat2;
void main()
{
    vs_TEXCOORD0.xy = in_TEXCOORD0.xy * _MainTex_ST.xy + _MainTex_ST.zw;
    u_xlat0 = in_POSITION0.yyyy * hlslcc_mtx4x4unity_ObjectToWorld[1];
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[0] * in_POSITION0.xxxx + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[2] * in_POSITION0.zzzz + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[3] * in_POSITION0.wwww + u_xlat0;
    u_xlat1 = u_xlat0.xxxx * hlslcc_mtx4x4unity_MatrixVP[0];
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[1] * u_xlat0.yyyy + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat1;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat2;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat2;
    vs_TEXCOORD3 = u_xlat0;
    gl_Position = u_xlat2;
    vs_TEXCOORD1.zw = u_xlat2.zw;
    u_xlat0.x = 0.5;
    u_xlat0.y = _ProjectionParams.x;
    u_xlat2.xyz = u_xlat0.xyx * u_xlat2.xyw;
    u_xlat0.xy = u_xlat0.xy * u_xlat1.xy;
    u_xlat2.w = u_xlat2.y * 0.5;
    vs_TEXCOORD1.xy = u_xlat2.zz + u_xlat2.xw;
    u_xlat0.z = u_xlat0.y * 0.5;
    vs_TEXCOORD2.xy = u_xlat1.ww * vec2(0.5, 0.5) + u_xlat0.xz;
    vs_TEXCOORD2.zw = u_xlat1.zw;
    return;
}

#endif
#ifdef FRAGMENT
#version 300 es

precision highp float;
precision highp int;
uniform 	float _ReflectionIntensity;
uniform 	vec4 _ConstantColor;
uniform mediump sampler2D _reflectionLight;
in highp vec4 vs_TEXCOORD1;
layout(location = 0) out mediump vec4 SV_Target0;
vec3 u_xlat0;
mediump vec4 u_xlat16_0;
float u_xlat3;
void main()
{
    u_xlat0.y = (-vs_TEXCOORD1.y) + vs_TEXCOORD1.w;
    u_xlat0.x = vs_TEXCOORD1.x;
    u_xlat0.xy = u_xlat0.xy / vs_TEXCOORD1.ww;
    u_xlat16_0 = texture(_reflectionLight, u_xlat0.xy);
    u_xlat3 = u_xlat16_0.w * _ReflectionIntensity;
    u_xlat0.xyz = u_xlat16_0.xyz + (-_ConstantColor.xyz);
    u_xlat0.xyz = vec3(u_xlat3) * u_xlat0.xyz + _ConstantColor.xyz;
    SV_Target0.xyz = u_xlat0.xyz;
    SV_Target0.w = 1.0;
    return;
}

#endif
"
}
SubProgram "gles hw_tier00 " {
Keywords { "SHADOW" }
"#ifdef VERTEX
#version 100

uniform 	vec4 _ProjectionParams;
uniform 	vec4 hlslcc_mtx4x4unity_ObjectToWorld[4];
uniform 	vec4 hlslcc_mtx4x4unity_MatrixVP[4];
uniform 	vec4 _MainTex_ST;
attribute highp vec4 in_POSITION0;
attribute highp vec2 in_TEXCOORD0;
varying highp vec2 vs_TEXCOORD0;
varying highp vec4 vs_TEXCOORD1;
varying highp vec4 vs_TEXCOORD2;
varying highp vec4 vs_TEXCOORD3;
vec4 u_xlat0;
vec4 u_xlat1;
vec4 u_xlat2;
void main()
{
    vs_TEXCOORD0.xy = in_TEXCOORD0.xy * _MainTex_ST.xy + _MainTex_ST.zw;
    u_xlat0 = in_POSITION0.yyyy * hlslcc_mtx4x4unity_ObjectToWorld[1];
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[0] * in_POSITION0.xxxx + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[2] * in_POSITION0.zzzz + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[3] * in_POSITION0.wwww + u_xlat0;
    u_xlat1 = u_xlat0.xxxx * hlslcc_mtx4x4unity_MatrixVP[0];
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[1] * u_xlat0.yyyy + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat1;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat2;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat2;
    vs_TEXCOORD3 = u_xlat0;
    gl_Position = u_xlat2;
    vs_TEXCOORD1.zw = u_xlat2.zw;
    u_xlat0.x = 0.5;
    u_xlat0.y = _ProjectionParams.x;
    u_xlat2.xyz = u_xlat0.xyx * u_xlat2.xyw;
    u_xlat0.xy = u_xlat0.xy * u_xlat1.xy;
    u_xlat2.w = u_xlat2.y * 0.5;
    vs_TEXCOORD1.xy = u_xlat2.zz + u_xlat2.xw;
    u_xlat0.z = u_xlat0.y * 0.5;
    vs_TEXCOORD2.xy = u_xlat1.ww * vec2(0.5, 0.5) + u_xlat0.xz;
    vs_TEXCOORD2.zw = u_xlat1.zw;
    return;
}

#endif
#ifdef FRAGMENT
#version 100

#ifdef GL_FRAGMENT_PRECISION_HIGH
    precision highp float;
#else
    precision mediump float;
#endif
precision highp int;
uniform 	float _ReflectionIntensity;
uniform 	float _shadowIntensity;
uniform 	float _ambientOcclusionIntensity;
uniform 	mediump vec3 _shadowColor;
uniform lowp sampler2D _MainTex;
uniform lowp sampler2D _reflectionLight;
uniform lowp sampler2D _preferredPassBuffer1;
varying highp vec2 vs_TEXCOORD0;
varying highp vec4 vs_TEXCOORD1;
varying highp vec4 vs_TEXCOORD2;
#define SV_Target0 gl_FragData[0]
vec3 u_xlat0;
mediump vec3 u_xlat16_0;
lowp vec4 u_xlat10_0;
lowp vec3 u_xlat10_1;
mediump vec3 u_xlat16_2;
float u_xlat9;
void main()
{
    u_xlat0.y = (-vs_TEXCOORD1.y) + vs_TEXCOORD1.w;
    u_xlat0.x = vs_TEXCOORD1.x;
    u_xlat0.xy = u_xlat0.xy / vs_TEXCOORD1.ww;
    u_xlat10_0 = texture2D(_reflectionLight, u_xlat0.xy);
    u_xlat9 = u_xlat10_0.w * _ReflectionIntensity;
    u_xlat10_1.xyz = texture2D(_MainTex, vs_TEXCOORD0.xy).xyz;
    u_xlat16_0.xyz = u_xlat10_0.xyz + (-u_xlat10_1.xyz);
    u_xlat0.xyz = vec3(u_xlat9) * u_xlat16_0.xyz + u_xlat10_1.xyz;
    u_xlat16_2.xyz = u_xlat0.xyz + (-_shadowColor.xyz);
    u_xlat0.xy = vs_TEXCOORD2.xy / vs_TEXCOORD2.ww;
    u_xlat10_0.xy = texture2D(_preferredPassBuffer1, u_xlat0.xy).xy;
    u_xlat0.x = dot(u_xlat10_0.xy, vec2(_shadowIntensity, _ambientOcclusionIntensity));
    u_xlat0.x = (-u_xlat0.x) + 1.0;
    SV_Target0.xyz = u_xlat0.xxx * u_xlat16_2.xyz + _shadowColor.xyz;
    SV_Target0.w = 1.0;
    return;
}

#endif
"
}
SubProgram "gles hw_tier01 " {
Keywords { "SHADOW" }
"#ifdef VERTEX
#version 100

uniform 	vec4 _ProjectionParams;
uniform 	vec4 hlslcc_mtx4x4unity_ObjectToWorld[4];
uniform 	vec4 hlslcc_mtx4x4unity_MatrixVP[4];
uniform 	vec4 _MainTex_ST;
attribute highp vec4 in_POSITION0;
attribute highp vec2 in_TEXCOORD0;
varying highp vec2 vs_TEXCOORD0;
varying highp vec4 vs_TEXCOORD1;
varying highp vec4 vs_TEXCOORD2;
varying highp vec4 vs_TEXCOORD3;
vec4 u_xlat0;
vec4 u_xlat1;
vec4 u_xlat2;
void main()
{
    vs_TEXCOORD0.xy = in_TEXCOORD0.xy * _MainTex_ST.xy + _MainTex_ST.zw;
    u_xlat0 = in_POSITION0.yyyy * hlslcc_mtx4x4unity_ObjectToWorld[1];
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[0] * in_POSITION0.xxxx + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[2] * in_POSITION0.zzzz + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[3] * in_POSITION0.wwww + u_xlat0;
    u_xlat1 = u_xlat0.xxxx * hlslcc_mtx4x4unity_MatrixVP[0];
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[1] * u_xlat0.yyyy + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat1;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat2;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat2;
    vs_TEXCOORD3 = u_xlat0;
    gl_Position = u_xlat2;
    vs_TEXCOORD1.zw = u_xlat2.zw;
    u_xlat0.x = 0.5;
    u_xlat0.y = _ProjectionParams.x;
    u_xlat2.xyz = u_xlat0.xyx * u_xlat2.xyw;
    u_xlat0.xy = u_xlat0.xy * u_xlat1.xy;
    u_xlat2.w = u_xlat2.y * 0.5;
    vs_TEXCOORD1.xy = u_xlat2.zz + u_xlat2.xw;
    u_xlat0.z = u_xlat0.y * 0.5;
    vs_TEXCOORD2.xy = u_xlat1.ww * vec2(0.5, 0.5) + u_xlat0.xz;
    vs_TEXCOORD2.zw = u_xlat1.zw;
    return;
}

#endif
#ifdef FRAGMENT
#version 100

#ifdef GL_FRAGMENT_PRECISION_HIGH
    precision highp float;
#else
    precision mediump float;
#endif
precision highp int;
uniform 	float _ReflectionIntensity;
uniform 	float _shadowIntensity;
uniform 	float _ambientOcclusionIntensity;
uniform 	mediump vec3 _shadowColor;
uniform lowp sampler2D _MainTex;
uniform lowp sampler2D _reflectionLight;
uniform lowp sampler2D _preferredPassBuffer1;
varying highp vec2 vs_TEXCOORD0;
varying highp vec4 vs_TEXCOORD1;
varying highp vec4 vs_TEXCOORD2;
#define SV_Target0 gl_FragData[0]
vec3 u_xlat0;
mediump vec3 u_xlat16_0;
lowp vec4 u_xlat10_0;
lowp vec3 u_xlat10_1;
mediump vec3 u_xlat16_2;
float u_xlat9;
void main()
{
    u_xlat0.y = (-vs_TEXCOORD1.y) + vs_TEXCOORD1.w;
    u_xlat0.x = vs_TEXCOORD1.x;
    u_xlat0.xy = u_xlat0.xy / vs_TEXCOORD1.ww;
    u_xlat10_0 = texture2D(_reflectionLight, u_xlat0.xy);
    u_xlat9 = u_xlat10_0.w * _ReflectionIntensity;
    u_xlat10_1.xyz = texture2D(_MainTex, vs_TEXCOORD0.xy).xyz;
    u_xlat16_0.xyz = u_xlat10_0.xyz + (-u_xlat10_1.xyz);
    u_xlat0.xyz = vec3(u_xlat9) * u_xlat16_0.xyz + u_xlat10_1.xyz;
    u_xlat16_2.xyz = u_xlat0.xyz + (-_shadowColor.xyz);
    u_xlat0.xy = vs_TEXCOORD2.xy / vs_TEXCOORD2.ww;
    u_xlat10_0.xy = texture2D(_preferredPassBuffer1, u_xlat0.xy).xy;
    u_xlat0.x = dot(u_xlat10_0.xy, vec2(_shadowIntensity, _ambientOcclusionIntensity));
    u_xlat0.x = (-u_xlat0.x) + 1.0;
    SV_Target0.xyz = u_xlat0.xxx * u_xlat16_2.xyz + _shadowColor.xyz;
    SV_Target0.w = 1.0;
    return;
}

#endif
"
}
SubProgram "gles hw_tier02 " {
Keywords { "SHADOW" }
"#ifdef VERTEX
#version 100

uniform 	vec4 _ProjectionParams;
uniform 	vec4 hlslcc_mtx4x4unity_ObjectToWorld[4];
uniform 	vec4 hlslcc_mtx4x4unity_MatrixVP[4];
uniform 	vec4 _MainTex_ST;
attribute highp vec4 in_POSITION0;
attribute highp vec2 in_TEXCOORD0;
varying highp vec2 vs_TEXCOORD0;
varying highp vec4 vs_TEXCOORD1;
varying highp vec4 vs_TEXCOORD2;
varying highp vec4 vs_TEXCOORD3;
vec4 u_xlat0;
vec4 u_xlat1;
vec4 u_xlat2;
void main()
{
    vs_TEXCOORD0.xy = in_TEXCOORD0.xy * _MainTex_ST.xy + _MainTex_ST.zw;
    u_xlat0 = in_POSITION0.yyyy * hlslcc_mtx4x4unity_ObjectToWorld[1];
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[0] * in_POSITION0.xxxx + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[2] * in_POSITION0.zzzz + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[3] * in_POSITION0.wwww + u_xlat0;
    u_xlat1 = u_xlat0.xxxx * hlslcc_mtx4x4unity_MatrixVP[0];
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[1] * u_xlat0.yyyy + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat1;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat2;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat2;
    vs_TEXCOORD3 = u_xlat0;
    gl_Position = u_xlat2;
    vs_TEXCOORD1.zw = u_xlat2.zw;
    u_xlat0.x = 0.5;
    u_xlat0.y = _ProjectionParams.x;
    u_xlat2.xyz = u_xlat0.xyx * u_xlat2.xyw;
    u_xlat0.xy = u_xlat0.xy * u_xlat1.xy;
    u_xlat2.w = u_xlat2.y * 0.5;
    vs_TEXCOORD1.xy = u_xlat2.zz + u_xlat2.xw;
    u_xlat0.z = u_xlat0.y * 0.5;
    vs_TEXCOORD2.xy = u_xlat1.ww * vec2(0.5, 0.5) + u_xlat0.xz;
    vs_TEXCOORD2.zw = u_xlat1.zw;
    return;
}

#endif
#ifdef FRAGMENT
#version 100

#ifdef GL_FRAGMENT_PRECISION_HIGH
    precision highp float;
#else
    precision mediump float;
#endif
precision highp int;
uniform 	float _ReflectionIntensity;
uniform 	float _shadowIntensity;
uniform 	float _ambientOcclusionIntensity;
uniform 	mediump vec3 _shadowColor;
uniform lowp sampler2D _MainTex;
uniform lowp sampler2D _reflectionLight;
uniform lowp sampler2D _preferredPassBuffer1;
varying highp vec2 vs_TEXCOORD0;
varying highp vec4 vs_TEXCOORD1;
varying highp vec4 vs_TEXCOORD2;
#define SV_Target0 gl_FragData[0]
vec3 u_xlat0;
mediump vec3 u_xlat16_0;
lowp vec4 u_xlat10_0;
lowp vec3 u_xlat10_1;
mediump vec3 u_xlat16_2;
float u_xlat9;
void main()
{
    u_xlat0.y = (-vs_TEXCOORD1.y) + vs_TEXCOORD1.w;
    u_xlat0.x = vs_TEXCOORD1.x;
    u_xlat0.xy = u_xlat0.xy / vs_TEXCOORD1.ww;
    u_xlat10_0 = texture2D(_reflectionLight, u_xlat0.xy);
    u_xlat9 = u_xlat10_0.w * _ReflectionIntensity;
    u_xlat10_1.xyz = texture2D(_MainTex, vs_TEXCOORD0.xy).xyz;
    u_xlat16_0.xyz = u_xlat10_0.xyz + (-u_xlat10_1.xyz);
    u_xlat0.xyz = vec3(u_xlat9) * u_xlat16_0.xyz + u_xlat10_1.xyz;
    u_xlat16_2.xyz = u_xlat0.xyz + (-_shadowColor.xyz);
    u_xlat0.xy = vs_TEXCOORD2.xy / vs_TEXCOORD2.ww;
    u_xlat10_0.xy = texture2D(_preferredPassBuffer1, u_xlat0.xy).xy;
    u_xlat0.x = dot(u_xlat10_0.xy, vec2(_shadowIntensity, _ambientOcclusionIntensity));
    u_xlat0.x = (-u_xlat0.x) + 1.0;
    SV_Target0.xyz = u_xlat0.xxx * u_xlat16_2.xyz + _shadowColor.xyz;
    SV_Target0.w = 1.0;
    return;
}

#endif
"
}
SubProgram "gles3 hw_tier00 " {
Keywords { "SHADOW" }
"#ifdef VERTEX
#version 300 es

uniform 	vec4 _ProjectionParams;
uniform 	vec4 hlslcc_mtx4x4unity_ObjectToWorld[4];
uniform 	vec4 hlslcc_mtx4x4unity_MatrixVP[4];
uniform 	vec4 _MainTex_ST;
in highp vec4 in_POSITION0;
in highp vec2 in_TEXCOORD0;
out highp vec2 vs_TEXCOORD0;
out highp vec4 vs_TEXCOORD1;
out highp vec4 vs_TEXCOORD2;
out highp vec4 vs_TEXCOORD3;
vec4 u_xlat0;
vec4 u_xlat1;
vec4 u_xlat2;
void main()
{
    vs_TEXCOORD0.xy = in_TEXCOORD0.xy * _MainTex_ST.xy + _MainTex_ST.zw;
    u_xlat0 = in_POSITION0.yyyy * hlslcc_mtx4x4unity_ObjectToWorld[1];
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[0] * in_POSITION0.xxxx + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[2] * in_POSITION0.zzzz + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[3] * in_POSITION0.wwww + u_xlat0;
    u_xlat1 = u_xlat0.xxxx * hlslcc_mtx4x4unity_MatrixVP[0];
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[1] * u_xlat0.yyyy + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat1;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat2;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat2;
    vs_TEXCOORD3 = u_xlat0;
    gl_Position = u_xlat2;
    vs_TEXCOORD1.zw = u_xlat2.zw;
    u_xlat0.x = 0.5;
    u_xlat0.y = _ProjectionParams.x;
    u_xlat2.xyz = u_xlat0.xyx * u_xlat2.xyw;
    u_xlat0.xy = u_xlat0.xy * u_xlat1.xy;
    u_xlat2.w = u_xlat2.y * 0.5;
    vs_TEXCOORD1.xy = u_xlat2.zz + u_xlat2.xw;
    u_xlat0.z = u_xlat0.y * 0.5;
    vs_TEXCOORD2.xy = u_xlat1.ww * vec2(0.5, 0.5) + u_xlat0.xz;
    vs_TEXCOORD2.zw = u_xlat1.zw;
    return;
}

#endif
#ifdef FRAGMENT
#version 300 es

precision highp float;
precision highp int;
uniform 	float _ReflectionIntensity;
uniform 	float _shadowIntensity;
uniform 	float _ambientOcclusionIntensity;
uniform 	mediump vec3 _shadowColor;
uniform mediump sampler2D _MainTex;
uniform mediump sampler2D _reflectionLight;
uniform mediump sampler2D _preferredPassBuffer1;
in highp vec2 vs_TEXCOORD0;
in highp vec4 vs_TEXCOORD1;
in highp vec4 vs_TEXCOORD2;
layout(location = 0) out mediump vec4 SV_Target0;
vec3 u_xlat0;
mediump vec4 u_xlat16_0;
mediump vec3 u_xlat16_1;
mediump vec3 u_xlat16_2;
float u_xlat9;
void main()
{
    u_xlat0.y = (-vs_TEXCOORD1.y) + vs_TEXCOORD1.w;
    u_xlat0.x = vs_TEXCOORD1.x;
    u_xlat0.xy = u_xlat0.xy / vs_TEXCOORD1.ww;
    u_xlat16_0 = texture(_reflectionLight, u_xlat0.xy);
    u_xlat9 = u_xlat16_0.w * _ReflectionIntensity;
    u_xlat16_1.xyz = texture(_MainTex, vs_TEXCOORD0.xy).xyz;
    u_xlat16_0.xyz = u_xlat16_0.xyz + (-u_xlat16_1.xyz);
    u_xlat0.xyz = vec3(u_xlat9) * u_xlat16_0.xyz + u_xlat16_1.xyz;
    u_xlat16_2.xyz = u_xlat0.xyz + (-_shadowColor.xyz);
    u_xlat0.xy = vs_TEXCOORD2.xy / vs_TEXCOORD2.ww;
    u_xlat16_0.xy = texture(_preferredPassBuffer1, u_xlat0.xy).xy;
    u_xlat0.x = dot(u_xlat16_0.xy, vec2(_shadowIntensity, _ambientOcclusionIntensity));
    u_xlat0.x = (-u_xlat0.x) + 1.0;
    SV_Target0.xyz = u_xlat0.xxx * u_xlat16_2.xyz + _shadowColor.xyz;
    SV_Target0.w = 1.0;
    return;
}

#endif
"
}
SubProgram "gles3 hw_tier01 " {
Keywords { "SHADOW" }
"#ifdef VERTEX
#version 300 es

uniform 	vec4 _ProjectionParams;
uniform 	vec4 hlslcc_mtx4x4unity_ObjectToWorld[4];
uniform 	vec4 hlslcc_mtx4x4unity_MatrixVP[4];
uniform 	vec4 _MainTex_ST;
in highp vec4 in_POSITION0;
in highp vec2 in_TEXCOORD0;
out highp vec2 vs_TEXCOORD0;
out highp vec4 vs_TEXCOORD1;
out highp vec4 vs_TEXCOORD2;
out highp vec4 vs_TEXCOORD3;
vec4 u_xlat0;
vec4 u_xlat1;
vec4 u_xlat2;
void main()
{
    vs_TEXCOORD0.xy = in_TEXCOORD0.xy * _MainTex_ST.xy + _MainTex_ST.zw;
    u_xlat0 = in_POSITION0.yyyy * hlslcc_mtx4x4unity_ObjectToWorld[1];
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[0] * in_POSITION0.xxxx + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[2] * in_POSITION0.zzzz + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[3] * in_POSITION0.wwww + u_xlat0;
    u_xlat1 = u_xlat0.xxxx * hlslcc_mtx4x4unity_MatrixVP[0];
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[1] * u_xlat0.yyyy + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat1;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat2;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat2;
    vs_TEXCOORD3 = u_xlat0;
    gl_Position = u_xlat2;
    vs_TEXCOORD1.zw = u_xlat2.zw;
    u_xlat0.x = 0.5;
    u_xlat0.y = _ProjectionParams.x;
    u_xlat2.xyz = u_xlat0.xyx * u_xlat2.xyw;
    u_xlat0.xy = u_xlat0.xy * u_xlat1.xy;
    u_xlat2.w = u_xlat2.y * 0.5;
    vs_TEXCOORD1.xy = u_xlat2.zz + u_xlat2.xw;
    u_xlat0.z = u_xlat0.y * 0.5;
    vs_TEXCOORD2.xy = u_xlat1.ww * vec2(0.5, 0.5) + u_xlat0.xz;
    vs_TEXCOORD2.zw = u_xlat1.zw;
    return;
}

#endif
#ifdef FRAGMENT
#version 300 es

precision highp float;
precision highp int;
uniform 	float _ReflectionIntensity;
uniform 	float _shadowIntensity;
uniform 	float _ambientOcclusionIntensity;
uniform 	mediump vec3 _shadowColor;
uniform mediump sampler2D _MainTex;
uniform mediump sampler2D _reflectionLight;
uniform mediump sampler2D _preferredPassBuffer1;
in highp vec2 vs_TEXCOORD0;
in highp vec4 vs_TEXCOORD1;
in highp vec4 vs_TEXCOORD2;
layout(location = 0) out mediump vec4 SV_Target0;
vec3 u_xlat0;
mediump vec4 u_xlat16_0;
mediump vec3 u_xlat16_1;
mediump vec3 u_xlat16_2;
float u_xlat9;
void main()
{
    u_xlat0.y = (-vs_TEXCOORD1.y) + vs_TEXCOORD1.w;
    u_xlat0.x = vs_TEXCOORD1.x;
    u_xlat0.xy = u_xlat0.xy / vs_TEXCOORD1.ww;
    u_xlat16_0 = texture(_reflectionLight, u_xlat0.xy);
    u_xlat9 = u_xlat16_0.w * _ReflectionIntensity;
    u_xlat16_1.xyz = texture(_MainTex, vs_TEXCOORD0.xy).xyz;
    u_xlat16_0.xyz = u_xlat16_0.xyz + (-u_xlat16_1.xyz);
    u_xlat0.xyz = vec3(u_xlat9) * u_xlat16_0.xyz + u_xlat16_1.xyz;
    u_xlat16_2.xyz = u_xlat0.xyz + (-_shadowColor.xyz);
    u_xlat0.xy = vs_TEXCOORD2.xy / vs_TEXCOORD2.ww;
    u_xlat16_0.xy = texture(_preferredPassBuffer1, u_xlat0.xy).xy;
    u_xlat0.x = dot(u_xlat16_0.xy, vec2(_shadowIntensity, _ambientOcclusionIntensity));
    u_xlat0.x = (-u_xlat0.x) + 1.0;
    SV_Target0.xyz = u_xlat0.xxx * u_xlat16_2.xyz + _shadowColor.xyz;
    SV_Target0.w = 1.0;
    return;
}

#endif
"
}
SubProgram "gles3 hw_tier02 " {
Keywords { "SHADOW" }
"#ifdef VERTEX
#version 300 es

uniform 	vec4 _ProjectionParams;
uniform 	vec4 hlslcc_mtx4x4unity_ObjectToWorld[4];
uniform 	vec4 hlslcc_mtx4x4unity_MatrixVP[4];
uniform 	vec4 _MainTex_ST;
in highp vec4 in_POSITION0;
in highp vec2 in_TEXCOORD0;
out highp vec2 vs_TEXCOORD0;
out highp vec4 vs_TEXCOORD1;
out highp vec4 vs_TEXCOORD2;
out highp vec4 vs_TEXCOORD3;
vec4 u_xlat0;
vec4 u_xlat1;
vec4 u_xlat2;
void main()
{
    vs_TEXCOORD0.xy = in_TEXCOORD0.xy * _MainTex_ST.xy + _MainTex_ST.zw;
    u_xlat0 = in_POSITION0.yyyy * hlslcc_mtx4x4unity_ObjectToWorld[1];
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[0] * in_POSITION0.xxxx + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[2] * in_POSITION0.zzzz + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[3] * in_POSITION0.wwww + u_xlat0;
    u_xlat1 = u_xlat0.xxxx * hlslcc_mtx4x4unity_MatrixVP[0];
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[1] * u_xlat0.yyyy + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat1;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat2;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat2;
    vs_TEXCOORD3 = u_xlat0;
    gl_Position = u_xlat2;
    vs_TEXCOORD1.zw = u_xlat2.zw;
    u_xlat0.x = 0.5;
    u_xlat0.y = _ProjectionParams.x;
    u_xlat2.xyz = u_xlat0.xyx * u_xlat2.xyw;
    u_xlat0.xy = u_xlat0.xy * u_xlat1.xy;
    u_xlat2.w = u_xlat2.y * 0.5;
    vs_TEXCOORD1.xy = u_xlat2.zz + u_xlat2.xw;
    u_xlat0.z = u_xlat0.y * 0.5;
    vs_TEXCOORD2.xy = u_xlat1.ww * vec2(0.5, 0.5) + u_xlat0.xz;
    vs_TEXCOORD2.zw = u_xlat1.zw;
    return;
}

#endif
#ifdef FRAGMENT
#version 300 es

precision highp float;
precision highp int;
uniform 	float _ReflectionIntensity;
uniform 	float _shadowIntensity;
uniform 	float _ambientOcclusionIntensity;
uniform 	mediump vec3 _shadowColor;
uniform mediump sampler2D _MainTex;
uniform mediump sampler2D _reflectionLight;
uniform mediump sampler2D _preferredPassBuffer1;
in highp vec2 vs_TEXCOORD0;
in highp vec4 vs_TEXCOORD1;
in highp vec4 vs_TEXCOORD2;
layout(location = 0) out mediump vec4 SV_Target0;
vec3 u_xlat0;
mediump vec4 u_xlat16_0;
mediump vec3 u_xlat16_1;
mediump vec3 u_xlat16_2;
float u_xlat9;
void main()
{
    u_xlat0.y = (-vs_TEXCOORD1.y) + vs_TEXCOORD1.w;
    u_xlat0.x = vs_TEXCOORD1.x;
    u_xlat0.xy = u_xlat0.xy / vs_TEXCOORD1.ww;
    u_xlat16_0 = texture(_reflectionLight, u_xlat0.xy);
    u_xlat9 = u_xlat16_0.w * _ReflectionIntensity;
    u_xlat16_1.xyz = texture(_MainTex, vs_TEXCOORD0.xy).xyz;
    u_xlat16_0.xyz = u_xlat16_0.xyz + (-u_xlat16_1.xyz);
    u_xlat0.xyz = vec3(u_xlat9) * u_xlat16_0.xyz + u_xlat16_1.xyz;
    u_xlat16_2.xyz = u_xlat0.xyz + (-_shadowColor.xyz);
    u_xlat0.xy = vs_TEXCOORD2.xy / vs_TEXCOORD2.ww;
    u_xlat16_0.xy = texture(_preferredPassBuffer1, u_xlat0.xy).xy;
    u_xlat0.x = dot(u_xlat16_0.xy, vec2(_shadowIntensity, _ambientOcclusionIntensity));
    u_xlat0.x = (-u_xlat0.x) + 1.0;
    SV_Target0.xyz = u_xlat0.xxx * u_xlat16_2.xyz + _shadowColor.xyz;
    SV_Target0.w = 1.0;
    return;
}

#endif
"
}
SubProgram "gles hw_tier00 " {
Keywords { "SHADOW" "RENDER_CONSTANT_COLOR" }
"#ifdef VERTEX
#version 100

uniform 	vec4 _ProjectionParams;
uniform 	vec4 hlslcc_mtx4x4unity_ObjectToWorld[4];
uniform 	vec4 hlslcc_mtx4x4unity_MatrixVP[4];
uniform 	vec4 _MainTex_ST;
attribute highp vec4 in_POSITION0;
attribute highp vec2 in_TEXCOORD0;
varying highp vec2 vs_TEXCOORD0;
varying highp vec4 vs_TEXCOORD1;
varying highp vec4 vs_TEXCOORD2;
varying highp vec4 vs_TEXCOORD3;
vec4 u_xlat0;
vec4 u_xlat1;
vec4 u_xlat2;
void main()
{
    vs_TEXCOORD0.xy = in_TEXCOORD0.xy * _MainTex_ST.xy + _MainTex_ST.zw;
    u_xlat0 = in_POSITION0.yyyy * hlslcc_mtx4x4unity_ObjectToWorld[1];
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[0] * in_POSITION0.xxxx + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[2] * in_POSITION0.zzzz + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[3] * in_POSITION0.wwww + u_xlat0;
    u_xlat1 = u_xlat0.xxxx * hlslcc_mtx4x4unity_MatrixVP[0];
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[1] * u_xlat0.yyyy + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat1;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat2;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat2;
    vs_TEXCOORD3 = u_xlat0;
    gl_Position = u_xlat2;
    vs_TEXCOORD1.zw = u_xlat2.zw;
    u_xlat0.x = 0.5;
    u_xlat0.y = _ProjectionParams.x;
    u_xlat2.xyz = u_xlat0.xyx * u_xlat2.xyw;
    u_xlat0.xy = u_xlat0.xy * u_xlat1.xy;
    u_xlat2.w = u_xlat2.y * 0.5;
    vs_TEXCOORD1.xy = u_xlat2.zz + u_xlat2.xw;
    u_xlat0.z = u_xlat0.y * 0.5;
    vs_TEXCOORD2.xy = u_xlat1.ww * vec2(0.5, 0.5) + u_xlat0.xz;
    vs_TEXCOORD2.zw = u_xlat1.zw;
    return;
}

#endif
#ifdef FRAGMENT
#version 100

#ifdef GL_FRAGMENT_PRECISION_HIGH
    precision highp float;
#else
    precision mediump float;
#endif
precision highp int;
uniform 	float _ReflectionIntensity;
uniform 	float _shadowIntensity;
uniform 	float _ambientOcclusionIntensity;
uniform 	mediump vec3 _shadowColor;
uniform 	vec4 _ConstantColor;
uniform lowp sampler2D _reflectionLight;
uniform lowp sampler2D _preferredPassBuffer1;
varying highp vec4 vs_TEXCOORD1;
varying highp vec4 vs_TEXCOORD2;
#define SV_Target0 gl_FragData[0]
vec3 u_xlat0;
lowp vec4 u_xlat10_0;
mediump vec3 u_xlat16_1;
float u_xlat6;
void main()
{
    u_xlat0.y = (-vs_TEXCOORD1.y) + vs_TEXCOORD1.w;
    u_xlat0.x = vs_TEXCOORD1.x;
    u_xlat0.xy = u_xlat0.xy / vs_TEXCOORD1.ww;
    u_xlat10_0 = texture2D(_reflectionLight, u_xlat0.xy);
    u_xlat6 = u_xlat10_0.w * _ReflectionIntensity;
    u_xlat0.xyz = u_xlat10_0.xyz + (-_ConstantColor.xyz);
    u_xlat0.xyz = vec3(u_xlat6) * u_xlat0.xyz + _ConstantColor.xyz;
    u_xlat16_1.xyz = u_xlat0.xyz + (-_shadowColor.xyz);
    u_xlat0.xy = vs_TEXCOORD2.xy / vs_TEXCOORD2.ww;
    u_xlat10_0.xy = texture2D(_preferredPassBuffer1, u_xlat0.xy).xy;
    u_xlat0.x = dot(u_xlat10_0.xy, vec2(_shadowIntensity, _ambientOcclusionIntensity));
    u_xlat0.x = (-u_xlat0.x) + 1.0;
    SV_Target0.xyz = u_xlat0.xxx * u_xlat16_1.xyz + _shadowColor.xyz;
    SV_Target0.w = 1.0;
    return;
}

#endif
"
}
SubProgram "gles hw_tier01 " {
Keywords { "SHADOW" "RENDER_CONSTANT_COLOR" }
"#ifdef VERTEX
#version 100

uniform 	vec4 _ProjectionParams;
uniform 	vec4 hlslcc_mtx4x4unity_ObjectToWorld[4];
uniform 	vec4 hlslcc_mtx4x4unity_MatrixVP[4];
uniform 	vec4 _MainTex_ST;
attribute highp vec4 in_POSITION0;
attribute highp vec2 in_TEXCOORD0;
varying highp vec2 vs_TEXCOORD0;
varying highp vec4 vs_TEXCOORD1;
varying highp vec4 vs_TEXCOORD2;
varying highp vec4 vs_TEXCOORD3;
vec4 u_xlat0;
vec4 u_xlat1;
vec4 u_xlat2;
void main()
{
    vs_TEXCOORD0.xy = in_TEXCOORD0.xy * _MainTex_ST.xy + _MainTex_ST.zw;
    u_xlat0 = in_POSITION0.yyyy * hlslcc_mtx4x4unity_ObjectToWorld[1];
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[0] * in_POSITION0.xxxx + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[2] * in_POSITION0.zzzz + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[3] * in_POSITION0.wwww + u_xlat0;
    u_xlat1 = u_xlat0.xxxx * hlslcc_mtx4x4unity_MatrixVP[0];
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[1] * u_xlat0.yyyy + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat1;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat2;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat2;
    vs_TEXCOORD3 = u_xlat0;
    gl_Position = u_xlat2;
    vs_TEXCOORD1.zw = u_xlat2.zw;
    u_xlat0.x = 0.5;
    u_xlat0.y = _ProjectionParams.x;
    u_xlat2.xyz = u_xlat0.xyx * u_xlat2.xyw;
    u_xlat0.xy = u_xlat0.xy * u_xlat1.xy;
    u_xlat2.w = u_xlat2.y * 0.5;
    vs_TEXCOORD1.xy = u_xlat2.zz + u_xlat2.xw;
    u_xlat0.z = u_xlat0.y * 0.5;
    vs_TEXCOORD2.xy = u_xlat1.ww * vec2(0.5, 0.5) + u_xlat0.xz;
    vs_TEXCOORD2.zw = u_xlat1.zw;
    return;
}

#endif
#ifdef FRAGMENT
#version 100

#ifdef GL_FRAGMENT_PRECISION_HIGH
    precision highp float;
#else
    precision mediump float;
#endif
precision highp int;
uniform 	float _ReflectionIntensity;
uniform 	float _shadowIntensity;
uniform 	float _ambientOcclusionIntensity;
uniform 	mediump vec3 _shadowColor;
uniform 	vec4 _ConstantColor;
uniform lowp sampler2D _reflectionLight;
uniform lowp sampler2D _preferredPassBuffer1;
varying highp vec4 vs_TEXCOORD1;
varying highp vec4 vs_TEXCOORD2;
#define SV_Target0 gl_FragData[0]
vec3 u_xlat0;
lowp vec4 u_xlat10_0;
mediump vec3 u_xlat16_1;
float u_xlat6;
void main()
{
    u_xlat0.y = (-vs_TEXCOORD1.y) + vs_TEXCOORD1.w;
    u_xlat0.x = vs_TEXCOORD1.x;
    u_xlat0.xy = u_xlat0.xy / vs_TEXCOORD1.ww;
    u_xlat10_0 = texture2D(_reflectionLight, u_xlat0.xy);
    u_xlat6 = u_xlat10_0.w * _ReflectionIntensity;
    u_xlat0.xyz = u_xlat10_0.xyz + (-_ConstantColor.xyz);
    u_xlat0.xyz = vec3(u_xlat6) * u_xlat0.xyz + _ConstantColor.xyz;
    u_xlat16_1.xyz = u_xlat0.xyz + (-_shadowColor.xyz);
    u_xlat0.xy = vs_TEXCOORD2.xy / vs_TEXCOORD2.ww;
    u_xlat10_0.xy = texture2D(_preferredPassBuffer1, u_xlat0.xy).xy;
    u_xlat0.x = dot(u_xlat10_0.xy, vec2(_shadowIntensity, _ambientOcclusionIntensity));
    u_xlat0.x = (-u_xlat0.x) + 1.0;
    SV_Target0.xyz = u_xlat0.xxx * u_xlat16_1.xyz + _shadowColor.xyz;
    SV_Target0.w = 1.0;
    return;
}

#endif
"
}
SubProgram "gles hw_tier02 " {
Keywords { "SHADOW" "RENDER_CONSTANT_COLOR" }
"#ifdef VERTEX
#version 100

uniform 	vec4 _ProjectionParams;
uniform 	vec4 hlslcc_mtx4x4unity_ObjectToWorld[4];
uniform 	vec4 hlslcc_mtx4x4unity_MatrixVP[4];
uniform 	vec4 _MainTex_ST;
attribute highp vec4 in_POSITION0;
attribute highp vec2 in_TEXCOORD0;
varying highp vec2 vs_TEXCOORD0;
varying highp vec4 vs_TEXCOORD1;
varying highp vec4 vs_TEXCOORD2;
varying highp vec4 vs_TEXCOORD3;
vec4 u_xlat0;
vec4 u_xlat1;
vec4 u_xlat2;
void main()
{
    vs_TEXCOORD0.xy = in_TEXCOORD0.xy * _MainTex_ST.xy + _MainTex_ST.zw;
    u_xlat0 = in_POSITION0.yyyy * hlslcc_mtx4x4unity_ObjectToWorld[1];
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[0] * in_POSITION0.xxxx + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[2] * in_POSITION0.zzzz + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[3] * in_POSITION0.wwww + u_xlat0;
    u_xlat1 = u_xlat0.xxxx * hlslcc_mtx4x4unity_MatrixVP[0];
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[1] * u_xlat0.yyyy + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat1;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat2;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat2;
    vs_TEXCOORD3 = u_xlat0;
    gl_Position = u_xlat2;
    vs_TEXCOORD1.zw = u_xlat2.zw;
    u_xlat0.x = 0.5;
    u_xlat0.y = _ProjectionParams.x;
    u_xlat2.xyz = u_xlat0.xyx * u_xlat2.xyw;
    u_xlat0.xy = u_xlat0.xy * u_xlat1.xy;
    u_xlat2.w = u_xlat2.y * 0.5;
    vs_TEXCOORD1.xy = u_xlat2.zz + u_xlat2.xw;
    u_xlat0.z = u_xlat0.y * 0.5;
    vs_TEXCOORD2.xy = u_xlat1.ww * vec2(0.5, 0.5) + u_xlat0.xz;
    vs_TEXCOORD2.zw = u_xlat1.zw;
    return;
}

#endif
#ifdef FRAGMENT
#version 100

#ifdef GL_FRAGMENT_PRECISION_HIGH
    precision highp float;
#else
    precision mediump float;
#endif
precision highp int;
uniform 	float _ReflectionIntensity;
uniform 	float _shadowIntensity;
uniform 	float _ambientOcclusionIntensity;
uniform 	mediump vec3 _shadowColor;
uniform 	vec4 _ConstantColor;
uniform lowp sampler2D _reflectionLight;
uniform lowp sampler2D _preferredPassBuffer1;
varying highp vec4 vs_TEXCOORD1;
varying highp vec4 vs_TEXCOORD2;
#define SV_Target0 gl_FragData[0]
vec3 u_xlat0;
lowp vec4 u_xlat10_0;
mediump vec3 u_xlat16_1;
float u_xlat6;
void main()
{
    u_xlat0.y = (-vs_TEXCOORD1.y) + vs_TEXCOORD1.w;
    u_xlat0.x = vs_TEXCOORD1.x;
    u_xlat0.xy = u_xlat0.xy / vs_TEXCOORD1.ww;
    u_xlat10_0 = texture2D(_reflectionLight, u_xlat0.xy);
    u_xlat6 = u_xlat10_0.w * _ReflectionIntensity;
    u_xlat0.xyz = u_xlat10_0.xyz + (-_ConstantColor.xyz);
    u_xlat0.xyz = vec3(u_xlat6) * u_xlat0.xyz + _ConstantColor.xyz;
    u_xlat16_1.xyz = u_xlat0.xyz + (-_shadowColor.xyz);
    u_xlat0.xy = vs_TEXCOORD2.xy / vs_TEXCOORD2.ww;
    u_xlat10_0.xy = texture2D(_preferredPassBuffer1, u_xlat0.xy).xy;
    u_xlat0.x = dot(u_xlat10_0.xy, vec2(_shadowIntensity, _ambientOcclusionIntensity));
    u_xlat0.x = (-u_xlat0.x) + 1.0;
    SV_Target0.xyz = u_xlat0.xxx * u_xlat16_1.xyz + _shadowColor.xyz;
    SV_Target0.w = 1.0;
    return;
}

#endif
"
}
SubProgram "gles3 hw_tier00 " {
Keywords { "SHADOW" "RENDER_CONSTANT_COLOR" }
"#ifdef VERTEX
#version 300 es

uniform 	vec4 _ProjectionParams;
uniform 	vec4 hlslcc_mtx4x4unity_ObjectToWorld[4];
uniform 	vec4 hlslcc_mtx4x4unity_MatrixVP[4];
uniform 	vec4 _MainTex_ST;
in highp vec4 in_POSITION0;
in highp vec2 in_TEXCOORD0;
out highp vec2 vs_TEXCOORD0;
out highp vec4 vs_TEXCOORD1;
out highp vec4 vs_TEXCOORD2;
out highp vec4 vs_TEXCOORD3;
vec4 u_xlat0;
vec4 u_xlat1;
vec4 u_xlat2;
void main()
{
    vs_TEXCOORD0.xy = in_TEXCOORD0.xy * _MainTex_ST.xy + _MainTex_ST.zw;
    u_xlat0 = in_POSITION0.yyyy * hlslcc_mtx4x4unity_ObjectToWorld[1];
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[0] * in_POSITION0.xxxx + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[2] * in_POSITION0.zzzz + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[3] * in_POSITION0.wwww + u_xlat0;
    u_xlat1 = u_xlat0.xxxx * hlslcc_mtx4x4unity_MatrixVP[0];
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[1] * u_xlat0.yyyy + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat1;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat2;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat2;
    vs_TEXCOORD3 = u_xlat0;
    gl_Position = u_xlat2;
    vs_TEXCOORD1.zw = u_xlat2.zw;
    u_xlat0.x = 0.5;
    u_xlat0.y = _ProjectionParams.x;
    u_xlat2.xyz = u_xlat0.xyx * u_xlat2.xyw;
    u_xlat0.xy = u_xlat0.xy * u_xlat1.xy;
    u_xlat2.w = u_xlat2.y * 0.5;
    vs_TEXCOORD1.xy = u_xlat2.zz + u_xlat2.xw;
    u_xlat0.z = u_xlat0.y * 0.5;
    vs_TEXCOORD2.xy = u_xlat1.ww * vec2(0.5, 0.5) + u_xlat0.xz;
    vs_TEXCOORD2.zw = u_xlat1.zw;
    return;
}

#endif
#ifdef FRAGMENT
#version 300 es

precision highp float;
precision highp int;
uniform 	float _ReflectionIntensity;
uniform 	float _shadowIntensity;
uniform 	float _ambientOcclusionIntensity;
uniform 	mediump vec3 _shadowColor;
uniform 	vec4 _ConstantColor;
uniform mediump sampler2D _reflectionLight;
uniform mediump sampler2D _preferredPassBuffer1;
in highp vec4 vs_TEXCOORD1;
in highp vec4 vs_TEXCOORD2;
layout(location = 0) out mediump vec4 SV_Target0;
vec3 u_xlat0;
mediump vec4 u_xlat16_0;
mediump vec3 u_xlat16_1;
float u_xlat6;
void main()
{
    u_xlat0.y = (-vs_TEXCOORD1.y) + vs_TEXCOORD1.w;
    u_xlat0.x = vs_TEXCOORD1.x;
    u_xlat0.xy = u_xlat0.xy / vs_TEXCOORD1.ww;
    u_xlat16_0 = texture(_reflectionLight, u_xlat0.xy);
    u_xlat6 = u_xlat16_0.w * _ReflectionIntensity;
    u_xlat0.xyz = u_xlat16_0.xyz + (-_ConstantColor.xyz);
    u_xlat0.xyz = vec3(u_xlat6) * u_xlat0.xyz + _ConstantColor.xyz;
    u_xlat16_1.xyz = u_xlat0.xyz + (-_shadowColor.xyz);
    u_xlat0.xy = vs_TEXCOORD2.xy / vs_TEXCOORD2.ww;
    u_xlat16_0.xy = texture(_preferredPassBuffer1, u_xlat0.xy).xy;
    u_xlat0.x = dot(u_xlat16_0.xy, vec2(_shadowIntensity, _ambientOcclusionIntensity));
    u_xlat0.x = (-u_xlat0.x) + 1.0;
    SV_Target0.xyz = u_xlat0.xxx * u_xlat16_1.xyz + _shadowColor.xyz;
    SV_Target0.w = 1.0;
    return;
}

#endif
"
}
SubProgram "gles3 hw_tier01 " {
Keywords { "SHADOW" "RENDER_CONSTANT_COLOR" }
"#ifdef VERTEX
#version 300 es

uniform 	vec4 _ProjectionParams;
uniform 	vec4 hlslcc_mtx4x4unity_ObjectToWorld[4];
uniform 	vec4 hlslcc_mtx4x4unity_MatrixVP[4];
uniform 	vec4 _MainTex_ST;
in highp vec4 in_POSITION0;
in highp vec2 in_TEXCOORD0;
out highp vec2 vs_TEXCOORD0;
out highp vec4 vs_TEXCOORD1;
out highp vec4 vs_TEXCOORD2;
out highp vec4 vs_TEXCOORD3;
vec4 u_xlat0;
vec4 u_xlat1;
vec4 u_xlat2;
void main()
{
    vs_TEXCOORD0.xy = in_TEXCOORD0.xy * _MainTex_ST.xy + _MainTex_ST.zw;
    u_xlat0 = in_POSITION0.yyyy * hlslcc_mtx4x4unity_ObjectToWorld[1];
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[0] * in_POSITION0.xxxx + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[2] * in_POSITION0.zzzz + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[3] * in_POSITION0.wwww + u_xlat0;
    u_xlat1 = u_xlat0.xxxx * hlslcc_mtx4x4unity_MatrixVP[0];
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[1] * u_xlat0.yyyy + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat1;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat2;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat2;
    vs_TEXCOORD3 = u_xlat0;
    gl_Position = u_xlat2;
    vs_TEXCOORD1.zw = u_xlat2.zw;
    u_xlat0.x = 0.5;
    u_xlat0.y = _ProjectionParams.x;
    u_xlat2.xyz = u_xlat0.xyx * u_xlat2.xyw;
    u_xlat0.xy = u_xlat0.xy * u_xlat1.xy;
    u_xlat2.w = u_xlat2.y * 0.5;
    vs_TEXCOORD1.xy = u_xlat2.zz + u_xlat2.xw;
    u_xlat0.z = u_xlat0.y * 0.5;
    vs_TEXCOORD2.xy = u_xlat1.ww * vec2(0.5, 0.5) + u_xlat0.xz;
    vs_TEXCOORD2.zw = u_xlat1.zw;
    return;
}

#endif
#ifdef FRAGMENT
#version 300 es

precision highp float;
precision highp int;
uniform 	float _ReflectionIntensity;
uniform 	float _shadowIntensity;
uniform 	float _ambientOcclusionIntensity;
uniform 	mediump vec3 _shadowColor;
uniform 	vec4 _ConstantColor;
uniform mediump sampler2D _reflectionLight;
uniform mediump sampler2D _preferredPassBuffer1;
in highp vec4 vs_TEXCOORD1;
in highp vec4 vs_TEXCOORD2;
layout(location = 0) out mediump vec4 SV_Target0;
vec3 u_xlat0;
mediump vec4 u_xlat16_0;
mediump vec3 u_xlat16_1;
float u_xlat6;
void main()
{
    u_xlat0.y = (-vs_TEXCOORD1.y) + vs_TEXCOORD1.w;
    u_xlat0.x = vs_TEXCOORD1.x;
    u_xlat0.xy = u_xlat0.xy / vs_TEXCOORD1.ww;
    u_xlat16_0 = texture(_reflectionLight, u_xlat0.xy);
    u_xlat6 = u_xlat16_0.w * _ReflectionIntensity;
    u_xlat0.xyz = u_xlat16_0.xyz + (-_ConstantColor.xyz);
    u_xlat0.xyz = vec3(u_xlat6) * u_xlat0.xyz + _ConstantColor.xyz;
    u_xlat16_1.xyz = u_xlat0.xyz + (-_shadowColor.xyz);
    u_xlat0.xy = vs_TEXCOORD2.xy / vs_TEXCOORD2.ww;
    u_xlat16_0.xy = texture(_preferredPassBuffer1, u_xlat0.xy).xy;
    u_xlat0.x = dot(u_xlat16_0.xy, vec2(_shadowIntensity, _ambientOcclusionIntensity));
    u_xlat0.x = (-u_xlat0.x) + 1.0;
    SV_Target0.xyz = u_xlat0.xxx * u_xlat16_1.xyz + _shadowColor.xyz;
    SV_Target0.w = 1.0;
    return;
}

#endif
"
}
SubProgram "gles3 hw_tier02 " {
Keywords { "SHADOW" "RENDER_CONSTANT_COLOR" }
"#ifdef VERTEX
#version 300 es

uniform 	vec4 _ProjectionParams;
uniform 	vec4 hlslcc_mtx4x4unity_ObjectToWorld[4];
uniform 	vec4 hlslcc_mtx4x4unity_MatrixVP[4];
uniform 	vec4 _MainTex_ST;
in highp vec4 in_POSITION0;
in highp vec2 in_TEXCOORD0;
out highp vec2 vs_TEXCOORD0;
out highp vec4 vs_TEXCOORD1;
out highp vec4 vs_TEXCOORD2;
out highp vec4 vs_TEXCOORD3;
vec4 u_xlat0;
vec4 u_xlat1;
vec4 u_xlat2;
void main()
{
    vs_TEXCOORD0.xy = in_TEXCOORD0.xy * _MainTex_ST.xy + _MainTex_ST.zw;
    u_xlat0 = in_POSITION0.yyyy * hlslcc_mtx4x4unity_ObjectToWorld[1];
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[0] * in_POSITION0.xxxx + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[2] * in_POSITION0.zzzz + u_xlat0;
    u_xlat0 = hlslcc_mtx4x4unity_ObjectToWorld[3] * in_POSITION0.wwww + u_xlat0;
    u_xlat1 = u_xlat0.xxxx * hlslcc_mtx4x4unity_MatrixVP[0];
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[1] * u_xlat0.yyyy + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat1;
    u_xlat1 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat1;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat2;
    u_xlat2 = hlslcc_mtx4x4unity_MatrixVP[3] * u_xlat0.wwww + u_xlat2;
    vs_TEXCOORD3 = u_xlat0;
    gl_Position = u_xlat2;
    vs_TEXCOORD1.zw = u_xlat2.zw;
    u_xlat0.x = 0.5;
    u_xlat0.y = _ProjectionParams.x;
    u_xlat2.xyz = u_xlat0.xyx * u_xlat2.xyw;
    u_xlat0.xy = u_xlat0.xy * u_xlat1.xy;
    u_xlat2.w = u_xlat2.y * 0.5;
    vs_TEXCOORD1.xy = u_xlat2.zz + u_xlat2.xw;
    u_xlat0.z = u_xlat0.y * 0.5;
    vs_TEXCOORD2.xy = u_xlat1.ww * vec2(0.5, 0.5) + u_xlat0.xz;
    vs_TEXCOORD2.zw = u_xlat1.zw;
    return;
}

#endif
#ifdef FRAGMENT
#version 300 es

precision highp float;
precision highp int;
uniform 	float _ReflectionIntensity;
uniform 	float _shadowIntensity;
uniform 	float _ambientOcclusionIntensity;
uniform 	mediump vec3 _shadowColor;
uniform 	vec4 _ConstantColor;
uniform mediump sampler2D _reflectionLight;
uniform mediump sampler2D _preferredPassBuffer1;
in highp vec4 vs_TEXCOORD1;
in highp vec4 vs_TEXCOORD2;
layout(location = 0) out mediump vec4 SV_Target0;
vec3 u_xlat0;
mediump vec4 u_xlat16_0;
mediump vec3 u_xlat16_1;
float u_xlat6;
void main()
{
    u_xlat0.y = (-vs_TEXCOORD1.y) + vs_TEXCOORD1.w;
    u_xlat0.x = vs_TEXCOORD1.x;
    u_xlat0.xy = u_xlat0.xy / vs_TEXCOORD1.ww;
    u_xlat16_0 = texture(_reflectionLight, u_xlat0.xy);
    u_xlat6 = u_xlat16_0.w * _ReflectionIntensity;
    u_xlat0.xyz = u_xlat16_0.xyz + (-_ConstantColor.xyz);
    u_xlat0.xyz = vec3(u_xlat6) * u_xlat0.xyz + _ConstantColor.xyz;
    u_xlat16_1.xyz = u_xlat0.xyz + (-_shadowColor.xyz);
    u_xlat0.xy = vs_TEXCOORD2.xy / vs_TEXCOORD2.ww;
    u_xlat16_0.xy = texture(_preferredPassBuffer1, u_xlat0.xy).xy;
    u_xlat0.x = dot(u_xlat16_0.xy, vec2(_shadowIntensity, _ambientOcclusionIntensity));
    u_xlat0.x = (-u_xlat0.x) + 1.0;
    SV_Target0.xyz = u_xlat0.xxx * u_xlat16_1.xyz + _shadowColor.xyz;
    SV_Target0.w = 1.0;
    return;
}

#endif
"
}
}
Program "fp" {
SubProgram "gles hw_tier00 " {
""
}
SubProgram "gles hw_tier01 " {
""
}
SubProgram "gles hw_tier02 " {
""
}
SubProgram "gles3 hw_tier00 " {
""
}
SubProgram "gles3 hw_tier01 " {
""
}
SubProgram "gles3 hw_tier02 " {
""
}
SubProgram "gles hw_tier00 " {
Keywords { "RENDER_CONSTANT_COLOR" }
""
}
SubProgram "gles hw_tier01 " {
Keywords { "RENDER_CONSTANT_COLOR" }
""
}
SubProgram "gles hw_tier02 " {
Keywords { "RENDER_CONSTANT_COLOR" }
""
}
SubProgram "gles3 hw_tier00 " {
Keywords { "RENDER_CONSTANT_COLOR" }
""
}
SubProgram "gles3 hw_tier01 " {
Keywords { "RENDER_CONSTANT_COLOR" }
""
}
SubProgram "gles3 hw_tier02 " {
Keywords { "RENDER_CONSTANT_COLOR" }
""
}
SubProgram "gles hw_tier00 " {
Keywords { "SHADOW" }
""
}
SubProgram "gles hw_tier01 " {
Keywords { "SHADOW" }
""
}
SubProgram "gles hw_tier02 " {
Keywords { "SHADOW" }
""
}
SubProgram "gles3 hw_tier00 " {
Keywords { "SHADOW" }
""
}
SubProgram "gles3 hw_tier01 " {
Keywords { "SHADOW" }
""
}
SubProgram "gles3 hw_tier02 " {
Keywords { "SHADOW" }
""
}
SubProgram "gles hw_tier00 " {
Keywords { "SHADOW" "RENDER_CONSTANT_COLOR" }
""
}
SubProgram "gles hw_tier01 " {
Keywords { "SHADOW" "RENDER_CONSTANT_COLOR" }
""
}
SubProgram "gles hw_tier02 " {
Keywords { "SHADOW" "RENDER_CONSTANT_COLOR" }
""
}
SubProgram "gles3 hw_tier00 " {
Keywords { "SHADOW" "RENDER_CONSTANT_COLOR" }
""
}
SubProgram "gles3 hw_tier01 " {
Keywords { "SHADOW" "RENDER_CONSTANT_COLOR" }
""
}
SubProgram "gles3 hw_tier02 " {
Keywords { "SHADOW" "RENDER_CONSTANT_COLOR" }
""
}
}
}
}
}