Shader "Hirabiki/VRCLens/ScreenSpace Aux Cutout" {
	Properties {
		_AuxExpTex ("Aux Exposure Texture", 2D) = "black" {}
		_AuxFocusTex ("Aux Focus Texture", 2D) = "black" {}
		_DepthAvatarTex ("Avatar Depth Texture", 2D) = "black" {}
		_MainTex ("Shader blocked texture", 2D) = "white" {}
		[Enum(VR,0,Desktop,1)] _IsDesktopMode ("Usage Mode", Float) = 0
		[Enum(Disabled,0,Enabled,1)] _IsAvatarDetectAF ("Avatar AF", Float) = 0
		[Enum(Disabled,0,Enabled,1)] [HideInInspector] _ExposureLock ("Lock Exposure", Float) = 0
		[HideInInspector] _FocusOffsetH ("Focus offset H", Range(-1, 1)) = 0
		[HideInInspector] _FocusOffsetV ("Focus offset V", Range(-1, 1)) = 0
	}
	SubShader {
		Tags { "DisableBatching" = "true" "IGNOREPROJECTOR" = "true" "QUEUE" = "Transparent+1000" }
		Pass {
			Tags { "DisableBatching" = "true" "IGNOREPROJECTOR" = "true" "QUEUE" = "Transparent+1000" }
			Blend SrcAlpha OneMinusSrcAlpha, SrcAlpha OneMinusSrcAlpha
			ZTest Always
			GpuProgramID 2875
			Program "vp" {
				SubProgram "d3d11 " {
					"vs_4_0
					
					#version 330
					#extension GL_ARB_explicit_attrib_location : require
					#extension GL_ARB_explicit_uniform_location : require
					
					#define HLSLCC_ENABLE_UNIFORM_BUFFERS 1
					#if HLSLCC_ENABLE_UNIFORM_BUFFERS
					#define UNITY_UNIFORM
					#else
					#define UNITY_UNIFORM uniform
					#endif
					#define UNITY_SUPPORTS_UNIFORM_LOCATION 1
					#if UNITY_SUPPORTS_UNIFORM_LOCATION
					#define UNITY_LOCATION(x) layout(location = x)
					#define UNITY_BINDING(x) layout(binding = x, std140)
					#else
					#define UNITY_LOCATION(x)
					#define UNITY_BINDING(x) layout(std140)
					#endif
					layout(std140) uniform UnityPerCamera {
						vec4 unused_0_0[5];
						vec4 _ProjectionParams;
						vec4 _ScreenParams;
						vec4 unused_0_3[2];
					};
					layout(std140) uniform UnityPerFrame {
						vec4 unused_1_0[5];
						mat4x4 glstate_matrix_projection;
						vec4 unused_1_2[14];
					};
					in  vec4 in_POSITION0;
					out vec2 vs_TEXCOORD0;
					vec4 u_xlat0;
					bvec4 u_xlatb0;
					vec4 u_xlat1;
					vec3 u_xlat2;
					void main()
					{
					    u_xlatb0 = equal(_ScreenParams.xyxy, vec4(8.0, 16.0, 8.0, 8.0));
					    u_xlatb0.x = u_xlatb0.y && u_xlatb0.x;
					    u_xlatb0.y = u_xlatb0.w && u_xlatb0.z;
					    u_xlatb0.x = u_xlatb0.y || u_xlatb0.x;
					    u_xlat0.x = u_xlatb0.x ? 1.0 : float(0.0);
					    u_xlat2.xyz = in_POSITION0.xyw * vec3(512.0, 512.0, 1.0);
					    u_xlat0.xyz = u_xlat0.xxx * u_xlat2.xyz;
					    u_xlat1 = u_xlat0.yyyy * glstate_matrix_projection[1];
					    u_xlat1 = glstate_matrix_projection[0] * u_xlat0.xxxx + u_xlat1;
					    u_xlat0.x = (-_ProjectionParams.y) + -0.00100000005;
					    u_xlat1 = glstate_matrix_projection[2] * u_xlat0.xxxx + u_xlat1;
					    u_xlat0 = glstate_matrix_projection[3] * u_xlat0.zzzz + u_xlat1;
					    u_xlat1.x = u_xlat0.y * _ProjectionParams.x;
					    u_xlat1.w = u_xlat1.x * 0.5;
					    u_xlat1.xz = u_xlat0.xw * vec2(0.5, 0.5);
					    u_xlat1.xy = u_xlat1.zz + u_xlat1.xw;
					    vs_TEXCOORD0.xy = u_xlat1.xy / u_xlat0.ww;
					    gl_Position = u_xlat0;
					    return;
					}"
				}
				SubProgram "d3d11 " {
					Keywords { "UNITY_SINGLE_PASS_STEREO" }
					"vs_4_0
					
					#version 330
					#extension GL_ARB_explicit_attrib_location : require
					#extension GL_ARB_explicit_uniform_location : require
					
					#define HLSLCC_ENABLE_UNIFORM_BUFFERS 1
					#if HLSLCC_ENABLE_UNIFORM_BUFFERS
					#define UNITY_UNIFORM
					#else
					#define UNITY_UNIFORM uniform
					#endif
					#define UNITY_SUPPORTS_UNIFORM_LOCATION 1
					#if UNITY_SUPPORTS_UNIFORM_LOCATION
					#define UNITY_LOCATION(x) layout(location = x)
					#define UNITY_BINDING(x) layout(binding = x, std140)
					#else
					#define UNITY_LOCATION(x)
					#define UNITY_BINDING(x) layout(std140)
					#endif
					layout(std140) uniform UnityPerCamera {
						vec4 unused_0_0[4];
						vec4 _ProjectionParams;
						vec4 unused_0_2[3];
					};
					layout(std140) uniform UnityStereoGlobals {
						mat4x4 unity_StereoMatrixP[2];
						vec4 unused_1_1[64];
					};
					layout(std140) uniform UnityStereoEyeIndex {
						int unity_StereoEyeIndex;
					};
					out vec2 vs_TEXCOORD0;
					vec4 u_xlat0;
					int u_xlati0;
					vec4 u_xlat1;
					float u_xlat2;
					void main()
					{
					    u_xlati0 = unity_StereoEyeIndex << 2;
					    u_xlat2 = (-_ProjectionParams.y) + -0.00100000005;
					    u_xlat0 = vec4(u_xlat2) * unity_StereoMatrixP[(u_xlati0 + 2) / 4][(u_xlati0 + 2) % 4];
					    u_xlat1.x = u_xlat0.y * _ProjectionParams.x;
					    u_xlat1.w = u_xlat1.x * 0.5;
					    u_xlat1.xz = u_xlat0.xw * vec2(0.5, 0.5);
					    u_xlat1.xy = u_xlat1.zz + u_xlat1.xw;
					    vs_TEXCOORD0.xy = u_xlat1.xy / u_xlat0.ww;
					    gl_Position = u_xlat0;
					    return;
					}"
				}
			}
			Program "fp" {
				SubProgram "d3d11 " {
					"ps_4_0
					
					#version 330
					#extension GL_ARB_explicit_attrib_location : require
					#extension GL_ARB_explicit_uniform_location : require
					
					#define HLSLCC_ENABLE_UNIFORM_BUFFERS 1
					#if HLSLCC_ENABLE_UNIFORM_BUFFERS
					#define UNITY_UNIFORM
					#else
					#define UNITY_UNIFORM uniform
					#endif
					#define UNITY_SUPPORTS_UNIFORM_LOCATION 1
					#if UNITY_SUPPORTS_UNIFORM_LOCATION
					#define UNITY_LOCATION(x) layout(location = x)
					#define UNITY_BINDING(x) layout(binding = x, std140)
					#else
					#define UNITY_LOCATION(x)
					#define UNITY_BINDING(x) layout(std140)
					#endif
					layout(std140) uniform PGlobals {
						vec4 unused_0_0[2];
						float _FocusOffsetH;
						float _FocusOffsetV;
						int _IsDesktopMode;
						int _IsAvatarDetectAF;
						int _ExposureLock;
					};
					layout(std140) uniform UnityPerCamera {
						vec4 unused_1_0[3];
						vec4 unity_DeltaTime;
						vec3 _WorldSpaceCameraPos;
						vec4 unused_1_3[3];
						vec4 unity_OrthoParams;
					};
					layout(std140) uniform UnityPerDraw {
						mat4x4 unity_ObjectToWorld;
						vec4 unused_2_1[7];
					};
					layout(std140) uniform UnityPerFrame {
						vec4 unused_3_0[9];
						mat4x4 unity_MatrixV;
						vec4 unused_3_2[10];
					};
					uniform  sampler2D _AuxExpTex;
					uniform  sampler2D _AuxFocusTex;
					uniform  sampler2D _DepthAvatarTex;
					in  vec2 vs_TEXCOORD0;
					layout(location = 0) out vec4 SV_Target0;
					vec4 u_xlat0;
					vec4 u_xlat1;
					vec4 u_xlat2;
					bvec2 u_xlatb2;
					vec4 u_xlat3;
					bvec3 u_xlatb3;
					vec4 u_xlat4;
					vec2 u_xlat7;
					bool u_xlatb7;
					float u_xlat12;
					bvec2 u_xlatb12;
					vec2 u_xlat13;
					float u_xlat16;
					bool u_xlatb16;
					void main()
					{
					    u_xlat0.xyz = (-_WorldSpaceCameraPos.xyz) + unity_ObjectToWorld[3].xyz;
					    u_xlat0.x = dot(u_xlat0.xyz, u_xlat0.xyz);
					    u_xlat0.x = sqrt(u_xlat0.x);
					    u_xlat1 = textureLod(_AuxExpTex, vec2(0.0, 0.0), 6.0);
					    u_xlat1.xyz = u_xlat1.xyz * vec3(0.25, 0.25, 0.25);
					    u_xlat1.xyz = max(u_xlat1.xyz, vec3(0.0, 0.0, 0.0));
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.125, 0.0), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.5, 0.5, 0.5);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.25, 0.0), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.5, 0.5, 0.5);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.375, 0.0), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.5, 0.5, 0.5);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.5, 0.0), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.5, 0.5, 0.5);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.625, 0.0), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.5, 0.5, 0.5);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.75, 0.0), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.5, 0.5, 0.5);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.875, 0.0), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.5, 0.5, 0.5);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(1.0, 0.0), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.25, 0.25, 0.25);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.0, 0.25), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.5, 0.5, 0.5);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.125, 0.25), 6.0);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.25, 0.25), 6.0);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.375, 0.25), 6.0);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.5, 0.25), 6.0);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.625, 0.25), 6.0);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.75, 0.25), 6.0);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.875, 0.25), 6.0);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(1.0, 0.25), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.5, 0.5, 0.5);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.0, 0.5), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.5, 0.5, 0.5);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.125, 0.5), 6.0);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.25, 0.5), 6.0);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.375, 0.5), 6.0);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.5, 0.5), 6.0);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.625, 0.5), 6.0);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.75, 0.5), 6.0);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.875, 0.5), 6.0);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(1.0, 0.5), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.5, 0.5, 0.5);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.0, 0.75), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.5, 0.5, 0.5);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.125, 0.75), 6.0);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.25, 0.75), 6.0);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.375, 0.75), 6.0);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.5, 0.75), 6.0);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.625, 0.75), 6.0);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.75, 0.75), 6.0);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.875, 0.75), 6.0);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(1.0, 0.75), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.5, 0.5, 0.5);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.0, 1.0), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.25, 0.25, 0.25);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.125, 1.0), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.5, 0.5, 0.5);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.25, 1.0), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.5, 0.5, 0.5);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.375, 1.0), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.5, 0.5, 0.5);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.5, 1.0), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.5, 0.5, 0.5);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.625, 1.0), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.5, 0.5, 0.5);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.75, 1.0), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.5, 0.5, 0.5);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.875, 1.0), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.5, 0.5, 0.5);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(1.0, 1.0), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.25, 0.25, 0.25);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2.xyz = u_xlat1.xyz * vec3(2.5, 2.5, 2.5);
					    u_xlat3.xyz = (-u_xlat1.xyz) * vec3(2.5, 2.5, 2.5) + vec3(1.0, 1.0, 1.0);
					    u_xlat2.xyz = u_xlat3.xyz * vec3(0.0500000007, 0.0500000007, 0.0500000007) + u_xlat2.xyz;
					    u_xlat16 = dot(u_xlat1.xyz, u_xlat1.xyz);
					    u_xlatb16 = u_xlat16!=0.0;
					    u_xlat1.xyz = (bool(u_xlatb16)) ? u_xlat1.xyz : vec3(1.0, 1.0, 1.0);
					    u_xlat16 = dot(u_xlat2.xyz, u_xlat2.xyz);
					    u_xlatb16 = u_xlat16!=0.0;
					    u_xlat2.xyz = (bool(u_xlatb16)) ? u_xlat2.xyz : vec3(1.0, 1.0, 1.0);
					    u_xlat1.x = max(u_xlat1.y, u_xlat1.x);
					    u_xlat1.x = max(u_xlat1.z, u_xlat1.x);
					    u_xlat2.x = max(u_xlat2.y, u_xlat2.x);
					    u_xlat2.x = max(u_xlat2.z, u_xlat2.x);
					    u_xlat1.y = min(u_xlat2.x, 1.5);
					    u_xlatb2.x = vs_TEXCOORD0.y<0.5;
					    u_xlat1.w = u_xlatb2.x ? 1.0 : float(0.0);
					    if(_IsAvatarDetectAF != 0) {
					        u_xlat7.xy = vec2(_FocusOffsetH, _FocusOffsetV) * vec2(0.5, 0.5) + vec2(0.5, 0.5);
					        u_xlat3 = texture(_AuxFocusTex, vec2(0.0, 0.0));
					        u_xlat3.xy = u_xlat3.xy + vec2(0.5, 0.5);
					        u_xlat7.xy = (int(_IsDesktopMode) != 0) ? u_xlat7.xy : u_xlat3.xy;
					        u_xlat3 = texture(_DepthAvatarTex, u_xlat7.xy);
					        u_xlat4.z = u_xlat3.x * 256.0;
					        u_xlatb7 = u_xlat3.x!=0.0;
					        u_xlat4.w = u_xlatb7 ? 1.0 : float(0.0);
					        u_xlat1.z = 0.0;
					        u_xlat4.x = float(0.0);
					        u_xlat4.y = float(0.0);
					        u_xlat2 = (u_xlatb2.x) ? u_xlat1.wxyz : u_xlat4.wxyz;
					        u_xlat1.xyz = u_xlat2.yzw;
					    } else {
					        u_xlat1.z = 0.0;
					        u_xlat2.x = u_xlat1.w;
					    }
					    u_xlat7.x = unity_DeltaTime.x * -4.32192802;
					    u_xlat7.x = exp2(u_xlat7.x);
					    u_xlat7.x = (_ExposureLock != 0) ? 1.0 : u_xlat7.x;
					    u_xlatb3.xyz = equal(unity_OrthoParams.wyyw, vec4(1.0, -0.00499999989, -256.0, 0.0)).xyz;
					    u_xlatb12.x = u_xlatb3.y && u_xlatb3.x;
					    u_xlatb12.y = u_xlatb3.z && u_xlatb3.x;
					    u_xlat7.x = (-u_xlat7.x) * u_xlat1.w + 1.0;
					    u_xlat1.w = u_xlat2.x * u_xlat7.x;
					    u_xlat1 = u_xlatb12.x ? u_xlat1 : vec4(0.0, 0.0, 0.0, 0.0);
					    u_xlat2.x = -abs(unity_MatrixV[1].z) + 1.0;
					    u_xlat2.x = sqrt(u_xlat2.x);
					    u_xlat7.x = abs(unity_MatrixV[1].z) * -0.0187292993 + 0.0742610022;
					    u_xlat7.x = u_xlat7.x * abs(unity_MatrixV[1].z) + -0.212114394;
					    u_xlat7.x = u_xlat7.x * abs(unity_MatrixV[1].z) + 1.57072878;
					    u_xlat12 = u_xlat2.x * u_xlat7.x;
					    u_xlat12 = u_xlat12 * -2.0 + 3.14159274;
					    u_xlatb3.x = unity_MatrixV[1].z<(-unity_MatrixV[1].z);
					    u_xlat12 = u_xlatb3.x ? u_xlat12 : float(0.0);
					    u_xlat2.x = u_xlat7.x * u_xlat2.x + u_xlat12;
					    u_xlat2.x = (-u_xlat2.x) + 1.57079637;
					    u_xlat0.y = (-u_xlat2.x);
					    u_xlat2.x = (-unity_MatrixV[1].z) * unity_MatrixV[1].z + 1.0;
					    u_xlat2.x = sqrt(u_xlat2.x);
					    u_xlat2.xy = unity_MatrixV[1].xy / u_xlat2.xx;
					    u_xlat3.xy = -abs(u_xlat2.xy) + vec2(1.0, 1.0);
					    u_xlat3.xy = sqrt(u_xlat3.xy);
					    u_xlat13.xy = abs(u_xlat2.xy) * vec2(-0.0187292993, -0.0187292993) + vec2(0.0742610022, 0.0742610022);
					    u_xlat13.xy = u_xlat13.xy * abs(u_xlat2.xy) + vec2(-0.212114394, -0.212114394);
					    u_xlat13.xy = u_xlat13.xy * abs(u_xlat2.xy) + vec2(1.57072878, 1.57072878);
					    u_xlat4.xy = u_xlat3.xy * u_xlat13.xy;
					    u_xlat4.xy = u_xlat4.xy * vec2(-2.0, -2.0) + vec2(3.14159274, 3.14159274);
					    u_xlatb2.xy = lessThan(u_xlat2.xyxx, (-u_xlat2.xyxx)).xy;
					    u_xlat2.x = u_xlatb2.x ? u_xlat4.x : 0.0;
					    u_xlat2.y = u_xlatb2.y ? u_xlat4.y : 0.0;
					;
					    u_xlat2.xy = u_xlat13.xy * u_xlat3.xy + u_xlat2.xy;
					    u_xlat2.x = (-u_xlat2.x) + 1.57079637;
					    u_xlatb12.x = unity_MatrixV[1].x>=0.0;
					    u_xlat12 = (u_xlatb12.x) ? u_xlat2.y : (-u_xlat2.y);
					    u_xlatb7 = 0.785398185<u_xlat2.y;
					    u_xlat0.z = (u_xlatb7) ? u_xlat12 : u_xlat2.x;
					    u_xlat0.w = 1.0;
					    SV_Target0 = (u_xlatb12.y) ? u_xlat0 : u_xlat1;
					    return;
					}"
				}
				SubProgram "d3d11 " {
					Keywords { "UNITY_SINGLE_PASS_STEREO" }
					"ps_4_0
					
					#version 330
					#extension GL_ARB_explicit_attrib_location : require
					#extension GL_ARB_explicit_uniform_location : require
					
					#define HLSLCC_ENABLE_UNIFORM_BUFFERS 1
					#if HLSLCC_ENABLE_UNIFORM_BUFFERS
					#define UNITY_UNIFORM
					#else
					#define UNITY_UNIFORM uniform
					#endif
					#define UNITY_SUPPORTS_UNIFORM_LOCATION 1
					#if UNITY_SUPPORTS_UNIFORM_LOCATION
					#define UNITY_LOCATION(x) layout(location = x)
					#define UNITY_BINDING(x) layout(binding = x, std140)
					#else
					#define UNITY_LOCATION(x)
					#define UNITY_BINDING(x) layout(std140)
					#endif
					layout(std140) uniform PGlobals {
						vec4 unused_0_0[2];
						float _FocusOffsetH;
						float _FocusOffsetV;
						int _IsDesktopMode;
						int _IsAvatarDetectAF;
						int _ExposureLock;
					};
					layout(std140) uniform UnityPerCamera {
						vec4 unused_1_0[3];
						vec4 unity_DeltaTime;
						vec4 unused_1_2[3];
						vec4 unity_OrthoParams;
					};
					layout(std140) uniform UnityPerDraw {
						mat4x4 unity_ObjectToWorld;
						vec4 unused_2_1[7];
					};
					layout(std140) uniform UnityStereoGlobals {
						vec4 unused_3_0[8];
						mat4x4 unity_StereoMatrixV[2];
						vec4 unused_3_2[52];
						vec3 unity_StereoWorldSpaceCameraPos[2];
						vec4 unused_3_4[3];
					};
					layout(std140) uniform UnityStereoEyeIndex {
						int unity_StereoEyeIndex;
					};
					uniform  sampler2D _AuxExpTex;
					uniform  sampler2D _AuxFocusTex;
					uniform  sampler2D _DepthAvatarTex;
					in  vec2 vs_TEXCOORD0;
					layout(location = 0) out vec4 SV_Target0;
					vec4 u_xlat0;
					int u_xlati0;
					vec4 u_xlat1;
					vec4 u_xlat2;
					int u_xlati2;
					bool u_xlatb2;
					vec4 u_xlat3;
					bvec3 u_xlatb3;
					vec4 u_xlat4;
					vec2 u_xlat7;
					bvec2 u_xlatb7;
					bool u_xlatb8;
					float u_xlat12;
					bvec2 u_xlatb12;
					vec2 u_xlat13;
					float u_xlat16;
					bool u_xlatb16;
					void main()
					{
					    u_xlati0 = unity_StereoEyeIndex;
					    u_xlat0.xyz = unity_ObjectToWorld[3].xyz + (-unity_StereoWorldSpaceCameraPos[u_xlati0].xyz);
					    u_xlat0.x = dot(u_xlat0.xyz, u_xlat0.xyz);
					    u_xlat0.x = sqrt(u_xlat0.x);
					    u_xlat1 = textureLod(_AuxExpTex, vec2(0.0, 0.0), 6.0);
					    u_xlat1.xyz = u_xlat1.xyz * vec3(0.25, 0.25, 0.25);
					    u_xlat1.xyz = max(u_xlat1.xyz, vec3(0.0, 0.0, 0.0));
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.125, 0.0), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.5, 0.5, 0.5);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.25, 0.0), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.5, 0.5, 0.5);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.375, 0.0), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.5, 0.5, 0.5);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.5, 0.0), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.5, 0.5, 0.5);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.625, 0.0), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.5, 0.5, 0.5);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.75, 0.0), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.5, 0.5, 0.5);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.875, 0.0), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.5, 0.5, 0.5);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(1.0, 0.0), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.25, 0.25, 0.25);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.0, 0.25), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.5, 0.5, 0.5);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.125, 0.25), 6.0);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.25, 0.25), 6.0);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.375, 0.25), 6.0);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.5, 0.25), 6.0);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.625, 0.25), 6.0);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.75, 0.25), 6.0);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.875, 0.25), 6.0);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(1.0, 0.25), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.5, 0.5, 0.5);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.0, 0.5), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.5, 0.5, 0.5);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.125, 0.5), 6.0);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.25, 0.5), 6.0);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.375, 0.5), 6.0);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.5, 0.5), 6.0);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.625, 0.5), 6.0);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.75, 0.5), 6.0);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.875, 0.5), 6.0);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(1.0, 0.5), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.5, 0.5, 0.5);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.0, 0.75), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.5, 0.5, 0.5);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.125, 0.75), 6.0);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.25, 0.75), 6.0);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.375, 0.75), 6.0);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.5, 0.75), 6.0);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.625, 0.75), 6.0);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.75, 0.75), 6.0);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.875, 0.75), 6.0);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(1.0, 0.75), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.5, 0.5, 0.5);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.0, 1.0), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.25, 0.25, 0.25);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.125, 1.0), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.5, 0.5, 0.5);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.25, 1.0), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.5, 0.5, 0.5);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.375, 1.0), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.5, 0.5, 0.5);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.5, 1.0), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.5, 0.5, 0.5);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.625, 1.0), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.5, 0.5, 0.5);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.75, 1.0), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.5, 0.5, 0.5);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(0.875, 1.0), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.5, 0.5, 0.5);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2 = textureLod(_AuxExpTex, vec2(1.0, 1.0), 6.0);
					    u_xlat2.xyz = u_xlat2.xyz * vec3(0.25, 0.25, 0.25);
					    u_xlat1.xyz = max(u_xlat1.xyz, u_xlat2.xyz);
					    u_xlat2.xyz = u_xlat1.xyz * vec3(2.5, 2.5, 2.5);
					    u_xlat3.xyz = (-u_xlat1.xyz) * vec3(2.5, 2.5, 2.5) + vec3(1.0, 1.0, 1.0);
					    u_xlat2.xyz = u_xlat3.xyz * vec3(0.0500000007, 0.0500000007, 0.0500000007) + u_xlat2.xyz;
					    u_xlat16 = dot(u_xlat1.xyz, u_xlat1.xyz);
					    u_xlatb16 = u_xlat16!=0.0;
					    u_xlat1.xyz = (bool(u_xlatb16)) ? u_xlat1.xyz : vec3(1.0, 1.0, 1.0);
					    u_xlat16 = dot(u_xlat2.xyz, u_xlat2.xyz);
					    u_xlatb16 = u_xlat16!=0.0;
					    u_xlat2.xyz = (bool(u_xlatb16)) ? u_xlat2.xyz : vec3(1.0, 1.0, 1.0);
					    u_xlat1.x = max(u_xlat1.y, u_xlat1.x);
					    u_xlat1.x = max(u_xlat1.z, u_xlat1.x);
					    u_xlat2.x = max(u_xlat2.y, u_xlat2.x);
					    u_xlat2.x = max(u_xlat2.z, u_xlat2.x);
					    u_xlat1.y = min(u_xlat2.x, 1.5);
					    u_xlatb2 = vs_TEXCOORD0.y<0.5;
					    u_xlat1.w = u_xlatb2 ? 1.0 : float(0.0);
					    if(_IsAvatarDetectAF != 0) {
					        u_xlat7.xy = vec2(_FocusOffsetH, _FocusOffsetV) * vec2(0.5, 0.5) + vec2(0.5, 0.5);
					        u_xlat3 = texture(_AuxFocusTex, vec2(0.0, 0.0));
					        u_xlat3.xy = u_xlat3.xy + vec2(0.5, 0.5);
					        u_xlat7.xy = (int(_IsDesktopMode) != 0) ? u_xlat7.xy : u_xlat3.xy;
					        u_xlat3 = texture(_DepthAvatarTex, u_xlat7.xy);
					        u_xlat4.z = u_xlat3.x * 256.0;
					        u_xlatb7.x = u_xlat3.x!=0.0;
					        u_xlat4.w = u_xlatb7.x ? 1.0 : float(0.0);
					        u_xlat1.z = 0.0;
					        u_xlat4.x = float(0.0);
					        u_xlat4.y = float(0.0);
					        u_xlat2 = (bool(u_xlatb2)) ? u_xlat1.wxyz : u_xlat4.wxyz;
					        u_xlat1.xyz = u_xlat2.yzw;
					    } else {
					        u_xlat1.z = 0.0;
					        u_xlat2.x = u_xlat1.w;
					    }
					    u_xlat7.x = unity_DeltaTime.x * -4.32192802;
					    u_xlat7.x = exp2(u_xlat7.x);
					    u_xlat7.x = (_ExposureLock != 0) ? 1.0 : u_xlat7.x;
					    u_xlatb3.xyz = equal(unity_OrthoParams.wyyw, vec4(1.0, -0.00499999989, -256.0, 0.0)).xyz;
					    u_xlatb12.x = u_xlatb3.y && u_xlatb3.x;
					    u_xlatb12.y = u_xlatb3.z && u_xlatb3.x;
					    u_xlat7.x = (-u_xlat7.x) * u_xlat1.w + 1.0;
					    u_xlat1.w = u_xlat2.x * u_xlat7.x;
					    u_xlat1 = u_xlatb12.x ? u_xlat1 : vec4(0.0, 0.0, 0.0, 0.0);
					    u_xlati2 = unity_StereoEyeIndex << 2;
					    u_xlat7.x = 1.0 + -abs(unity_StereoMatrixV[(u_xlati2 + 1) / 4][(u_xlati2 + 1) % 4].z);
					    u_xlat7.x = sqrt(u_xlat7.x);
					    u_xlat12 = abs(unity_StereoMatrixV[(u_xlati2 + 1) / 4][(u_xlati2 + 1) % 4].z) * -0.0187292993 + 0.0742610022;
					    u_xlat12 = u_xlat12 * abs(unity_StereoMatrixV[(u_xlati2 + 1) / 4][(u_xlati2 + 1) % 4].z) + -0.212114394;
					    u_xlat12 = u_xlat12 * abs(unity_StereoMatrixV[(u_xlati2 + 1) / 4][(u_xlati2 + 1) % 4].z) + 1.57072878;
					    u_xlat3.x = u_xlat7.x * u_xlat12;
					    u_xlat3.x = u_xlat3.x * -2.0 + 3.14159274;
					    u_xlatb8 = unity_StereoMatrixV[(u_xlati2 + 1) / 4][(u_xlati2 + 1) % 4].z<(-unity_StereoMatrixV[(u_xlati2 + 1) / 4][(u_xlati2 + 1) % 4].z);
					    u_xlat3.x = u_xlatb8 ? u_xlat3.x : float(0.0);
					    u_xlat7.x = u_xlat12 * u_xlat7.x + u_xlat3.x;
					    u_xlat7.x = (-u_xlat7.x) + 1.57079637;
					    u_xlat0.y = (-u_xlat7.x);
					    u_xlat7.x = (-unity_StereoMatrixV[(u_xlati2 + 1) / 4][(u_xlati2 + 1) % 4].z) * unity_StereoMatrixV[(u_xlati2 + 1) / 4][(u_xlati2 + 1) % 4].z + 1.0;
					    u_xlat7.x = sqrt(u_xlat7.x);
					    u_xlat7.xy = unity_StereoMatrixV[(u_xlati2 + 1) / 4][(u_xlati2 + 1) % 4].xy / u_xlat7.xx;
					    u_xlat3.xy = -abs(u_xlat7.xy) + vec2(1.0, 1.0);
					    u_xlat3.xy = sqrt(u_xlat3.xy);
					    u_xlat13.xy = abs(u_xlat7.xy) * vec2(-0.0187292993, -0.0187292993) + vec2(0.0742610022, 0.0742610022);
					    u_xlat13.xy = u_xlat13.xy * abs(u_xlat7.xy) + vec2(-0.212114394, -0.212114394);
					    u_xlat13.xy = u_xlat13.xy * abs(u_xlat7.xy) + vec2(1.57072878, 1.57072878);
					    u_xlat4.xy = u_xlat3.xy * u_xlat13.xy;
					    u_xlat4.xy = u_xlat4.xy * vec2(-2.0, -2.0) + vec2(3.14159274, 3.14159274);
					    u_xlatb7.xy = lessThan(u_xlat7.xyxx, (-u_xlat7.xyxx)).xy;
					    u_xlat7.x = u_xlatb7.x ? u_xlat4.x : 0.0;
					    u_xlat7.y = u_xlatb7.y ? u_xlat4.y : 0.0;
					;
					    u_xlat7.xy = u_xlat13.xy * u_xlat3.xy + u_xlat7.xy;
					    u_xlat7.x = (-u_xlat7.x) + 1.57079637;
					    u_xlatb2 = unity_StereoMatrixV[(u_xlati2 + 1) / 4][(u_xlati2 + 1) % 4].x>=0.0;
					    u_xlat2.x = (u_xlatb2) ? u_xlat7.y : (-u_xlat7.y);
					    u_xlatb12.x = 0.785398185<u_xlat7.y;
					    u_xlat0.z = (u_xlatb12.x) ? u_xlat2.x : u_xlat7.x;
					    u_xlat0.w = 1.0;
					    SV_Target0 = (u_xlatb12.y) ? u_xlat0 : u_xlat1;
					    return;
					}"
				}
			}
		}
	}
}