uniform sampler2D _CameraDepthTexture;
uniform sampler2D _CameraNormalsTexture;
uniform mat4 _CameraToWorld;
uniform vec4 _LightColor;
uniform mat4 _LightMatrix0;
uniform vec4 _LightPos;
uniform vec4 _LightPositionRange;
uniform vec4 _LightShadowData;
uniform samplerCube _LightTexture0;
uniform sampler2D _LightTextureB0;
uniform vec4 _ProjectionParams;
uniform samplerCube _ShadowMapTexture;
uniform vec3 _WorldSpaceCameraPos;
uniform vec4 _ZBufferParams;
uniform vec4 unity_LightmapFade;
varying vec4 xlv_TEXCOORD0;
varying vec3 xlv_TEXCOORD1;
void main ()
{
  vec4 res_1;
  float atten_2;
  vec3 lightDir_3;
  vec3 tolight_4;
  vec3 wpos_5;
  vec3 normal_6;
  vec2 uv_7;
  uv_7 = (xlv_TEXCOORD0.xy / xlv_TEXCOORD0.w);
  vec4 tmpvar_8;
  tmpvar_8 = texture2D (_CameraNormalsTexture, uv_7);
  normal_6 = ((tmpvar_8.xyz * 2.0) - 1.0);
  normal_6 = normalize(normal_6);
  vec4 tmpvar_9;
  tmpvar_9.w = 1.0;
  tmpvar_9.xyz = ((xlv_TEXCOORD1 * (_ProjectionParams.z / xlv_TEXCOORD1.z)) * (1.0/((
    (_ZBufferParams.x * texture2D (_CameraDepthTexture, uv_7).x)
   + _ZBufferParams.y))));
  wpos_5 = (_CameraToWorld * tmpvar_9).xyz;
  tolight_4 = (wpos_5 - _LightPos.xyz);
  lightDir_3 = -(normalize(tolight_4));
  atten_2 = texture2D (_LightTextureB0, vec2((dot (tolight_4, tolight_4) * _LightPos.w))).w;
  float mydist_10;
  mydist_10 = (sqrt(dot (tolight_4, tolight_4)) * _LightPositionRange.w);
  mydist_10 = (mydist_10 * 0.97);
  vec4 shadowVals_11;
  shadowVals_11.x = dot (textureCube (_ShadowMapTexture, (tolight_4 + vec3(0.0078125, 0.0078125, 0.0078125))), vec4(1.0, 0.00392157, 1.53787e-05, 6.22737e-09));
  shadowVals_11.y = dot (textureCube (_ShadowMapTexture, (tolight_4 + vec3(-0.0078125, -0.0078125, 0.0078125))), vec4(1.0, 0.00392157, 1.53787e-05, 6.22737e-09));
  shadowVals_11.z = dot (textureCube (_ShadowMapTexture, (tolight_4 + vec3(-0.0078125, 0.0078125, -0.0078125))), vec4(1.0, 0.00392157, 1.53787e-05, 6.22737e-09));
  shadowVals_11.w = dot (textureCube (_ShadowMapTexture, (tolight_4 + vec3(0.0078125, -0.0078125, -0.0078125))), vec4(1.0, 0.00392157, 1.53787e-05, 6.22737e-09));
  bvec4 tmpvar_12;
  tmpvar_12 = lessThan (shadowVals_11, vec4(mydist_10));
  vec4 tmpvar_13;
  tmpvar_13 = _LightShadowData.xxxx;
  float tmpvar_14;
  if (tmpvar_12.x) {
    tmpvar_14 = tmpvar_13.x;
  } else {
    tmpvar_14 = 1.0;
  };
  float tmpvar_15;
  if (tmpvar_12.y) {
    tmpvar_15 = tmpvar_13.y;
  } else {
    tmpvar_15 = 1.0;
  };
  float tmpvar_16;
  if (tmpvar_12.z) {
    tmpvar_16 = tmpvar_13.z;
  } else {
    tmpvar_16 = 1.0;
  };
  float tmpvar_17;
  if (tmpvar_12.w) {
    tmpvar_17 = tmpvar_13.w;
  } else {
    tmpvar_17 = 1.0;
  };
  vec4 tmpvar_18;
  tmpvar_18.x = tmpvar_14;
  tmpvar_18.y = tmpvar_15;
  tmpvar_18.z = tmpvar_16;
  tmpvar_18.w = tmpvar_17;
  atten_2 = (atten_2 * dot (tmpvar_18, vec4(0.25, 0.25, 0.25, 0.25)));
  vec4 tmpvar_19;
  tmpvar_19.w = 1.0;
  tmpvar_19.xyz = wpos_5;
  atten_2 = (atten_2 * textureCube (_LightTexture0, (_LightMatrix0 * tmpvar_19).xyz).w);
  res_1.xyz = (_LightColor.xyz * (max (0.0, 
    dot (lightDir_3, normal_6)
  ) * atten_2));
  res_1.w = ((pow (
    max (0.0, dot (normalize((lightDir_3 - 
      normalize((wpos_5 - _WorldSpaceCameraPos))
    )), normal_6))
  , 
    (tmpvar_8.w * 128.0)
  ) * clamp (atten_2, 0.0, 1.0)) * dot (_LightColor.xyz, vec3(0.22, 0.707, 0.071)));
  res_1 = (res_1 * clamp ((1.0 - 
    ((tmpvar_9.z * unity_LightmapFade.z) + unity_LightmapFade.w)
  ), 0.0, 1.0));
  gl_FragData[0] = exp2(-(res_1));
}


// stats: 62 alu 8 tex 4 flow
// inputs: 2
//  #0: xlv_TEXCOORD0 (high float) 4x1 [-1]
//  #1: xlv_TEXCOORD1 (high float) 3x1 [-1]
// uniforms: 10 (total size: 0)
//  #0: _CameraToWorld (high float) 4x4 [-1]
//  #1: _LightColor (high float) 4x1 [-1]
//  #2: _LightMatrix0 (high float) 4x4 [-1]
//  #3: _LightPos (high float) 4x1 [-1]
//  #4: _LightPositionRange (high float) 4x1 [-1]
//  #5: _LightShadowData (high float) 4x1 [-1]
//  #6: _ProjectionParams (high float) 4x1 [-1]
//  #7: _WorldSpaceCameraPos (high float) 3x1 [-1]
//  #8: _ZBufferParams (high float) 4x1 [-1]
//  #9: unity_LightmapFade (high float) 4x1 [-1]
// textures: 5
//  #0: _CameraDepthTexture (high 2d) 0x0 [-1]
//  #1: _CameraNormalsTexture (high 2d) 0x0 [-1]
//  #2: _LightTexture0 (high cube) 0x0 [-1]
//  #3: _LightTextureB0 (high 2d) 0x0 [-1]
//  #4: _ShadowMapTexture (high cube) 0x0 [-1]
