浏览代码

Merge branch 'master' of https://github.com/Unity-Technologies/ScriptableRenderLoop into Branch_RenameLayeredShader

# Conflicts:
#	Assets/ScriptableRenderPipeline/HDRenderPipeline/Material/Lit/Editor/LitUI.cs
/RenderPassXR_Sandbox
Julien Ignace 7 年前
当前提交
39c4d3b5
共有 485 个文件被更改,包括 6892 次插入1150 次删除
  1. 108
      Assets/ScriptableRenderPipeline/BasicRenderPipeline/BasicRenderPipeline.cs
  2. 4
      Assets/ScriptableRenderPipeline/BasicRenderPipeline/BasicRenderPipelineShader.shader
  3. 12
      Assets/ScriptableRenderPipeline/Core/Shadow/Shadow.cs
  4. 2
      Assets/ScriptableRenderPipeline/Core/Shadow/ShadowBase.cs
  5. 10
      Assets/ScriptableRenderPipeline/Core/Shadow/ShadowBase.cs.hlsl
  6. 56
      Assets/ScriptableRenderPipeline/Core/Shadow/ShadowUtilities.cs
  7. 34
      Assets/ScriptableRenderPipeline/Fptl/ClusteredUtils.h
  8. 2
      Assets/ScriptableRenderPipeline/Fptl/ShadowDispatch.hlsl
  9. 5
      Assets/ScriptableRenderPipeline/HDRenderPipeline/AdditionalData/HDAdditionalLightData.cs
  10. 107
      Assets/ScriptableRenderPipeline/HDRenderPipeline/HDRenderPipeline.cs
  11. 592
      Assets/ScriptableRenderPipeline/HDRenderPipeline/HDRenderPipelineAsset.asset
  12. 17
      Assets/ScriptableRenderPipeline/HDRenderPipeline/HDShaderIDs.cs
  13. 8
      Assets/ScriptableRenderPipeline/HDRenderPipeline/Lighting/LightDefinition.cs
  14. 12
      Assets/ScriptableRenderPipeline/HDRenderPipeline/Lighting/LightDefinition.cs.hlsl
  15. 34
      Assets/ScriptableRenderPipeline/HDRenderPipeline/Lighting/TilePass/ClusteredUtils.hlsl
  16. 10
      Assets/ScriptableRenderPipeline/HDRenderPipeline/Lighting/TilePass/LightingConvexHullUtils.hlsl
  17. 2
      Assets/ScriptableRenderPipeline/HDRenderPipeline/Lighting/TilePass/ShadowDispatch.hlsl
  18. 45
      Assets/ScriptableRenderPipeline/HDRenderPipeline/Lighting/TilePass/TilePass.cs
  19. 97
      Assets/ScriptableRenderPipeline/HDRenderPipeline/Lighting/TilePass/TilePassLoop.hlsl
  20. 43
      Assets/ScriptableRenderPipeline/HDRenderPipeline/Lighting/TilePass/lightlistbuild-bigtile.compute
  21. 43
      Assets/ScriptableRenderPipeline/HDRenderPipeline/Lighting/TilePass/lightlistbuild-clustered.compute
  22. 33
      Assets/ScriptableRenderPipeline/HDRenderPipeline/Lighting/TilePass/lightlistbuild.compute
  23. 10
      Assets/ScriptableRenderPipeline/HDRenderPipeline/Lighting/TilePass/scrbound.compute
  24. 2
      Assets/ScriptableRenderPipeline/HDRenderPipeline/Material/Builtin/BuiltinData.hlsl
  25. 63
      Assets/ScriptableRenderPipeline/HDRenderPipeline/Material/Lit/Editor/LitUI.cs
  26. 53
      Assets/ScriptableRenderPipeline/HDRenderPipeline/Material/Lit/Lit.cs
  27. 62
      Assets/ScriptableRenderPipeline/HDRenderPipeline/Material/Lit/Lit.cs.hlsl
  28. 791
      Assets/ScriptableRenderPipeline/HDRenderPipeline/Material/Lit/Lit.hlsl
  29. 7
      Assets/ScriptableRenderPipeline/HDRenderPipeline/Material/Lit/Lit.shader
  30. 12
      Assets/ScriptableRenderPipeline/HDRenderPipeline/Material/Lit/LitData.hlsl
  31. 24
      Assets/ScriptableRenderPipeline/HDRenderPipeline/Material/Lit/LitDataInternal.hlsl
  32. 3
      Assets/ScriptableRenderPipeline/HDRenderPipeline/Material/Lit/LitProperties.hlsl
  33. 7
      Assets/ScriptableRenderPipeline/HDRenderPipeline/Material/Lit/LitTessellation.shader
  34. 27
      Assets/ScriptableRenderPipeline/HDRenderPipeline/Material/Lit/Resources/SubsurfaceScattering.compute
  35. 122
      Assets/ScriptableRenderPipeline/HDRenderPipeline/Material/Lit/SSSProfile/FoliageSSSProfile.asset
  36. 4
      Assets/ScriptableRenderPipeline/HDRenderPipeline/Material/Lit/SSSProfile/SkinSSSProfile.asset
  37. 88
      Assets/ScriptableRenderPipeline/HDRenderPipeline/Material/Lit/SubsurfaceScatteringProfile.cs
  38. 6
      Assets/ScriptableRenderPipeline/HDRenderPipeline/SceneSettings/Resources/DrawSssProfile.shader
  39. 19
      Assets/ScriptableRenderPipeline/HDRenderPipeline/SceneSettings/Resources/DrawTransmittanceGraph.shader
  40. 3
      Assets/ScriptableRenderPipeline/HDRenderPipeline/SceneSettings/SceneSettings.cs
  41. 191
      Assets/ScriptableRenderPipeline/HDRenderPipeline/Sky/ProceduralSky/Editor/ProceduralSkyEditor.cs
  42. 23
      Assets/ScriptableRenderPipeline/HDRenderPipeline/Sky/SkyManager.cs
  43. 2
      Assets/ScriptableRenderPipeline/HDRenderPipeline/Sky/SkySettings.cs
  44. 96
      Assets/ScriptableRenderPipeline/LightweightPipeline/LightweightPipeline.cs
  45. 4
      Assets/ScriptableRenderPipeline/LightweightPipeline/Shaders/LightweightPipeline.shader
  46. 2
      Assets/ScriptableRenderPipeline/LightweightPipeline/Shaders/LightweightPipelineCore.cginc
  47. 7
      Assets/ScriptableRenderPipeline/LightweightPipeline/Shaders/LightweightUnlit.shader
  48. 18
      Assets/ScriptableRenderPipeline/ShaderLibrary/AreaLighting.hlsl
  49. 13
      Assets/ScriptableRenderPipeline/ShaderLibrary/Common.hlsl
  50. 28
      Assets/ScriptableRenderPipeline/ShaderLibrary/CommonMaterial.hlsl
  51. 2
      Assets/ScriptableRenderPipeline/ShaderLibrary/Shadow/Shadow.hlsl
  52. 406
      Assets/ScriptableRenderPipeline/ShaderLibrary/Shadow/ShadowAlgorithms.hlsl
  53. 19
      Assets/ScriptableRenderPipeline/ShaderLibrary/Shadow/ShadowTexFetch.hlsl
  54. 4
      Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_smooth1_0.mat
  55. 4
      Assets/TestScenes/HDTest/GraphicTest/SSS/Materials/SSSHead.mat
  56. 6
      Assets/TestScenes/HDTest/GraphicTest/Two Sided/Material/GroundLeaf_DoubleSidedFlipSSS.mat
  57. 408
      Assets/TestScenes/HDTest/HDRenderLoopTest.unity
  58. 2
      Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/GGX Test/GGX_a00_s05.mat
  59. 2
      Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/GGX Test/GGX_a00_s06.mat
  60. 2
      Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/GGX Test/GGX_a00_s08.mat
  61. 43
      Assets/Textures/cookieTest.png.meta
  62. 10
      ProjectSettings/EditorBuildSettings.asset
  63. 5
      ProjectSettings/ProjectSettings.asset
  64. 2
      ProjectSettings/ProjectVersion.txt
  65. 56
      Assets/ScriptableRenderPipeline/HDRenderPipeline/Material/Lit/Resources/CombineLighting.shader
  66. 10
      Assets/ScriptableRenderPipeline/HDRenderPipeline/Material/Lit/Resources/CombineLighting.shader.meta
  67. 776
      Assets/ScriptableRenderPipeline/HDRenderPipeline/RenderPipelineResources/DefaultSkybox.exr
  68. 148
      Assets/ScriptableRenderPipeline/HDRenderPipeline/RenderPipelineResources/DefaultSkybox.exr.meta
  69. 9
      Assets/ScriptableRenderPipeline/OnTileDeferredPipeline.meta
  70. 203
      Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smooth0_0.mat
  71. 8
      Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smooth0_0.mat.meta
  72. 203
      Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smooth0_1.mat
  73. 8
      Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smooth0_1.mat.meta
  74. 203
      Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smooth0_2.mat
  75. 8
      Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smooth0_2.mat.meta
  76. 203
      Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smooth0_3.mat
  77. 8
      Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smooth0_3.mat.meta
  78. 203
      Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smooth0_4.mat
  79. 8
      Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smooth0_4.mat.meta
  80. 203
      Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smooth0_5.mat
  81. 8
      Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smooth0_5.mat.meta
  82. 203
      Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smooth0_6.mat
  83. 8
      Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smooth0_6.mat.meta
  84. 203
      Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smooth0_7.mat
  85. 8
      Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smooth0_7.mat.meta
  86. 203
      Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smooth0_8.mat
  87. 8
      Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smooth0_8.mat.meta
  88. 203
      Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smooth0_9.mat
  89. 8
      Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smooth0_9.mat.meta
  90. 203
      Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smooth1_0.mat
  91. 8
      Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smooth1_0.mat.meta
  92. 203
      Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smoothdielectric0_0.mat
  93. 8
      Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smoothdielectric0_0.mat.meta
  94. 203
      Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smoothdielectric0_1.mat
  95. 8
      Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smoothdielectric0_1.mat.meta
  96. 203
      Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smoothdielectric0_2.mat
  97. 8
      Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smoothdielectric0_2.mat.meta
  98. 203
      Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smoothdielectric0_3.mat
  99. 8
      Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smoothdielectric0_3.mat.meta

108
Assets/ScriptableRenderPipeline/BasicRenderPipeline/BasicRenderPipeline.cs


using UnityEngine;
using UnityEngine.Rendering;
using UnityEngine.Experimental.Rendering;
using UnityEngine.XR;
// Very basic scriptable rendering loop example:
// - Use with BasicRenderPipelineShader.shader (the loop expects "BasicPass" pass type to exist)

[ExecuteInEditMode]
public class BasicRenderPipeline : RenderPipelineAsset
{
public bool UseIntermediateRenderTargetBlit;
#if UNITY_EDITOR
[UnityEditor.MenuItem("RenderPipeline/Create BasicRenderPipeline")]
static void CreateBasicRenderPipeline()

protected override IRenderPipeline InternalCreatePipeline()
{
return new BasicRenderPipelineInstance();
return new BasicRenderPipelineInstance(UseIntermediateRenderTargetBlit);
bool useIntermediateBlit;
public BasicRenderPipelineInstance()
{
useIntermediateBlit = false;
}
public BasicRenderPipelineInstance(bool useIntermediate)
{
useIntermediateBlit = useIntermediate;
}
BasicRendering.Render(renderContext, cameras);
BasicRendering.Render(renderContext, cameras, useIntermediateBlit);
static void ConfigureAndBindIntermediateRenderTarget(ScriptableRenderContext context, Camera cam, bool stereoEnabled, out RenderTargetIdentifier intermediateRTID, out bool isRTTexArray)
{
var intermediateRT = Shader.PropertyToID("_IntermediateTarget");
intermediateRTID = new RenderTargetIdentifier(intermediateRT);
isRTTexArray = false;
var bindIntermediateRTCmd = CommandBufferPool.Get("Bind intermediate RT");
if (stereoEnabled)
{
RenderTextureDescriptor xrDesc = XRSettings.eyeTextureDesc;
xrDesc.depthBufferBits = 24;
if (xrDesc.dimension == TextureDimension.Tex2DArray)
isRTTexArray = true;
bindIntermediateRTCmd.GetTemporaryRT(intermediateRT, xrDesc, FilterMode.Point);
}
else
{
int w = cam.pixelWidth;
int h = cam.pixelHeight;
bindIntermediateRTCmd.GetTemporaryRT(intermediateRT, w, h, 24, FilterMode.Point, RenderTextureFormat.Default, RenderTextureReadWrite.Default, 1, true);
}
if (isRTTexArray)
bindIntermediateRTCmd.SetRenderTarget(intermediateRTID, 0, CubemapFace.Unknown, -1); // depthSlice == -1 => bind all slices
else
bindIntermediateRTCmd.SetRenderTarget(intermediateRTID);
context.ExecuteCommandBuffer(bindIntermediateRTCmd);
CommandBufferPool.Release(bindIntermediateRTCmd);
}
static void BlitFromIntermediateToCameraTarget(ScriptableRenderContext context, RenderTargetIdentifier intermediateRTID, bool isRTTexArray)
{
var blitIntermediateRTCmd = CommandBufferPool.Get("Copy intermediate RT to default RT");
if (isRTTexArray)
{
// Currently, Blit does not allow specification of a slice in a texture array.
// It can use the CurrentActive render texture's bound slices, so we use that
// as a temporary workaround.
blitIntermediateRTCmd.SetRenderTarget(BuiltinRenderTextureType.CameraTarget, 0, CubemapFace.Unknown, -1);
blitIntermediateRTCmd.Blit(intermediateRTID, BuiltinRenderTextureType.CurrentActive);
}
else
blitIntermediateRTCmd.Blit(intermediateRTID, BuiltinRenderTextureType.CameraTarget);
context.ExecuteCommandBuffer(blitIntermediateRTCmd);
CommandBufferPool.Release(blitIntermediateRTCmd);
}
public static void Render(ScriptableRenderContext context, IEnumerable<Camera> cameras)
public static void Render(ScriptableRenderContext context, IEnumerable<Camera> cameras, bool useIntermediateBlitPath)
bool stereoEnabled = XRSettings.isDeviceActive;
if (!CullResults.GetCullingParameters(camera, out cullingParams))
// Stereo-aware culling parameters are configured to perform a single cull for both eyes
if (!CullResults.GetCullingParameters(camera, stereoEnabled, out cullingParams))
continue;
CullResults cull = new CullResults();
CullResults.Cull(ref cullingParams, context, ref cull);

context.SetupCameraProperties(camera);
// If stereo is enabled, we also configure stereo matrices, viewports, and XR device render targets
context.SetupCameraProperties(camera, stereoEnabled);
// Draws in-between [Start|Stop]MultiEye are stereo-ized by engine
if (stereoEnabled)
context.StartMultiEye(camera);
RenderTargetIdentifier intermediateRTID = new RenderTargetIdentifier(BuiltinRenderTextureType.CurrentActive);
bool isIntermediateRTTexArray = false;
if (useIntermediateBlitPath)
{
ConfigureAndBindIntermediateRenderTarget(context, camera, stereoEnabled, out intermediateRTID, out isIntermediateRTTexArray);
}
// clear depth buffer
var cmd = CommandBufferPool.Get();

settings.sorting.flags = SortFlags.CommonTransparent;
settings.inputFilter.SetQueuesTransparent();
context.DrawRenderers(ref settings);
if (useIntermediateBlitPath)
{
BlitFromIntermediateToCameraTarget(context, intermediateRTID, isIntermediateRTTexArray);
}
if (stereoEnabled)
{
context.StopMultiEye(camera);
// StereoEndRender will reset state on the camera to pre-Stereo settings,
// and invoke XR based events/callbacks.
context.StereoEndRender(camera);
}
context.Submit();
}

4
Assets/ScriptableRenderPipeline/BasicRenderPipeline/BasicRenderPipelineShader.shader


#pragma target 3.0
#pragma vertex vert
#pragma fragment frag
#pragma multi_compile _ UNITY_SINGLE_PASS_STEREO STEREO_INSTANCING_ON STEREO_MULTIVIEW_ON
#pragma shader_feature _METALLICGLOSSMAP
#include "UnityCG.cginc"
#include "UnityStandardBRDF.cginc"

float3 positionWS : TEXCOORD1;
float3 normalWS : TEXCOORD2;
float4 hpos : SV_POSITION;
UNITY_VERTEX_OUTPUT_STEREO
};
float4 _MainTex_ST;

v2f o;
UNITY_SETUP_INSTANCE_ID(v);
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
o.uv = TRANSFORM_TEX(v.texcoord,_MainTex);
o.hpos = UnityObjectToClipPos(v.vertex);
o.positionWS = mul(unity_ObjectToWorld, v.vertex).xyz;

12
Assets/ScriptableRenderPipeline/Core/Shadow/Shadow.cs


float texelSizeX = 1.0f, texelSizeY = 1.0f;
CachedEntry ce = m_EntryCache[ceIdx];
// modify
Matrix4x4 vp;
Matrix4x4 vp, invvp;
vp = ShadowUtils.ExtractPointLightMatrix( lights[sr.index], key.faceIdx, 2.0f, out ce.current.view, out ce.current.proj, out ce.current.lightDir, out ce.current.splitData );
vp = ShadowUtils.ExtractPointLightMatrix( lights[sr.index], key.faceIdx, 2.0f, out ce.current.view, out ce.current.proj, out invvp, out ce.current.lightDir, out ce.current.splitData );
vp = ShadowUtils.ExtractSpotLightMatrix( lights[sr.index], out ce.current.view, out ce.current.proj, out ce.current.lightDir, out ce.current.splitData );
vp = ShadowUtils.ExtractSpotLightMatrix( lights[sr.index], out ce.current.view, out ce.current.proj, out invvp, out ce.current.lightDir, out ce.current.splitData );
vp = ShadowUtils.ExtractDirectionalLightMatrix( lights[sr.index], key.faceIdx, cascadeCnt, cascadeRatios, nearPlaneOffset, width, height, out ce.current.view, out ce.current.proj, out ce.current.lightDir, out ce.current.splitData, m_CullResults, (int) sr.index );
vp = ShadowUtils.ExtractDirectionalLightMatrix( lights[sr.index], key.faceIdx, cascadeCnt, cascadeRatios, nearPlaneOffset, width, height, out ce.current.view, out ce.current.proj, out invvp, out ce.current.lightDir, out ce.current.splitData, m_CullResults, (int) sr.index );
m_TmpSplits[key.faceIdx] = ce.current.splitData.cullingSphere;
if( ce.current.splitData.cullingSphere.w != float.NegativeInfinity )
{

}
}
else
vp = Matrix4x4.identity; // should never happen, though
vp = invvp = Matrix4x4.identity; // should never happen, though
if (cameraRelativeRendering)
{
Vector3 camPosWS = camera.transform.position;

m_EntryCache[ceIdx] = ce;
sd.worldToShadow = vp.transpose; // apparently we need to transpose matrices that are sent to HLSL
sd.shadowToWorld = invvp.transpose;
sd.textureSize = new Vector4( m_Width, m_Height, ce.current.viewport.width, ce.current.viewport.height );
sd.texelSizeRcp = new Vector4( m_WidthRcp, m_HeightRcp, 1.0f / ce.current.viewport.width, 1.0f / ce.current.viewport.height );
sd.PackShadowmapId( m_TexSlot, m_SampSlot, ce.current.slice );
sd.PackShadowType( sr.shadowType, sanitizedAlgo );

2
Assets/ScriptableRenderPipeline/Core/Shadow/ShadowBase.cs


{
// shadow texture related params (need to be set by ShadowmapBase and derivatives)
public Matrix4x4 worldToShadow; // to light space matrix
public Matrix4x4 shadowToWorld; // from light space matrix
public Vector4 textureSize; // the shadowmap's size in x and y. xy is texture relative, zw is viewport relative.
public Vector4 texelSizeRcp; // reciprocal of the shadowmap's texel size in x and y. xy is texture relative, zw is viewport relative.
public uint id; // packed texture id, sampler id and slice idx
public uint shadowType; // determines the shadow algorithm, i.e. which map to sample and how to interpret the data

10
Assets/ScriptableRenderPipeline/Core/Shadow/ShadowBase.cs.hlsl


struct ShadowData
{
float4x4 worldToShadow;
float4x4 shadowToWorld;
float4 textureSize;
float4 texelSizeRcp;
uint id;
uint shadowType;

{
return value.worldToShadow;
}
float4x4 GetShadowToWorld(ShadowData value)
{
return value.shadowToWorld;
}
}
float4 GetTextureSize(ShadowData value)
{
return value.textureSize;
}
float4 GetTexelSizeRcp(ShadowData value)
{

56
Assets/ScriptableRenderPipeline/Core/Shadow/ShadowUtilities.cs


}
public class ShadowUtils
{
public static Matrix4x4 ExtractSpotLightMatrix( VisibleLight vl, out Matrix4x4 view, out Matrix4x4 proj, out Vector4 lightDir, out ShadowSplitData splitData )
public static void InvertView( ref Matrix4x4 view, out Matrix4x4 invview )
{
invview = Matrix4x4.zero;
invview.m00 = view.m00; invview.m01 = view.m10; invview.m02 = view.m20;
invview.m10 = view.m01; invview.m11 = view.m11; invview.m12 = view.m21;
invview.m20 = view.m02; invview.m21 = view.m12; invview.m22 = view.m22;
invview.m33 = 1.0f;
invview.m03 = -(invview.m00 * view.m03 + invview.m01 * view.m13 + invview.m02 * view.m23);
invview.m13 = -(invview.m10 * view.m03 + invview.m11 * view.m13 + invview.m12 * view.m23);
invview.m23 = -(invview.m20 * view.m03 + invview.m21 * view.m13 + invview.m22 * view.m23);
}
public static void InvertOrthographic( ref Matrix4x4 proj, ref Matrix4x4 view, out Matrix4x4 vpinv )
{
Matrix4x4 invview;
InvertView( ref view, out invview );
Matrix4x4 invproj = Matrix4x4.zero;
invproj.m00 = 1.0f / proj.m00;
invproj.m11 = 1.0f / proj.m11;
invproj.m22 = 1.0f / proj.m22;
invproj.m33 = 1.0f;
invproj.m03 = proj.m03 * invproj.m00;
invproj.m13 = proj.m13 * invproj.m11;
invproj.m23 = - proj.m23 * invproj.m22;
vpinv = invview * invproj;
}
public static void InvertPerspective( ref Matrix4x4 proj, ref Matrix4x4 view, out Matrix4x4 vpinv )
{
Matrix4x4 invview;
InvertView(ref view, out invview);
Matrix4x4 invproj = Matrix4x4.zero;
invproj.m00 = 1.0f / proj.m00;
invproj.m03 = proj.m02 * invproj.m00;
invproj.m11 = 1.0f / proj.m11;
invproj.m13 = proj.m12 * invproj.m11;
invproj.m22 = 0.0f;
invproj.m23 = -1.0f;
invproj.m33 = proj.m22 / proj.m23;
invproj.m32 = invproj.m33 / proj.m22;
vpinv = invview * invproj;
}
public static Matrix4x4 ExtractSpotLightMatrix( VisibleLight vl, out Matrix4x4 view, out Matrix4x4 proj, out Matrix4x4 vpinverse, out Vector4 lightDir, out ShadowSplitData splitData )
{
splitData = new ShadowSplitData();
splitData.cullingSphere.Set( 0.0f, 0.0f, 0.0f, float.NegativeInfinity );

float fov = vl.spotAngle;
proj = Matrix4x4.Perspective(fov, 1.0f, znear, zfar);
// and the compound
InvertPerspective( ref proj, ref view, out vpinverse );
public static Matrix4x4 ExtractPointLightMatrix( VisibleLight vl, uint faceIdx, float fovBias, out Matrix4x4 view, out Matrix4x4 proj, out Vector4 lightDir, out ShadowSplitData splitData )
public static Matrix4x4 ExtractPointLightMatrix( VisibleLight vl, uint faceIdx, float fovBias, out Matrix4x4 view, out Matrix4x4 proj, out Matrix4x4 vpinverse, out Vector4 lightDir, out ShadowSplitData splitData )
{
Debug.Assert( faceIdx <= (uint) CubemapFace.NegativeZ, "Tried to extract cubemap face " + faceIdx + "." );

float nearPlane = vl.light.shadowNearPlane >= nearmin ? vl.light.shadowNearPlane : nearmin;
proj = Matrix4x4.Perspective( 90.0f + fovBias, 1.0f, nearPlane, farPlane );
// and the compound
InvertPerspective( ref proj, ref view, out vpinverse );
public static Matrix4x4 ExtractDirectionalLightMatrix( VisibleLight vl, uint cascadeIdx, int cascadeCount, float[] splitRatio, float nearPlaneOffset, uint width, uint height, out Matrix4x4 view, out Matrix4x4 proj, out Vector4 lightDir, out ShadowSplitData splitData, CullResults cullResults, int lightIndex )
public static Matrix4x4 ExtractDirectionalLightMatrix( VisibleLight vl, uint cascadeIdx, int cascadeCount, float[] splitRatio, float nearPlaneOffset, uint width, uint height, out Matrix4x4 view, out Matrix4x4 proj, out Matrix4x4 vpinverse, out Vector4 lightDir, out ShadowSplitData splitData, CullResults cullResults, int lightIndex )
{
Debug.Assert( width == height, "Currently the cascaded shadow mapping code requires square cascades." );
splitData = new ShadowSplitData();

ratios[i] = splitRatio[i];
cullResults.ComputeDirectionalShadowMatricesAndCullingPrimitives( lightIndex, (int) cascadeIdx, cascadeCount, ratios, (int) width, nearPlaneOffset, out view, out proj, out splitData );
// and the compound
InvertOrthographic( ref proj, ref view, out vpinverse );
return proj * view;
}

34
Assets/ScriptableRenderPipeline/Fptl/ClusteredUtils.h


return geomSeries / (g_fFarPlane - g_fNearPlane);
}
float LogBase(float x, float b)
{
return log2(x) / log2(b);
}
int SnapToClusterIdxFlex(float z_in, float suggestedBase, bool logBasePerTile)
{
#if USE_LEFTHAND_CAMERASPACE

#endif
float userscale = g_fClustScale;
if (logBasePerTile)
userscale = GetScaleFromBase(suggestedBase);
//float userscale = g_fClustScale;
//if (logBasePerTile)
// userscale = GetScaleFromBase(suggestedBase);
const float dist = max(0, z - g_fNearPlane);
return (int)clamp(log2(dist * userscale * (suggestedBase - 1.0f) + 1) / log2(suggestedBase), 0.0, (float)((1 << g_iLog2NumClusters) - 1));
//const float dist = max(0, z - g_fNearPlane);
//return (int)clamp(log2(dist * userscale * (suggestedBase - 1.0f) + 1) / log2(suggestedBase), 0.0, (float)((1 << g_iLog2NumClusters) - 1));
const float C = (float)(1 << g_iLog2NumClusters);
const float rangeFittedDistance = max(0, z - g_fNearPlane) / (g_fFarPlane - g_fNearPlane);
return (int)clamp( LogBase( lerp(1.0, PositivePow(suggestedBase, C), rangeFittedDistance), suggestedBase), 0.0, (float)((1 << g_iLog2NumClusters) - 1));
}
int SnapToClusterIdx(float z_in, float suggestedBase)

{
float res;
float userscale = g_fClustScale;
if (logBasePerTile)
userscale = GetScaleFromBase(suggestedBase);
//float userscale = g_fClustScale;
//if (logBasePerTile)
// userscale = GetScaleFromBase(suggestedBase);
//float dist = (PositivePow(suggestedBase, (float)k) - 1.0) / (userscale * (suggestedBase - 1.0f));
//res = dist + g_fNearPlane;
const float C = (float)(1 << g_iLog2NumClusters);
float rangeFittedDistance = (PositivePow(suggestedBase, (float)k) - 1.0) / (PositivePow(suggestedBase, C) - 1.0);
res = lerp(g_fNearPlane, g_fFarPlane, rangeFittedDistance);
float dist = (PositivePow(suggestedBase, (float)k) - 1.0) / (userscale * (suggestedBase - 1.0f));
res = dist + g_fNearPlane;
#if USE_LEFTHAND_CAMERASPACE
return res;

2
Assets/ScriptableRenderPipeline/Fptl/ShadowDispatch.hlsl


SamplerComparisonState compSamp = shadowContext.compSamplers[0];
uint algo = GPUSHADOWALGORITHM_PCF_9TAP;
return EvalShadow_CascadedDepth( shadowContext, algo, tex, compSamp, positionWS, normalWS, shadowDataIndex, L );
return EvalShadow_CascadedDepth_Blend( shadowContext, algo, tex, compSamp, positionWS, normalWS, shadowDataIndex, L );
}
float GetDirectionalShadowAttenuation( ShadowContext shadowContext, float3 positionWS, float3 normalWS, int shadowDataIndex, float3 L, float2 unPositionSS )

5
Assets/ScriptableRenderPipeline/HDRenderPipeline/AdditionalData/HDAdditionalLightData.cs


[Range(0.0f, 20.0f)]
public float lightWidth = 0.0f; // Area & projector lights
[Range(0.0f, 1.0f)]
public float maxSmoothness = 1.0f; // this is use with punctual light to fake an area lights
public bool applyRangeAttenuation = true; // If true, we apply the smooth attenuation factor on the range attenuation to get 0 value, else the attenuation is juste inverse square and never reach 0
}
}

107
Assets/ScriptableRenderPipeline/HDRenderPipeline/HDRenderPipeline.cs


// Various set of material use in render loop
ComputeShader m_SubsurfaceScatteringCS { get { return m_Asset.renderPipelineResources.subsurfaceScatteringCS; } }
int m_SubsurfaceScatteringKernel;
Material m_CombineLightingPass;
// Old SSS Model >>>
Material m_SssVerticalFilterPass;
Material m_SssHorizontalFilterAndCombinePass;

// Various buffer
readonly int m_CameraColorBuffer;
readonly int m_CameraDiffuseIrradianceBuffer;
readonly int m_CameraSssDiffuseLightingBuffer;
// Old SSS Model >>>
readonly int m_CameraFilteringBuffer;
// <<< Old SSS Model

// 'm_CameraColorBuffer' does not contain diffuse lighting of SSS materials until the SSS pass.
// It is stored within 'm_CameraSubsurfaceBufferRT'.
// 'm_CameraColorBuffer' does not contain diffuse lighting of SSS materials until the SSS pass. It is stored within 'm_CameraSssDiffuseLightingBuffer'.
readonly RenderTargetIdentifier m_CameraDiffuseIrradianceBufferRT;
readonly RenderTargetIdentifier m_CameraSssDiffuseLightingBufferRT;
// Old SSS Model >>>
readonly RenderTargetIdentifier m_CameraFilteringBufferRT;
// <<< Old SSS Model

readonly ShadowSettings m_ShadowSettings = new ShadowSettings();
// Debugging
MaterialPropertyBlock m_SharedPropertyBlock = new MaterialPropertyBlock();
public DebugDisplaySettings m_DebugDisplaySettings = new DebugDisplaySettings();
private int m_DebugFullScreenTempRT;
private bool m_FullScreenDebugPushed = false;

get { return m_Asset.sssSettings; }
}
private CommonSettings.Settings m_CommonSettings = CommonSettings.Settings.s_Defaultsettings;
private SkySettings m_SkySettings = null;

// TODO: Handle the case of no Gbuffer material
// TODO: I comment the assert here because m_DeferredMaterial for whatever reasons contain the correct class but with a "null" in the name instead of the real name and then trigger the assert
// whereas it work. Don't know what is hapening, DebugDisplay use the same code and name is correct there.
// whereas it work. Don't know what is happening, DebugDisplay use the same code and name is correct there.
m_CameraColorBuffer = HDShaderIDs._CameraColorTexture;
m_CameraColorBufferRT = new RenderTargetIdentifier(m_CameraColorBuffer);
m_CameraDiffuseIrradianceBuffer = HDShaderIDs._CameraDiffuseIrradianceTexture;
m_CameraDiffuseIrradianceBufferRT = new RenderTargetIdentifier(m_CameraDiffuseIrradianceBuffer);
m_CameraColorBuffer = HDShaderIDs._CameraColorTexture;
m_CameraColorBufferRT = new RenderTargetIdentifier(m_CameraColorBuffer);
m_CameraSssDiffuseLightingBuffer = HDShaderIDs._CameraSssDiffuseLightingBuffer;
m_CameraSssDiffuseLightingBufferRT = new RenderTargetIdentifier(m_CameraSssDiffuseLightingBuffer);
m_CameraFilteringBuffer = HDShaderIDs._CameraFilteringBuffer;
m_CameraFilteringBufferRT = new RenderTargetIdentifier(m_CameraFilteringBuffer);
// Old SSS Model >>>
m_CameraFilteringBuffer = HDShaderIDs._CameraFilteringBuffer;
m_CameraFilteringBufferRT = new RenderTargetIdentifier(m_CameraFilteringBuffer);
// <<< Old SSS Model
m_CopyStencilForSplitLighting = Utilities.CreateEngineMaterial("Hidden/HDRenderPipeline/CopyStencilBuffer");
m_CopyStencilForSplitLighting.EnableKeyword("EXPORT_HTILE");

{
m_SubsurfaceScatteringKernel = m_SubsurfaceScatteringCS.FindKernel("SubsurfaceScattering");
Utilities.Destroy(m_CombineLightingPass);
m_CombineLightingPass = Utilities.CreateEngineMaterial("Hidden/HDRenderPipeline/CombineLighting");
// Old SSS Model >>>
Utilities.Destroy(m_SssVerticalFilterPass);
m_SssVerticalFilterPass = Utilities.CreateEngineMaterial("Hidden/HDRenderPipeline/SubsurfaceScattering");

}
// Broadcast SSS parameters to all shaders.
Shader.SetGlobalInt(HDShaderIDs._EnableSSSAndTransmission, m_DebugDisplaySettings.renderingDebugSettings.enableSSSAndTransmission ? 1 : 0);
Shader.SetGlobalInt(HDShaderIDs._TexturingModeFlags, (int)sssParameters.texturingModeFlags);
Shader.SetGlobalInt(HDShaderIDs._TransmissionFlags, (int)sssParameters.transmissionFlags);
cmd.SetGlobalVectorArray(HDShaderIDs._ThicknessRemaps, sssParameters.thicknessRemaps);
// We are currently supporting two different SSS mode: Jimenez (with 2-Gaussian profile) and Disney
// We have added the ability to switch between each other for subsurface scattering, but for transmittance this is more tricky as we need to add
// shader variant for forward, gbuffer and deferred shader. We want to avoid this.
// So for transmittance we use Disney profile formulation (that we know is more correct) in both case, and in the case of Jimenez we hack the parameters with 2-Gaussian parameters (Ideally we should fit but haven't find good fit) so it approximately match.
// Note: Jimenez SSS is in cm unit whereas Disney is in mm unit making an inconsistency here to compare model side by side
cmd.SetGlobalVectorArray(HDShaderIDs._ShapeParams, sssParameters.useDisneySSS ? sssParameters.shapeParams : sssParameters.halfRcpWeightedVariances);
cmd.SetGlobalVectorArray(HDShaderIDs._TransmissionTints, sssParameters.transmissionTints);
Shader.SetGlobalInt( HDShaderIDs._EnableSSSAndTransmission, m_DebugDisplaySettings.renderingDebugSettings.enableSSSAndTransmission ? 1 : 0);
Shader.SetGlobalInt( HDShaderIDs._TexturingModeFlags, (int)sssParameters.texturingModeFlags);
Shader.SetGlobalInt( HDShaderIDs._TransmissionFlags, (int)sssParameters.transmissionFlags);
Shader.SetGlobalInt( HDShaderIDs._UseDisneySSS, sssParameters.useDisneySSS ? 1 : 0);
cmd.SetGlobalVectorArray(HDShaderIDs._ThicknessRemaps, sssParameters.thicknessRemaps);
cmd.SetGlobalVectorArray(HDShaderIDs._ShapeParams, sssParameters.shapeParams);
cmd.SetGlobalVectorArray(HDShaderIDs._HalfRcpVariancesAndWeights, sssParameters.halfRcpVariancesAndWeights);
cmd.SetGlobalVectorArray(HDShaderIDs._TransmissionTints, sssParameters.transmissionTints);
}
}

void RenderDepthPrepass(CullResults cull, Camera camera, ScriptableRenderContext renderContext, CommandBuffer cmd)
{
// If we are forward only we will do a depth prepass
// TODO: Depth prepass should be enabled based on light loop settings. LightLoop define if they need a depth prepass + forward only...
if (!m_Asset.renderingSettings.useDepthPrepass)
if (!m_Asset.renderingSettings.useDepthPrepass)
// TODO: front to back for opaque and by materal for opaque tested when we split in two
// TODO: front to back for opaque and by material for opaque tested when we split in two
Utilities.SetRenderTarget(cmd, m_CameraDepthStencilBufferRT);
RenderOpaqueRenderList(cull, camera, renderContext, cmd, "DepthOnly");
}

{
if (m_Asset.renderingSettings.ShouldUseForwardRenderingOnly())
{
}
string passName = m_DebugDisplaySettings.IsDebugDisplayEnabled() ? "GBufferDebugDisplay" : "GBuffer";

{
using (new Utilities.ProfilingSample("DebugViewMaterialGBuffer", cmd))
{
// TODO: Bind depth textures
Utilities.DrawFullScreen(cmd, m_DebugViewMaterialGBuffer, m_CameraColorBufferRT);
}
}

return;
}
RenderTargetIdentifier[] colorRTs = { m_CameraColorBufferRT, m_CameraDiffuseIrradianceBufferRT };
RenderTargetIdentifier[] colorRTs = { m_CameraColorBufferRT, m_CameraSssDiffuseLightingBufferRT };
// Output split lighting for materials asking for it (via stencil buffer)
// Output split lighting for materials asking for it (masked in the stencil buffer)
m_LightLoop.RenderDeferredLighting(hdCamera, cmd, m_DebugDisplaySettings, colorRTs, m_CameraDepthStencilBufferRT, depthTexture, true);
}

cmd.SetComputeVectorArrayParam(m_SubsurfaceScatteringCS, HDShaderIDs._FilterKernels, sssParameters.filterKernels);
cmd.SetComputeVectorArrayParam(m_SubsurfaceScatteringCS, HDShaderIDs._ShapeParams, sssParameters.shapeParams);
cmd.SetComputeTextureParam(m_SubsurfaceScatteringCS, m_SubsurfaceScatteringKernel, HDShaderIDs._GBufferTexture0, m_gbufferManager.GetGBuffers()[0]);
cmd.SetComputeTextureParam(m_SubsurfaceScatteringCS, m_SubsurfaceScatteringKernel, HDShaderIDs._GBufferTexture1, m_gbufferManager.GetGBuffers()[1]);
cmd.SetComputeTextureParam(m_SubsurfaceScatteringCS, m_SubsurfaceScatteringKernel, HDShaderIDs._GBufferTexture2, m_gbufferManager.GetGBuffers()[2]);
cmd.SetComputeTextureParam(m_SubsurfaceScatteringCS, m_SubsurfaceScatteringKernel, HDShaderIDs._GBufferTexture3, m_gbufferManager.GetGBuffers()[3]);
cmd.SetComputeTextureParam(m_SubsurfaceScatteringCS, m_SubsurfaceScatteringKernel, HDShaderIDs._DepthTexture, GetDepthTexture());
cmd.SetComputeTextureParam(m_SubsurfaceScatteringCS, m_SubsurfaceScatteringKernel, HDShaderIDs._StencilTexture, GetStencilTexture());
cmd.SetComputeTextureParam(m_SubsurfaceScatteringCS, m_SubsurfaceScatteringKernel, HDShaderIDs._HTile, GetHTile());
cmd.SetComputeTextureParam(m_SubsurfaceScatteringCS, m_SubsurfaceScatteringKernel, HDShaderIDs._IrradianceSource, m_CameraDiffuseIrradianceBufferRT);
cmd.SetComputeTextureParam(m_SubsurfaceScatteringCS, m_SubsurfaceScatteringKernel, HDShaderIDs._CameraColorTexture, m_CameraColorBufferRT);
cmd.SetComputeTextureParam(m_SubsurfaceScatteringCS, m_SubsurfaceScatteringKernel, HDShaderIDs._GBufferTexture0, m_gbufferManager.GetGBuffers()[0]);
cmd.SetComputeTextureParam(m_SubsurfaceScatteringCS, m_SubsurfaceScatteringKernel, HDShaderIDs._GBufferTexture1, m_gbufferManager.GetGBuffers()[1]);
cmd.SetComputeTextureParam(m_SubsurfaceScatteringCS, m_SubsurfaceScatteringKernel, HDShaderIDs._GBufferTexture2, m_gbufferManager.GetGBuffers()[2]);
cmd.SetComputeTextureParam(m_SubsurfaceScatteringCS, m_SubsurfaceScatteringKernel, HDShaderIDs._GBufferTexture3, m_gbufferManager.GetGBuffers()[3]);
cmd.SetComputeTextureParam(m_SubsurfaceScatteringCS, m_SubsurfaceScatteringKernel, HDShaderIDs._DepthTexture, GetDepthTexture());
cmd.SetComputeTextureParam(m_SubsurfaceScatteringCS, m_SubsurfaceScatteringKernel, HDShaderIDs._StencilTexture, GetStencilTexture());
cmd.SetComputeTextureParam(m_SubsurfaceScatteringCS, m_SubsurfaceScatteringKernel, HDShaderIDs._HTile, GetHTile());
cmd.SetComputeTextureParam(m_SubsurfaceScatteringCS, m_SubsurfaceScatteringKernel, HDShaderIDs._IrradianceSource, m_CameraSssDiffuseLightingBufferRT);
cmd.SetComputeTextureParam(m_SubsurfaceScatteringCS, m_SubsurfaceScatteringKernel, HDShaderIDs._CameraColorTexture, m_CameraColorBufferRT);
cmd.SetComputeTextureParam(m_SubsurfaceScatteringCS, m_SubsurfaceScatteringKernel, HDShaderIDs._CameraFilteringBuffer, m_CameraFilteringBufferRT);
// Perform the SSS filtering pass which fills 'm_CameraFilteringBufferRT'.
//
cmd.SetGlobalTexture(HDShaderIDs._IrradianceSource, m_CameraFilteringBufferRT); // Cannot set a RT on a material
// Combine diffuse and specular lighting into 'm_CameraColorBufferRT'.
Utilities.DrawFullScreen(cmd, m_CombineLightingPass, m_CameraColorBufferRT, m_CameraDepthStencilBufferRT);
// Perform the vertical SSS filtering pass.
cmd.SetGlobalTexture(HDShaderIDs._IrradianceSource, m_CameraDiffuseIrradianceBufferRT); // Cannot set a RT on a material
cmd.SetGlobalTexture(HDShaderIDs._IrradianceSource, m_CameraSssDiffuseLightingBufferRT); // Cannot set a RT on a material
// Perform the vertical SSS filtering pass which fills 'm_CameraFilteringBufferRT'.
// Perform the horizontal SSS filtering pass, and combine diffuse and specular lighting.
// Perform the horizontal SSS filtering pass, and combine diffuse and specular lighting into 'm_CameraColorBufferRT'.
Utilities.DrawFullScreen(cmd, m_SssHorizontalFilterAndCombinePass, m_CameraColorBufferRT, m_CameraDepthStencilBufferRT);
}
}

void RenderForward(CullResults cullResults, Camera camera, ScriptableRenderContext renderContext, CommandBuffer cmd, bool renderOpaque)
{
// TODO: Currently we can't render opaque object forward when deferred is enabled
// miss option
if (!m_Asset.renderingSettings.ShouldUseForwardRenderingOnly() && renderOpaque)
return;

}
}
MaterialPropertyBlock m_SharedPropertyBlock = new MaterialPropertyBlock();
void RenderDebug(HDCamera camera, CommandBuffer cmd)
{
// We don't want any overlay for these kind of rendering

int w = camera.pixelWidth;
int h = camera.pixelHeight;
cmd.GetTemporaryRT(m_CameraColorBuffer, w, h, 0, FilterMode.Point, RenderTextureFormat.ARGBHalf, RenderTextureReadWrite.Linear, 1, true); // Enable UAV
cmd.GetTemporaryRT(m_CameraDiffuseIrradianceBuffer, w, h, 0, FilterMode.Point, RenderTextureFormat.RGB111110Float, RenderTextureReadWrite.Linear, 1, true); // Enable UAV
// Old SSS Model >>>
cmd.GetTemporaryRT(m_CameraFilteringBuffer, w, h, 0, FilterMode.Point, RenderTextureFormat.RGB111110Float, RenderTextureReadWrite.Linear, 1, true); // Enable UAV
// <<< Old SSS Model
cmd.GetTemporaryRT(m_CameraColorBuffer, w, h, 0, FilterMode.Point, RenderTextureFormat.ARGBHalf, RenderTextureReadWrite.Linear, 1, true); // Enable UAV
cmd.GetTemporaryRT(m_CameraSssDiffuseLightingBuffer, w, h, 0, FilterMode.Point, RenderTextureFormat.RGB111110Float, RenderTextureReadWrite.Linear, 1, true); // Enable UAV
cmd.GetTemporaryRT(m_CameraFilteringBuffer, w, h, 0, FilterMode.Point, RenderTextureFormat.RGB111110Float, RenderTextureReadWrite.Linear, 1, true); // Enable UAV
if (!m_Asset.renderingSettings.ShouldUseForwardRenderingOnly())
{

// Clear the diffuse SSS lighting target
using (new Utilities.ProfilingSample("Clear SSS diffuse target", cmd))
{
Utilities.SetRenderTarget(cmd, m_CameraDiffuseIrradianceBufferRT, m_CameraDepthStencilBufferRT, ClearFlag.ClearColor, Color.black);
Utilities.SetRenderTarget(cmd, m_CameraSssDiffuseLightingBufferRT, m_CameraDepthStencilBufferRT, ClearFlag.ClearColor, Color.black);
}
// Old SSS Model >>>

592
Assets/ScriptableRenderPipeline/HDRenderPipeline/HDRenderPipelineAsset.asset


useForwardRenderingOnly: 0
useDepthPrepass: 0
sssSettings:
numProfiles: 5
numProfiles: 2
- {fileID: 11400000, guid: b378ec8b14e770f48a085d537053adfe, type: 2}
- {fileID: 11400000, guid: 02c3836a8d1b4544a97f00fa528bb487, type: 2}
- {fileID: 11400000, guid: 15cd040d2fa59074d90956ea9badbee8, type: 2}
- {fileID: 11400000, guid: aa5f2cc1c22cad043a617e9e9548b1b9, type: 2}
texturingModeFlags: 0
transmissionFlags: 5120
- {fileID: 11400000, guid: d6ee4403015766f4093158d69216c0bf, type: 2}
texturingModeFlags: 1
transmissionFlags: 5460
- {x: 0, y: 5, z: 0, w: 0}
- {x: 0, y: 0.2873168, z: 0, w: 0}
- {x: 0, y: 5, z: 0, w: 0}
- {x: 0, y: 12.031147, z: 0, w: 0}
- {x: 0, y: 12.031147, z: 0, w: 0}

worldScales:
- {x: 1, y: 0, z: 0, w: 0}
- {x: 1, y: 0, z: 0, w: 0}
- {x: 1, y: 0, z: 0, w: 0}
- {x: 1, y: 0, z: 0, w: 0}
- {x: 1, y: 0, z: 0, w: 0}
- {x: 1, y: 1, z: 1, w: 1}
- {x: 1, y: 1, z: 1, w: 1}
- {x: 1, y: 1, z: 1, w: 1}
- {x: 1.3192612, y: 3.1152647, z: 4.9751244, w: 10.03481}
- {x: 0.95712095, y: 2.5629592, z: 5.377674, w: 13.831622}
- {x: 0.95712095, y: 2.5629592, z: 5.377674, w: 13.831622}
- {x: 1.3192612, y: 3.1152647, z: 4.9751244, w: 10.03481}
- {x: 1.3192612, y: 3.1152647, z: 4.9751244, w: 10.03481}
- {x: 1.3192612, y: 3.1152647, z: 4.9751244, w: 7.84603}
- {x: 1.3203883, y: 1.4268992, z: 4.0812, w: 7.839332}
- {x: 0, y: 0, z: 0, w: 0}
- {x: 0, y: 0, z: 0, w: 0}
- {x: 0, y: 0, z: 0, w: 0}
- {x: 0.7568628, y: 0.32156864, z: 0.20000002, w: 1}
- {x: 1, y: 1, z: 1, w: 1}
- {x: 1, y: 1, z: 1, w: 1}
- {x: 0.7568628, y: 0.32156864, z: 0.20000002, w: 1}
- {x: 0.7568628, y: 0.32156864, z: 0.20000002, w: 1}
- {x: 0.1892157, y: 0.08039216, z: 0.050000004, w: 0.25}
- {x: 0.25, y: 0.25, z: 0.25, w: 0.25}
- {x: 100, y: 0, z: 100, w: 1}
- {x: 100, y: 0, z: 100, w: 1}
- {x: 100, y: 0, z: 100, w: 1}
- {x: 100, y: 0, z: 100, w: 1}
- {x: 100, y: 0, z: 100, w: 1}
- {x: 0, y: 0, z: 0, w: 0}

- {x: 6.3776174, y: 49.90625, z: 0, w: 1}
- {x: 7.5374603, y: 83.30668, z: 0, w: 1}
- {x: 10.03481, y: 250.11497, z: 0, w: 1}
- {x: 0.019112285, y: 2.1151998, z: 0.05055704, w: 2.1578279}
- {x: 0.058047764, y: 2.1680765, z: 0.15678377, w: 2.306573}
- {x: 0.09796569, y: 2.223304, z: 0.27052817, w: 2.474087}
- {x: 0.13891032, y: 2.2810297, z: 0.3927631, w: 2.6638083}
- {x: 0.18092833, y: 2.3414128, z: 0.52464396, w: 2.8800118}
- {x: 0.22406968, y: 2.4046254, z: 0.6675549, w: 3.1280704}
- {x: 0.2683875, y: 2.4708545, z: 0.8231687, w: 3.4148183}
- {x: 0.31393853, y: 2.5403028, z: 0.9935282, w: 3.7490647}
- {x: 0.360783, y: 2.6131892, z: 1.1811574, w: 4.1423483}
- {x: 0.4089858, y: 2.689754, z: 1.3892161, w: 4.6100607}
- {x: 0.4586161, y: 2.7702577, z: 1.6217211, w: 5.1731944}
- {x: 0.50974804, y: 2.8549852, z: 1.8838758, w: 5.8611584}
- {x: 0.56246126, y: 2.9442472, z: 2.1825733, w: 6.71655}
- {x: 0.6168412, y: 3.0383852, z: 2.5272067, w: 7.8037086}
- {x: 0.67297983, y: 3.137773, z: 2.931054, w: 9.225176}
- {x: 0.73097634, y: 3.2428217, z: 3.413808, w: 11.1561575}
- {x: 0.79093766, y: 3.353984, z: 4.0066743, w: 13.925233}
- {x: 0.8529793, y: 3.4717607, z: 4.763973, w: 18.233932}
- {x: 0.917227, y: 3.5967052, z: 5.7948065, w: 25.904451}
- {x: 0.9838157, y: 3.7294297, z: 7.379556, w: 43.620197}
- {x: 1.0528938, y: 3.8706186, z: 10.814686, w: 131.55621}
- {x: 1.1246216, y: 4.0210333, z: 0, w: 1}
- {x: 1.1991742, y: 4.1815233, z: 0, w: 1}
- {x: 1.2767439, y: 4.3530455, z: 0, w: 1}
- {x: 1.3575401, y: 4.536674, z: 0, w: 1}
- {x: 1.4417944, y: 4.7336245, z: 0, w: 1}
- {x: 1.529761, y: 4.945275, z: 0, w: 1}
- {x: 1.6217211, y: 5.1731944, z: 0, w: 1}
- {x: 1.7179863, y: 5.4191804, z: 0, w: 1}
- {x: 1.8189045, y: 5.6853004, z: 0, w: 1}
- {x: 1.9248611, y: 5.97394, z: 0, w: 1}
- {x: 2.0362916, y: 6.287883, z: 0, w: 1}
- {x: 2.1536841, y: 6.6303835, z: 0, w: 1}
- {x: 2.277593, y: 7.0052843, z: 0, w: 1}
- {x: 2.4086456, y: 7.4171457, z: 0, w: 1}
- {x: 2.547564, y: 7.871444, z: 0, w: 1}
- {x: 2.6951776, y: 8.374806, z: 0, w: 1}
- {x: 2.8524487, y: 8.935339, z: 0, w: 1}
- {x: 3.0205052, y: 9.563076, z: 0, w: 1}
- {x: 3.2006793, y: 10.270607, z: 0, w: 1}
- {x: 3.3945613, y: 11.073945, z: 0, w: 1}
- {x: 3.6040735, y: 11.993813, z: 0, w: 1}
- {x: 3.8315694, y: 13.05751, z: 0, w: 1}
- {x: 4.0799847, y: 14.301818, z: 0, w: 1}
- {x: 4.353034, y: 15.777454, z: 0, w: 1}
- {x: 4.6555414, y: 17.556503, z: 0, w: 1}
- {x: 4.9939227, y: 19.744957, z: 0, w: 1}
- {x: 5.3769875, y: 22.505325, z: 0, w: 1}
- {x: 5.81732, y: 26.100191, z: 0, w: 1}
- {x: 6.333815, y: 30.983149, z: 0, w: 1}
- {x: 6.956808, y: 38.01131, z: 0, w: 1}
- {x: 7.739692, y: 49.02128, z: 0, w: 1}
- {x: 8.790676, y: 68.78892, z: 0, w: 1}
- {x: 10.389364, y: 114.826904, z: 0, w: 1}
- {x: 13.831622, y: 344.7495, z: 0, w: 1}
- {x: 0.019112285, y: 2.1151998, z: 0.05055704, w: 2.1578279}
- {x: 0.058047764, y: 2.1680765, z: 0.15678377, w: 2.306573}
- {x: 0.09796569, y: 2.223304, z: 0.27052817, w: 2.474087}
- {x: 0.13891032, y: 2.2810297, z: 0.3927631, w: 2.6638083}
- {x: 0.18092833, y: 2.3414128, z: 0.52464396, w: 2.8800118}
- {x: 0.22406968, y: 2.4046254, z: 0.6675549, w: 3.1280704}
- {x: 0.2683875, y: 2.4708545, z: 0.8231687, w: 3.4148183}
- {x: 0.31393853, y: 2.5403028, z: 0.9935282, w: 3.7490647}
- {x: 0.360783, y: 2.6131892, z: 1.1811574, w: 4.1423483}
- {x: 0.4089858, y: 2.689754, z: 1.3892161, w: 4.6100607}
- {x: 0.4586161, y: 2.7702577, z: 1.6217211, w: 5.1731944}
- {x: 0.50974804, y: 2.8549852, z: 1.8838758, w: 5.8611584}
- {x: 0.56246126, y: 2.9442472, z: 2.1825733, w: 6.71655}
- {x: 0.6168412, y: 3.0383852, z: 2.5272067, w: 7.8037086}
- {x: 0.67297983, y: 3.137773, z: 2.931054, w: 9.225176}
- {x: 0.73097634, y: 3.2428217, z: 3.413808, w: 11.1561575}
- {x: 0.79093766, y: 3.353984, z: 4.0066743, w: 13.925233}
- {x: 0.8529793, y: 3.4717607, z: 4.763973, w: 18.233932}
- {x: 0.917227, y: 3.5967052, z: 5.7948065, w: 25.904451}
- {x: 0.9838157, y: 3.7294297, z: 7.379556, w: 43.620197}
- {x: 1.0528938, y: 3.8706186, z: 10.814686, w: 131.55621}
- {x: 1.1246216, y: 4.0210333, z: 0, w: 1}
- {x: 1.1991742, y: 4.1815233, z: 0, w: 1}
- {x: 1.2767439, y: 4.3530455, z: 0, w: 1}
- {x: 1.3575401, y: 4.536674, z: 0, w: 1}
- {x: 1.4417944, y: 4.7336245, z: 0, w: 1}
- {x: 1.529761, y: 4.945275, z: 0, w: 1}
- {x: 1.6217211, y: 5.1731944, z: 0, w: 1}
- {x: 1.7179863, y: 5.4191804, z: 0, w: 1}
- {x: 1.8189045, y: 5.6853004, z: 0, w: 1}
- {x: 1.9248611, y: 5.97394, z: 0, w: 1}
- {x: 2.0362916, y: 6.287883, z: 0, w: 1}
- {x: 2.1536841, y: 6.6303835, z: 0, w: 1}
- {x: 2.277593, y: 7.0052843, z: 0, w: 1}
- {x: 2.4086456, y: 7.4171457, z: 0, w: 1}
- {x: 2.547564, y: 7.871444, z: 0, w: 1}
- {x: 2.6951776, y: 8.374806, z: 0, w: 1}
- {x: 2.8524487, y: 8.935339, z: 0, w: 1}
- {x: 3.0205052, y: 9.563076, z: 0, w: 1}
- {x: 3.2006793, y: 10.270607, z: 0, w: 1}
- {x: 3.3945613, y: 11.073945, z: 0, w: 1}
- {x: 3.6040735, y: 11.993813, z: 0, w: 1}
- {x: 3.8315694, y: 13.05751, z: 0, w: 1}
- {x: 4.0799847, y: 14.301818, z: 0, w: 1}
- {x: 4.353034, y: 15.777454, z: 0, w: 1}
- {x: 4.6555414, y: 17.556503, z: 0, w: 1}
- {x: 4.9939227, y: 19.744957, z: 0, w: 1}
- {x: 5.3769875, y: 22.505325, z: 0, w: 1}
- {x: 5.81732, y: 26.100191, z: 0, w: 1}
- {x: 6.333815, y: 30.983149, z: 0, w: 1}
- {x: 6.956808, y: 38.01131, z: 0, w: 1}
- {x: 7.739692, y: 49.02128, z: 0, w: 1}
- {x: 8.790676, y: 68.78892, z: 0, w: 1}
- {x: 10.389364, y: 114.826904, z: 0, w: 1}
- {x: 13.831622, y: 344.7495, z: 0, w: 1}
- {x: 0.013865918, y: 1.5345725, z: 0.03667902, w: 1.5654991}
- {x: 0.04211352, y: 1.5729346, z: 0.11374626, w: 1.6734134}
- {x: 0.07107388, y: 1.6130018, z: 0.19626758, w: 1.7949444}
- {x: 0.100779116, y: 1.6548817, z: 0.28494877, w: 1.9325867}
- {x: 0.13126306, y: 1.6986896, z: 0.38062802, w: 2.0894418}
- {x: 0.16256203, y: 1.7445502, z: 0.48430943, w: 2.2694077}
- {x: 0.1947145, y: 1.7925992, z: 0.59720695, w: 2.4774427}
- {x: 0.22776169, y: 1.8429838, z: 0.72080237, w: 2.7199378}
- {x: 0.26174724, y: 1.8958628, z: 0.8569269, w: 3.005264}
- {x: 0.29671827, y: 1.9514104, z: 1.007873, w: 3.3445888}
- {x: 0.33272493, y: 2.0098157, z: 1.1765549, w: 3.7531407}
- {x: 0.369821, y: 2.0712852, z: 1.3667475, w: 4.252257}
- {x: 0.40806437, y: 2.1360447, z: 1.5834517, w: 4.872841}
- {x: 0.44751683, y: 2.2043417, z: 1.8334827, w: 5.6615734}
- {x: 0.48824534, y: 2.276447, z: 2.126473, w: 6.692844}
- {x: 0.5303216, y: 2.3526597, z: 2.4767098, w: 8.093767}
- {x: 0.5738235, y: 2.433308, z: 2.9068332, w: 10.102725}
- {x: 0.61883456, y: 2.5187542, z: 3.4562516, w: 13.228675}
- {x: 0.665446, y: 2.609401, z: 4.2041187, w: 18.793621}
- {x: 0.713756, y: 2.7056925, z: 5.3538504, w: 31.646347}
- {x: 0.763872, y: 2.808125, z: 7.84603, w: 95.44374}
- {x: 0.8159103, y: 2.91725, z: 0, w: 1}
- {x: 0.8699981, y: 3.0336854, z: 0, w: 1}
- {x: 0.9262747, y: 3.1581244, z: 0, w: 1}
- {x: 0.98489225, y: 3.2913465, z: 0, w: 1}
- {x: 1.0460185, y: 3.434234, z: 0, w: 1}
- {x: 1.1098381, y: 3.5877857, z: 0, w: 1}
- {x: 1.1765549, y: 3.7531407, z: 0, w: 1}
- {x: 1.2463952, y: 3.9316032, z: 0, w: 1}
- {x: 1.319611, y: 4.124672, z: 0, w: 1}
- {x: 1.3964823, y: 4.3340797, z: 0, w: 1}
- {x: 1.4773248, y: 4.561845, z: 0, w: 1}
- {x: 1.5624928, y: 4.810328, z: 0, w: 1}
- {x: 1.6523882, y: 5.082317, z: 0, w: 1}
- {x: 1.747467, y: 5.381122, z: 0, w: 1}
- {x: 1.8482518, y: 5.710715, z: 0, w: 1}
- {x: 1.9553448, y: 6.0759025, z: 0, w: 1}
- {x: 2.069445, y: 6.482568, z: 0, w: 1}
- {x: 2.1913698, y: 6.9379897, z: 0, w: 1}
- {x: 2.3220856, y: 7.4513016, z: 0, w: 1}
- {x: 2.4627466, y: 8.0341215, z: 0, w: 1}
- {x: 2.614747, y: 8.701484, z: 0, w: 1}
- {x: 2.7797952, y: 9.473195, z: 0, w: 1}
- {x: 2.9600194, y: 10.375936, z: 0, w: 1}
- {x: 3.1581159, y: 11.446505, z: 0, w: 1}
- {x: 3.3775842, y: 12.737201, z: 0, w: 1}
- {x: 3.6230793, y: 14.324919, z: 0, w: 1}
- {x: 3.9009922, y: 16.327562, z: 0, w: 1}
- {x: 4.220452, y: 18.935623, z: 0, w: 1}
- {x: 4.5951686, y: 22.478209, z: 0, w: 1}
- {x: 5.047148, y: 27.57712, z: 0, w: 1}
- {x: 5.615129, y: 35.564823, z: 0, w: 1}
- {x: 6.3776174, y: 49.90625, z: 0, w: 1}
- {x: 7.5374603, y: 83.30668, z: 0, w: 1}
- {x: 10.03481, y: 250.11497, z: 0, w: 1}
- {x: 0.013865918, y: 1.5345725, z: 0.03667902, w: 1.5654991}
- {x: 0.04211352, y: 1.5729346, z: 0.11374626, w: 1.6734134}
- {x: 0.07107388, y: 1.6130018, z: 0.19626758, w: 1.7949444}
- {x: 0.100779116, y: 1.6548817, z: 0.28494877, w: 1.9325867}
- {x: 0.13126306, y: 1.6986896, z: 0.38062802, w: 2.0894418}
- {x: 0.16256203, y: 1.7445502, z: 0.48430943, w: 2.2694077}
- {x: 0.1947145, y: 1.7925992, z: 0.59720695, w: 2.4774427}
- {x: 0.22776169, y: 1.8429838, z: 0.72080237, w: 2.7199378}
- {x: 0.26174724, y: 1.8958628, z: 0.8569269, w: 3.005264}
- {x: 0.29671827, y: 1.9514104, z: 1.007873, w: 3.3445888}
- {x: 0.33272493, y: 2.0098157, z: 1.1765549, w: 3.7531407}
- {x: 0.369821, y: 2.0712852, z: 1.3667475, w: 4.252257}
- {x: 0.40806437, y: 2.1360447, z: 1.5834517, w: 4.872841}
- {x: 0.44751683, y: 2.2043417, z: 1.8334827, w: 5.6615734}
- {x: 0.48824534, y: 2.276447, z: 2.126473, w: 6.692844}
- {x: 0.5303216, y: 2.3526597, z: 2.4767098, w: 8.093767}
- {x: 0.5738235, y: 2.433308, z: 2.9068332, w: 10.102725}
- {x: 0.61883456, y: 2.5187542, z: 3.4562516, w: 13.228675}
- {x: 0.665446, y: 2.609401, z: 4.2041187, w: 18.793621}
- {x: 0.713756, y: 2.7056925, z: 5.3538504, w: 31.646347}
- {x: 0.763872, y: 2.808125, z: 7.84603, w: 95.44374}
- {x: 0.8159103, y: 2.91725, z: 0, w: 1}
- {x: 0.8699981, y: 3.0336854, z: 0, w: 1}
- {x: 0.9262747, y: 3.1581244, z: 0, w: 1}
- {x: 0.98489225, y: 3.2913465, z: 0, w: 1}
- {x: 1.0460185, y: 3.434234, z: 0, w: 1}
- {x: 1.1098381, y: 3.5877857, z: 0, w: 1}
- {x: 1.1765549, y: 3.7531407, z: 0, w: 1}
- {x: 1.2463952, y: 3.9316032, z: 0, w: 1}
- {x: 1.319611, y: 4.124672, z: 0, w: 1}
- {x: 1.3964823, y: 4.3340797, z: 0, w: 1}
- {x: 1.4773248, y: 4.561845, z: 0, w: 1}
- {x: 1.5624928, y: 4.810328, z: 0, w: 1}
- {x: 1.6523882, y: 5.082317, z: 0, w: 1}
- {x: 1.747467, y: 5.381122, z: 0, w: 1}
- {x: 1.8482518, y: 5.710715, z: 0, w: 1}
- {x: 1.9553448, y: 6.0759025, z: 0, w: 1}
- {x: 2.069445, y: 6.482568, z: 0, w: 1}
- {x: 2.1913698, y: 6.9379897, z: 0, w: 1}
- {x: 2.3220856, y: 7.4513016, z: 0, w: 1}
- {x: 2.4627466, y: 8.0341215, z: 0, w: 1}
- {x: 2.614747, y: 8.701484, z: 0, w: 1}
- {x: 2.7797952, y: 9.473195, z: 0, w: 1}
- {x: 2.9600194, y: 10.375936, z: 0, w: 1}
- {x: 3.1581159, y: 11.446505, z: 0, w: 1}
- {x: 3.3775842, y: 12.737201, z: 0, w: 1}
- {x: 3.6230793, y: 14.324919, z: 0, w: 1}
- {x: 3.9009922, y: 16.327562, z: 0, w: 1}
- {x: 4.220452, y: 18.935623, z: 0, w: 1}
- {x: 4.5951686, y: 22.478209, z: 0, w: 1}
- {x: 5.047148, y: 27.57712, z: 0, w: 1}
- {x: 5.615129, y: 35.564823, z: 0, w: 1}
- {x: 6.3776174, y: 49.90625, z: 0, w: 1}
- {x: 7.5374603, y: 83.30668, z: 0, w: 1}
- {x: 10.03481, y: 250.11497, z: 0, w: 1}
- {x: 0.013854082, y: 1.5332626, z: 0.036647703, w: 1.5641627}
- {x: 0.04207757, y: 1.5715919, z: 0.113649175, w: 1.671985}
- {x: 0.07101321, y: 1.611625, z: 0.19610003, w: 1.7934121}
- {x: 0.10069309, y: 1.653469, z: 0.28470552, w: 1.9309369}
- {x: 0.13115102, y: 1.6972395, z: 0.38030306, w: 2.0876582}
- {x: 0.16242325, y: 1.743061, z: 0.48389605, w: 2.2674706}
- {x: 0.19454831, y: 1.791069, z: 0.5966971, w: 2.4753277}
- {x: 0.22756726, y: 1.8414105, z: 0.72018707, w: 2.717616}
- {x: 0.2615238, y: 1.8942443, z: 0.85619545, w: 3.0026984}
- {x: 0.29646498, y: 1.9497447, z: 1.0070126, w: 3.3417335}
- {x: 0.33244094, y: 2.0081, z: 1.1755506, w: 3.749937}
- {x: 0.36950532, y: 2.069517, z: 1.3655809, w: 4.248627}
- {x: 0.40771604, y: 2.1342213, z: 1.5821002, w: 4.868682}
- {x: 0.44713485, y: 2.2024598, z: 1.8319175, w: 5.6567397}
- {x: 0.48782852, y: 2.274504, z: 2.1246579, w: 6.6871305}
- {x: 0.5298689, y: 2.3506513, z: 2.4745958, w: 8.086858}
- {x: 0.5733336, y: 2.4312308, z: 2.9043517, w: 10.094101}
- {x: 0.6183063, y: 2.5166042, z: 3.4533012, w: 13.217383}
- {x: 0.66487795, y: 2.6071734, z: 4.20053, w: 18.777578}
- {x: 0.71314675, y: 2.703383, z: 5.349281, w: 31.61934}
- {x: 0.76321995, y: 2.805728, z: 7.839332, w: 95.36225}
- {x: 0.81521386, y: 2.9147599, z: 0, w: 1}
- {x: 0.86925554, y: 3.031096, z: 0, w: 1}
- {x: 0.92548406, y: 3.1554284, z: 0, w: 1}
- {x: 0.9840515, y: 3.288537, z: 0, w: 1}
- {x: 1.0451256, y: 3.431302, z: 0, w: 1}
- {x: 1.1088905, y: 3.5847225, z: 0, w: 1}
- {x: 1.1755506, y: 3.749937, z: 0, w: 1}
- {x: 1.2453312, y: 3.9282467, z: 0, w: 1}
- {x: 1.3184844, y: 4.1211514, z: 0, w: 1}
- {x: 1.3952904, y: 4.3303804, z: 0, w: 1}
- {x: 1.4760638, y: 4.5579505, z: 0, w: 1}
- {x: 1.5611593, y: 4.8062224, z: 0, w: 1}
- {x: 1.650978, y: 5.0779796, z: 0, w: 1}
- {x: 1.7459753, y: 5.3765287, z: 0, w: 1}
- {x: 1.8466738, y: 5.7058387, z: 0, w: 1}
- {x: 1.9536757, y: 6.070716, z: 0, w: 1}
- {x: 2.0676782, y: 6.4770336, z: 0, w: 1}
- {x: 2.189499, y: 6.9320674, z: 0, w: 1}
- {x: 2.3201032, y: 7.4449396, z: 0, w: 1}
- {x: 2.4606442, y: 8.027264, z: 0, w: 1}
- {x: 2.612515, y: 8.694056, z: 0, w: 1}
- {x: 2.777422, y: 9.465107, z: 0, w: 1}
- {x: 2.9574924, y: 10.367077, z: 0, w: 1}
- {x: 3.1554203, y: 11.436736, z: 0, w: 1}
- {x: 3.3747015, y: 12.726331, z: 0, w: 1}
- {x: 3.6199868, y: 14.312694, z: 0, w: 1}
- {x: 3.897662, y: 16.313623, z: 0, w: 1}
- {x: 4.2168484, y: 18.919455, z: 0, w: 1}
- {x: 4.5912457, y: 22.459015, z: 0, w: 1}
- {x: 5.042839, y: 27.553566, z: 0, w: 1}
- {x: 5.610336, y: 35.534466, z: 0, w: 1}
- {x: 6.3721733, y: 49.863647, z: 0, w: 1}
- {x: 7.53103, y: 83.235695, z: 0, w: 1}
- {x: 10.026244, y: 249.90146, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}

- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 0, y: 1, z: 0, w: 1}
- {x: 2, y: 2, z: 2, w: 2}
- {x: 2, y: 2, z: 2, w: 2}
- {x: 2.4691355, y: 12.5, z: 12.5, w: 2.4691355}
- {x: 2.4691355, y: 12.5, z: 12.5, w: 2.4691355}
- {x: 2.4691355, y: 2.4691355, z: 2.4691355, w: 2.4691355}
- {x: 1, y: 1, z: 1, w: 1}
- {x: 1, y: 1, z: 1, w: 1}
- {x: 1, y: 1, z: 1, w: 1}
- {x: 1, y: 1, z: 1, w: 1}
- {x: 1, y: 1, z: 1, w: 1}
- {x: 1, y: 1, z: 1, w: 1}
halfRcpVariancesAndWeights:
- {x: 0.5, y: 1.125, z: 1.125, w: 2}
- {x: 0.125, y: 1.125, z: 1.125, w: 2}
- {x: 0.5, y: 0.5, z: 0.5, w: 2}
- {x: 0.125, y: 0.125, z: 0.125, w: 2}
- {x: 1, y: 1, z: 1, w: 1}
- {x: 1, y: 1, z: 1, w: 1}
- {x: 1, y: 1, z: 1, w: 1}
- {x: 1, y: 1, z: 1, w: 1}
- {x: 1, y: 1, z: 1, w: 1}
- {x: 1, y: 1, z: 1, w: 1}
- {x: 1, y: 1, z: 1, w: 1}
- {x: 0, y: 0, z: 0, w: 0}
- {x: 0, y: 0, z: 0, w: 0}
filterKernelsBasic:
- {x: 0.09090909, y: 0.21162307, z: 0.21162307, w: -0.000000048879357}
- {x: 0.09090909, y: 0.18990478, z: 0.18990478, w: -0.11381993}

- {x: 0.09090909, y: 0.061445467, z: 0.061445467, w: 0.37865555}
- {x: 0.09090909, y: 0.010501689, z: 0.010501689, w: 0.57677805}
- {x: 0.09090909, y: 2.9456845e-10, z: 2.9456845e-10, w: 1.3907368}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: -0.000000054310398}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: -0.12646659}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: -0.26200095}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: -0.42072836}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: -0.64086443}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: -1.5452611}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: 0.12646668}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: 0.26200095}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: 0.42072836}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: 0.64086443}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: 1.545263}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: -0.000000054310398}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: -0.12646659}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: -0.26200095}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: -0.42072836}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: -0.64086443}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: -1.5452611}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: 0.12646668}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: 0.26200095}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: 0.42072836}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: 0.64086443}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: 1.545263}
- {x: 0.09090909, y: 0.21162307, z: 0.21162307, w: -0.000000048879357}
- {x: 0.09090909, y: 0.18990478, z: 0.18990478, w: -0.11381993}
- {x: 0.09090909, y: 0.13233659, z: 0.13233659, w: -0.23580086}
- {x: 0.09090909, y: 0.061445467, z: 0.061445467, w: -0.37865555}
- {x: 0.09090909, y: 0.010501689, z: 0.010501689, w: -0.57677805}
- {x: 0.09090909, y: 2.9458339e-10, z: 2.9458339e-10, w: -1.3907351}
- {x: 0.09090909, y: 0.18990476, z: 0.18990476, w: 0.11382001}
- {x: 0.09090909, y: 0.13233659, z: 0.13233659, w: 0.23580086}
- {x: 0.09090909, y: 0.061445467, z: 0.061445467, w: 0.37865555}
- {x: 0.09090909, y: 0.010501689, z: 0.010501689, w: 0.57677805}
- {x: 0.09090909, y: 2.9456845e-10, z: 2.9456845e-10, w: 1.3907368}
- {x: 0.09090909, y: 0.21162307, z: 0.21162307, w: -0.000000048879357}
- {x: 0.09090909, y: 0.18990478, z: 0.18990478, w: -0.11381993}
- {x: 0.09090909, y: 0.13233659, z: 0.13233659, w: -0.23580086}
- {x: 0.09090909, y: 0.061445467, z: 0.061445467, w: -0.37865555}
- {x: 0.09090909, y: 0.010501689, z: 0.010501689, w: -0.57677805}
- {x: 0.09090909, y: 2.9458339e-10, z: 2.9458339e-10, w: -1.3907351}
- {x: 0.09090909, y: 0.18990476, z: 0.18990476, w: 0.11382001}
- {x: 0.09090909, y: 0.13233659, z: 0.13233659, w: 0.23580086}
- {x: 0.09090909, y: 0.061445467, z: 0.061445467, w: 0.37865555}
- {x: 0.09090909, y: 0.010501689, z: 0.010501689, w: 0.57677805}
- {x: 0.09090909, y: 2.9456845e-10, z: 2.9456845e-10, w: 1.3907368}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: -0.000000048879357}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: -0.11381993}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: -0.23580086}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: -0.37865555}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: -0.57677805}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: -1.3907351}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: 0.11382001}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: 0.23580086}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: 0.37865555}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: 0.57677805}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: 1.3907368}
- {x: 1, y: 1, z: 1, w: 0}
- {x: 1, y: 1, z: 1, w: 0}
- {x: 1, y: 1, z: 1, w: 0}
- {x: 1, y: 1, z: 1, w: 0}
- {x: 1, y: 1, z: 1, w: 0}
- {x: 1, y: 1, z: 1, w: 0}
- {x: 1, y: 1, z: 1, w: 0}
- {x: 1, y: 1, z: 1, w: 0}
- {x: 1, y: 1, z: 1, w: 0}
- {x: 1, y: 1, z: 1, w: 0}
- {x: 1, y: 1, z: 1, w: 0}
- {x: 1, y: 1, z: 1, w: 0}
- {x: 1, y: 1, z: 1, w: 0}
- {x: 1, y: 1, z: 1, w: 0}
- {x: 1, y: 1, z: 1, w: 0}
- {x: 1, y: 1, z: 1, w: 0}
- {x: 1, y: 1, z: 1, w: 0}
- {x: 1, y: 1, z: 1, w: 0}
- {x: 1, y: 1, z: 1, w: 0}
- {x: 1, y: 1, z: 1, w: 0}
- {x: 1, y: 1, z: 1, w: 0}
- {x: 1, y: 1, z: 1, w: 0}
- {x: 1, y: 1, z: 1, w: 0}
- {x: 1, y: 1, z: 1, w: 0}
- {x: 1, y: 1, z: 1, w: 0}
- {x: 1, y: 1, z: 1, w: 0}
- {x: 1, y: 1, z: 1, w: 0}
- {x: 1, y: 1, z: 1, w: 0}
- {x: 1, y: 1, z: 1, w: 0}
- {x: 1, y: 1, z: 1, w: 0}
- {x: 1, y: 1, z: 1, w: 0}
- {x: 1, y: 1, z: 1, w: 0}
- {x: 1, y: 1, z: 1, w: 0}
- {x: 1, y: 1, z: 1, w: 0}
- {x: 1, y: 1, z: 1, w: 0}
- {x: 1, y: 1, z: 1, w: 0}

17
Assets/ScriptableRenderPipeline/HDRenderPipeline/HDShaderIDs.cs


internal static readonly int g_LayeredSingleIdxBuffer = Shader.PropertyToID("g_LayeredSingleIdxBuffer");
internal static readonly int _EnvLightIndexShift = Shader.PropertyToID("_EnvLightIndexShift");
internal static readonly int g_isOrthographic = Shader.PropertyToID("g_isOrthographic");
internal static readonly int g_iNrVisibLights = Shader.PropertyToID("g_iNrVisibLights");
internal static readonly int g_mScrProjection = Shader.PropertyToID("g_mScrProjection");
internal static readonly int g_mInvScrProjection = Shader.PropertyToID("g_mInvScrProjection");

internal static readonly int _AmbientOcclusionDirectLightStrenght = Shader.PropertyToID("_AmbientOcclusionDirectLightStrenght");
internal static readonly int _SkyTexture = Shader.PropertyToID("_SkyTexture");
internal static readonly int _UseDisneySSS = Shader.PropertyToID("_UseDisneySSS");
internal static readonly int _HalfRcpVariancesAndWeights = Shader.PropertyToID("_HalfRcpVariancesAndWeights");
internal static readonly int _TransmissionTints = Shader.PropertyToID("_TransmissionTints");
internal static readonly int specularLightingUAV = Shader.PropertyToID("specularLightingUAV");
internal static readonly int diffuseLightingUAV = Shader.PropertyToID("diffuseLightingUAV");

internal static readonly int _PrevViewProjMatrix = Shader.PropertyToID("_PrevViewProjMatrix");
internal static readonly int _FrustumPlanes = Shader.PropertyToID("_FrustumPlanes");
internal static readonly int _DepthTexture = Shader.PropertyToID("_DepthTexture");
internal static readonly int _CameraColorTexture = Shader.PropertyToID("_CameraColorTexture");
internal static readonly int _CameraSssDiffuseLightingBuffer = Shader.PropertyToID("_CameraSssDiffuseLightingTexture");
internal static readonly int _CameraFilteringBuffer = Shader.PropertyToID("_CameraFilteringTexture");
internal static readonly int _IrradianceSource = Shader.PropertyToID("_IrradianceSource");
internal static readonly int _CameraColorTexture = Shader.PropertyToID("_CameraColorTexture");
internal static readonly int _CameraDiffuseIrradianceTexture = Shader.PropertyToID("_CameraDiffuseIrradianceTexture");
internal static readonly int _CameraFilteringBuffer = Shader.PropertyToID("_CameraFilteringBuffer");
internal static readonly int _DepthTexture = Shader.PropertyToID("_DepthTexture");
internal static readonly int _IrradianceSource = Shader.PropertyToID("_IrradianceSource");
internal static readonly int _FilterKernelsBasic = Shader.PropertyToID("_FilterKernelsBasic");
internal static readonly int _HalfRcpWeightedVariances = Shader.PropertyToID("_HalfRcpWeightedVariances");

internal static readonly int _StdDev1 = Shader.PropertyToID("_StdDev1");
internal static readonly int _StdDev2 = Shader.PropertyToID("_StdDev2");
internal static readonly int _LerpWeight = Shader.PropertyToID("_LerpWeight");
internal static readonly int _HalfRcpVarianceAndWeight1 = Shader.PropertyToID("_HalfRcpVarianceAndWeight1");
internal static readonly int _HalfRcpVarianceAndWeight2 = Shader.PropertyToID("_HalfRcpVarianceAndWeight2");
internal static readonly int _TransmissionTint = Shader.PropertyToID("_TransmissionTint");
internal static readonly int _ThicknessRemap = Shader.PropertyToID("_ThicknessRemap");

8
Assets/ScriptableRenderPipeline/HDRenderPipeline/Lighting/LightDefinition.cs


[GenerateHLSL]
public struct LightData
{
// DirectionalLightData >>>
public Vector3 positionWS;
public float invSqrAttenuationRadius;

public Vector3 up; // If spot: rescaled by cot(outerHalfAngle); if projector: rescaled by * (2 / lightWidth)
public float diffuseScale;
// <<< DirectionalLightData
public int IESIndex; // -1 if unused
public int unused0;
public float unused;
public float minRoughness; // This is use to give a small "area" to punctual light, as if we have a light with a radius.
};

12
Assets/ScriptableRenderPipeline/HDRenderPipeline/Lighting/LightDefinition.cs.hlsl


float angleScale;
float angleOffset;
float shadowDimmer;
int IESIndex;
int unused0;
float unused;
float minRoughness;
};
// Generated from UnityEngine.Experimental.Rendering.HDPipeline.EnvLightData

{
return value.shadowDimmer;
}
int GetIESIndex(LightData value)
int GetUnused0(LightData value)
return value.IESIndex;
return value.unused0;
}
float2 GetSize(LightData value)
{

{
return value.lightType;
}
float GetUnused(LightData value)
float GetMinRoughness(LightData value)
return value.unused;
return value.minRoughness;
}
//

34
Assets/ScriptableRenderPipeline/HDRenderPipeline/Lighting/TilePass/ClusteredUtils.hlsl


return geomSeries / (g_fFarPlane - g_fNearPlane);
}
float LogBase(float x, float b)
{
return log2(x) / log2(b);
}
int SnapToClusterIdxFlex(float z_in, float suggestedBase, bool logBasePerTile)
{
#if USE_LEFT_HAND_CAMERA_SPACE

#endif
float userscale = g_fClustScale;
if (logBasePerTile)
userscale = GetScaleFromBase(suggestedBase);
//float userscale = g_fClustScale;
//if (logBasePerTile)
// userscale = GetScaleFromBase(suggestedBase);
const float dist = max(0, z - g_fNearPlane);
return (int)clamp(log2(dist * userscale * (suggestedBase - 1.0f) + 1) / log2(suggestedBase), 0.0, (float)((1 << g_iLog2NumClusters) - 1));
//const float dist = max(0, z - g_fNearPlane);
//return (int)clamp(log2(dist * userscale * (suggestedBase - 1.0f) + 1) / log2(suggestedBase), 0.0, (float)((1 << g_iLog2NumClusters) - 1));
const float C = (float)(1 << g_iLog2NumClusters);
const float rangeFittedDistance = max(0, z - g_fNearPlane) / (g_fFarPlane - g_fNearPlane);
return (int)clamp( LogBase( lerp(1.0, PositivePow(suggestedBase, C), rangeFittedDistance), suggestedBase), 0.0, (float)((1 << g_iLog2NumClusters) - 1));
}
int SnapToClusterIdx(float z_in, float suggestedBase)

{
float res;
float userscale = g_fClustScale;
if (logBasePerTile)
userscale = GetScaleFromBase(suggestedBase);
//float userscale = g_fClustScale;
//if (logBasePerTile)
// userscale = GetScaleFromBase(suggestedBase);
//float dist = (PositivePow(suggestedBase, (float)k) - 1.0) / (userscale * (suggestedBase - 1.0f));
//res = dist + g_fNearPlane;
const float C = (float)(1 << g_iLog2NumClusters);
float rangeFittedDistance = (PositivePow(suggestedBase, (float)k) - 1.0) / (PositivePow(suggestedBase, C) - 1.0);
res = lerp(g_fNearPlane, g_fFarPlane, rangeFittedDistance);
float dist = (PositivePow(suggestedBase, (float)k) - 1.0) / (userscale * (suggestedBase - 1.0f));
res = dist + g_fNearPlane;
#if USE_LEFT_HAND_CAMERA_SPACE
return res;

10
Assets/ScriptableRenderPipeline/HDRenderPipeline/Lighting/TilePass/LightingConvexHullUtils.hlsl


return float4(vN, -dot(vN,p0));
}
bool DoesSphereOverlapTile(float3 dir, float halfTileSizeAtZDistOne, float3 sphCen, float sphRadiusIn)
bool DoesSphereOverlapTile(float3 dir, float halfTileSizeAtZDistOne, float3 sphCen_in, float sphRadiusIn, bool isOrthographic)
float3 V = dir; // ray direction down center of tile (does not need to be normalized).
float3 V = float3(isOrthographic ? 0.0 : dir.x, isOrthographic ? 0.0 : dir.y, dir.z); // ray direction down center of tile (does not need to be normalized).
float3 sphCen = float3(sphCen_in.x - (isOrthographic ? dir.x : 0.0), sphCen_in.y - (isOrthographic ? dir.y : 0.0), sphCen_in.z);
#if 1
float3 maxZdir = float3(-sphCen.z*sphCen.x, -sphCen.z*sphCen.y, sphCen.x*sphCen.x + sphCen.y*sphCen.y); // cross(sphCen,cross(Zaxis,sphCen))

// enlarge sphere so it overlaps the center of the tile assuming it overlaps the tile to begin with.
#if USE_LEFT_HAND_CAMERA_SPACE
float sphRadius = sphRadiusIn + (sphCen.z+offs)*halfTileSizeAtZDistOne;
float s = sphCen.z+offs;
float sphRadius = sphRadiusIn - (sphCen.z-offs)*halfTileSizeAtZDistOne;
float s = -(sphCen.z-offs);
float sphRadius = sphRadiusIn + (isOrthographic ? 1.0 : s)*halfTileSizeAtZDistOne;
float a = dot(V,V);
float CdotV = dot(sphCen,V);

2
Assets/ScriptableRenderPipeline/HDRenderPipeline/Lighting/TilePass/ShadowDispatch.hlsl


SamplerComparisonState compSamp = shadowContext.compSamplers[SHADOW_DISPATCH_DIR_SMP];
uint algo = SHADOW_DISPATCH_DIR_ALG;
return EvalShadow_CascadedDepth( shadowContext, algo, tex, compSamp, positionWS, normalWS, shadowDataIndex, L );
return EvalShadow_CascadedDepth_Blend( shadowContext, algo, tex, compSamp, positionWS, normalWS, shadowDataIndex, L );
}
float GetDirectionalShadowAttenuation( ShadowContext shadowContext, float3 positionWS, float3 normalWS, int shadowDataIndex, float3 L, float2 unPositionSS )

45
Assets/ScriptableRenderPipeline/HDRenderPipeline/Lighting/TilePass/TilePass.cs


lightData.lightType = gpuLightType;
lightData.positionWS = light.light.transform.position;
lightData.invSqrAttenuationRadius = 1.0f / (light.range * light.range);
// Setting 0 for invSqrAttenuationRadius mean we have no range attenuation, but still have inverse square attenuation.
lightData.invSqrAttenuationRadius = additionalLightData.applyRangeAttenuation ? 1.0f / (light.range * light.range) : 0.0f;
lightData.color = GetLightColor(light);
lightData.forward = light.light.transform.forward; // Note: Light direction is oriented backward (-Z)

if (lightData.diffuseScale <= 0.0f && lightData.specularScale <= 0.0f)
return false;
lightData.IESIndex = -1;
lightData.cookieIndex = -1;
lightData.shadowIndex = -1;

{
lightData.shadowIndex = shadowIdx;
}
// Value of max smoothness is from artists point of view, need to convert from perceptual smoothness to roughness
lightData.minRoughness = (1.0f - additionalLightData.maxSmoothness) * (1.0f - additionalLightData.maxSmoothness);
m_lightList.lights.Add(lightData);

for (int probeIndex = 0, numProbes = cullResults.visibleReflectionProbes.Count; (probeIndex < numProbes) && (sortCount < probeCount); probeIndex++)
{
var probe = cullResults.visibleReflectionProbes[probeIndex];
VisibleReflectionProbe probe = cullResults.visibleReflectionProbes[probeIndex];
// probe.texture can be null when we are adding a reflection probe in the editor
if (probe.texture == null || envLightCount >= k_MaxEnvLightsOnScreen)

LightVolumeType lightVolumeType = probe.boxProjection != 0 ? LightVolumeType.Box : LightVolumeType.Box;
++envLightCount;
// 16 bit lightVolume, 16 bit index
sortKeys[sortCount++] = (uint)lightVolumeType << 16 | (uint)probeIndex;
float boxVolume = 8 * probe.bounds.extents.x * probe.bounds.extents.y * probe.bounds.extents.z;
float logVolume = Mathf.Clamp(256 + Mathf.Log(boxVolume, 1.1f), 0, 8191); // Allow for negative exponents
// 13 bit volume, 3 bit LightVolumeType, 16 bit index
sortKeys[sortCount++] = (uint)logVolume << 19 | (uint)lightVolumeType << 16 | ((uint)probeIndex & 0xFFFF); // Sort by volume
}
// Not necessary yet but call it for future modification with sphere influence volume

{
// In 1. we have already classify and sorted the light, we need to use this sorted order here
uint sortKey = sortKeys[sortIndex];
LightVolumeType lightVolumeType = (LightVolumeType)((sortKey >> 16) & 0xFFFF);
LightVolumeType lightVolumeType = (LightVolumeType)((sortKey >> 16) & 0x3);
int probeIndex = (int)(sortKey & 0xFFFF);
VisibleReflectionProbe probe = cullResults.visibleReflectionProbes[probeIndex];

cmd.SetComputeBufferParam(buildPerVoxelLightListShader, s_ClearVoxelAtomicKernel, HDShaderIDs.g_LayeredSingleIdxBuffer, s_GlobalLightListAtomic);
cmd.DispatchCompute(buildPerVoxelLightListShader, s_ClearVoxelAtomicKernel, 1, 1, 1);
bool isOrthographic = camera.orthographic;
cmd.SetComputeIntParam(buildPerVoxelLightListShader, HDShaderIDs.g_isOrthographic, isOrthographic ? 1 : 0);
cmd.SetComputeIntParam(buildPerVoxelLightListShader, HDShaderIDs._EnvLightIndexShift, m_lightList.lights.Count);
cmd.SetComputeIntParam(buildPerVoxelLightListShader, HDShaderIDs.g_iNrVisibLights, m_lightCount);
cmd.SetComputeMatrixParam(buildPerVoxelLightListShader, HDShaderIDs.g_mScrProjection, projscr);

temp.SetRow(3, new Vector4(0.0f, 0.0f, 0.0f, 1.0f));
var projscr = temp * proj;
var invProjscr = projscr.inverse;
bool isOrthographic = camera.orthographic;
cmd.SetRenderTarget(new RenderTargetIdentifier((Texture)null));

var projh = temp * proj;
var invProjh = projh.inverse;
cmd.SetComputeIntParam(buildScreenAABBShader, HDShaderIDs.g_isOrthographic, isOrthographic ? 1 : 0);
cmd.SetComputeIntParam(buildScreenAABBShader, HDShaderIDs.g_iNrVisibLights, m_lightCount);
cmd.SetComputeBufferParam(buildScreenAABBShader, s_GenAABBKernel, HDShaderIDs.g_data, s_ConvexBoundsBuffer);

// enable coarse 2D pass on 64x64 tiles (used for both fptl and clustered).
if (m_TileSettings.enableBigTilePrepass)
{
cmd.SetComputeIntParam(buildPerBigTileLightListShader, HDShaderIDs.g_isOrthographic, isOrthographic ? 1 : 0);
cmd.SetComputeIntParams(buildPerBigTileLightListShader, HDShaderIDs.g_viDimensions, w, h);
cmd.SetComputeIntParam(buildPerBigTileLightListShader, HDShaderIDs._EnvLightIndexShift, m_lightList.lights.Count);
cmd.SetComputeIntParam(buildPerBigTileLightListShader, HDShaderIDs.g_iNrVisibLights, m_lightCount);

if (usingFptl) // optimized for opaques only
{
cmd.SetComputeIntParam(buildPerTileLightListShader, HDShaderIDs.g_isOrthographic, isOrthographic ? 1 : 0);
cmd.SetComputeIntParams(buildPerTileLightListShader, HDShaderIDs.g_viDimensions, w, h);
cmd.SetComputeIntParam(buildPerTileLightListShader, HDShaderIDs._EnvLightIndexShift, m_lightList.lights.Count);
cmd.SetComputeIntParam(buildPerTileLightListShader, HDShaderIDs.g_iNrVisibLights, m_lightCount);

int enableSSSAndTransmission = Shader.GetGlobalInt(HDShaderIDs._EnableSSSAndTransmission);
int texturingModeFlags = Shader.GetGlobalInt(HDShaderIDs._TexturingModeFlags);
int transmissionFlags = Shader.GetGlobalInt(HDShaderIDs._TransmissionFlags);
int useDisneySSS = Shader.GetGlobalInt(HDShaderIDs._UseDisneySSS);
Vector4[] halfRcpVariancesAndWeights = Shader.GetGlobalVectorArray(HDShaderIDs._HalfRcpVariancesAndWeights);
Texture skyTexture = Shader.GetGlobalTexture(HDShaderIDs._SkyTexture);

cmd.SetComputeTextureParam(deferredComputeShader, kernel, HDShaderIDs._SkyTexture, skyTexture ? skyTexture : m_DefaultTexture2DArray);
// Set SSS parameters.
cmd.SetComputeIntParam( deferredComputeShader, HDShaderIDs._EnableSSSAndTransmission, enableSSSAndTransmission);
cmd.SetComputeIntParam( deferredComputeShader, HDShaderIDs._TexturingModeFlags, texturingModeFlags);
cmd.SetComputeIntParam( deferredComputeShader, HDShaderIDs._TransmissionFlags, transmissionFlags);
cmd.SetComputeVectorArrayParam(deferredComputeShader, HDShaderIDs._ThicknessRemaps, thicknessRemaps);
// We are currently supporting two different SSS mode: Jimenez (with 2-Gaussian profile) and Disney
// We have added the ability to switch between each other for subsurface scattering, but for transmittance this is more tricky as we need to add
// shader variant for forward, gbuffer and deferred shader. We want to avoid this.
// So for transmittance we use Disney profile formulation (that we know is more correct) in both case, and in the case of Jimenez we hack the parameters with 2-Gaussian parameters (Ideally we should fit but haven't find good fit) so it approximately match.
// Note: Jimenez SSS is in cm unit whereas Disney is in mm unit making an inconsistency here to compare model side by side
cmd.SetComputeVectorArrayParam(deferredComputeShader, HDShaderIDs._ShapeParams, shapeParams);
cmd.SetComputeVectorArrayParam(deferredComputeShader, HDShaderIDs._TransmissionTints, transmissionTints);
cmd.SetComputeIntParam( deferredComputeShader, HDShaderIDs._EnableSSSAndTransmission, enableSSSAndTransmission);
cmd.SetComputeIntParam( deferredComputeShader, HDShaderIDs._TexturingModeFlags, texturingModeFlags);
cmd.SetComputeIntParam( deferredComputeShader, HDShaderIDs._TransmissionFlags, transmissionFlags);
cmd.SetComputeIntParam( deferredComputeShader, HDShaderIDs._UseDisneySSS, useDisneySSS);
cmd.SetComputeVectorArrayParam(deferredComputeShader, HDShaderIDs._ThicknessRemaps, thicknessRemaps);
cmd.SetComputeVectorArrayParam(deferredComputeShader, HDShaderIDs._ShapeParams, shapeParams);
cmd.SetComputeVectorArrayParam(deferredComputeShader, HDShaderIDs._TransmissionTints, transmissionTints);
cmd.SetComputeVectorArrayParam(deferredComputeShader, HDShaderIDs._HalfRcpVariancesAndWeights, halfRcpVariancesAndWeights);
cmd.SetComputeTextureParam(deferredComputeShader, kernel, HDShaderIDs.specularLightingUAV, colorBuffers[0]);
cmd.SetComputeTextureParam(deferredComputeShader, kernel, HDShaderIDs.diffuseLightingUAV, colorBuffers[1]);

97
Assets/ScriptableRenderPipeline/HDRenderPipeline/Lighting/TilePass/TilePassLoop.hlsl


#endif // LIGHTLOOP_TILE_PASS
void applyWeigthedIblLighting(float3 localDiffuseLighting, float3 localSpecularLighting, float2 weight, inout float3 iblDiffuseLighting, inout float3 iblSpecularLighting, inout float totalIblWeight)
{
// IBL weights should not exceed 1.
float accumulatedWeight = totalIblWeight + weight.y;
totalIblWeight = saturate(accumulatedWeight);
weight.y -= saturate(accumulatedWeight - totalIblWeight);
// TODO: We do'nt use ibl diffuse lighting currently, let here in case users want to use it.
// iblDiffuseLighting = lerp(iblDiffuseLighting, localDiffuseLighting, weight.x);
iblSpecularLighting = lerp(iblSpecularLighting, localSpecularLighting, weight.y);
}
// bakeDiffuseLighting is part of the prototype so a user is able to implement a "base pass" with GI and multipass direct light (aka old unity rendering path)
void LightLoop( float3 V, PositionInputs posInput, PreLightData prelightData, BSDFData bsdfData, float3 bakeDiffuseLighting, uint featureFlags,
out float3 diffuseLighting,

if (featureFlags & LIGHTFEATUREFLAGS_DIRECTIONAL)
{
for(i = 0; i < _DirectionalLightCount; ++i)
for (i = 0; i < _DirectionalLightCount; ++i)
{
float3 localDiffuseLighting, localSpecularLighting;

uint punctualLightCount;
GetCountAndStart(posInput, LIGHTCATEGORY_PUNCTUAL, punctualLightStart, punctualLightCount);
for(i = 0; i < punctualLightCount; ++i)
for (i = 0; i < punctualLightCount; ++i)
{
float3 localDiffuseLighting, localSpecularLighting;

if (featureFlags & LIGHTFEATUREFLAGS_AREA)
{
float3 localDiffuseLighting, localSpecularLighting;
#ifdef LIGHTLOOP_TILE_PASS
uint areaLightStart;

float3 localDiffuseLighting = float3(0.0, 0.0, 0.0);
float3 localSpecularLighting = float3(0.0, 0.0, 0.0);
// COMPILER BEHAVIOR WARNING!
// If rectangle lights are before line lights, the compiler will duplicate light matrices in VGPR because they are used differently between the two types of lights.
// By keeping line lights first we avoid this behavior and save substantial register pressure.

lightType = i < areaLightCount ? _LightDatas[areaIndex].lightType : 0xFF;
}
while (i < areaLightCount /* && lightType == GPULIGHTTYPE_RECT */) // Rectangle lights are the last area lights so no need to check type (for now)
while (i < areaLightCount && lightType == GPULIGHTTYPE_RECTANGLE)
{
EvaluateBSDF_Area( context, V, posInput, prelightData, _LightDatas[areaIndex], bsdfData, GPULIGHTTYPE_RECTANGLE,
localDiffuseLighting, localSpecularLighting);

i++;
areaIndex = i < areaLightCount ? FetchIndex(areaLightStart, i) : 0;
// lightType = i < areaLightCount ? _LightDatas[areaIndex].lightType : 0xFF;
lightType = i < areaLightCount ? _LightDatas[areaIndex].lightType : 0xFF;
for (; i < _PunctualLightCount + _AreaLightCount; ++i)
for (i = _PunctualLightCount; i < _PunctualLightCount + _AreaLightCount; ++i)
float3 localDiffuseLighting, localSpecularLighting;
EvaluateBSDF_Area( context, V, posInput, prelightData, _LightDatas[i], bsdfData, _LightDatas[i].lightType,
localDiffuseLighting, localSpecularLighting);

#endif
}
float3 iblDiffuseLighting = float3(0.0, 0.0, 0.0);
float3 iblDiffuseLighting = float3(0.0, 0.0, 0.0);
float totalIblWeight = 0.0; // Max: 1
// TODO: Check the reflection hierarchy, for the current system (matching legacy unity) we must sort from bigger solid angle to lower (lower override bigger). So begging by sky
// TODO: Change the way it is done by reversing the order, from smaller solid angle to bigger, so we can early out when the weight is 1.
// Only apply sky IBL if the sky texture is available.
if(featureFlags & LIGHTFEATUREFLAGS_SKY)
// Reflection probes are sorted by volume (in the increasing order).
if (featureFlags & LIGHTFEATUREFLAGS_ENV)
if(_EnvLightSkyEnabled)
{
float3 localDiffuseLighting, localSpecularLighting;
float2 weight;
// The sky is a single cubemap texture separate from the reflection probe texture array (different resolution and compression)
context.sampleReflection = SINGLE_PASS_CONTEXT_SAMPLE_SKY;
EnvLightData envLightSky = InitSkyEnvLightData(0); // The sky data are generated on the fly so the compiler can optimize the code
EvaluateBSDF_Env(context, V, posInput, prelightData, envLightSky, bsdfData, localDiffuseLighting, localSpecularLighting, weight);
iblDiffuseLighting = lerp(iblDiffuseLighting, localDiffuseLighting, weight.x); // Should be remove by the compiler if it is smart as all is constant 0
iblSpecularLighting = lerp(iblSpecularLighting, localSpecularLighting, weight.y);
}
}
float3 localDiffuseLighting, localSpecularLighting;
float2 weight;
context.sampleReflection = SINGLE_PASS_CONTEXT_SAMPLE_REFLECTION_PROBES;
if(featureFlags & LIGHTFEATUREFLAGS_ENV)
{
#ifdef LIGHTLOOP_TILE_PASS
#ifdef LIGHTLOOP_TILE_PASS
#else
uint envLightCount = _EnvLightCount;
#endif
for(i = 0; i < envLightCount; ++i)
// Note: In case of IBL we are sorted from smaller to bigger projected solid angle bounds. We are not sorted by type so we can't do a 'while' approach like for area light.
for (i = 0; i < envLightCount && totalIblWeight < 1.0; ++i)
float3 localDiffuseLighting, localSpecularLighting;
float2 weight;
context.sampleReflection = SINGLE_PASS_CONTEXT_SAMPLE_REFLECTION_PROBES;
EvaluateBSDF_Env(context, V, posInput, prelightData, _EnvLightDatas[FetchIndex(envLightStart, i)], bsdfData, localDiffuseLighting, localSpecularLighting, weight);
iblDiffuseLighting = lerp(iblDiffuseLighting, localDiffuseLighting, weight.x); // Should be remove by the compiler if it is smart as all is constant 0
iblSpecularLighting = lerp(iblSpecularLighting, localSpecularLighting, weight.y);
}
#ifdef LIGHTLOOP_TILE_PASS
uint envLightIndex = FetchIndex(envLightStart, i);
uint envLightIndex = i;
#endif
EvaluateBSDF_Env(context, V, posInput, prelightData, _EnvLightDatas[envLightIndex], bsdfData, localDiffuseLighting, localSpecularLighting, weight);
applyWeigthedIblLighting(localDiffuseLighting, localSpecularLighting, weight, iblDiffuseLighting, iblSpecularLighting, totalIblWeight);
}
}
for (i = 0; i < _EnvLightCount; ++i)
if (featureFlags & LIGHTFEATUREFLAGS_SKY)
{
// Only apply the sky IBL if the sky texture is available, and if we haven't yet accumulated enough IBL lighting.
if (_EnvLightSkyEnabled && totalIblWeight < 1.0)
context.sampleReflection = SINGLE_PASS_CONTEXT_SAMPLE_REFLECTION_PROBES;
EvaluateBSDF_Env(context, V, posInput, prelightData, _EnvLightDatas[i], bsdfData, localDiffuseLighting, localSpecularLighting, weight);
iblDiffuseLighting = lerp(iblDiffuseLighting, localDiffuseLighting, weight.x); // Should be remove by the compiler if it is smart as all is constant 0
iblSpecularLighting = lerp(iblSpecularLighting, localSpecularLighting, weight.y);
}
#endif
// The sky is a single cubemap texture separate from the reflection probe texture array (different resolution and compression)
context.sampleReflection = SINGLE_PASS_CONTEXT_SAMPLE_SKY;
EnvLightData envLightSky = InitSkyEnvLightData(0); // The sky data are generated on the fly so the compiler can optimize the code
EvaluateBSDF_Env(context, V, posInput, prelightData, envLightSky, bsdfData, localDiffuseLighting, localSpecularLighting, weight);
applyWeigthedIblLighting(localDiffuseLighting, localSpecularLighting, weight, iblDiffuseLighting, iblSpecularLighting, totalIblWeight);
}
}
// Apply ambient occlusion on direct lighting based on strenght factor

43
Assets/ScriptableRenderPipeline/HDRenderPipeline/Lighting/TilePass/lightlistbuild-bigtile.compute


uniform float4x4 g_mScrProjection;
uniform float g_fNearPlane;
uniform float g_fFarPlane;
uniform uint g_isOrthographic;
uniform int _EnvLightIndexShift;
StructuredBuffer<float3> g_vBoundsBuffer : register( t1 );

groupshared unsigned int lightsListLDS[MAX_NR_BIG_TILE_LIGHTS_PLUS_ONE];
groupshared uint lightOffs;
float GetLinearDepth(float zDptBufSpace) // 0 is near 1 is far
float GetLinearDepth(float zDptBufSpace) // 0 is near 1 is far
float3 vP = float3(0.0f,0.0f,zDptBufSpace);
float4 v4Pres = mul(g_mInvScrProjection, float4(vP,1.0));
return v4Pres.z / v4Pres.w;
}
// for perspective projection m22 is zero and m23 is +1/-1 (depends on left/right hand proj)
// however this function must also work for orthographic projection so we keep it like this.
float m22 = g_mInvScrProjection[2].z, m23 = g_mInvScrProjection[2].w;
float m32 = g_mInvScrProjection[3].z, m33 = g_mInvScrProjection[3].w;
return (m22*zDptBufSpace+m23) / (m32*zDptBufSpace+m33);
//float3 vP = float3(0.0f,0.0f,zDptBufSpace);
//float4 v4Pres = mul(g_mInvScrProjection, float4(vP,1.0));
//return v4Pres.z / v4Pres.w;
}
bool isOrthographic = g_isOrthographic!=0;
float fCx = g_mScrProjection[0].z;
float fCy = g_mScrProjection[1].z;
float fCx = isOrthographic ? g_mScrProjection[0].w : g_mScrProjection[0].z;
float fCy = isOrthographic ? g_mScrProjection[1].w : g_mScrProjection[1].z;
return fLinDepth*float3( ((v2ScrPos.x-fCx)/fSx), ((v2ScrPos.y-fCy)/fSy), 1.0 );
bool useLeftHandVersion = true;
return fLinDepth*float3( -((v2ScrPos.x+fCx)/fSx), -((v2ScrPos.y+fCy)/fSy), 1.0 );
bool useLeftHandVersion = isOrthographic;
float s = useLeftHandVersion ? 1 : (-1);
float2 p = float2( (s*v2ScrPos.x-fCx)/fSx, (s*v2ScrPos.y-fCy)/fSy);
return float3(isOrthographic ? p.xy : (fLinDepth*p.xy), fLinDepth);
}
float GetOnePixDiagWorldDistAtDepthOne()

{
SFiniteLightBound lgtDat = g_data[lightsListLDS[l]];
if( !DoesSphereOverlapTile(V, halfTileSizeAtZDistOne, lgtDat.center.xyz, lgtDat.radius) )
if( !DoesSphereOverlapTile(V, halfTileSizeAtZDistOne, lgtDat.center.xyz, lgtDat.radius, g_isOrthographic!=0) )
lightsListLDS[l]=0xffffffff;
}

int i=iSwizzle + (2*(iSection&0x2)); // offset by 4 at section 2
vP0 = GetTileVertex(uint2(viTilLL.x, viTilUR.y), uint2(viTilUR.x, viTilLL.y), i, fTileFarPlane);
vE0 = iSection == 0 ? vP0 : (((iSwizzle & 0x2) == 0 ? 1.0f : (-1.0f)) * ((int)(iSwizzle & 0x1) == (iSwizzle >> 1) ? float3(1, 0, 0) : float3(0, 1, 0)));
#if USE_LEFT_HAND_CAMERA_SPACE
float3 edgeSectionZero = g_isOrthographic==0 ? vP0 : float3(0.0,0.0,1.0);
#else
float3 edgeSectionZero = g_isOrthographic==0 ? vP0 : float3(0.0,0.0,-1.0);
#endif
vE0 = iSection == 0 ? edgeSectionZero : (((iSwizzle & 0x2) == 0 ? 1.0f : (-1.0f)) * ((int)(iSwizzle & 0x1) == (iSwizzle >> 1) ? float3(1, 0, 0) : float3(0, 1, 0)));
}
void CullByExactEdgeTests(uint threadID, int iNrCoarseLights, uint2 viTilLL, uint2 viTilUR)

43
Assets/ScriptableRenderPipeline/HDRenderPipeline/Lighting/TilePass/lightlistbuild-clustered.compute


int g_iNrVisibLights;
float4x4 g_mInvScrProjection;
float4x4 g_mScrProjection;
uint g_isOrthographic;
int _EnvLightIndexShift;
float g_fClustScale;

groupshared uint lightOffsSph;
#endif
float GetLinearDepth(float zDptBufSpace) // 0 is near 1 is far
float GetLinearDepth(float zDptBufSpace) // 0 is near 1 is far
float3 vP = float3(0.0f,0.0f,zDptBufSpace);
float4 v4Pres = mul(g_mInvScrProjection, float4(vP,1.0));
return v4Pres.z / v4Pres.w;
// for perspective projection m22 is zero and m23 is +1/-1 (depends on left/right hand proj)
// however this function must also work for orthographic projection so we keep it like this.
float m22 = g_mInvScrProjection[2].z, m23 = g_mInvScrProjection[2].w;
float m32 = g_mInvScrProjection[3].z, m33 = g_mInvScrProjection[3].w;
return (m22*zDptBufSpace+m23) / (m32*zDptBufSpace+m33);
//float3 vP = float3(0.0f,0.0f,zDptBufSpace);
//float4 v4Pres = mul(g_mInvScrProjection, float4(vP,1.0));
//return v4Pres.z / v4Pres.w;
bool isOrthographic = g_isOrthographic!=0;
float fCx = g_mScrProjection[0].z;
float fCy = g_mScrProjection[1].z;
float fCx = isOrthographic ? g_mScrProjection[0].w : g_mScrProjection[0].z;
float fCy = isOrthographic ? g_mScrProjection[1].w : g_mScrProjection[1].z;
return fLinDepth*float3( ((v2ScrPos.x-fCx)/fSx), ((v2ScrPos.y-fCy)/fSy), 1.0 );
bool useLeftHandVersion = true;
return fLinDepth*float3( -((v2ScrPos.x+fCx)/fSx), -((v2ScrPos.y+fCy)/fSy), 1.0 );
bool useLeftHandVersion = isOrthographic;
float s = useLeftHandVersion ? 1 : (-1);
float2 p = float2( (s*v2ScrPos.x-fCx)/fSx, (s*v2ScrPos.y-fCy)/fSy);
return float3(isOrthographic ? p.xy : (fLinDepth*p.xy), fLinDepth);
}
float GetOnePixDiagWorldDistAtDepthOne()

{
SFiniteLightBound lgtDat = g_data[coarseList[l]];
if( !DoesSphereOverlapTile(V, halfTileSizeAtZDistOne, lgtDat.center.xyz, lgtDat.radius) )
if( !DoesSphereOverlapTile(V, halfTileSizeAtZDistOne, lgtDat.center.xyz, lgtDat.radius, g_isOrthographic!=0) )
coarseList[l]=0xffffffff;
}

int i=iSwizzle + (2*(iSection&0x2)); // offset by 4 at section 2
vP0 = GetTileVertex(uint2(viTilLL.x, viTilUR.y), uint2(viTilUR.x, viTilLL.y), i, fTileFarPlane);
vE0 = iSection==0 ? vP0 : (((iSwizzle&0x2)==0 ? 1.0f : (-1.0f))*((iSwizzle&0x1)==(iSwizzle>>1) ? float3(1,0,0) : float3(0,1,0)));
#if USE_LEFT_HAND_CAMERA_SPACE
float3 edgeSectionZero = g_isOrthographic==0 ? vP0 : float3(0.0,0.0,1.0);
#else
float3 edgeSectionZero = g_isOrthographic==0 ? vP0 : float3(0.0,0.0,-1.0);
#endif
vE0 = iSection == 0 ? edgeSectionZero : (((iSwizzle & 0x2) == 0 ? 1.0f : (-1.0f)) * ((int)(iSwizzle & 0x1) == (iSwizzle >> 1) ? float3(1, 0, 0) : float3(0, 1, 0)));
}
int CullByExactEdgeTests(uint threadID, int iNrCoarseLights, uint2 viTilLL, uint2 viTilUR, float fTileFarPlane)

33
Assets/ScriptableRenderPipeline/HDRenderPipeline/Lighting/TilePass/lightlistbuild.compute


uniform uint2 g_viDimensions;
uniform float4x4 g_mInvScrProjection;
uniform float4x4 g_mScrProjection;
uniform uint g_isOrthographic;
uniform int _EnvLightIndexShift;
uniform uint g_BaseFeatureFlags;

// return v4Pres.z / v4Pres.w;
//}
float GetLinearDepth(float zDptBufSpace) // 0 is near 1 is far
float GetLinearDepth(float zDptBufSpace) // 0 is near 1 is far
float3 vP = float3(0.0f,0.0f,zDptBufSpace);
float4 v4Pres = mul(g_mInvScrProjection, float4(vP,1.0));
return v4Pres.z / v4Pres.w;
}
// for perspective projection m22 is zero and m23 is +1/-1 (depends on left/right hand proj)
// however this function must also work for orthographic projection so we keep it like this.
float m22 = g_mInvScrProjection[2].z, m23 = g_mInvScrProjection[2].w;
float m32 = g_mInvScrProjection[3].z, m33 = g_mInvScrProjection[3].w;
return (m22*zDptBufSpace+m23) / (m32*zDptBufSpace+m33);
//float3 vP = float3(0.0f,0.0f,zDptBufSpace);
//float4 v4Pres = mul(g_mInvScrProjection, float4(vP,1.0));
//return v4Pres.z / v4Pres.w;
}
bool isOrthographic = g_isOrthographic!=0;
float fCx = g_mScrProjection[0].z;
float fCy = g_mScrProjection[1].z;
float fCx = isOrthographic ? g_mScrProjection[0].w : g_mScrProjection[0].z;
float fCy = isOrthographic ? g_mScrProjection[1].w : g_mScrProjection[1].z;
return fLinDepth*float3( ((v2ScrPos.x-fCx)/fSx), ((v2ScrPos.y-fCy)/fSy), 1.0 );
bool useLeftHandVersion = true;
return fLinDepth*float3( -((v2ScrPos.x+fCx)/fSx), -((v2ScrPos.y+fCy)/fSy), 1.0 );
bool useLeftHandVersion = isOrthographic;
float s = useLeftHandVersion ? 1 : (-1);
float2 p = float2( (s*v2ScrPos.x-fCx)/fSx, (s*v2ScrPos.y-fCy)/fSy);
return float3(isOrthographic ? p.xy : (fLinDepth*p.xy), fLinDepth);
}
float GetOnePixDiagWorldDistAtDepthOne()

{
SFiniteLightBound lightData = g_data[prunedList[l]];
if( DoesSphereOverlapTile(V, halfTileSizeAtZDistOne, lightData.center.xyz, lightData.radius) )
if( DoesSphereOverlapTile(V, halfTileSizeAtZDistOne, lightData.center.xyz, lightData.radius, g_isOrthographic!=0) )
{
unsigned int uIndex;
InterlockedAdd(lightOffsSph, 1, uIndex);

10
Assets/ScriptableRenderPipeline/HDRenderPipeline/Lighting/TilePass/scrbound.compute


#include "../../../ShaderLibrary/common.hlsl"
#include "TilePass.cs.hlsl"
uniform int g_isOrthographic;
uniform int g_iNrVisibLights;
uniform float4x4 g_mInvProjection;
uniform float4x4 g_mProjection;

else
{
//if((center.z+radius)<0.0)
if( length(center)>radius)
if(g_isOrthographic==0 && length(center)>radius)
{
float2 vMi, vMa;
bool2 bMi, bMa;

vMax.xy = bMa ? min(vMax.xy, vMa) : vMax.xy;
}
else if(g_isOrthographic!=0)
{
float2 vMi = mul(g_mProjection, float4(center.xyz-radius,1)).xy; // no division needed for ortho
float2 vMa = mul(g_mProjection, float4(center.xyz+radius,1)).xy; // no division needed for ortho
vMin.xy = max(vMin.xy, vMi);
vMax.xy = min(vMax.xy, vMa);
}
#if USE_LEFT_HAND_CAMERA_SPACE

2
Assets/ScriptableRenderPipeline/HDRenderPipeline/Material/Builtin/BuiltinData.hlsl


result = (builtinData.emissiveColor / builtinData.emissiveIntensity); needLinearToSRGB = true;
break;
case DEBUGVIEW_BUILTIN_BUILTINDATA_DEPTH_OFFSET:
result = builtinData.depthOffset.xxx * 10.0; // * 10 assuming 1 unity unity is 1m
result = builtinData.depthOffset.xxx * 10.0; // * 10 assuming 1 unity is 1m
break;
}
}

63
Assets/ScriptableRenderPipeline/HDRenderPipeline/Material/Lit/Editor/LitUI.cs


using System;
using System;
using UnityEngine;
using UnityEngine.Rendering;
using UnityEngine.Experimental.Rendering;

public static GUIContent subsurfaceRadiusMapText = new GUIContent("Subsurface radius map (R)", "Determines the range of the blur.");
public static GUIContent thicknessText = new GUIContent("Thickness", "If subsurface scattering is enabled, low values allow some light to be transmitted through the object.");
public static GUIContent thicknessMapText = new GUIContent("Thickness map (R)", "If subsurface scattering is enabled, low values allow some light to be transmitted through the object.");
// Clear Coat
public static GUIContent coatCoverageText = new GUIContent("Coat Coverage", "Percentage of clear coat coverage");
public static GUIContent coatIORText = new GUIContent("Coat IOR", "IOR of clear coat, value is [0..1] + 1.0. i.e 0.5 is IOR 1.5");
// Specular color
public static GUIContent specularColorText = new GUIContent("Specular Color", "Specular color (RGB)");

protected MaterialProperty thicknessMap = null;
protected const string kThicknessMap = "_ThicknessMap";
protected MaterialProperty coatCoverage = null;
protected const string kCoatCoverage = "_CoatCoverage";
protected MaterialProperty coatIOR = null;
protected const string kCoatIOR = "_CoatIOR";
protected MaterialProperty emissiveColorMode = null;
protected const string kEmissiveColorMode = "_EmissiveColorMode";
protected MaterialProperty emissiveColor = null;

subsurfaceRadiusMap = FindProperty(kSubsurfaceRadiusMap, props);
thickness = FindProperty(kThickness, props);
thicknessMap = FindProperty(kThicknessMap, props);
// clear coat
coatCoverage = FindProperty(kCoatCoverage, props);
coatIOR = FindProperty(kCoatIOR, props);
}
protected void ShaderSSSInputGUI(Material material)

m_MaterialEditor.TexturePropertySingleLine(Styles.thicknessMapText, thicknessMap);
}
protected void ShaderClearCoatInputGUI()
{
m_MaterialEditor.ShaderProperty(coatCoverage, Styles.coatCoverageText);
m_MaterialEditor.ShaderProperty(coatIOR, Styles.coatIORText);
}
protected void ShaderAnisoInputGUI()
{
if ((NormalMapSpace)normalMapSpace[0].floatValue == NormalMapSpace.TangentSpace)

protected void DoLayerGUI(Material material, bool useEmissiveMask, int layerIndex)
{
EditorGUILayout.LabelField(Styles.InputsText, EditorStyles.boldLabel);
EditorGUI.indentLevel++;
m_MaterialEditor.TexturePropertySingleLine(Styles.baseColorText, baseColorMap[layerIndex], baseColor[layerIndex]);

if(materialID != null)
{
switch ((Lit.MaterialId)materialID.floatValue)
{
case Lit.MaterialId.LitSSS:
ShaderSSSInputGUI(material);
break;
case Lit.MaterialId.LitStandard:
// Nothing
break;
case Lit.MaterialId.LitAniso:
ShaderAnisoInputGUI();
break;
case Lit.MaterialId.LitSpecular:
m_MaterialEditor.TexturePropertySingleLine(Styles.specularColorText, specularColorMap, specularColor);
break;
default:
Debug.Assert(false, "Encountered an unsupported MaterialID.");
break;
}
switch ((Lit.MaterialId)materialID.floatValue)
{
case Lit.MaterialId.LitSSS:
ShaderSSSInputGUI(material);
break;
case Lit.MaterialId.LitStandard:
// Nothing
break;
case Lit.MaterialId.LitAniso:
ShaderAnisoInputGUI();
break;
case Lit.MaterialId.LitSpecular:
m_MaterialEditor.TexturePropertySingleLine(Styles.specularColorText, specularColorMap, specularColor);
break;
case Lit.MaterialId.LitClearCoat:
ShaderClearCoatInputGUI();
break;
default:
Debug.Assert(false, "Encountered an unsupported MaterialID.");
break;
}
}
EditorGUILayout.Space();

//SetKeyword(material, "_MATID_STANDARD", materialId == Lit.MaterialId.LitStandard); // See comment in Lit.shader, it is the default, we don't define it
SetKeyword(material, "_MATID_ANISO", materialId == Lit.MaterialId.LitAniso);
SetKeyword(material, "_MATID_SPECULAR", materialId == Lit.MaterialId.LitSpecular);
SetKeyword(material, "_MATID_CLEARCOAT", materialId == Lit.MaterialId.LitClearCoat);
}
}
} // namespace UnityEditor

53
Assets/ScriptableRenderPipeline/HDRenderPipeline/Material/Lit/Lit.cs


[GenerateHLSL(PackingRules.Exact)]
public enum MaterialId
{
LitSSS = 0,
LitStandard = 1,
LitUnused0 = 2,
LitUnused1 = 3,
LitSSS = 0,
LitStandard = 1,
LitClearCoat = 2,
LitUnused = 3,
LitAniso = 4,
LitAniso = 4,
LitSpecular = 5,
// For material classification we will use LitStandard too
LitSpecular = 5,
};
// If change, be sure it match what is done in Lit.hlsl: MaterialFeatureFlagsFromGBuffer

{
LitSSS = 1 << MaterialId.LitSSS,
LitStandard = 1 << MaterialId.LitStandard,
LitUnused0 = 1 << MaterialId.LitUnused0,
LitUnused1 = 1 << MaterialId.LitUnused1,
LitAniso = 1 << MaterialId.LitAniso,
LitSSS = 1 << MaterialId.LitSSS,
LitStandard = 1 << MaterialId.LitStandard,
LitClearCoat = 1 << MaterialId.LitClearCoat,
LitUnused = 1 << MaterialId.LitUnused,
LitAniso = 1 << MaterialId.LitAniso,
public enum SpecularValue
public class StandardDefinitions
// Value are defined in the tab name convertSpecularToValue in lit.hlsl
Water = 0, // 0.02 Water or ice
Regular = 1, // 0.04 regular dieletric
Gemstone = 2, // 0.20
SpecularColor = 3 // Special case: use specular color
public static int s_GBufferLitStandardRegularId = 0;
public static int s_GBufferLitStandardSpecularColorId = 1;
public static int s_GBufferLitStandardAnisotropicId = 2;
public static float s_DefaultSpecularValue = 0.04f;
public static float s_SkinSpecularValue = 0.028f;
}
//-----------------------------------------------------------------------------

[SurfaceDataAttributes("Smoothness")]
public float perceptualSmoothness;
[SurfaceDataAttributes("Material ID")]
public MaterialId materialId;
public MaterialId materialId; // matId above 3 are store in standard material gbuffer (2bit reserved)
[SurfaceDataAttributes("Ambient Occlusion")]
public float ambientOcclusion;

public float anisotropy; // anisotropic ratio(0->no isotropic; 1->full anisotropy in tangent direction)
[SurfaceDataAttributes("Metallic")]
public float metallic;
[SurfaceDataAttributes("Specular")]
public SpecularValue specular;
// SSS
[SurfaceDataAttributes("Subsurface Radius")]

// SpecColor
[SurfaceDataAttributes("Specular Color", false, true)]
public Vector3 specularColor;
// ClearCoat
[SurfaceDataAttributes("Coat Normal", true)]
public Vector3 coatNormalWS;
[SurfaceDataAttributes("Coat coverage")]
public float coatCoverage;
[SurfaceDataAttributes("Coat IOR")]
public float coatIOR; // Value is [0..1] for artists but the UI will display the value between [1..2]
};
//-----------------------------------------------------------------------------

// SpecColor
// fold into fresnel0
// ClearCoat
public Vector3 coatNormalWS;
public float coatCoverage;
public float coatIOR; // CoatIOR is in range[1..2] it is surfaceData + 1
};
//-----------------------------------------------------------------------------

62
Assets/ScriptableRenderPipeline/HDRenderPipeline/Material/Lit/Lit.cs.hlsl


//
#define MATERIALID_LIT_SSS (0)
#define MATERIALID_LIT_STANDARD (1)
#define MATERIALID_LIT_UNUSED0 (2)
#define MATERIALID_LIT_UNUSED1 (3)
#define MATERIALID_LIT_CLEAR_COAT (2)
#define MATERIALID_LIT_UNUSED (3)
#define MATERIALID_LIT_ANISO (4)
#define MATERIALID_LIT_SPECULAR (5)

#define MATERIALFEATUREFLAGS_LIT_SSS (1)
#define MATERIALFEATUREFLAGS_LIT_STANDARD (2)
#define MATERIALFEATUREFLAGS_LIT_UNUSED0 (4)
#define MATERIALFEATUREFLAGS_LIT_UNUSED1 (8)
#define MATERIALFEATUREFLAGS_LIT_CLEAR_COAT (4)
#define MATERIALFEATUREFLAGS_LIT_UNUSED (8)
// UnityEngine.Experimental.Rendering.HDPipeline.Lit+SpecularValue: static fields
// UnityEngine.Experimental.Rendering.HDPipeline.Lit+StandardDefinitions: static fields
#define SPECULARVALUE_WATER (0)
#define SPECULARVALUE_REGULAR (1)
#define SPECULARVALUE_GEMSTONE (2)
#define SPECULARVALUE_SPECULAR_COLOR (3)
#define GBUFFER_LIT_STANDARD_REGULAR_ID (0)
#define GBUFFER_LIT_STANDARD_SPECULAR_COLOR_ID (1)
#define GBUFFER_LIT_STANDARD_ANISOTROPIC_ID (2)
#define DEFAULT_SPECULAR_VALUE (0.04)
#define SKIN_SPECULAR_VALUE (0.028)
//
// UnityEngine.Experimental.Rendering.HDPipeline.Lit+SurfaceData: static fields

#define DEBUGVIEW_LIT_SURFACEDATA_TANGENT_WS (1006)
#define DEBUGVIEW_LIT_SURFACEDATA_ANISOTROPY (1007)
#define DEBUGVIEW_LIT_SURFACEDATA_METALLIC (1008)
#define DEBUGVIEW_LIT_SURFACEDATA_SPECULAR (1009)
#define DEBUGVIEW_LIT_SURFACEDATA_SUBSURFACE_RADIUS (1010)
#define DEBUGVIEW_LIT_SURFACEDATA_THICKNESS (1011)
#define DEBUGVIEW_LIT_SURFACEDATA_SUBSURFACE_PROFILE (1012)
#define DEBUGVIEW_LIT_SURFACEDATA_SPECULAR_COLOR (1013)
#define DEBUGVIEW_LIT_SURFACEDATA_SUBSURFACE_RADIUS (1009)
#define DEBUGVIEW_LIT_SURFACEDATA_THICKNESS (1010)
#define DEBUGVIEW_LIT_SURFACEDATA_SUBSURFACE_PROFILE (1011)
#define DEBUGVIEW_LIT_SURFACEDATA_SPECULAR_COLOR (1012)
#define DEBUGVIEW_LIT_SURFACEDATA_COAT_NORMAL_WS (1013)
#define DEBUGVIEW_LIT_SURFACEDATA_COAT_COVERAGE (1014)
#define DEBUGVIEW_LIT_SURFACEDATA_COAT_IOR (1015)
//
// UnityEngine.Experimental.Rendering.HDPipeline.Lit+TransmissionType: static fields

#define DEBUGVIEW_LIT_BSDFDATA_ENABLE_TRANSMISSION (1045)
#define DEBUGVIEW_LIT_BSDFDATA_USE_THIN_OBJECT_MODE (1046)
#define DEBUGVIEW_LIT_BSDFDATA_TRANSMITTANCE (1047)
#define DEBUGVIEW_LIT_BSDFDATA_COAT_NORMAL_WS (1048)
#define DEBUGVIEW_LIT_BSDFDATA_COAT_COVERAGE (1049)
#define DEBUGVIEW_LIT_BSDFDATA_COAT_IOR (1050)
//
// UnityEngine.Experimental.Rendering.HDPipeline.Lit+GBufferMaterial: static fields

float3 tangentWS;
float anisotropy;
float metallic;
int specular;
float3 coatNormalWS;
float coatCoverage;
float coatIOR;
};
// Generated from UnityEngine.Experimental.Rendering.HDPipeline.Lit+BSDFData

bool enableTransmission;
bool useThinObjectMode;
float3 transmittance;
float3 coatNormalWS;
float coatCoverage;
float coatIOR;
};
//

case DEBUGVIEW_LIT_SURFACEDATA_METALLIC:
result = surfacedata.metallic.xxx;
break;
case DEBUGVIEW_LIT_SURFACEDATA_SPECULAR:
result = GetIndexColor(surfacedata.specular);
break;
case DEBUGVIEW_LIT_SURFACEDATA_SUBSURFACE_RADIUS:
result = surfacedata.subsurfaceRadius.xxx;
break;

result = surfacedata.specularColor;
needLinearToSRGB = true;
break;
case DEBUGVIEW_LIT_SURFACEDATA_COAT_NORMAL_WS:
result = surfacedata.coatNormalWS * 0.5 + 0.5;
break;
case DEBUGVIEW_LIT_SURFACEDATA_COAT_COVERAGE:
result = surfacedata.coatCoverage.xxx;
break;
case DEBUGVIEW_LIT_SURFACEDATA_COAT_IOR:
result = surfacedata.coatIOR.xxx;
break;
}
}

break;
case DEBUGVIEW_LIT_BSDFDATA_TRANSMITTANCE:
result = bsdfdata.transmittance;
break;
case DEBUGVIEW_LIT_BSDFDATA_COAT_NORMAL_WS:
result = bsdfdata.coatNormalWS;
break;
case DEBUGVIEW_LIT_BSDFDATA_COAT_COVERAGE:
result = bsdfdata.coatCoverage.xxx;
break;
case DEBUGVIEW_LIT_BSDFDATA_COAT_IOR:
result = bsdfdata.coatIOR.xxx;
break;
}
}

791
Assets/ScriptableRenderPipeline/HDRenderPipeline/Material/Lit/Lit.hlsl
文件差异内容过多而无法显示
查看文件

7
Assets/ScriptableRenderPipeline/HDRenderPipeline/Material/Lit/Lit.shader


_Thickness("Thickness", Range(0.0, 1.0)) = 1.0
_ThicknessMap("Thickness Map", 2D) = "white" {}
_CoatCoverage("Coat Coverage", Range(0.0, 1.0)) = 1.0
_CoatIOR("Coat IOR", Range(0.0, 1.0)) = 0.5
_SpecularColor("SpecularColor", Color) = (1, 1, 1, 1)
_SpecularColorMap("SpecularColorMap", 2D) = "white" {}

[Enum(TangentSpace, 0, ObjectSpace, 1)] _NormalMapSpace("NormalMap space", Float) = 0
// Note: 2 and 3 are currently unused
[Enum(Subsurface Scattering, 0, Standard, 1, Anisotropy, 4, Specular Color, 5)] _MaterialID("MaterialId", Int) = 1 // MaterialId.RegularLighting
[Enum(Subsurface Scattering, 0, Standard, 1, ClearCoat, 2, Anisotropy, 4, Specular Color, 5)] _MaterialID("MaterialId", Int) = 1 // MaterialId.RegularLighting
[ToggleOff] _EnablePerPixelDisplacement("Enable per pixel displacement", Float) = 0.0
_PPDMinSamples("Min sample for POM", Range(1.0, 64.0)) = 5

// MaterialId are used as shader feature to allow compiler to optimize properly
// Note _MATID_STANDARD is not define as there is always the default case "_". We assign default as _MATID_STANDARD, so we never test _MATID_STANDARD
#pragma shader_feature _ _MATID_SSS _MATID_ANISO _MATID_SPECULAR
#pragma shader_feature _ _MATID_SSS _MATID_ANISO _MATID_SPECULAR _MATID_CLEARCOAT
#pragma multi_compile LIGHTMAP_OFF LIGHTMAP_ON
#pragma multi_compile DIRLIGHTMAP_OFF DIRLIGHTMAP_COMBINED

12
Assets/ScriptableRenderPipeline/HDRenderPipeline/Material/Lit/LitData.hlsl


float height; // final height processed
float NdotV;
// planar/triplanar
float2 uvXZ;
float2 uvXY;
float2 uvZY;
GetTriplanarCoordinate(V, uvXZ, uvXY, uvZY);
// We need to calculate the texture space direction. It depends on the mapping.
if (isTriplanar)
{

// Note: The TBN is not normalize as it is based on mikkt. We should normalize it, but POM is always use on simple enough surfarce that mean it is not required (save 2 normalize). Tag: SURFACE_GRADIENT
// For planar the view vector is the world view vector (unless we want to support object triplanar ? and in this case used TransformWorldToObject)
// TODO: do we support object triplanar ? See ComputeLayerTexCoord
float3 viewDirTS = isPlanar ? float3(-V.xz, V.y) : TransformWorldToTangent(V, worldToTangent);
float3 viewDirTS = isPlanar ? float3(uvXZ, V.y) : TransformWorldToTangent(V, worldToTangent);
NdotV = viewDirTS.z;
int numSteps = (int)lerp(_PPDMaxSamples, _PPDMinSamples, viewDirTS.z);

// Init other parameters
surfaceData.materialId = 1; // MaterialId.LitStandard
surfaceData.anisotropy = 0;
surfaceData.specular = 0.04;
surfaceData.coatNormalWS = float3(0.0, 0.0, 0.0);
surfaceData.coatCoverage = 0.0f;
surfaceData.coatIOR = 0.5;
GetNormalAndTangentWS(input, V, normalTS, surfaceData.normalWS, surfaceData.tangentWS);
// Done one time for all layered - cumulate with spec occ alpha for now

24
Assets/ScriptableRenderPipeline/HDRenderPipeline/Material/Lit/LitDataInternal.hlsl


#elif defined(_MATID_ANISO)
surfaceData.materialId = MATERIALID_LIT_ANISO;
#elif defined(_MATID_SPECULAR)
surfaceData.materialId = MATERIALID_LIT_STANDARD; // Specular is not a different BRDF, it is just different parametrization, do'nt do a separate matId for it
surfaceData.materialId = MATERIALID_LIT_SPECULAR;
#elif defined(_MATID_CLEARCOAT)
surfaceData.materialId = MATERIALID_LIT_CLEAR_COAT;
#else // Default
surfaceData.materialId = MATERIALID_LIT_STANDARD;
#endif

#endif
surfaceData.anisotropy *= ADD_IDX(_Anisotropy);
// This surfaceData.specular must be static to allow the compiler to optimize the code when converting / encoding the values
#ifdef _MATID_SPECULAR
surfaceData.specular = SPECULARVALUE_SPECULAR_COLOR;
#else
surfaceData.specular = SPECULARVALUE_REGULAR;
#endif
surfaceData.subsurfaceProfile = _SubsurfaceProfile;
surfaceData.subsurfaceRadius = _SubsurfaceRadius;
surfaceData.thickness = _Thickness;

surfaceData.specularColor *= SAMPLE_UVMAPPING_TEXTURE2D(_SpecularColorMap, sampler_SpecularColorMap, layerTexCoord.base).rgb;
#endif
surfaceData.coatNormalWS = input.worldToTangent[2].xyz; // Assign vertex normal
surfaceData.coatCoverage = _CoatCoverage;
surfaceData.coatIOR = _CoatIOR;
surfaceData.materialId = 1; // MaterialId.LitStandard
surfaceData.materialId = MATERIALID_LIT_STANDARD;
// Note: any parameters set here must also be set in GetSurfaceAndBuiltinData() layer version
surfaceData.specular = 0.0;
surfaceData.coatNormalWS = float3(0.0, 0.0, 0.0);
surfaceData.coatCoverage = 0.0f;
surfaceData.coatIOR = 0.5;
#endif // #if !defined(LAYERED_LIT_SHADER)

3
Assets/ScriptableRenderPipeline/HDRenderPipeline/Material/Lit/LitProperties.hlsl


float _SubsurfaceRadius;
float _Thickness;
float _CoatCoverage;
float _CoatIOR;
float4 _SpecularColor;
float _TexWorldScale;

7
Assets/ScriptableRenderPipeline/HDRenderPipeline/Material/Lit/LitTessellation.shader


_Thickness("Thickness", Range(0.0, 1.0)) = 1.0
_ThicknessMap("Thickness Map", 2D) = "white" {}
_CoatCoverage("Coat Coverage", Range(0.0, 1.0)) = 1.0
_CoatIOR("Coat IOR", Range(0.0, 1.0)) = 0.5
_SpecularColor("SpecularColor", Color) = (1, 1, 1, 1)
_SpecularColorMap("SpecularColorMap", 2D) = "white" {}

[Enum(TangentSpace, 0, ObjectSpace, 1)] _NormalMapSpace("NormalMap space", Float) = 0
// Note: 2 and 3 are currently unused
[Enum(Subsurface Scattering, 0, Standard, 1, Anisotropy, 4, Specular Color, 5)] _MaterialID("MaterialId", Int) = 1 // MaterialId.RegularLighting
[Enum(Subsurface Scattering, 0, Standard, 1, ClearCoat, 2, Anisotropy, 4, Specular Color, 5)] _MaterialID("MaterialId", Int) = 1 // MaterialId.RegularLighting
[ToggleOff] _EnablePerPixelDisplacement("Enable per pixel displacement", Float) = 0.0
_PPDMinSamples("Min sample for POM", Range(1.0, 64.0)) = 5

// MaterialId are used as shader feature to allow compiler to optimize properly
// Note _MATID_STANDARD is not define as there is always the default case "_". We assign default as _MATID_STANDARD, so we never test _MATID_STANDARD
#pragma shader_feature _ _MATID_SSS _MATID_ANISO _MATID_SPECULAR
#pragma shader_feature _ _MATID_SSS _MATID_ANISO _MATID_SPECULAR _MATID_CLEARCOAT
#pragma multi_compile LIGHTMAP_OFF LIGHTMAP_ON
#pragma multi_compile DIRLIGHTMAP_OFF DIRLIGHTMAP_COMBINED

27
Assets/ScriptableRenderPipeline/HDRenderPipeline/Material/Lit/Resources/SubsurfaceScattering.compute


float4 _WorldScales[SSS_N_PROFILES]; // Size of the world unit in meters (only the X component is used)
float4 _FilterKernels[SSS_N_PROFILES][SSS_N_SAMPLES_NEAR_FIELD]; // XY = near field, ZW = far field; 0 = radius, 1 = reciprocal of the PDF
DECLARE_GBUFFER_TEXTURE(_GBufferTexture); // Contains the albedo and SSS parameters
TEXTURE2D(_DepthTexture); // Z-buffer
TEXTURE2D(_StencilTexture); // DXGI_FORMAT_R8_UINT is not supported by Unity
TEXTURE2D(_HTile); // DXGI_FORMAT_R8_UINT is not supported by Unity
TEXTURE2D(_IrradianceSource); // Includes transmitted light
// Contains the HDR color for non-SSS materials.
// In case of SSS, it only contains the specular lighting, which we additively blend with the SSS lighting.
RW_TEXTURE2D(float4, _CameraColorTexture);
DECLARE_GBUFFER_TEXTURE(_GBufferTexture); // Contains the albedo and SSS parameters
TEXTURE2D(_DepthTexture); // Z-buffer
TEXTURE2D(_StencilTexture); // DXGI_FORMAT_R8_UINT is not supported by Unity
TEXTURE2D(_HTile); // DXGI_FORMAT_R8_UINT is not supported by Unity
TEXTURE2D(_IrradianceSource); // Includes transmitted light
RW_TEXTURE2D(float4, _CameraFilteringTexture); // Target texture
//--------------------------------------------------------------------------------------------------
// Implementation

[branch] if (distScale == 0 || maxDistInPixels < 1)
{
#if SSS_DEBUG_LOD
_CameraColorTexture[pixelCoord] = float4(0, 0, 1, 1);
_CameraFilteringTexture[pixelCoord] = float4(0, 0, 1, 1);
_CameraColorTexture[pixelCoord] += float4(bsdfData.diffuseColor * centerIrradiance, 1);
_CameraFilteringTexture[pixelCoord] = float4(bsdfData.diffuseColor * centerIrradiance, 1);
#endif
return;
}

// We expect the view-space normal to be front-facing.
if (normalVS.z >= 0)
{
_CameraColorTexture[pixelCoord] = float4(1, 1, 1, 1);
_CameraFilteringTexture[pixelCoord] = float4(1, 1, 1, 1);
return;
}
#endif

#if SSS_DEBUG_LOD
_CameraColorTexture[pixelCoord] = useNearFieldKernel ? float4(1, 0, 0, 1) : float4(0.5, 0.5, 0, 1);
_CameraFilteringTexture[pixelCoord] = useNearFieldKernel ? float4(1, 0, 0, 1) : float4(0.5, 0.5, 0, 1);
return;
#endif

[branch] if (!useNearFieldKernel)
{
_CameraColorTexture[pixelCoord] += float4(bsdfData.diffuseColor * totalIrradiance / totalWeight, 1);
_CameraFilteringTexture[pixelCoord] = float4(bsdfData.diffuseColor * totalIrradiance / totalWeight, 1);
return;
}

totalIrradiance, totalWeight);
}
_CameraColorTexture[pixelCoord] += float4(bsdfData.diffuseColor * totalIrradiance / totalWeight, 1);
_CameraFilteringTexture[pixelCoord] = float4(bsdfData.diffuseColor * totalIrradiance / totalWeight, 1);
}

122
Assets/ScriptableRenderPipeline/HDRenderPipeline/Material/Lit/SSSProfile/FoliageSSSProfile.asset


m_Script: {fileID: 11500000, guid: a6e7465350bf0d248b4799d98e18cd24, type: 3}
m_Name: FoliageSSSProfile
m_EditorClassIdentifier:
scatteringDistance: {r: 0.75735295, g: 0.7008203, b: 0.24502596, a: 1}
transmissionTint: {r: 1, g: 1, b: 1, a: 1}
texturingMode: 0
transmissionMode: 1
thicknessRemap: {x: 0, y: 0.2873168}
worldScale: 1
settingsIndex: 1
m_ShapeParam: {x: 1.3203883, y: 1.4268992, z: 4.0812}
m_MaxRadius: 7.839332
m_FilterKernelNearField:
- {x: 0.013854082, y: 1.5332626}
- {x: 0.04207757, y: 1.5715919}
- {x: 0.07101321, y: 1.611625}
- {x: 0.10069309, y: 1.653469}
- {x: 0.13115102, y: 1.6972395}
- {x: 0.16242325, y: 1.743061}
- {x: 0.19454831, y: 1.791069}
- {x: 0.22756726, y: 1.8414105}
- {x: 0.2615238, y: 1.8942443}
- {x: 0.29646498, y: 1.9497447}
- {x: 0.33244094, y: 2.0081}
- {x: 0.36950532, y: 2.069517}
- {x: 0.40771604, y: 2.1342213}
- {x: 0.44713485, y: 2.2024598}
- {x: 0.48782852, y: 2.274504}
- {x: 0.5298689, y: 2.3506513}
- {x: 0.5733336, y: 2.4312308}
- {x: 0.6183063, y: 2.5166042}
- {x: 0.66487795, y: 2.6071734}
- {x: 0.71314675, y: 2.703383}
- {x: 0.76321995, y: 2.805728}
- {x: 0.81521386, y: 2.9147599}
- {x: 0.86925554, y: 3.031096}
- {x: 0.92548406, y: 3.1554284}
- {x: 0.9840515, y: 3.288537}
- {x: 1.0451256, y: 3.431302}
- {x: 1.1088905, y: 3.5847225}
- {x: 1.1755506, y: 3.749937}
- {x: 1.2453312, y: 3.9282467}
- {x: 1.3184844, y: 4.1211514}
- {x: 1.3952904, y: 4.3303804}
- {x: 1.4760638, y: 4.5579505}
- {x: 1.5611593, y: 4.8062224}
- {x: 1.650978, y: 5.0779796}
- {x: 1.7459753, y: 5.3765287}
- {x: 1.8466738, y: 5.7058387}
- {x: 1.9536757, y: 6.070716}
- {x: 2.0676782, y: 6.4770336}
- {x: 2.189499, y: 6.9320674}
- {x: 2.3201032, y: 7.4449396}
- {x: 2.4606442, y: 8.027264}
- {x: 2.612515, y: 8.694056}
- {x: 2.777422, y: 9.465107}
- {x: 2.9574924, y: 10.367077}
- {x: 3.1554203, y: 11.436736}
- {x: 3.3747015, y: 12.726331}
- {x: 3.6199868, y: 14.312694}
- {x: 3.897662, y: 16.313623}
- {x: 4.2168484, y: 18.919455}
- {x: 4.5912457, y: 22.459015}
- {x: 5.042839, y: 27.553566}
- {x: 5.610336, y: 35.534466}
- {x: 6.3721733, y: 49.863647}
- {x: 7.53103, y: 83.235695}
- {x: 10.026244, y: 249.90146}
m_FilterKernelFarField:
- {x: 0.036647703, y: 1.5641627}
- {x: 0.113649175, y: 1.671985}
- {x: 0.19610003, y: 1.7934121}
- {x: 0.28470552, y: 1.9309369}
- {x: 0.38030306, y: 2.0876582}
- {x: 0.48389605, y: 2.2674706}
- {x: 0.5966971, y: 2.4753277}
- {x: 0.72018707, y: 2.717616}
- {x: 0.85619545, y: 3.0026984}
- {x: 1.0070126, y: 3.3417335}
- {x: 1.1755506, y: 3.749937}
- {x: 1.3655809, y: 4.248627}
- {x: 1.5821002, y: 4.868682}
- {x: 1.8319175, y: 5.6567397}
- {x: 2.1246579, y: 6.6871305}
- {x: 2.4745958, y: 8.086858}
- {x: 2.9043517, y: 10.094101}
- {x: 3.4533012, y: 13.217383}
- {x: 4.20053, y: 18.777578}
- {x: 5.349281, y: 31.61934}
- {x: 7.839332, y: 95.36225}
texturingMode: 0
enableTransmission: 1
enableThinObject: 1
tintColor: {r: 1, g: 1, b: 1, a: 1}
thicknessRemap: {x: 0, y: 0.2873168}
settingsIndex: 0
m_FilterKernel:
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: -0.00000001629312}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: -0.034422863}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: -0.07085508}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: -0.112142384}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: -0.16452742}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: -0.25364923}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: 0.03442289}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: 0.07085508}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: 0.11214242}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: 0.16452742}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: 0.2536493}
m_HalfRcpVariances:
- {x: 49.999992, y: 49.999992, z: 49.999992}
- {x: 12.499998, y: 12.499998, z: 12.499998}
m_HalfRcpWeightedVariances: {x: 22.222221, y: 22.222221, z: 22.222221, w: 22.222221}
m_HalfRcpWeightedVariances: {x: 2.4691355, y: 2.4691355, z: 2.4691355, w: 2.4691355}
m_FilterKernelBasic:
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: -0.000000048879357}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: -0.11381993}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: -0.23580086}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: -0.37865555}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: -0.57677805}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: -1.3907351}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: 0.11382001}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: 0.23580086}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: 0.37865555}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: 0.57677805}
- {x: 0.09090909, y: 0.09090909, z: 0.09090909, w: 1.3907368}

4
Assets/ScriptableRenderPipeline/HDRenderPipeline/Material/Lit/SSSProfile/SkinSSSProfile.asset


m_EditorClassIdentifier:
scatteringDistance: {r: 0.758, g: 0.321, b: 0.201, a: 1}
transmissionTint: {r: 0.7568628, g: 0.32156864, b: 0.20000002, a: 1}
texturingMode: 0
texturingMode: 1
m_MaxRadius: 10.03481
m_MaxRadius: 7.84603
m_FilterKernelNearField:
- {x: 0.013865918, y: 1.5345725}
- {x: 0.04211352, y: 1.5729346}

88
Assets/ScriptableRenderPipeline/HDRenderPipeline/Material/Lit/SubsurfaceScatteringProfile.cs


m_FilterKernelNearField[i].y = 1.0f / KernelPdf(r, s);
}
m_MaxRadius = m_FilterKernelNearField[SssConstants.SSS_N_SAMPLES_NEAR_FIELD - 1].x;
// Importance sample the far field kernel.
for (int i = 0, n = SssConstants.SSS_N_SAMPLES_FAR_FIELD; i < n; i++)
{

m_FilterKernelFarField[i].x = r;
m_FilterKernelFarField[i].y = 1.0f / KernelPdf(r, s);
}
m_MaxRadius = m_FilterKernelFarField[SssConstants.SSS_N_SAMPLES_FAR_FIELD - 1].x;
// Old SSS Model >>>
UpdateKernelAndVarianceData();

public int numProfiles; // Excluding the neutral profile
public SubsurfaceScatteringProfile[] profiles;
// Below are the cached values. TODO: uncomment when SSS profile asset serialization is fixed.
/*[NonSerialized]*/ public int texturingModeFlags; // 1 bit/profile; 0 = PreAndPostScatter, 1 = PostScatter
/*[NonSerialized]*/ public int transmissionFlags; // 2 bit/profile; 0 = inf. thick, 1 = thin, 2 = regular
/*[NonSerialized]*/ public Vector4[] thicknessRemaps; // Remap: 0 = start, 1 = end - start
/*[NonSerialized]*/ public Vector4[] worldScales; // Size of the world unit in meters (only the X component is used)
/*[NonSerialized]*/ public Vector4[] shapeParams; // RGB = S = 1 / D, A = filter radius
/*[NonSerialized]*/ public Vector4[] transmissionTints; // RGB = color, A = unused
/*[NonSerialized]*/ public Vector4[] filterKernels; // XY = near field, ZW = far field; 0 = radius, 1 = reciprocal of the PDF
/*[NonSerialized]*/ public int texturingModeFlags; // 1 bit/profile; 0 = PreAndPostScatter, 1 = PostScatter
/*[NonSerialized]*/ public int transmissionFlags; // 2 bit/profile; 0 = inf. thick, 1 = thin, 2 = regular
/*[NonSerialized]*/ public Vector4[] thicknessRemaps; // Remap: 0 = start, 1 = end - start
/*[NonSerialized]*/ public Vector4[] worldScales; // Size of the world unit in meters (only the X component is used)
/*[NonSerialized]*/ public Vector4[] shapeParams; // RGB = S = 1 / D, A = filter radius
/*[NonSerialized]*/ public Vector4[] transmissionTints; // RGB = color, A = unused
/*[NonSerialized]*/ public Vector4[] filterKernels; // XY = near field, ZW = far field; 0 = radius, 1 = reciprocal of the PDF
/*[NonSerialized]*/ public Vector4[] halfRcpWeightedVariances;
/*[NonSerialized]*/ public Vector4[] filterKernelsBasic;
/*[NonSerialized]*/ public Vector4[] halfRcpWeightedVariances;
/*[NonSerialized]*/ public Vector4[] halfRcpVariancesAndWeights;
/*[NonSerialized]*/ public Vector4[] filterKernelsBasic;
// <<< Old SSS Model
// --- Public Methods ---

numProfiles = 1;
profiles = new SubsurfaceScatteringProfile[numProfiles];
profiles[0] = null;
texturingModeFlags = 0;
transmissionFlags = 0;
thicknessRemaps = null;
worldScales = null;
shapeParams = null;
transmissionTints = null;
filterKernels = null;
numProfiles = 1;
profiles = new SubsurfaceScatteringProfile[numProfiles];
profiles[0] = null;
texturingModeFlags = 0;
transmissionFlags = 0;
thicknessRemaps = null;
worldScales = null;
shapeParams = null;
transmissionTints = null;
filterKernels = null;
useDisneySSS = true;
halfRcpWeightedVariances = null;
filterKernelsBasic = null;
useDisneySSS = true;
halfRcpWeightedVariances = null;
halfRcpVariancesAndWeights = null;
filterKernelsBasic = null;
// <<< Old SSS Model
UpdateCache();

halfRcpWeightedVariances = new Vector4[SssConstants.SSS_N_PROFILES];
}
if (halfRcpVariancesAndWeights == null || halfRcpVariancesAndWeights.Length != 2 * SssConstants.SSS_N_PROFILES)
{
halfRcpVariancesAndWeights = new Vector4[2 * SssConstants.SSS_N_PROFILES];
}
const int filterKernelsLen = SssConstants.SSS_N_PROFILES * SssConstants.SSS_BASIC_N_SAMPLES;
if (filterKernelsBasic == null || filterKernelsBasic.Length != filterKernelsLen)
{

}
// Old SSS Model >>>
halfRcpWeightedVariances[i] = Vector4.one;
halfRcpWeightedVariances[i] = Vector4.one;
halfRcpVariancesAndWeights[2 * i + 0] = Vector4.one;
halfRcpVariancesAndWeights[2 * i + 1] = Vector4.one;
for (int j = 0, n = SssConstants.SSS_BASIC_N_SAMPLES; j < n; j++)
{

worldScales[i] = new Vector4(profiles[i].worldScale, 0, 0, 0);
shapeParams[i] = profiles[i].shapeParameter;
shapeParams[i].w = profiles[i].maxRadius;
transmissionTints[i] = profiles[i].transmissionTint;
transmissionTints[i] = profiles[i].transmissionTint * 0.25f; // Premultiplied
for (int j = 0, n = SssConstants.SSS_N_SAMPLES_NEAR_FIELD; j < n; j++)
{

// Old SSS Model >>>
halfRcpWeightedVariances[i] = profiles[i].halfRcpWeightedVariances;
Vector4 stdDev1 = ((1.0f / 3.0f) * SssConstants.SSS_BASIC_DISTANCE_SCALE) * profiles[i].scatterDistance1;
Vector4 stdDev2 = ((1.0f / 3.0f) * SssConstants.SSS_BASIC_DISTANCE_SCALE) * profiles[i].scatterDistance2;
// Multiply by 0.1 to convert from millimeters to centimeters. Apply the distance scale.
// Rescale by 4 to counter rescaling of transmission tints.
float a = 0.1f * SssConstants.SSS_BASIC_DISTANCE_SCALE;
halfRcpVariancesAndWeights[2 * i + 0] = new Vector4(a * a * 0.5f / (stdDev1.x * stdDev1.x), a * a * 0.5f / (stdDev1.y * stdDev1.y), a * a * 0.5f / (stdDev1.z * stdDev1.z), 4 * (1.0f - profiles[i].lerpWeight));
halfRcpVariancesAndWeights[2 * i + 1] = new Vector4(a * a * 0.5f / (stdDev2.x * stdDev2.x), a * a * 0.5f / (stdDev2.y * stdDev2.y), a * a * 0.5f / (stdDev2.z * stdDev2.z), 4 * profiles[i].lerpWeight);
for (int j = 0, n = SssConstants.SSS_BASIC_N_SAMPLES; j < n; j++)
{

Vector2 R = m_ThicknessRemap.vector2Value;
bool transmissionEnabled = m_TransmissionMode.intValue != (int)SubsurfaceScatteringProfile.TransmissionMode.None;
// Draw the profile.
m_ProfileMaterial.SetFloat(HDShaderIDs._MaxRadius, r);
m_ProfileMaterial.SetVector(HDShaderIDs._ShapeParam, S);
// Old SSS Model >>>

float rMax = Mathf.Max(m_ScatterDistance1.colorValue.r, m_ScatterDistance1.colorValue.g, m_ScatterDistance1.colorValue.b,
m_ScatterDistance2.colorValue.r, m_ScatterDistance2.colorValue.g, m_ScatterDistance2.colorValue.b);
Vector4 stdDev1 = new Vector4(s * m_ScatterDistance1.colorValue.r, s * m_ScatterDistance1.colorValue.g, s * m_ScatterDistance1.colorValue.b);
Vector4 stdDev2 = new Vector4(s * m_ScatterDistance2.colorValue.r, s * m_ScatterDistance2.colorValue.g, s * m_ScatterDistance2.colorValue.b);
Vector4 stdDev1 = s * m_ScatterDistance1.colorValue;
Vector4 stdDev2 = s * m_ScatterDistance2.colorValue;
// Draw the profile.
EditorGUI.DrawPreviewTexture(GUILayoutUtility.GetRect(256, 256), m_ProfileImage, m_ProfileMaterial, ScaleMode.ScaleToFit, 1.0f);
EditorGUILayout.Space();

EditorGUILayout.Space();
// Draw the transmittance graph.
// Old SSS Model >>>
// Multiply by 0.1 to convert from millimeters to centimeters. Apply the distance scale.
float a = 0.1f * SssConstants.SSS_BASIC_DISTANCE_SCALE;
Vector4 halfRcpVarianceAndWeight1 = new Vector4(a * a * 0.5f / (stdDev1.x * stdDev1.x), a * a * 0.5f / (stdDev1.y * stdDev1.y), a * a * 0.5f / (stdDev1.z * stdDev1.z), 4 * (1.0f - m_LerpWeight.floatValue));
Vector4 halfRcpVarianceAndWeight2 = new Vector4(a * a * 0.5f / (stdDev2.x * stdDev2.x), a * a * 0.5f / (stdDev2.y * stdDev2.y), a * a * 0.5f / (stdDev2.z * stdDev2.z), 4 * m_LerpWeight.floatValue);
m_TransmittanceMaterial.SetVector(HDShaderIDs._HalfRcpVarianceAndWeight1, halfRcpVarianceAndWeight1);
m_TransmittanceMaterial.SetVector(HDShaderIDs._HalfRcpVarianceAndWeight2, halfRcpVarianceAndWeight2);
// <<< Old SSS Model
// Draw the transmittance graph.
EditorGUI.DrawPreviewTexture(GUILayoutUtility.GetRect(16, 16), m_TransmittanceImage, m_TransmittanceMaterial, ScaleMode.ScaleToFit, 16.0f);
serializedObject.ApplyModifiedProperties();

6
Assets/ScriptableRenderPipeline/HDRenderPipeline/SceneSettings/Resources/DrawSssProfile.shader


// N.b.: we multiply by the surface albedo of the actual geometry during shading.
// Apply gamma for visualization only. Do not apply gamma to the color.
return float4(pow(M, 1.0 / 3.0) * A, 1);
return float4(sqrt(M) * A, 1);
#else
float r = (2 * length(input.texcoord - 0.5)) * _MaxRadius * SSS_BASIC_DISTANCE_SCALE;
float3 var1 = _StdDev1.rgb * _StdDev1.rgb;

float3 magnitude = lerp(exp(-r * r / (2 * var1)) / (TWO_PI * var1),
exp(-r * r / (2 * var2)) / (TWO_PI * var2), _LerpWeight);
return float4(magnitude, 1);
// N.b.: we multiply by the surface albedo of the actual geometry during shading.
// Apply gamma for visualization only.
return float4(sqrt(magnitude), 1);
#endif
}
ENDHLSL

19
Assets/ScriptableRenderPipeline/HDRenderPipeline/SceneSettings/Resources/DrawTransmittanceGraph.shader


// Inputs & outputs
//-------------------------------------------------------------------------------------
uint _UseDisneySSS;
float4 _HalfRcpVarianceAndWeight1, _HalfRcpVarianceAndWeight2;
float4 _ShapeParam, _TransmissionTint, _ThicknessRemap;
//-------------------------------------------------------------------------------------

float4 Frag(Varyings input) : SV_Target
{
float d = (_ThicknessRemap.x + input.texcoord.x * (_ThicknessRemap.y - _ThicknessRemap.x));
float3 T = ComputeTransmittance(_ShapeParam.rgb, float3(1, 1, 1), d, 1);
float3 T;
if (_UseDisneySSS)
{
T = ComputeTransmittance(_ShapeParam.rgb, float3(0.25, 0.25, 0.25), d, 1);
}
else
{
T = ComputeTransmittanceJimenez(_HalfRcpVarianceAndWeight1.rgb,
_HalfRcpVarianceAndWeight1.a,
_HalfRcpVarianceAndWeight2.rgb,
_HalfRcpVarianceAndWeight2.a,
float3(0.25, 0.25, 0.25), d, 1);
}
return float4(pow(T, 1.0 / 3) * _TransmissionTint.rgb, 1);
return float4(sqrt(T) * _TransmissionTint.rgb, 1);
}
ENDHLSL
}

3
Assets/ScriptableRenderPipeline/HDRenderPipeline/SceneSettings/SceneSettings.cs


{
public CommonSettings commonSettings
{
set { m_CommonSettings = value; }
set { m_SkySettings = value; }
set { m_SsaoSettings = value; }
get { return m_SsaoSettings; }
}

191
Assets/ScriptableRenderPipeline/HDRenderPipeline/Sky/ProceduralSky/Editor/ProceduralSkyEditor.cs


namespace UnityEngine.Experimental.Rendering.HDPipeline
{
//[CanEditMultipleObjects]
//[CustomEditor(typeof(ProceduralSkyParameters))]
//public class ProceduralSkyParametersEditor
// : Editor
//{
// private class Styles
// {
// public readonly GUIContent skyHDRI = new GUIContent("HDRI");
// public readonly GUIContent skyResolution = new GUIContent("Resolution");
// public readonly GUIContent skyExposure = new GUIContent("Exposure");
// public readonly GUIContent skyRotation = new GUIContent("Rotation");
// public readonly GUIContent skyMultiplier = new GUIContent("Multiplier");
// }
[CanEditMultipleObjects]
[CustomEditor(typeof(ProceduralSkySettings))]
public class ProceduralSkySettingsEditor : Editor
{
private float heightFogFalloff = 1.0f;
private float heightFogHeight = 0.0f;
private class Styles
{
public readonly GUIContent skyHDRI = new GUIContent("HDRI");
public readonly GUIContent skyResolution = new GUIContent("Resolution");
public readonly GUIContent skyExposure = new GUIContent("Exposure");
public readonly GUIContent skyRotation = new GUIContent("Rotation");
public readonly GUIContent skyMultiplier = new GUIContent("Multiplier");
public readonly GUIContent lightingOverride = new GUIContent("Lighting Override", "If a lighting override cubemap is provided, this cubemap will be used to compute lighting instead of the result from the visible sky.");
}
private static Styles s_Styles = null;
private static Styles styles
{
get
{
if (s_Styles == null)
s_Styles = new Styles();
return s_Styles;
}
}
private SerializedProperty m_SkyHDRI;
private SerializedProperty m_SkyResolution;
private SerializedProperty m_SkyExposure;
private SerializedProperty m_SkyMultiplier;
private SerializedProperty m_SkyRotation;
private SerializedProperty m_LightingOverride;
private SerializedProperty m_updateMode;
private SerializedProperty m_updatePeriod;
private SerializedProperty m_worldScaleExponent;
private SerializedProperty m_maxSkyDistance;
private SerializedProperty m_worldMieColorIntensity;
private SerializedProperty m_worldMieColorRamp;
private SerializedProperty m_worldMieDensity;
private SerializedProperty m_worldMieNearScatterPush;
private SerializedProperty m_worldMiePhaseAnisotropy;
private SerializedProperty m_worldRayleighColorIntensity;
private SerializedProperty m_worldRayleighColorRamp;
private SerializedProperty m_worldRayleighDensity;
private SerializedProperty m_worldRayleighNearScatterPush;
private SerializedProperty m_heightSeaLevel;
private SerializedProperty m_heightDistance;
private SerializedProperty m_heightMieDensity;
private SerializedProperty m_heightMieNearScatterPush;
private SerializedProperty m_heightRayleighColor;
private SerializedProperty m_heightRayleighDensity;
private SerializedProperty m_heightRayleighIntensity;
private SerializedProperty m_heightRayleighNearScatterPush;
void OnEnable()
{
m_SkyHDRI = serializedObject.FindProperty("skyHDRI");
m_SkyResolution = serializedObject.FindProperty("resolution");
m_SkyExposure = serializedObject.FindProperty("exposure");
m_SkyMultiplier = serializedObject.FindProperty("multiplier");
m_SkyRotation = serializedObject.FindProperty("rotation");
m_updateMode = serializedObject.FindProperty("updateMode");
m_updatePeriod = serializedObject.FindProperty("updatePeriod");
m_LightingOverride = serializedObject.FindProperty("lightingOverride");
m_maxSkyDistance = serializedObject.FindProperty("maxSkyDistance");
m_worldScaleExponent = serializedObject.FindProperty("worldScaleExponent");
m_worldMieColorIntensity = serializedObject.FindProperty("worldMieColorIntensity");
m_worldMieColorRamp = serializedObject.FindProperty("worldMieColorRamp");
m_worldMieDensity = serializedObject.FindProperty("worldMieDensity");
m_worldMieNearScatterPush = serializedObject.FindProperty("worldMieNearScatterPush");
m_worldMiePhaseAnisotropy = serializedObject.FindProperty("worldMiePhaseAnisotropy");
m_worldRayleighColorIntensity = serializedObject.FindProperty("worldRayleighColorIntensity");
m_worldRayleighColorRamp = serializedObject.FindProperty("worldRayleighColorRamp");
m_worldRayleighDensity = serializedObject.FindProperty("worldRayleighDensity");
m_worldRayleighNearScatterPush = serializedObject.FindProperty("worldRayleighNearScatterPush");
m_heightSeaLevel = serializedObject.FindProperty("heightSeaLevel");
m_heightDistance = serializedObject.FindProperty("heightDistance");
m_heightMieDensity = serializedObject.FindProperty("heightMieDensity");
m_heightMieNearScatterPush = serializedObject.FindProperty("heightMieNearScatterPush");
m_heightRayleighColor = serializedObject.FindProperty("heightRayleighColor");
m_heightRayleighDensity = serializedObject.FindProperty("heightRayleighDensity");
m_heightRayleighIntensity = serializedObject.FindProperty("heightRayleighIntensity");
m_heightRayleighNearScatterPush = serializedObject.FindProperty("heightRayleighNearScatterPush");
}
public override void OnInspectorGUI()
{
serializedObject.Update();
// private static Styles s_Styles = null;
// private static Styles styles
// {
// get
// {
// if (s_Styles == null)
// s_Styles = new Styles();
// return s_Styles;
// }
// }
EditorGUILayout.LabelField(new GUIContent("Skydome"), EditorStyles.boldLabel);
EditorGUILayout.PropertyField(m_SkyHDRI, styles.skyHDRI);
EditorGUILayout.PropertyField(m_SkyResolution, styles.skyResolution);
EditorGUILayout.PropertyField(m_SkyExposure, styles.skyExposure);
EditorGUILayout.PropertyField(m_SkyMultiplier, styles.skyMultiplier);
EditorGUILayout.PropertyField(m_SkyRotation, styles.skyRotation);
EditorGUILayout.PropertyField(m_updateMode);
EditorGUILayout.PropertyField(m_updatePeriod);
EditorGUILayout.PropertyField(m_LightingOverride, styles.lightingOverride);
EditorGUILayout.Space();
EditorGUILayout.LabelField(new GUIContent("Atmosphere"), EditorStyles.boldLabel);
EditorGUILayout.PropertyField(m_worldMieDensity, new GUIContent("Density"));
m_worldRayleighDensity.floatValue = m_worldMieDensity.floatValue;
EditorGUILayout.PropertyField(m_worldScaleExponent, new GUIContent("Global scale"));
EditorGUILayout.PropertyField(m_maxSkyDistance, new GUIContent("Sky distance"));
EditorGUILayout.Space();
EditorGUILayout.PropertyField(m_worldMieColorRamp);
EditorGUILayout.PropertyField(m_worldMieColorIntensity);
EditorGUILayout.PropertyField(m_worldMieNearScatterPush);
EditorGUILayout.PropertyField(m_worldMiePhaseAnisotropy);
EditorGUILayout.Space();
EditorGUILayout.PropertyField(m_worldRayleighColorRamp);
EditorGUILayout.PropertyField(m_worldRayleighColorIntensity);
//EditorGUILayout.PropertyField(m_worldRayleighDensity);
EditorGUILayout.PropertyField(m_worldRayleighNearScatterPush);
EditorGUILayout.Space();
EditorGUILayout.LabelField(new GUIContent("Height fog"), EditorStyles.boldLabel);
// private SerializedProperty m_SkyHDRI;
// private SerializedProperty m_SkyResolution;
// private SerializedProperty m_SkyExposure;
// private SerializedProperty m_SkyMultiplier;
// private SerializedProperty m_SkyRotation;
heightFogHeight = EditorGUILayout.FloatField(new GUIContent("Height"), heightFogHeight);
EditorGUILayout.PropertyField(m_heightDistance, new GUIContent("Falloff"));
// void OnEnable()
// {
// m_SkyHDRI = serializedObject.FindProperty("skyHDRI");
// m_SkyResolution = serializedObject.FindProperty("resolution");
// m_SkyExposure = serializedObject.FindProperty("exposure");
// m_SkyMultiplier = serializedObject.FindProperty("multiplier");
// m_SkyRotation = serializedObject.FindProperty("rotation");
// }
m_heightSeaLevel.floatValue = heightFogHeight + m_heightDistance.floatValue * 2.0f - 2.0f;
EditorGUILayout.PropertyField(m_heightMieDensity, new GUIContent("Density"));
m_heightRayleighDensity.floatValue = m_heightMieDensity.floatValue;
// public override void OnInspectorGUI()
// {
// serializedObject.Update();
EditorGUILayout.PropertyField(m_heightMieNearScatterPush);
EditorGUILayout.PropertyField(m_heightRayleighColor);
//EditorGUILayout.PropertyField(m_heightRayleighDensity);
EditorGUILayout.PropertyField(m_heightRayleighIntensity);
EditorGUILayout.PropertyField(m_heightRayleighNearScatterPush);
// EditorGUILayout.PropertyField(m_SkyHDRI, styles.skyHDRI);
// EditorGUILayout.PropertyField(m_SkyResolution, styles.skyResolution);
// EditorGUILayout.PropertyField(m_SkyExposure, styles.skyExposure);
// EditorGUILayout.PropertyField(m_SkyMultiplier, styles.skyMultiplier);
// EditorGUILayout.PropertyField(m_SkyRotation, styles.skyRotation);
//base.DrawDefaultInspector();
// serializedObject.ApplyModifiedProperties();
// }
//}
serializedObject.ApplyModifiedProperties();
}
}
}

23
Assets/ScriptableRenderPipeline/HDRenderPipeline/Sky/SkyManager.cs


m_SkyboxCubemapRT = new RenderTexture(resolution, resolution, 0, RenderTextureFormat.ARGBHalf, RenderTextureReadWrite.Linear);
m_SkyboxCubemapRT.dimension = TextureDimension.Cube;
m_SkyboxCubemapRT.useMipMap = true;
m_SkyboxCubemapRT.autoGenerateMips = true; // Generate regular mipmap for filtered importance sampling
m_SkyboxCubemapRT.autoGenerateMips = false; // We will generate regular mipmap for filtered importance sampling manually
m_SkyboxCubemapRT.filterMode = FilterMode.Trilinear;
m_SkyboxCubemapRT.Create();

Utilities.SetRenderTarget(builtinParams.commandBuffer, target, ClearFlag.ClearNone, 0, (CubemapFace)i);
m_Renderer.RenderSky(builtinParams, skySettings, true);
}
// Generate mipmap for our cubemap
Debug.Assert(target.autoGenerateMips == false);
builtinParams.commandBuffer.GenerateMips(target);
}
private void BlitCubemap(CommandBuffer cmd, Cubemap source, RenderTexture dest)

cmd.DrawProcedural(Matrix4x4.identity, m_BlitCubemapMaterial, 0, MeshTopology.Triangles, 3, 1, propertyBlock);
}
// Generate mipmap for our cubemap
Debug.Assert(dest.autoGenerateMips == false);
cmd.GenerateMips(dest);
}
private void RenderCubemapGGXConvolution(CommandBuffer cmd, BuiltinSkyParameters builtinParams, SkySettings skyParams, Texture input, RenderTexture target)

public void UpdateEnvironment(HDCamera camera, Light sunLight, CommandBuffer cmd)
{
// We need one frame delay for this update to work since DynamicGI.UpdateEnvironment is executed direclty but the renderloop is not (so we need to wait for the sky texture to be rendered first)
// We need one frame delay for this update to work since DynamicGI.UpdateEnvironment is executed directly but the renderloop is not (so we need to wait for the sky texture to be rendered first)
if (m_NeedLowLevelUpdateEnvironment)
{
using (new Utilities.ProfilingSample("DynamicGI.UpdateEnvironment", cmd))

m_UpdatedFramesRequired--;
m_SkyParametersHash = skySettings.GetHash();
m_CurrentUpdateTime = 0.0f;
//#if UNITY_EDITOR
// m_SkyboxCubemapRT.imageContentsHash = new Hash128((uint)skySettings.GetHash(), 0, 0, 0);
//#endif
#if UNITY_EDITOR
// In the editor when we change the sky we want to make the GI dirty so when baking again the new sky is taken into account.
// Changing the hash of the rendertarget allow to say that GI is dirty
m_SkyboxCubemapRT.imageContentsHash = new Hash128((uint)skySettings.GetHash(), 0, 0, 0);
#endif
if(m_SkyParametersHash != 0)
if (m_SkyParametersHash != 0)
{
using (new Utilities.ProfilingSample("Reset Sky Environment", cmd))
{

// Flip texture.
// Temporarily disabled until proper API reaches trunk
Graphics.Blit(temp, tempRT, new Vector2(1.0f, -1.0f), new Vector2(0.0f, 0.0f));
result.ReadPixels(new Rect(0, 0, resolution * 6, resolution), 0, 0);
result.Apply();

2
Assets/ScriptableRenderPipeline/HDRenderPipeline/Sky/SkySettings.cs


public abstract class SkySettings : ScriptableObject
{
protected class Unhashed : System.Attribute {}
[Range(0,360)]
public float rotation = 0.0f;
public float exposure = 0.0f;
public float multiplier = 1.0f;

96
Assets/ScriptableRenderPipeline/LightweightPipeline/LightweightPipeline.cs


using System;
using UnityEngine.Rendering;
using UnityEngine.XR;
namespace UnityEngine.Experimental.Rendering.LightweightPipeline
{

private RenderTargetIdentifier m_CameraRTID;
private bool m_RenderToIntermediateTarget = false;
private bool m_IntermediateTextureArray = false;
private const int kShadowDepthBufferBits = 16;
private const int kCameraDepthBufferBits = 32;

{
base.Render(context, cameras);
bool stereoEnabled = XRSettings.isDeviceActive;
if (!CullResults.GetCullingParameters(camera, out cullingParameters))
if (!CullResults.GetCullingParameters(camera, stereoEnabled, out cullingParameters))
continue;
cullingParameters.shadowDistance = Mathf.Min(m_ShadowSettings.maxShadowDistance, camera.farClipPlane);

lightData.shadowsRendered = RenderShadows(ref m_CullResults, ref visibleLights[lightData.shadowLightIndex], lightData.shadowLightIndex, ref context);
// Setup camera matrices and RT
context.SetupCameraProperties(camera);
context.SetupCameraProperties(camera, stereoEnabled);
// Setup light and shadow shader constants
SetupShaderLightConstants(visibleLights, ref lightData, ref m_CullResults, ref context);

if (!lightData.isSingleDirectionalLight)
configuration |= RendererConfiguration.PerObjectLightIndices8;
BeginForwardRendering(camera, ref context);
BeginForwardRendering(camera, ref context, stereoEnabled);
// Render Opaques
var litSettings = new DrawRendererSettings(m_CullResults, camera, m_LitPassName);

context.DrawRenderers(ref litSettings);
// Release temporary RT
var discardRT = CommandBufferPool.Get();
discardRT.ReleaseTemporaryRT(m_ShadowMapProperty);
discardRT.ReleaseTemporaryRT(m_CameraRTProperty);
context.ExecuteCommandBuffer(discardRT);
CommandBufferPool.Release(discardRT);
// TODO: Check skybox shader
context.DrawSkybox(camera);

context.DrawRenderers(ref litSettings);
context.DrawRenderers(ref unlitSettings);
EndForwardRendering(camera, ref context);
EndForwardRendering(camera, ref context, stereoEnabled);
// Release temporary RT
var discardRT = CommandBufferPool.Get();
discardRT.ReleaseTemporaryRT(m_ShadowMapProperty);
discardRT.ReleaseTemporaryRT(m_CameraRTProperty);
context.ExecuteCommandBuffer(discardRT);
CommandBufferPool.Release(discardRT);
}
context.Submit();

return (type == LightType.Directional || type == LightType.Spot);
}
private void BeginForwardRendering(Camera camera, ref ScriptableRenderContext context)
private void BeginForwardRendering(Camera camera, ref ScriptableRenderContext context, bool stereoEnabled)
if (stereoEnabled)
context.StartMultiEye(camera);
m_RenderToIntermediateTarget = GetRenderToIntermediateTarget(camera);
var cmd = CommandBufferPool.Get("SetCameraRenderTarget");

{
cmd.GetTemporaryRT(m_CameraRTProperty, Screen.width, Screen.height, kCameraDepthBufferBits,
FilterMode.Bilinear, RenderTextureFormat.ARGB32, RenderTextureReadWrite.Default, m_Asset.MSAASampleCount);
cmd.SetRenderTarget(m_CameraRTID);
m_IntermediateTextureArray = false;
if (stereoEnabled)
{
RenderTextureDescriptor xrDesc = XRSettings.eyeTextureDesc;
xrDesc.depthBufferBits = kCameraDepthBufferBits;
xrDesc.colorFormat = RenderTextureFormat.ARGB32;
xrDesc.msaaSamples = m_Asset.MSAASampleCount;
m_IntermediateTextureArray = (xrDesc.dimension == TextureDimension.Tex2DArray);
cmd.GetTemporaryRT(m_CameraRTProperty, xrDesc, FilterMode.Bilinear);
}
else
{
cmd.GetTemporaryRT(m_CameraRTProperty, Screen.width, Screen.height, kCameraDepthBufferBits,
FilterMode.Bilinear, RenderTextureFormat.ARGB32, RenderTextureReadWrite.Default, m_Asset.MSAASampleCount);
}
if (m_IntermediateTextureArray)
cmd.SetRenderTarget(m_CameraRTID, 0, CubemapFace.Unknown, -1);
else
cmd.SetRenderTarget(m_CameraRTID);
}
else
{

else
{
cmd.SetRenderTarget(BuiltinRenderTextureType.None);
cmd.SetRenderTarget(BuiltinRenderTextureType.CurrentActive);
cmd.ClearRenderTarget(camera.clearFlags == CameraClearFlags.Color, camera.clearFlags == CameraClearFlags.Color || camera.clearFlags == CameraClearFlags.Depth, camera.backgroundColor);
{
bool clearDepth = (camera.clearFlags != CameraClearFlags.Nothing);
bool clearColor = (camera.clearFlags == CameraClearFlags.Color);
cmd.ClearRenderTarget(clearDepth, clearColor, camera.backgroundColor);
}
private void EndForwardRendering(Camera camera, ref ScriptableRenderContext context)
private void EndForwardRendering(Camera camera, ref ScriptableRenderContext context, bool stereoEnabled)
if (!m_RenderToIntermediateTarget)
return;
if (m_RenderToIntermediateTarget)
{
var cmd = CommandBufferPool.Get("Blit");
if (m_IntermediateTextureArray)
{
cmd.SetRenderTarget(BuiltinRenderTextureType.CameraTarget, 0, CubemapFace.Unknown, -1);
cmd.Blit(m_CameraRTID, BuiltinRenderTextureType.CurrentActive);
}
else
cmd.Blit(BuiltinRenderTextureType.CurrentActive, BuiltinRenderTextureType.CameraTarget);
if (camera.cameraType == CameraType.SceneView)
cmd.SetRenderTarget(BuiltinRenderTextureType.CameraTarget);
context.ExecuteCommandBuffer(cmd);
CommandBufferPool.Release(cmd);
}
var cmd = CommandBufferPool.Get("Blit");
cmd.Blit(BuiltinRenderTextureType.CurrentActive, BuiltinRenderTextureType.CameraTarget);
if (camera.cameraType == CameraType.SceneView)
cmd.SetRenderTarget(BuiltinRenderTextureType.CameraTarget);
context.ExecuteCommandBuffer(cmd);
CommandBufferPool.Release(cmd);
if (stereoEnabled)
{
context.StopMultiEye(camera);
context.StereoEndRender(camera);
}
}
private bool GetRenderToIntermediateTarget(Camera camera)

4
Assets/ScriptableRenderPipeline/LightweightPipeline/Shaders/LightweightPipeline.shader


#pragma shader_feature _EMISSION
#pragma shader_feature _ _REFLECTION_CUBEMAP _REFLECTION_PROBE
#pragma multi_compile _ UNITY_SINGLE_PASS_STEREO STEREO_INSTANCING_ON STEREO_MULTIVIEW_ON
#pragma multi_compile _ _SINGLE_DIRECTIONAL_LIGHT
#pragma multi_compile _ LIGHTMAP_ON
#pragma multi_compile _ _LIGHT_PROBES_ON

v2f vert(LightweightVertexInput v)
{
v2f o = (v2f)0;
UNITY_SETUP_INSTANCE_ID(v);
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
o.uv01.xy = TRANSFORM_TEX(v.texcoord, _MainTex);
o.uv01.zw = v.lightmapUV * unity_LightmapST.xy + unity_LightmapST.zw;

2
Assets/ScriptableRenderPipeline/LightweightPipeline/Shaders/LightweightPipelineCore.cginc


float4 tangent : TANGENT;
float3 texcoord : TEXCOORD0;
float2 lightmapUV : TEXCOORD1;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct v2f

half4 viewDir : TEXCOORD5; // xyz: viewDir
UNITY_FOG_COORDS_PACKED(6, half4) // x: fogCoord, yzw: vertexColor
float4 hpos : SV_POSITION;
UNITY_VERTEX_OUTPUT_STEREO
};
// Per object light list data

7
Assets/ScriptableRenderPipeline/LightweightPipeline/Shaders/LightweightUnlit.shader


CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma multi_compile _ UNITY_SINGLE_PASS_STEREO STEREO_INSTANCING_ON STEREO_MULTIVIEW_ON
#pragma multi_compile_fog
#pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON

{
float4 vertex : POSITION;
float2 uv : TEXCOORD0;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct v2f

float4 vertex : SV_POSITION;
UNITY_VERTEX_OUTPUT_STEREO
};
sampler2D _MainTex;

v2f vert(appdata v)
{
v2f o;
UNITY_SETUP_INSTANCE_ID(v);
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
o.vertex = UnityObjectToClipPos(v.vertex);
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
UNITY_TRANSFER_FOG(o,o.vertex);

18
Assets/ScriptableRenderPipeline/ShaderLibrary/AreaLighting.hlsl


#endif
}
// For polygonal lights.
float LTCEvaluate(float4x3 L, float3 V, float3 N, float NdotV, float3x3 invM)
{
// Construct a view-dependent orthonormal basis around N.
// TODO: it could be stored in PreLightData, since all LTC lights compute it more than once.
float3x3 basis;
basis[0] = normalize(V - N * NdotV);
basis[1] = normalize(cross(N, basis[0]));
basis[2] = N;
// rotate area light in local basis
invM = mul(transpose(basis), invM);
L = mul(L, invM);
// Polygon irradiance in the transformed configuration
return PolygonIrradiance(L);
}
float LineFpo(float tLDDL, float lrcpD, float rcpD)
{
// Compute: ((l / d) / (d * d + l * l)) + (1.0 / (d * d)) * atan(l / d).

13
Assets/ScriptableRenderPipeline/ShaderLibrary/Common.hlsl


return rad * 180.0 / PI;
}
// Square functions for cleaner code
float Sqr(float x)
{
return x * x;
}
float3 Sqr(float3 x)
{
return x * x;
}
// Acos in 14 cycles.
// Ref: https://seblagarde.wordpress.com/2014/12/01/inverse-trigonometric-functions-gpu-optimization-for-amd-gcn-architecture/
float FastACos(float inX)

}
// Same as smoothstep except it assume 0, 1 interval for x
float smoothstep01(float x)
float Smoothstep01(float x)
{
return x * x * (3.0 - (2.0 * x));
}

28
Assets/ScriptableRenderPipeline/ShaderLibrary/CommonMaterial.hlsl


float PerceptualSmoothnessToRoughness(float perceptualSmoothness)
{
return (1 - perceptualSmoothness) * (1 - perceptualSmoothness);
return (1.0 - perceptualSmoothness) * (1.0 - perceptualSmoothness);
return (1 - perceptualSmoothness);
return (1.0 - perceptualSmoothness);
}
// ----------------------------------------------------------------------------

// Computes the fraction of light passing through the object.
// Evaluate Int{0, inf}{2 * Pi * r * R(sqrt(r^2 + d^2))}, where R is the diffusion profile.
// Note: 'volumeAlbedo' should be premultiplied by 0.25.
// Ref: Approximate Reflectance Profiles for Efficient Subsurface Scattering by Pixar (BSSRDF only).
float3 ComputeTransmittance(float3 S, float3 volumeAlbedo, float thickness, float radiusScale)
{

float3 expOneThird = exp(((-1.0 / 3.0) * thickness) * S);
return 0.25 * (expOneThird + 3 * expOneThird * expOneThird * expOneThird) * volumeAlbedo;
// Premultiply & optimize: T = (1/4 * A) * (e^(-t * S) + 3 * e^(-1/3 * t * S))
return volumeAlbedo * (expOneThird * expOneThird * expOneThird + 3 * expOneThird);
}
// Evaluates transmittance for a linear combination of two normalized 2D Gaussians.
// Ref: Real-Time Realistic Skin Translucency (2010), equation 9 (modified).
// Note: 'volumeAlbedo' should be premultiplied by 0.25, correspondingly 'lerpWeight' by 4,
// and 'halfRcpVariance1' should be prescaled by (0.1 * SssConstants.SSS_BASIC_DISTANCE_SCALE)^2.
float3 ComputeTransmittanceJimenez(float3 halfRcpVariance1, float lerpWeight1,
float3 halfRcpVariance2, float lerpWeight2,
float3 volumeAlbedo, float thickness, float radiusScale)
{
// Thickness and SSS radius are decoupled for artists.
// In theory, we should modify the thickness by the inverse of the radius scale of the profile.
// thickness /= radiusScale;
float t2 = thickness * thickness;
// T = A * lerp(exp(-t2 * halfRcpVariance1), exp(-t2 * halfRcpVariance2), lerpWeight2)
return volumeAlbedo * (exp(-t2 * halfRcpVariance1) * lerpWeight1 + exp(-t2 * halfRcpVariance2) * lerpWeight2);
return saturate((-NdotL + w) / ((1 + w) * (1 + w)));
return saturate((NdotL + w) / ((1 + w) * (1 + w)));
}
// MACRO from Legacy Untiy

2
Assets/ScriptableRenderPipeline/ShaderLibrary/Shadow/Shadow.hlsl


// directional light shadows
float GetDirectionalShadowAttenuationDefault( ShadowContext shadowContext, float3 positionWS, float3 normalWS, int shadowDataIndex, float3 L )
{
return EvalShadow_CascadedDepth( shadowContext, positionWS, normalWS, shadowDataIndex, L );
return EvalShadow_CascadedDepth_Blend( shadowContext, positionWS, normalWS, shadowDataIndex, L );
}
float GetDirectionalShadowAttenuationDefault( ShadowContext shadowContext, float3 positionWS, float3 normalWS, int shadowDataIndex, float3 L, float2 unPositionSS )
{

406
Assets/ScriptableRenderPipeline/ShaderLibrary/Shadow/ShadowAlgorithms.hlsl


return EvalShadow_GetTexcoords( sd, positionWS, ndc, false );
}
uint2 EvalShadow_GetTexcoords( ShadowData sd, float3 positionWS, out float2 closestSampleNDC )
{
float4 posCS = mul( float4( positionWS, 1.0 ), sd.worldToShadow );
float2 posNDC = posCS.xy / posCS.w;
// calc TCs
float2 posTC = posNDC * 0.5 + 0.5;
closestSampleNDC = (floor(posTC * sd.textureSize.zw) + 0.5) * sd.texelSizeRcp.zw * 2.0 - 1.0.xx;
return (posTC * sd.scaleOffset.xy + sd.scaleOffset.zw) * sd.textureSize.xy;
}
int EvalShadow_GetCubeFaceID( float3 dir )
{
// TODO: Use faceID intrinsic on console

float slice;
UnpackShadowmapId( sd.id, texIdx, sampIdx, slice );
UnpackShadowType( sd.shadowType, shadowType, shadowAlgorithm );
return SampleShadow_SelectAlgorithm(shadowContext, sd, payloadOffset, posTC, sd.bias, slice, shadowAlgorithm, texIdx, sampIdx);
return SampleShadow_SelectAlgorithm( shadowContext, sd, payloadOffset, posTC, sd.bias, slice, shadowAlgorithm, texIdx, sampIdx );
}
#define EvalShadow_PunctualDepth_( _samplerType ) \

return offset + 4;
}
float EvalShadow_CascadedDepth( ShadowContext shadowContext, float3 positionWS, float3 normalWS, int index, float3 L )
float EvalShadow_CascadedDepth_Blend( ShadowContext shadowContext, float3 positionWS, float3 normalWS, int index, float3 L )
{
// load the right shadow data for the current face
float4 dirShadowSplitSpheres[4];

return shadow;
}
#define EvalShadow_CascadedDepth_( _samplerType ) \
float EvalShadow_CascadedDepth_Blend( ShadowContext shadowContext, uint shadowAlgorithm, Texture2DArray tex, _samplerType samp, float3 positionWS, float3 normalWS, int index, float3 L ) \
{ \
/* load the right shadow data for the current face */ \
float4 dirShadowSplitSpheres[kMaxShadowCascades]; \
uint payloadOffset = EvalShadow_LoadSplitSpheres( shadowContext, index, dirShadowSplitSpheres ); \
float relDistance; \
int shadowSplitIndex = EvalShadow_GetSplitSphereIndexForDirshadows( positionWS, dirShadowSplitSpheres, relDistance ); \
if( shadowSplitIndex < 0 ) \
return 1.0; \
\
float4 scales = asfloat( shadowContext.payloads[payloadOffset] ); \
payloadOffset++; \
float4 borders = asfloat( shadowContext.payloads[payloadOffset] ); \
payloadOffset++; \
\
ShadowData sd = shadowContext.shadowDatas[index + 1 + shadowSplitIndex]; \
/* normal based bias */ \
float3 orig_pos = positionWS; \
uint orig_payloadOffset = payloadOffset; \
positionWS += EvalShadow_NormalBias( normalWS, saturate( dot( normalWS, L ) ), scales[shadowSplitIndex] * sd.texelSizeRcp.zw, sd.normalBias ); \
/* get shadowmap texcoords */ \
float3 posNDC; \
float3 posTC = EvalShadow_GetTexcoords( sd, positionWS, posNDC, true ); \
/* sample the texture */ \
float slice; \
UnpackShadowmapId( sd.id, slice ); \
\
float shadow = SampleShadow_SelectAlgorithm( shadowContext, sd, payloadOffset, posTC, sd.bias, slice, shadowAlgorithm, tex, samp ); \
\
float border = borders[shadowSplitIndex]; \
float alpha = border <= 0.0 ? 0.0 : saturate( (relDistance - (1.0 - border)) / border ); \
\
shadowSplitIndex++; \
float shadow1 = 1.0; \
if( shadowSplitIndex < kMaxShadowCascades ) \
{ \
float4 splitSphere = dirShadowSplitSpheres[shadowSplitIndex - 1]; \
float3 cascadeDir = normalize( -splitSphere.xyz + dirShadowSplitSpheres[shadowSplitIndex].xyz ); \
float3 wposDir = normalize( -splitSphere.xyz + positionWS ); \
float cascDot = dot( cascadeDir, wposDir ); \
alpha = cascDot > 0.0 ? alpha : lerp( alpha, 0.0, saturate( -cascDot * 4.0 ) ); \
shadow1 = shadow; \
\
[branch] \
if( alpha > 0.0 ) \
{ \
sd = shadowContext.shadowDatas[index + 1 + shadowSplitIndex]; \
positionWS = orig_pos + EvalShadow_NormalBias( normalWS, saturate( dot( normalWS, L ) ), scales[shadowSplitIndex] * sd.texelSizeRcp.zw, sd.normalBias ); \
posTC = EvalShadow_GetTexcoords( sd, positionWS, posNDC, false ); \
/* sample the texture */ \
UnpackShadowmapId( sd.id, slice ); \
\
if( all( abs( posNDC.xy ) <= (1.0 - sd.texelSizeRcp.zw * 0.5) ) ) \
shadow1 = SampleShadow_SelectAlgorithm( shadowContext, sd, orig_payloadOffset, posTC, sd.bias, slice, shadowAlgorithm, tex, samp ); \
} \
} \
shadow = lerp( shadow, shadow1, alpha ); \
return shadow; \
}
EvalShadow_CascadedDepth_( SamplerComparisonState )
EvalShadow_CascadedDepth_( SamplerState )
#undef EvalShadow_CascadedDepth_
float EvalShadow_hash12( float2 pos )
{
float3 p3 = frac( pos.xyx * float3( 443.8975, 397.2973, 491.1871 ) );
p3 += dot( p3, p3.yzx + 19.19 );
return frac( (p3.x + p3.y) * p3.z );
}
float EvalShadow_CascadedDepth_Dither( ShadowContext shadowContext, float3 positionWS, float3 normalWS, int index, float3 L )
{
// load the right shadow data for the current face
float4 dirShadowSplitSpheres[4];
uint payloadOffset = EvalShadow_LoadSplitSpheres( shadowContext, index, dirShadowSplitSpheres );
float relDistance;
int shadowSplitIndex = EvalShadow_GetSplitSphereIndexForDirshadows( positionWS, dirShadowSplitSpheres, relDistance );
if( shadowSplitIndex < 0 )
return 1.0;
float4 scales = asfloat( shadowContext.payloads[payloadOffset] );
payloadOffset++;
float4 borders = asfloat( shadowContext.payloads[payloadOffset] );
payloadOffset++;
float border = borders[shadowSplitIndex];
float alpha = border <= 0.0 ? 0.0 : saturate( (relDistance - (1.0 - border)) / border );
#define EvalShadow_CascadedDepth_( _samplerType ) \
float EvalShadow_CascadedDepth( ShadowContext shadowContext, uint shadowAlgorithm, Texture2DArray tex, _samplerType samp, float3 positionWS, float3 normalWS, int index, float3 L ) \
{ \
/* load the right shadow data for the current face */ \
float4 dirShadowSplitSpheres[kMaxShadowCascades]; \
uint payloadOffset = EvalShadow_LoadSplitSpheres( shadowContext, index, dirShadowSplitSpheres ); \
float relDistance; \
int shadowSplitIndex = EvalShadow_GetSplitSphereIndexForDirshadows( positionWS, dirShadowSplitSpheres, relDistance ); \
if( shadowSplitIndex < 0 ) \
return 1.0; \
\
float4 scales = asfloat( shadowContext.payloads[payloadOffset] ); \
payloadOffset++; \
float4 borders = asfloat( shadowContext.payloads[payloadOffset] ); \
payloadOffset++; \
\
ShadowData sd = shadowContext.shadowDatas[index + 1 + shadowSplitIndex]; \
/* normal based bias */ \
float3 orig_pos = positionWS; \
uint orig_payloadOffset = payloadOffset; \
positionWS += EvalShadow_NormalBias( normalWS, saturate( dot( normalWS, L ) ), scales[shadowSplitIndex] * sd.texelSizeRcp.zw, sd.normalBias ); \
/* get shadowmap texcoords */ \
float3 posNDC; \
float3 posTC = EvalShadow_GetTexcoords( sd, positionWS, posNDC, true ); \
/* sample the texture */ \
float slice; \
UnpackShadowmapId( sd.id, slice ); \
\
float shadow = SampleShadow_SelectAlgorithm( shadowContext, sd, payloadOffset, posTC, sd.bias, slice, shadowAlgorithm, tex, samp ); \
\
float border = borders[shadowSplitIndex]; \
float alpha = border <= 0.0 ? 0.0 : saturate( (relDistance - (1.0 - border)) / border ); \
\
shadowSplitIndex++; \
float shadow1 = 1.0; \
if( shadowSplitIndex < kMaxShadowCascades ) \
{ \
float4 splitSphere = dirShadowSplitSpheres[shadowSplitIndex - 1]; \
float3 cascadeDir = normalize( -splitSphere.xyz + dirShadowSplitSpheres[shadowSplitIndex].xyz ); \
float3 wposDir = normalize( -splitSphere.xyz + positionWS ); \
float cascDot = dot( cascadeDir, wposDir ); \
alpha = cascDot > 0.0 ? alpha : lerp( alpha, 0.0, saturate( -cascDot * 4.0 ) ); \
shadow1 = shadow; \
\
[branch] \
if( alpha > 0.0 ) \
{ \
sd = shadowContext.shadowDatas[index + 1 + shadowSplitIndex]; \
positionWS = orig_pos + EvalShadow_NormalBias( normalWS, saturate( dot( normalWS, L ) ), scales[shadowSplitIndex] * sd.texelSizeRcp.zw, sd.normalBias ); \
posTC = EvalShadow_GetTexcoords( sd, positionWS, posNDC, false ); \
/* sample the texture */ \
UnpackShadowmapId( sd.id, slice ); \
\
if( all( abs( posNDC.xy ) <= (1.0 - sd.texelSizeRcp.zw * 0.5) ) ) \
shadow1 = SampleShadow_SelectAlgorithm( shadowContext, sd, orig_payloadOffset, posTC, sd.bias, slice, shadowAlgorithm, tex, samp ); \
} \
} \
shadow = lerp( shadow, shadow1, alpha ); \
return shadow; \
ShadowData sd = shadowContext.shadowDatas[index + 1 + shadowSplitIndex];
// normal based bias
float3 orig_pos = positionWS;
positionWS += EvalShadow_NormalBias( normalWS, saturate( dot( normalWS, L ) ), scales[shadowSplitIndex] * sd.texelSizeRcp.zw, sd.normalBias );
// get shadowmap texcoords
float3 posNDC;
float3 posTC = EvalShadow_GetTexcoords( sd, positionWS, posNDC, true );
if( shadowSplitIndex < (kMaxShadowCascades-1) )
{
float4 splitSphere = dirShadowSplitSpheres[shadowSplitIndex];
float3 cascadeDir = normalize( -splitSphere.xyz + dirShadowSplitSpheres[shadowSplitIndex+1].xyz );
float3 wposDir = normalize( -splitSphere.xyz + positionWS );
float cascDot = dot( cascadeDir, wposDir );
alpha = cascDot > 0.0 ? alpha : lerp( alpha, 0.0, saturate( -cascDot * 4.0 ) );
if( step( EvalShadow_hash12( posTC.xy ), alpha ) )
{
shadowSplitIndex++;
sd = shadowContext.shadowDatas[index + 2 + shadowSplitIndex];
positionWS = orig_pos + EvalShadow_NormalBias( normalWS, saturate( dot( normalWS, L ) ), scales[shadowSplitIndex+1] * sd.texelSizeRcp.zw, sd.normalBias );
posTC = EvalShadow_GetTexcoords( sd, positionWS );
}
}
// sample the texture
uint texIdx, sampIdx;
float slice;
UnpackShadowmapId( sd.id, texIdx, sampIdx, slice );
uint shadowType, shadowAlgorithm;
UnpackShadowType( sd.shadowType, shadowType, shadowAlgorithm );
float shadow = SampleShadow_SelectAlgorithm( shadowContext, sd, payloadOffset, posTC, sd.bias, slice, shadowAlgorithm, texIdx, sampIdx );
return shadowSplitIndex < (kMaxShadowCascades-1) ? shadow : lerp( shadow, 1.0, alpha );
}
#define EvalShadow_CascadedDepth_( _samplerType ) \
float EvalShadow_CascadedDepth_Dither( ShadowContext shadowContext, uint shadowAlgorithm, Texture2DArray tex, _samplerType samp, float3 positionWS, float3 normalWS, int index, float3 L ) \
{ \
/* load the right shadow data for the current face */ \
float4 dirShadowSplitSpheres[kMaxShadowCascades]; \
uint payloadOffset = EvalShadow_LoadSplitSpheres( shadowContext, index, dirShadowSplitSpheres ); \
float relDistance; \
int shadowSplitIndex = EvalShadow_GetSplitSphereIndexForDirshadows( positionWS, dirShadowSplitSpheres, relDistance ); \
if( shadowSplitIndex < 0 ) \
return 1.0; \
\
float4 scales = asfloat( shadowContext.payloads[payloadOffset] ); \
payloadOffset++; \
float4 borders = asfloat( shadowContext.payloads[payloadOffset] ); \
payloadOffset++; \
float border = borders[shadowSplitIndex]; \
float alpha = border <= 0.0 ? 0.0 : saturate( (relDistance - (1.0 - border)) / border ); \
\
ShadowData sd = shadowContext.shadowDatas[index + 1 + shadowSplitIndex]; \
/* normal based bias */ \
float3 orig_pos = positionWS; \
positionWS += EvalShadow_NormalBias( normalWS, saturate( dot( normalWS, L ) ), scales[shadowSplitIndex] * sd.texelSizeRcp.zw, sd.normalBias ); \
/* get shadowmap texcoords */ \
float3 posNDC; \
float3 posTC = EvalShadow_GetTexcoords( sd, positionWS, posNDC, true ); \
\
if( shadowSplitIndex < (kMaxShadowCascades-1) ) \
{ \
float4 splitSphere = dirShadowSplitSpheres[shadowSplitIndex]; \
float3 cascadeDir = normalize( -splitSphere.xyz + dirShadowSplitSpheres[shadowSplitIndex+1].xyz ); \
float3 wposDir = normalize( -splitSphere.xyz + positionWS ); \
float cascDot = dot( cascadeDir, wposDir ); \
alpha = cascDot > 0.0 ? alpha : lerp( alpha, 0.0, saturate( -cascDot * 4.0 ) ); \
\
if( step( EvalShadow_hash12( posTC.xy ), alpha ) ) \
{ \
sd = shadowContext.shadowDatas[index + 2 + shadowSplitIndex]; \
positionWS = orig_pos + EvalShadow_NormalBias( normalWS, saturate( dot( normalWS, L ) ), scales[shadowSplitIndex+1] * sd.texelSizeRcp.zw, sd.normalBias ); \
posTC = EvalShadow_GetTexcoords( sd, positionWS ); \
} \
} \
/* sample the texture */ \
float slice; \
UnpackShadowmapId( sd.id, slice ); \
float shadow = SampleShadow_SelectAlgorithm( shadowContext, sd, payloadOffset, posTC, sd.bias, slice, shadowAlgorithm, tex, samp ); \
return shadowSplitIndex < (kMaxShadowCascades-1) ? shadow : lerp( shadow, 1.0, alpha ); \
//------------------------------------------------------------------------------------------------------------------------------------
float3 EvalShadow_GetClosestSample_Point( ShadowContext shadowContext, float3 positionWS, int index, float3 L )
{
// get the algorithm
ShadowData sd = shadowContext.shadowDatas[index];
// load the right shadow data for the current face
int faceIndex = EvalShadow_GetCubeFaceID( L ) + 1;
sd = shadowContext.shadowDatas[index + faceIndex];
float4 closestNDC = { 0,0,0,1 };
uint2 texelIdx = EvalShadow_GetTexcoords( sd, positionWS, closestNDC.xy );
// load the texel
uint texIdx, sampIdx;
float slice;
UnpackShadowmapId( sd.id, texIdx, sampIdx, slice );
closestNDC.z = LoadShadow_T2DA( shadowContext, texIdx, texelIdx, slice );
// reconstruct depth position
float4 closestWS = mul( closestNDC, sd.shadowToWorld );
return closestWS.xyz / closestWS.w;
}
float3 EvalShadow_GetClosestSample_Point( ShadowContext shadowContext, Texture2DArray tex, float3 positionWS, int index, float3 L )
{
// get the algorithm
ShadowData sd = shadowContext.shadowDatas[index];
// load the right shadow data for the current face
int faceIndex = EvalShadow_GetCubeFaceID( L ) + 1;
sd = shadowContext.shadowDatas[index + faceIndex];
float4 closestNDC = { 0,0,0,1 };
uint2 texelIdx = EvalShadow_GetTexcoords( sd, positionWS, closestNDC.xy );
// load the texel
float slice;
UnpackShadowmapId(sd.id, slice);
closestNDC.z = LOAD_TEXTURE2D_ARRAY_LOD( tex, texelIdx, slice, 0 ).x;
// reconstruct depth position
float4 closestWS = mul( closestNDC, sd.shadowToWorld );
return closestWS.xyz / closestWS.w;
}
float3 EvalShadow_GetClosestSample_Spot( ShadowContext shadowContext, float3 positionWS, int index )
{
// get the algorithm
ShadowData sd = shadowContext.shadowDatas[index];
float4 closestNDC = { 0,0,0,1 };
uint2 texelIdx = EvalShadow_GetTexcoords( sd, positionWS, closestNDC.xy );
// load the texel
uint texIdx, sampIdx;
float slice;
UnpackShadowmapId( sd.id, texIdx, sampIdx, slice );
closestNDC.z = LoadShadow_T2DA( shadowContext, texIdx, texelIdx, slice );
// reconstruct depth position
float4 closestWS = mul( closestNDC, sd.shadowToWorld );
return closestWS.xyz / closestWS.w;
}
float3 EvalShadow_GetClosestSample_Spot( ShadowContext shadowContext, Texture2DArray tex, float3 positionWS, int index )
{
// get the algorithm
ShadowData sd = shadowContext.shadowDatas[index];
float4 closestNDC = { 0,0,0,1 };
uint2 texelIdx = EvalShadow_GetTexcoords( sd, positionWS, closestNDC.xy );
// load the texel
float slice;
UnpackShadowmapId(sd.id, slice);
closestNDC.z = LOAD_TEXTURE2D_ARRAY_LOD( tex, texelIdx, slice, 0 ).x;
// reconstruct depth position
float4 closestWS = mul( closestNDC, sd.shadowToWorld );
return closestWS.xyz / closestWS.w;
}
float3 EvalShadow_GetClosestSample_Punctual( ShadowContext shadowContext, float3 positionWS, int index, float3 L )
{
// get the algorithm
ShadowData sd = shadowContext.shadowDatas[index];
uint shadowType;
UnpackShadowType( sd.shadowType, shadowType );
// load the right shadow data for the current face
int faceIndex = shadowType == GPUSHADOWTYPE_POINT ? (EvalShadow_GetCubeFaceID( L ) + 1) : 0;
sd = shadowContext.shadowDatas[index + faceIndex];
float4 closestNDC = { 0,0,0,1 };
uint2 texelIdx = EvalShadow_GetTexcoords( sd, positionWS, closestNDC.xy );
// load the texel
uint texIdx, sampIdx;
float slice;
UnpackShadowmapId( sd.id, texIdx, sampIdx, slice );
closestNDC.z = LoadShadow_T2DA( shadowContext, texIdx, texelIdx, slice );
// reconstruct depth position
float4 closestWS = mul( closestNDC, sd.shadowToWorld );
return closestWS.xyz / closestWS.w;
}
float3 EvalShadow_GetClosestSample_Punctual( ShadowContext shadowContext, Texture2DArray tex, float3 positionWS, int index, float3 L )
{
// get the algorithm
ShadowData sd = shadowContext.shadowDatas[index];
uint shadowType;
UnpackShadowType( sd.shadowType, shadowType );
// load the right shadow data for the current face
int faceIndex = shadowType == GPUSHADOWTYPE_POINT ? (EvalShadow_GetCubeFaceID( L ) + 1) : 0;
sd = shadowContext.shadowDatas[index + faceIndex];
float4 closestNDC = { 0,0,0,1 };
uint2 texelIdx = EvalShadow_GetTexcoords( sd, positionWS, closestNDC.xy );
// load the texel
float slice;
UnpackShadowmapId(sd.id, slice);
closestNDC.z = LOAD_TEXTURE2D_ARRAY_LOD( tex, texelIdx, slice, 0 ).x;
// reconstruct depth position
float4 closestWS = mul( closestNDC, sd.shadowToWorld );
return closestWS.xyz / closestWS.w;
}
float3 EvalShadow_GetClosestSample_Cascade( ShadowContext shadowContext, float3 positionWS, float3 normalWS, int index, float4 L )
{
// load the right shadow data for the current face
float4 dirShadowSplitSpheres[4];
uint payloadOffset = EvalShadow_LoadSplitSpheres( shadowContext, index, dirShadowSplitSpheres );
float relDistance;
int shadowSplitIndex = EvalShadow_GetSplitSphereIndexForDirshadows( positionWS, dirShadowSplitSpheres, relDistance );
if( shadowSplitIndex < 0 )
return 1.0;
float4 scales = asfloat( shadowContext.payloads[payloadOffset] );
payloadOffset++;
float4 borders = asfloat( shadowContext.payloads[payloadOffset] );
payloadOffset++;
ShadowData sd = shadowContext.shadowDatas[index + 1 + shadowSplitIndex];
float4 closestNDC = { 0,0,0,1 };
uint2 texelIdx = EvalShadow_GetTexcoords( sd, positionWS, closestNDC.xy );
// load the texel
uint texIdx, sampIdx;
float slice;
UnpackShadowmapId( sd.id, texIdx, sampIdx, slice );
closestNDC.z = LoadShadow_T2DA( shadowContext, texIdx, texelIdx, slice );
// reconstruct depth position
float4 closestWS = mul( closestNDC, sd.shadowToWorld );
return closestWS.xyz / closestWS.w;
}

19
Assets/ScriptableRenderPipeline/ShaderLibrary/Shadow/ShadowTexFetch.hlsl


// Shader model >= 5.1
# define SHADOW_DEFINE_SAMPLING_FUNC_T2DA_COMP( _Tex2DArraySlots , _SamplerCompSlots ) float4 SampleCompShadow_T2DA( ShadowContext ctxt, uint texIdx, uint sampIdx, float3 tcs, float slice ) { return SAMPLE_TEXTURE2D_ARRAY_SHADOW( ctxt.tex2DArray[texIdx], ctxt.compSamplers[sampIdx], tcs, slice ); }
# define SHADOW_DEFINE_SAMPLING_FUNC_T2DA_SAMP( _Tex2DArraySlots , _SamplerSlots ) float4 SampleShadow_T2DA( ShadowContext ctxt, uint texIdx, uint sampIdx, float2 tcs, float slice, float lod = 0.0 ) { return SAMPLE_TEXTURE2D_ARRAY_LOD( ctxt.tex2DArray[texIdx], ctxt.samplers[sampIdx], tcs, slice, lod ); }
# define SHADOW_DEFINE_SAMPLING_FUNC_T2DA_LOAD( _Tex2DArraySlots ) float4 LoadShadow_T2DA( ShadowContext ctxt, uint texIdx, uint2 tcs, uint slice, uint lod = 0 ) { return LOAD_TEXTURE2D_ARRAY_LOD( ctxt.tex2DArray[texIdx], tcs, slice, lod ).x; }
# define SHADOW_DEFINE_SAMPLING_FUNC_TCA_COMP( _TexCubeArraySlots, _SamplerCompSlots ) float4 SampleCompShadow_TCA( ShadowContext ctxt, uint texIdx, uint sampIdx, float4 tcs, float cubeIdx ) { return SAMPLE_TEXTURECUBE_ARRAY_SHADOW( ctxt.texCubeArray[texIdx], ctxt.compSamplers[sampIdx], tcs, cubeIdx );}
# define SHADOW_DEFINE_SAMPLING_FUNC_TCA_SAMP( _TexCubeArraySlots, _SamplerSlots ) float4 SampleShadow_TCA( ShadowContext ctxt, uint texIdx, uint sampIdx, float3 tcs, float cubeIdx, float lod = 0.0 ) { return SAMPLE_TEXTURECUBE_ARRAY_LOD( ctxt.texCubeArray[texIdx], ctxt.samplers[sampIdx], tcs, cubeIdx, lod ); }

return res; \
}
# define SHADOW_DEFINE_SAMPLING_FUNC_T2DA_LOAD( _Tex2DArraySlots ) \
float LoadShadow_T2DA( ShadowContext ctxt, uint texIdx, uint2 tcs, uint slice, uint lod = 0 ) \
{ \
float res = 1.0; \
[unroll] for( uint i = 0; i < _Tex2DArraySlots; i++ ) \
{ \
[branch] if( i == texIdx ) \
{ \
res = LOAD_TEXTURE2D_ARRAY_LOD( ctxt.tex2DArray[i], tcs, slice, lod ).x; \
break; \
} \
} \
return res; \
}
# define SHADOW_DEFINE_SAMPLING_FUNC_TCA_COMP( _TexCubeArraySlots, _SamplerCompSlots ) \
float4 SampleCompShadow_TCA( ShadowContext ctxt, uint texIdx, uint sampIdx, float4 tcs, float cubeIdx ) \
{ \

// helper macro to suppress code generation if _cnt is 0
#define SHADOW_DECLARE_SAMPLING_FUNC_T2DA_COMP( _Tex2DArraySlots , _SamplerCompSlots ) float4 SampleCompShadow_T2DA( ShadowContext ctxt, uint texIdx, uint sampIdx, float3 tcs, float slice );
#define SHADOW_DECLARE_SAMPLING_FUNC_T2DA_SAMP( _Tex2DArraySlots , _SamplerSlots ) float4 SampleShadow_T2DA( ShadowContext ctxt, uint texIdx, uint sampIdx, float2 tcs, float slice, float lod = 0.0 );
#define SHADOW_DECLARE_SAMPLING_FUNC_T2DA_LOAD( _Tex2DArraySlots ) float4 LoadShadow_T2DA( ShadowContext ctxt, uint texIdx, uint2 tcs, uint slice, uint lod = 0 );
#define SHADOW_DECLARE_SAMPLING_FUNC_TCA_COMP( _TexCubeArraySlots, _SamplerCompSlots ) float4 SampleCompShadow_TCA( ShadowContext ctxt, uint texIdx, uint sampIdx, float4 tcs, float cubeIdx );
#define SHADOW_DECLARE_SAMPLING_FUNC_TCA_SAMP( _TexCubeArraySlots, _SamplerSlots ) float4 SampleShadow_TCA( ShadowContext ctxt, uint texIdx, uint sampIdx, float3 tcs, float cubeIdx, float lod = 0.0 );

#define SHADOW_DEFINE_SAMPLING_FUNCS( _Tex2DArraySlots, _TexCubeArraySlots, _SamplerCompSlots, _SamplerSlots ) \
SHADOW_CHECK( _Tex2DArraySlots , SHADOW_CHECK_ALT( _SamplerCompSlots, SHADOW_DEFINE_SAMPLING_FUNC_T2DA_COMP( _Tex2DArraySlots, _SamplerCompSlots ), SHADOW_DECLARE_SAMPLING_FUNC_T2DA_COMP( _Tex2DArraySlots, _SamplerCompSlots ) ) ) \
SHADOW_CHECK( _Tex2DArraySlots , SHADOW_CHECK_ALT( _SamplerSlots , SHADOW_DEFINE_SAMPLING_FUNC_T2DA_SAMP( _Tex2DArraySlots, _SamplerSlots ), SHADOW_DECLARE_SAMPLING_FUNC_T2DA_SAMP( _Tex2DArraySlots, _SamplerSlots ) ) ) \
SHADOW_CHECK_ALT( _Tex2DArraySlots , SHADOW_DEFINE_SAMPLING_FUNC_T2DA_LOAD( _Tex2DArraySlots ), SHADOW_DECLARE_SAMPLING_FUNC_T2DA_LOAD( _Tex2DArraySlots ) ) \
SHADOW_CHECK( _TexCubeArraySlots, SHADOW_CHECK_ALT( _SamplerCompSlots, SHADOW_DEFINE_SAMPLING_FUNC_TCA_COMP(_TexCubeArraySlots, _SamplerCompSlots ), SHADOW_DECLARE_SAMPLING_FUNC_TCA_COMP(_TexCubeArraySlots, _SamplerCompSlots ) ) ) \
SHADOW_CHECK( _TexCubeArraySlots, SHADOW_CHECK_ALT( _SamplerSlots , SHADOW_DEFINE_SAMPLING_FUNC_TCA_SAMP(_TexCubeArraySlots, _SamplerSlots ), SHADOW_DECLARE_SAMPLING_FUNC_TCA_SAMP(_TexCubeArraySlots, _SamplerSlots ) ) )

4
Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_smooth1_0.mat


m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: Mat_smooth1_1
m_Name: Mat_smooth1_0
m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3}
m_ShaderKeywords: _NORMALMAP_TANGENT_SPACE
m_LightmapFlags: 1

- _Anisotropy: 0
- _BlendMode: 0
- _BumpScale: 1
- _CoatCoverage: 1
- _CoatIOR: 0.5
- _CullMode: 2
- _Cutoff: 0.5
- _DepthOffsetEnable: 0

4
Assets/TestScenes/HDTest/GraphicTest/SSS/Materials/SSSHead.mat


- _Anisotropy: 0
- _BlendMode: 0
- _BumpScale: 1
- _CoatCoverage: 1
- _CoatIOR: 0.5
- _CullMode: 2
- _Cutoff: 0.5
- _DepthOffsetEnable: 0

- _SrcBlend: 1
- _StencilRef: 1
- _Stiffness: 1
- _SubsurfaceProfile: 4
- _SubsurfaceProfile: 0
- _SubsurfaceRadius: 1
- _SurfaceType: 0
- _TexWorldScale: 1

6
Assets/TestScenes/HDTest/GraphicTest/Two Sided/Material/GroundLeaf_DoubleSidedFlipSSS.mat


- _Anisotropy: 0
- _BlendMode: 0
- _BumpScale: 1
- _CoatCoverage: 1
- _CoatIOR: 0.5
- _CullMode: 0
- _Cutoff: 0.5
- _DepthOffsetEnable: 0

- _SrcBlend: 1
- _StencilRef: 1
- _Stiffness: 1
- _SubsurfaceProfile: 0
- _SubsurfaceProfile: 1
- _SubsurfaceRadius: 1
- _SurfaceType: 0
- _TessellationBackFaceCullEpsilon: -0.375

- _TessellationObjectScale: 0
- _TessellationShapeFactor: 0.75
- _TexWorldScale: 1
- _Thickness: 0.5
- _Thickness: 1
- _UVBase: 0
- _UVDetail: 0
- _UVMappingPlanar: 0

408
Assets/TestScenes/HDTest/HDRenderLoopTest.unity
文件差异内容过多而无法显示
查看文件

2
Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/GGX Test/GGX_a00_s05.mat


- _Anisotropy: 0
- _BlendMode: 0
- _BumpScale: 1
- _CoatCoverage: 1
- _CoatIOR: 0.5
- _CullMode: 2
- _Cutoff: 0.5
- _DepthOffsetEnable: 0

2
Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/GGX Test/GGX_a00_s06.mat


- _Anisotropy: 0
- _BlendMode: 0
- _BumpScale: 1
- _CoatCoverage: 1
- _CoatIOR: 0.5
- _CullMode: 2
- _Cutoff: 0.5
- _DepthOffsetEnable: 0

2
Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/GGX Test/GGX_a00_s08.mat


- _Anisotropy: 0
- _BlendMode: 0
- _BumpScale: 1
- _CoatCoverage: 1
- _CoatIOR: 0.5
- _CullMode: 2
- _Cutoff: 0.5
- _DepthOffsetEnable: 0

43
Assets/Textures/cookieTest.png.meta


filterMode: -1
aniso: -1
mipBias: -1
wrapU: -1
wrapV: -1
wrapW: -1
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 1
lightmap: 0
compressionQuality: 50

platformSettings:
- buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
- buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
- buildTarget: iPhone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
- buildTarget: tvOS
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
- buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50

10
ProjectSettings/EditorBuildSettings.asset


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1045 &1
EditorBuildSettings:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Scenes:
- enabled: 1
path: Assets/TestScenes/HDTest/HDRenderLoopTest.unity
guid: 0b16df2ba8fd0f244a826da853bc2d3b

5
ProjectSettings/ProjectSettings.asset


targetDevice: 2
useOnDemandResources: 0
accelerometerFrequency: 60
companyName: DefaultCompany
companyName: Unity
productName: dev
defaultCursor: {fileID: 0}
cursorHotspot: {x: 0, y: 0}

iOSBackgroundModes: 0
iOSMetalForceHardShadows: 0
metalEditorSupport: 1
metalAPIValidation: 1
metalAPIValidation: 0
clonedFromGUID: 00000000000000000000000000000000
AndroidTargetDevice: 0
AndroidSplashScreenScale: 0
androidSplashScreen: {fileID: 0}

2
ProjectSettings/ProjectVersion.txt


m_EditorVersion: 2017.3.0a3
m_EditorVersion: 2017.3.0a4

56
Assets/ScriptableRenderPipeline/HDRenderPipeline/Material/Lit/Resources/CombineLighting.shader


Shader "Hidden/HDRenderPipeline/CombineLighting"
{
SubShader
{
Pass
{
Stencil
{
Ref 1 // StencilLightingUsage.SplitLighting
Comp Equal
Pass Keep
}
Cull Off
ZTest Always
ZWrite Off
Blend One One // Additive
HLSLPROGRAM
#pragma target 4.5
#pragma only_renderers d3d11 ps4 metal // TEMP: until we go further in dev
// #pragma enable_d3d11_debug_symbols
#pragma vertex Vert
#pragma fragment Frag
#include "../../../../ShaderLibrary/Common.hlsl"
TEXTURE2D(_IrradianceSource);
struct Attributes
{
uint vertexID : SV_VertexID;
};
struct Varyings
{
float4 positionCS : SV_Position;
};
Varyings Vert(Attributes input)
{
Varyings output;
output.positionCS = GetFullScreenTriangleVertexPosition(input.vertexID);
return output;
}
float4 Frag(Varyings input) : SV_Target
{
return LOAD_TEXTURE2D(_IrradianceSource, input.positionCS.xy);
}
ENDHLSL
}
}
Fallback Off
}

10
Assets/ScriptableRenderPipeline/HDRenderPipeline/Material/Lit/Resources/CombineLighting.shader.meta


fileFormatVersion: 2
guid: 2e37131331fbdca449b1a2bc47a639ca
timeCreated: 1502125437
licenseType: Pro
ShaderImporter:
externalObjects: {}
defaultTextures: []
userData:
assetBundleName:
assetBundleVariant:

776
Assets/ScriptableRenderPipeline/HDRenderPipeline/RenderPipelineResources/DefaultSkybox.exr


v/1channelschlist7BGRcompressioncompressiondataWindowbox2i�displayWindowbox2i�lineOrderlineOrderpixelAspectRatiofloat�?screenWindowCenterv2fscreenWindowWidthfloat�?Y#����6½@��������������m��w����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������_�����ݿ�����߯�U��Z�lоAFq��q�r � $�I$�J(��,��,��0� 0� 0� 4� 0� 4�L<�M8�M@�@Î4�8�4��8�;��=�=<<==�<�@��=�9���@�������9O�����?������O���O���?����T����O������������������Ώ?��!?���$?�C��?�#� ?���?���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������O���4����O������8��O����������P��� ����?��?����<�8�=���<���4���<��<��;��<��<��8�<��<�5��8�N8��8�O4�O8��4ӏ0�M4�M8� 0Ӎ4� 0�L8�L4Í0� 0� 0��0� 0��0��,��,��(��(��(��$�I$�H$� �q�q�q�a�q�q�q�Q�\8\ ���`>`  ���`
�*2P�SDL��񐜩���L�2T2X:T`���� Vڰ�[j�U���[�ȕ���uaǖIZ��J��aQ����@^#x�J��:�C��M���� F�3`B8�# F��,�8X�c��ac���,2. t\hX�� ��ظ2|�R��`\*]�듮�����8;X�r��H\�q��bH��!N�8d��2(F�H�"�l�dY�bȹ1�EɅ$ʼn��c���� �5ӎs�S�(����`�*�F�k�]x�EK�A��1*�)&$���IW��b�D*�jp�²�Y���Uu��_����������9�������w�����}�ϻ��+��������%�Q� `i��d�(�Jf�/�n9�J��7��w"r-"r�2)"rfU@�8��3]Q��1���*���P��C]*�S_��ƶ%.���D�5рMd�3l�d8LX��E��L�6i��2��`'��+����(�v
0a��d� �*�q� k�[��D�5���̪��i1 �bK�����a[ P���VB���
Ƞ�������)����Ʒ[��ַ]�ֱ��i�>�Oj5�F��&�O����)>�Ok&�[��Z�Y��k5Dܧ7776����ssssr��ۧ7777-T+5��f��R�n�Y$��O�i��}>��I�Q��j4��O��z�[�v�]Kmn�V��Ap\��j�Q�7����9����g1�9C9�g9��9����h圱��sl��g�l���9����3��s��r�h�s4ɉ��Y���ѫ5f�_Uu����]�_����]���_����]W�u��u����UUU��AO�������*5�='����}?'�8)=���O0�p\z�����O�����{Q��o�v����ߨ. ~����ۧ-�������\�����������N��[�����L�������������������O�G6������)�ss<1CK�Θ�1�:g2|�"��FQ��X
QW��Q&ii�BW*��DVʟ(�'�ı�Y�t��X�d+�YkYKY�yn�ńԑ�(������·��o������
�f�f�c����,h�iyw!,�l�Ų��Ζ�d% � �s��.�_<,�c�D��Z�m�B�\�t�"����@��>�^���VN�iΧ�Q�:�RyM���Ʉd�a!;&�f���#��O���`�|���a4���L��2c`$��k� �� ��1�a4|`ʪ@ƹҺ ��GLL=a��$_K�8xB(xDp�}u�_������}]��w���_����]u�]u�]u�]}]u}���WW�gX���J��+4�#,P��OJ+Awh'� ����W#��z\�K�%�8l�|�G�z|g�悺AWH+�
�=L�Wd��"X�"X����v;�y�dy�dx���4Ƞ�4tP���$�29�ȧS"���)�)�)�U�U.��2�2�2�2)r"�ȎW"ItC"��K�\P�Cp�C�=�=�?o�o���S���Qkmn�]ku��l���}>�Q�����O��M>�O�����e����[K-e��k*�)ͽ�n۷6��onۦ���sn������~��e��k)e-�����)<������~ ?��5zQj4�}>����n�[����m(����������PY�ݚ���y�9G3_��3c8�3��8Ռ�4r�q�g�q����Q�9ՍX�3��8�r�lg��g�q�f��ŗ�Y�団y��k7F��몺������������������������������������↑��������ݦ����O�����{O���-���ߨ8-�;��8* ���߸)=����}>�O���ɭ��{������ܶ����n����C���������9N[���幻M2�I����9�NnS���������OhXA��ͭ�jڶ��)�� �$\:\ ��!Ȉ�f�E�"��
�%*`��4THT�c"�
��L�ʙ*�.P�"̄5�,�[���m�^�:�T�^�ńKY%�� ��TmB%���d�p�#z�$|>v ���Ј���a�6���j���l`>a����E�E�X���ȱB����� ���1q�fK,®��� �']�N�H�:�� \J�Թ:�J�VTҠ��� @~��
{P�@AR�DԥR�ʼn�1r`B&.O(,L*��P l���i�;�s<��Q6��V-���+,P�݂-U+�q%��K�<K�t�LJ��.S�F�0<��wv%����B����W �꾿����������뮿�����������������������Wwwx@`��bL`:��R�f
bau�r�v�scbA
D��NAS��;
��m�0�3��a\q\r��*�J��G3Q.�';_s�����k��_8`�4�fAe��șF@��1��B�I�� ��S�`�8f�M�]`�f%F.v
�*Q8���Eƺ s7��0əNL�% ëԯ~���WC8VD"Yĺ()�~������� �i�>���n�[��R{O�����~���z��8885P���5��e����K/on����7m[{{{{v���7����MӖ���oojbY����Y��kuڢpppppS���o\�����}>��Z�n�[���ɧ������-����~��Y��o9����1"�z1E��n!�f�hkƬk�lf�lkƱ�f�Y��3�5�c43C45�cT5�c63c9�K�|ŗ�������9����_��u�UW���]�__������u�����]W��_U�UU�����������7���I�����pT�����O�I����鿿o���S���෉�ڶ�������n����ڦ�ԍ�Z�������N��ӻ��7nmۛv�4�M&�j�ͺsn��-��wwz���,?���4��յ����D�rR�rR��Sd��h�՚@/��^.�[*�\��r�
�&��U\�Ҍ�F͓$[KIVMa�Zơ] ��ǖR��Z�Vk�,��>�}�6+spT�<<�><�>=�����4<n͊��Ȭg���� K�[xZ�<-b��m*L�l\�ZBą��5آ^�v��rHa\��s�u�.��U�T�V��
�� 9*zNJ�PJ�RJ�T�a!;&��aF$�?UA�\�).��|�y� ��]�����QK��� �� �� ��QV�A=tːE2��c����=}�s�xJ����������뾿�����������������������������������V6 � �!e�{�U�'cd}����������ԉeȖ\����X��"��X�����wGj��\���~2� ��w�]�7D��Gq���<����`P�2'e�2� 9XVS(P� ��c� ���`y�`y�`QElI}�+�E.���1��1\]1R!�"r �0�+_� *xe���!DW�+�z.'����������)<��u��[����`��i���������������u��[kif�Wo���om��{v�յm��v�յM��t��5M��{v���=OƮ�k5���kmn�[�b ~Ooooooo�?��S�e-�R�n�O(. ������߷�������o7f��r�f$^�ь�_1e��cX�7cv7cv7CV5��Ս�� Y���Y�9ݍPݍcT7ct7Ct7CX�e��b��3{/f&s9G,�n����������������������������꿺������������������������on���i��S���~��7����~�e�snۧ7-؟������~߸886��M���ۦ�����jۦ��5&��I!��3����'w-�rݧ6��ooooL�M�G��i�oooor۷7m�vܧt ��g���M�6�ڦ����p������z`@d fD&AȌ�c��`t`  B���T�QQv)��̖(&Y� �ŏ,H�B�%��rP��*�u`�ƖJP��:�z�* ����� ���G��¸�,Ȉ�!�����������# HL ����, ��زaa�`�X�0L&.Lh��P�������T+!O
�Q/V��"+Zyl I�}p�cJ���2�:�ʆ�=X�p*�B�2P�E)F�J�"�I�&\�bb��԰ܩ��{�0�F]a�����>l0�Y*����κ�jqĺ%��UԤrUK.� F�51���ϊ�`,���z��aR�*�P��]u�_������J�������}�ܻ�����]�w�}��]�www���s�9 H�e�u�����0�V@��J���q�wR|����ώ���ULr����p�)Θ�(�U,�����D�(���>�q���Ʈ8c���d��f������b���� P^�NsK���L�`� 1*����BT���$���5񀈎rfD��I��^�z��/T�mJ��`3Uu���tJ"]�����=�ooo�S���ku�����]�b �;�O[�����J����u��f�W��wwv��ۦ�6���������j�ۦ������6�����wwQ
�^�Y���u��QG���v�ާm�����v����YKu��`�����޷������{z���(ݜ�X��^�f3�Ř�f1���o�,r��j���e�y��o7��������j��r�(o��e���b�f3����63g(�n�Y���������������������B꿺�������������ꪞ���{{{n�۶���jMIt�Kv'��~���ާ����������ݍ�{z���߷��u���K��֛kkn�۷�����z�ڦ���&�I���4����t��۶��okkn���G����Z=�&�����n��74��s�����h4:
C��m�MMm[Y(� ���3$�s$��GLL`��0|bc �U��U��/3L!`�Lɒ{$+mj��v(�~��d��zƕ�NF�P��� ���{c�[��n�]�����L�9�A�4)73��1���ƈL� �0FffZ1��س��&�;&�6@�Bd%h� \$QN$1-���'�־�����g�IQ�Z�����H4�����-A"�I*�T��2a!IH?]��T�`>�����
*)�7S���6�2����I}���}`�_0gD "�5tS3F�a������v����I9� W��E����������뾻������뾿����������뫯������������#�� b��b��z��l�͒9G2Y�$�H�W"
fǯ���z�{�
���S$��-tG&&�(��q�\��;�_��q��̒>1C����݆0�ua}Յ��B�$��B)1C ���*�L
X� 譆s�4��i+�κ �u�c�E6�l
+B^����ׄ%�_]�tU�o��>1DW����������ooo� <�Z�Yk-n�[��� �����֪5v�Y���u��Y���wz���ܓT�7�m[T�&�SV�5M[V�&��VյMS{Vչ7www������]���u��f��0�;����5Q���n�YK)e,�򃃃��~Ooo���������=�������$c1����f�f3��j1��,s��s&n���9F����n���#��7C��cvi�9��c1��9��b�f3�Q��r���������������������뮫���������꾫�����������ۦ���m6�MI-%���M,�߷��{w{q����j��ڦ��or'�w���~���&�II)%&��m6�kon�������Zm6�E$�A������[%�rZ; {{{zkkkH�-"�h�Z-��i"kkMM����I��.K���=���A��Z)��i��� $\:\*01�
���Q���h</���\0:0�`8\�\l����`��fA���ZL�$^�%�����kǡyYeh��@/����
vS�� M��� p]!v�"x�;�XȈ�hFhM��,d����2Ƃ��` D`@dVhFhx�tYh��d$ř�%�2Y� �&� k' c��5����% J-mX\�*��R�J�*aR(�ApN'B�P�@T���J�J)Ar�LQJ��J���2ŰQ�C`�
�*� �)�=�$2������������� �]3Q�!ĺ!x�F�/��������`s���z��/R�]u�}}u�����������������]�}������w]��Ww���򻻻�x�2�1 o�S�[�]�)[ 2�FM��-`����;�/J�k�����s�Y��U@�R��9� u)Jv
q.��K�(�Eq������Z���qGq�X(Ęe�1\s������`W�I�&0P
PL�@U�#�9�f%F';��u8�*R����J.q��r�,G`��J� ԯ��K��*☔t����u, 1C�_��۴�����������pS�A��f���u�Y��t�YjXU�]��v����[��t���������mmS[t�����&�i���M��m�[[[[v�յ�Nӻ�����v���i],�t����S
cYK5v��k&�[����`��� ��৷��������m����s�s4c1���s9��g1��9�3flj!���vƉ�����s9��g3��9�B;C�����&h��9�1���s9��c1����3��}uWW��W��}_��������]W�_�W��_U�_�UU�onӴ�7�����6�MIm&�II)%$���/n�[��5�������������n�S�ۄ�ZKIi-%��ii5��mZjkkovݷm��M���� ���?g�\��2L����F���M��2���i�C���t6�Ci"M�ڶ�e�2:$�L�$�\�~������CZM�ڲ!�`�b���̑̑��\�� ��R�te֋�V�u�I�T��&�Rn+��j'!����u},@�Z4� ��Ǔ�hR�����K���m�C��9�Р՛�����dR5��F����L�̐� 4�ˢ�M�h���7�[f�nw���;����R�j�)%S�:��Uj���I��i��I�j)I�HJS(bA��?]+� ]*�1�!c`D��1ad��逢��-݄����K�K�K�k� b�1�D"��C�>!wb��/�~��0�q� W��������뾻뾻���������������������믿�������"�"�UՊ/�=�'�ļ� ��f6V6�,��B���/�E݉��O�
*�Ex���g9 �-kmm�%�x��O�(�w�q�E�[V �a:��u0�u0�u0�6I��y0zR�E2aqD� ���R��Φά1��Ʈ��6��'�l�^/׃���/�0� �WAd�Au]t%�c���=N�ۻ��=���ooS�������k5��+���WK-e���)]����z�WJ��ssssv��7)�j��[[[[V��%�i��m.յ�Mmmi���jܷ7i�ssssz%z�WJ�z�^��Z�^��R�W��v�k5� ?������O�[�������N�n�����8�bE��c1��9�3���,�g3��Y�7r�hl��f�Y�g9c43g(g9���9��;a�6��5��9��b��s9�3����^�Lg�����������������������뮫�����꿿���������zݧv��j���m5&��]�IH�z+GH�$n����ڤ�kM��ZjM��Rm�MM��v��R=�����]5���m�jڶ���z��].�H)~�Y��~�g�L�$�<�#���%�5&�D��)��RA��� CHt�E
kMd�Ȳ;#��<���L�{?G��
?h4�it�[�`80E����������D&AȌ��B3x.80�`80 ���R�b��H���M���ȼ����&�dBHUĖQ >�;��,��pӠN6Sb��u�ΐ��#xW��N��� � ��p%8C��e�2
�^f� ��dBd���4#6Y� a["��&��28ȱ0���4Q��<�La{JD�R)5)��R��ReA������jt é�' �"P *� U%R���AyJ�i�'LU�R���1!�
�����`�!� 2.�2[ձ�W���Wνm_^ZpĮ%�"�lOĶ -�TqM%�5�������sT�J�z��_�����'�_������?���������wݳ��ww}��Ͼ}�w`�Į�㻸nv���v�����F �Q��a�+-}�������,T�����]-�� k�_��ƾ0 q/�;�[�3ʇ��z�*�q�� J;�k� �N����d��\��I���L\��b��� ,Q�+|؝ή9���
*銝r���N%�W�^�z�^�R�
��_�!i3!i3By3!i3"�f�8�v�޷����wwwwwwzo�����?�O��f�W����z�W����z�^����ssssr��77-�i�ԛj��RjM���[K���m5&�Zkkj�i�6�j7)���r�����ƯUJ�z�^�W��ڽ^�W���d�����oS����������޷ww��wv�q�3#�1��Y��f�����Tj�fl�n�f���q�g�q�g�q�g�q�g93Y�ݚ�Ѭ՚�Vf�Y����(�c3f33������������������� H/�������������ꪝ�ۦ��T��it�]-$�t�GH�Z-���t��K��i�.��i���Mi��]6���t4�E��h���R[K�����զ�۷wt�] �g����z�Q���$GDYdY ��TC�� A�� Ag��
AH3��AH3�C�YCDYGdY�L�z�g������� ��r�� |� |� �� �� ���4J1C�� Ō˒��!f6�l7.M�ɸx[��,2^y{ ����
|W�<��OI� Sbv���n ����({x7~���lР�pNs��"q�hN7���lx͙3FEfhЬ՚ 7�⑔JNd�ge�{-���|ic����D�u$�u$�iI"�I*�TD�@C
}9
}A
�I
�I
�PJQ���A]+� t"��Ut!b�3l�����Ɋ�tw@��_�/���5ՄW+�q�Qq��EQb��WSO���_1���v��������������������������﫮����뫮����뫮������.V'���V�b[�I9Xf��f��d��b�0�_Q�I� ��7��z�7��',/��s c��(��8��8�ĕ:�A�К���⊝s���l0��GS gQ���
��cb0��&٢`�O&��0[�\��A ����Φ��[]+b�~2��޺0t�׃
�w �Cp�F�V� �]��Ҷ \��n����������ۻ�����=�O[���{{zߵWj�^��Z�]+�v�ݦ齽�or�۷6�ԛM��i��m6�M�Ii.�KmZm6�M��i��m6���ۦ�-��oonݷwmD�ڻW��V�WJ�D�����齽�O������;��N����������9�1��b�ќ�g3fl͚�٪5����y��3�͛��5C65�c45cY����j3y��o5��Y�5��4f��s9�1F(͘�X��_�����_W�W��]`����U�_U��������~��$�m5%��t�ZI���=�E���t:��K��f�it�M&�I���dvD�.Kg�C���tZ-�G���M-���t�kM�ڛ��C$4�A���(�����v���#�,�!�!���lMA� �!��z�Q�=g����Y�ؚ����!�"Ȳ:"Ȭ������z�Y��A��3K��qx��˃����rdBg2"4 &�f����ы ����0:.Y,�L�`2d�0�Q��+ʮP�.R���W���������A+�>�Y�K@�ح�p}�4�B���=�F�7����Hja!�4� Nc!0�* ��V4 ��4X`B`�̈�١��̃…�DP�@��r��  �]8��b[1-�+J��$R)J��&T *��)����>�'B�P�@/�D��(T����:b�����(dĮ��!əl�`,�l�dI��j�J��(5*�� ݓ��.9�8�nv�5��$K"b�Kb��qN���q]\V���3�������������������������������������������o�;;�ظ� ӎr��I�2�f@``���9q�P���"�QJT��.��vVq�$\sf�`\�Us� ��_' k�����Ԩ銎�@�UQׁ�s���#�>8f)�9���8�/"l]�ld�0YbCs��k�_&$ 1%U�P��'�k�s)8�mJM� W�tKb_1C5tĀ�L�Rb@`�2�̀�)Tr�wsvܧwwi���v��������ާ�i������{{z�� ;'i��sv�ܦ�����ojڦ�.���].���]6�M���-���-&�i��ZMit�[Miv��j�ڦ�齽�sv�ݷ7m��4�z��ݧ���wwm��{{{{{sssv��w7m���v������9��g3fsY�5��f�Vk7f�y��3�ř��3��s7#4g1F36b�f3����y�5��Y��k3F�9�3���s6f�ϯ������������������뮺���������������������j�i��].�IIm&���= !��)��g�%�Z$�2L�$�(�g�~D�$�L�$�2L��l�H4�Aht:G����KI-.�K��i���CH,���~�Q��M,۷f���HX%`�C���lM��� �6&� ���D�؛ �6�lM����?�̖41�n�Ӳn���H�z���?g�!�1��G�L�|�����2@j�
�Q�"��1�!�"��&v����#f�@��.����������Pp
��
Sӡ�V�n��n����xL��n�͕t.8�h7�ؘ�pLr�Cq�h7ƃq���"�9�Q�Ш�7�)�)� )e
�B9�DQqEQE�D���)�$Ju$JuD*��V��A�>�Ӑ(�(���q4b&�\����#�P�\�)r�L�L섌�"9��t ��t ��5���_b ���؎��$�������)�Ϙ�w1 �b �����bf:�����������������뾿���������뫮����뫮������ **w15Չ'SN�O�i:�cԂ�[{��)`����tUP=����aU]�۫
���`����_a||a|u0�;�Ү�it$��I+�5] ���l�W�����=�ǧs �̆w2I��6d(� �̂ X>��<�P0T�*T US�]���`�s�ys�}WA�XmSG�'IU"UUHzUBz��O
�V�M &��r��������۷f���=OS���n[����;������Nmۛv���ݵ����m��Ii--���-.�K��Q�G������~$֗K���).�KI)%&���kkokn���ۧ6���ssswwwz�ݧw)�r����z��ݓt����������i�Ch$[�����l�k5��Y��k5F�y���L�fs4b��39�3��fs6g1��Q�3��f�9F��o5��Y��k3F�Y��������_���_��_�������__������������W�}W��}W���)���]-��i4��Gh� !� �βI�d�G��yG��AdyG��yG�d�&v$�A���Eh���i4�ZK��R)��jMN����oS������ݷ7-�R�t��I��ii&�A��i4��I��i-.�j')��swvo[����?��Pppn���X�)� �LhFd���`Bd�DF����� �р5d`t`"�VL�U����H��m\�z%�^�r5�W�x����, @z��yND��68��`����2:*t6*L�cφʑ���x\ ��F�A��3��d��3 ��c�J L��2"2F�f�4���� � �.QqC� #1��t\Kb�%���R�H�ReQ*J�N�2�� | �z��S�N9�\�|�7@��V 0U��(��� ̌I�?"r9"�� dY�l�`�3E��v��jf�T�_���㲷����㵗��_�d ,D�nƾf� i� ��5��5���tOĶ*����/���������_�������������ﻗw}�ws��﻾W|��뮪����`2N)�8fRp�t�@0əJUA��5���2�r�S�W�2ԩ����s�� 4��$��s�1��"�fK�̙��U_�K��݀�}uT������8��qM|�@M��V\v�q���1R�+������n�;��s�&Ԩ�1DW9�qL ���1+�bLHiU_vf�}��A4Ai#sn۷7-���owwwwwsssswwwwr�ۦ��or���)��kkj���mRkkKi4�M-���M-����"�)�j��Aq�W�–�i4���i4�ZkMMZm���kkr�ܶ���on�����wwwwsssswwwwwon��ܧ6��sH�
Ch4=E�����-����j����o9f�y�9g,Ԍ�39�ř��s9�5��f�Tg3���(�g1��L��vo7��y�՛�Q��^B�j-E��_���UW�_����_X(����W���U�]�������{;��1��h�z=�E��� ?�βI��%��ydYE���?c�E�dY��y%�&v#���:-�G���4����{?�I��]-9����;N�on�0֛MI��m6�M��z;GH���M��i��kM����ۻ���������n0���t�V�����h053bCk���#ƳCƳC�� ��(`V1��c �$,�#�T���y~�yv�y~�yv�P����|P��>�7NM�٫hH��j�-���i:*}X�F�T/� ͋��Ɏ��!��n!� �4 ��n9 �9�Ƞ�hNn�
�NJe�e�e�e��~w WU��H�V�}U� S�T����A�<��>U���@�� ^��ٶFX�bl�Y���#��#��$b� ��b�)NA,� g(� �qU��x���sѳ3���Y�0�r�G8� "� !��8�au�lF�����c1q��������뾻��������������������뫮�������������XC�_��8iw0�u0�u0�2r eR9I������ʬ������`�U@꣰w}�˻����i}�����A��A��A�������v�Ǿ�=P��"�h��;;����&Ĉ�R�ئ��gS�Bz�M�a���Bj���؞���S.��#�̒q�쮎�H켊�ئ��7v=^{=��h3� ��6���������r���ܧ)�����ooooojۦ���j��mZm�j�i��M%#���Gd��X�+�
ƭ��nۦ���!�{d���zJGI-&�M�ڶ�6�&�ڦ��onڦ�����m�����r���ܷm�ݽ�ooooF��A��g��l�-Bض-�b�y����7����9g3r9cxra��+X��X��b ?�1�� ��EB?A� �(��g(��Q���yy bض-�b�[-���_���U��_�������__������W�W����W���}W���z��l�%�3�E��h�ZA����%�L�$�<�#�*"�h~����(~���Ȳ+#�,�$�L�%�џ��44�E��h��$�r\��Q����巷�mmoF�O�O���ۻ�5������m6�KH�z=�G���m6�Mmmmmn�������i���5��M��S����g"6�B3S4�a)�gC`�h$4��FdF�08. c�p�p^d�4�Vĉ�R' Z\�u/P��(]�P�_$~�:�*@z
��pNtN�v���Q0��A*@*�#m
�ʁe[JW*H�EÃF���0:`@6�P8���n: �`l6�p�����4#4
��#Tl#6 E ��( E ��
���q�/D�+�l@��*�RU@���STҠYNH�G�����x��I|��@v/@J�/��Y�d�!CY��f@��bk �����K�L����0����E.�6&�+�]`{��/Q�5�����ƾ0�_=z����LF#SĮhVDD�"q-�%�lUȾ�����꿯������������������������������������wl~����'�w9�lq�Qǁv�^q�Y�>s�����s����UWR�+����u�W&$�1%0M�b���U�� 7����\훼?�����=�q��`�.Ů;k�|��*r�U��q�S�`�R��
�s��+I�u*�b�|��ĹJ@�]���c�����T��zG�Ah3��=����M��t��ۦ�齽������j����jڶ����kj�i�֖�it�]$���FPQ�qU��Z��5��Û�幹{ZVEeX��8�#^�Gh��K��鴶��i����n��ڦ��jڶ��sssoooon�۷6�ݷm��=��Y����h(��űl[�|_��|_1g3�71a-�E8�X�X�b<E��A�1 ��b Eb,G��"�"�!�%�-��9��|_ű|_�l[ſ�����������������QK����������������?G��w;���%d�&z4ZA���%d�#Ȳ,��,����!���$���$�Ȇ��;%�J#�,�#ȲX�Y����,��&I�Y�;�����~��ܦ��55��i�-9��8ÛL%�鴴�K���M$�����t��R$�i4��K���].�nnF��pn2��Rm6֚ڶ�-��,/#ai���h�Vnͅf�aY�8 �����.</�
�(`xc��<Ĥ)�!L�
Wk�+�����R�� ����� ����b��!�@���0XKi��*����T�yM(1e��ظ�ZB�`h�,Ppð���}P|3� �١1�И�lLn��J�AIK())���
c�Ϙ���.!�:�R�T<�T<�T(}��G
��Ooo�o��d[�MI�m��{#,�#L썓Ɏ�Ph,�\ /(�� l�!1l� I�������>����!GQ�U GQ�|`�������h�ʱլ�7�<C0�C1p��������������������������������������������� o�Ö�au������&��$ٰ��1,�b{�'�7�b[�7��ޫ׆�;�'���* �T$��4�A������wx_�s�ǯ�U�'�M�o�%�p�S�Ǭ���Q:���b���bb[����&��-J�yG�/�D��rWCԿ"�P�'�z�~�7��]��t���;G��{=��gh�z��tQ5�M�T���7�m�mɭ���jڦ��kkMmRm5%��i-%��tvDPO��>'�N*�K�ڶ��r��{{Srݶ��kDTUB�OB|O��%��.�K����K���V���ڶ��j���������7�m��[tݵ�d�w=gs�{=��g��v�R%��kűl^��{��z3���(����+b,G��Eb<G��!�q �q!� � �#�x��v#�X�P��D��9FI�ؾ/�о/Bض-�Qo�������������������������������������ާ����{z�������߸7�����N��S��t�շ�M���{T�ݹ��n��������ߧwww�w�����{{z޶�����M��it�].�I��� ۛt�ݹ��n�ɭ����r����ۛ�����5�nmӑ�M��I���t�m6�M�6���"���H�����: ����:�������0:0�`t` �� �(\�|���jP�A҃�.P���+`Zyl �f]��:;(D�4P�@%)��(���jx g����
(���R)�\80å�W00�@�����`rlD��`%å���%��ة���L��4TJ�* ,`�uꗦ^�x�z�ȗ�\F�B�R��@��*��RU@U&T*F���@Ȉ5F@�L�-u��&T(T�X�K22ȳ jȳ#Dř2��Ա��f�0���sfs��F�`��q��bT���tk�z5����q��u*��D�T��QWN\v����U��+!B�"Y����������{��� E��}�������������sﻼ+%X2�fGY,ɦK2p�VJ�25}���K��s�\��23"l I��93)PI�8� �G j��4��>�Qԩ�T�.��' �B�b[-�,Kb�%�Gd�&��d:ȳ'&l�beh��ά�������+�{�m�r`���Q�X�F���5���|j��7�_R���'R��*[WOF�k�[ �����B�%��ؓ�R}?�A�����[�Tj-F�Q��jiM(�Z�U��ҭV�U�aLju4��ҚS���)=(���=���}='�;�Y.v7����� ����������wqb}=����=(��-=��:�N��ڛSju,(�V�U��ڝU)�R�M���F�Q����R ?g��T�O�i��_/F,ŗ��3���1��g1F36g1Fl�f�fl�c3fs9��%�3���h�g3F34g3F,�f�f,�c1�0/39���ي1E��^�������%�����������:�%��������Z~ �z�^�S��ڭU)��u:�Q���Sj5�pB�Q��ҚQ���S���uV�SJu:��[����������������<�E(�ڍF�Q���O���}?'����~$�}?������QJ5�Q��jiF��*ݽ���Oo�����z@1�d`06X:���dX4t�ф#�!�D1c��t�l�R�Q)L�R�Dd�e��$[�H�Z�m-H���QJ(�R�
u�K840x �AZt��Tj T� TڒR�\��\��`V`ɐ���.�$Z]|��a�0�ŘHZʤ-eR�$-�FQ����zU�䫵�WR���j56��R�U)B�TuQg�'���a�E�S�
�HZ��;d<��|�L>NɇɱCURTv ��v!����K`C*`@Ű"b�Q;T3EQ�#��1�b��k� ]*�A]����?8��P���C���������������%�����﮿����������������@�2}�����gd��P�Q4LCio���K�%��U$R䉊�)r=��� ��4Q�h���w4��J�%t��E��~�Y�#�q���\H"��Y�%f�$gd��!&�
j�e}���3�C>h's?+��\�1L c`���%Ch#�A�~:��u4T��CUH����R���qBI �I,5,\PT�m�����-$I��E(��{Q��Z�S��4�S�� (���S���mM��R�(����}>�OI�L��r\������z����ާ����>X�%�h�O���}>�O��j&���iM)��u�QJ#Sju:�SjuT��j4���j-F�O�e?��m����88. /��b�f3��1Bص���g3���s4g3���(�g3��L��Y��H�g3��Y��g3��9��g3���-B�ř�f3���_�����%���>�Q
� Dn�QJ������i� �����v��ݍM���u:�F�Q��j5�OJ5v��ƣQ���Q��j5�N�S���i��ݸ88888)=�����ާ������M��ƣQ��ҍE������R{����po����Ppi�8-=Ai���ڊQ���F���m�{{{z�޷����\pb��F���qр��JP����8 �!8�A�`0:1c���p�x���0S(`�fP`�FE� ת_
��Ce���@�2\��T!N�D�P�@7RB��0�0%� 4��z�
��"P�#S�H�� �å����� �Y��88#�7�������������Ȁ�B�
��Mʚ*�0T�1���+!_
��E�k�/ �XʔjC)Ҕ�AqQ�� �� IC$4�N�@�Re)U��*�M*�E��"����rvLX�SR��*���b`A���;�:��!��k(qB�����dk�!z�E�U#];�(5*�b������L)�v���/V��WB��\?��`�Հ�W�����]�_����}����w��}�cX�
��*ę(�0T��I��L\��fa����a��9S dNW&dJTZ��ε�a�Ꭳ�0�q��� �UԨ!TS9
�A�9�ێa%�N%��.��]>d� 2Y�v�fd�VAb��r`(ԉ�/��S�at㜶X (��F��C;�j�9�����|atp��R �Į��uP�qz�Ab9�۹��V�8���[q.�
�Oppppo�?��!�T����Oi�>�Q���u6��ڝD�����MM���Q��I>�O���z�l\�<�.�K������oooS����=���O�#�����������O���&�Q��Z�SJ%�����ju4��ҝN�Q����=(���ȭ �d���������c1f36g3F,b��|Zű{2����s9�՚�9�j �b,Gb��9�0� \#�`i�9�՚�9��g3��%�[�|[�f��h�b�e������������ C��� F.�%���������������7� ��ssokk}z�S��R�F��i����Z}=@���?o�'���QI�>�SJ5�S��������ݷ�7� ����ߧ���w���M���I��Z����>�O�PT�;NӶ��������QOI���5&ڷ�������{</��� X���`30h:##XРm9�t�a {.�be�$)�BM�O��}~���"]KQ-֡[%(�(�QJ͚L&�#����'�j5jmA�RF1cf(�|�!�2Dd���;AX9� �`>b� 1�@c0��ʢ+�DZʠ*�3�2���C k�.�$]�F�J���(Ҕ
u"�L���!af��R��iI�Z�ʵa�vC��by0�F(r���t!' ̚��r�N��S�@;)@A)@=`^���o��W �ax�ex4\��rj�̧@�!hD0��9u1�Շ��<!�xC�����]�������]���W�u�������W_����y���lc`���_X�t(gd��l#�h���C{%� �ܝ�_d��چ��Q��41�*�]#����Q��+��K����v.#��1�F��;#��B�ܨ6'dNJ)e���4�����r;.DtS�����_gc�;���U�t������^&�؞�~㈊."8��"ヂߨ7�
���@����AhtP�i��{O���QJ)E(��AI� ?���F�Q������ppphY?���I����{{{z��ާ��z��޷������L����������Z}E(��F�I� ?��������Z�Q���zO���D��)w=�� ~�߸* ����g3����5g1�jƱ��v#�x��x�Ў�x��x�XrÖ��(@�G����G���#�����f���ٜ�c1��Q{��������������� I+��������������* ������ͺr���SV���E(�j5�QI��}>���������#O������QJ5�F��a5�I����n��ߨ. ~�෷�����ݩ&��ZK��z=,I�=���A(-��ߨ-�\�۶���蠧�
~��'�������VQ����Kim6������޷�, � �"��FF��x������: Ɓ����ƒ`G ���
YC
.ȳ' �dW�^�z��'Z�k�@����jt
�Tât�R����ɉ���z(�}8b��P�H�JU Q �p�z..�D&@>��3A�H8 ��:��Q� I0#0)0 0FʂISEDL(0L:P�@K�l.²%+�.L�:���4P�H2R�H/�+l�c̓��>�R�,P�@�R$R�R�I�
U4��b��RfI�*hX� H�1!jfO�dl��0�Ũ��i'�eJ'(`�r�ﻻO�]i�^�B� �.])ɉe��Y�UB�+!78��qL��u��1
xH�W �������X(u`������_��}}�W}�w}���`� d��b�o]~�2�Ͳ,L D�H��oN;�Ԁ�"rbUC7;�����K�ۜq� `Z��T���Ml #aWЬ�+���'wqD�%/�Lk����`�'&̫�e��&L\��1��S(/#s��qN9ɀX&� U \�;���RةnNq�����Rf�%���^*�K�^�|7��w��_�.�DK�~�����
�~��%��4 �qZz���R}F�Q���������ߨ8-E�������886��Q�;��֒����{z��m��v��m��v�����{{Hh����=m�������R{Oj*
�~������4�SJ5�?������ �A���V�O������oٌ�c3��?�#XՍcV7�cv7��x�p��,"�,"�+�"����=A�Xzøw.���*�"�,"�,Gb�x�7���7�P�5CX�A�M3��f:�������������B�뮺���B��������������~��$�7M�vݦ�i��]��-=(��}>���)�;nۻ����N�������O��R{QO�K��i��t�7m�v�߷��� �vݷwwv��KIt�JEh�#�n�����������a�or��ܶ�-�������8887K"���"���K���Swwwv��h��.tb��F(���s�3�����91��n�����W>^��/e���ɲ��vN��u~��}/<�5�R��d��zND�Y��)4� 5& S/t���#���
ND�PD�RD�RD1�"/�"1�$3f����M2h-(:�lt,�8D6���`���@Zʞ*�2R�P�<�ظN��~(��]K�.��ڂE%\ Ze���l-nICf�PuF���I*�Ru]�:�V'� �-��`(��O+�3��1�e,�5'0Bb��}��r*�2�>������?���>�q�"�p�N�\�
D�����Kˆx��r�O:�Q;��jBeE�����������������뾰Q*�����������������X�%c`��1����]byS"vi�;1<�6��Au#��$ز���!��{�J������WG��bxY�O �'��*�ǯǻ�;�2X��c�"c`������a��_�YH�fO&�������ϑ$��'c����=^=]��$u,|��"9�5^���k �%�7�M���\dQ�?�o��S��������頣� �~�B��������i�������7�����i��~ ~����s�.wi{���������on�Ӷ���;����Oon�E����wA ���Pi��~ ?o����?o��F�����?g����%��������?����������o�����o�(sD��%�XEA"*����{a�=��=��xEaPG�xG��,o�����o����AB p���������W�����VJ1X(u��U����������?�M�{{T�5��ZKIi5�ډ>�O�����a������������������}�R��-����mm[V��ݷo��������廦��jK��i4rE��R-��7���~��e�ooj��ڦ���؞ߧ����FM�Eh�Z9��it�kM��w)����b����@.ˇK�����,h",6 ��l �8�a)u&
eF
d�!���1baz���+µ�W¹:�z�s �n���H�m(n����}Z��矜���'ӡN�#S�J� ����ف����;2"3#B3@�l@." C�;��8�p À�d'2��x�VX�Re � ��(!Y B� �%��^�pA\҂��B��4*h����W�t*(D� )H�R�H@T�V��`(  �040k�1&d���N@��bs&0P e �P�@dN�NE@ (��݀�w�v�W�k�ȗ.et��/� kԯ4�J�G^�|���� r�1��8�U8bAK��U&W�_���������X)5_���u�_���w�w�&�0���?�g�~��Xd� �ȱ5l��t�����TZ�`��us�sʯ��kn9�9ԙ��aW�+!D+"�(pY�}���?a8c���Y(Ę&�*�e��)]ܮv �L�%��P`��c��18gr+��-\���-T��@�R��8��u"r�`=/T���K�5z��C
]T��W�o��%�N5�?�OS����?����i����������ŏ��O�'����{�ppS��B��v�r\�>����zާw��v��i�wr��wi�vݷ��wzާm���B\�%��-���� ��O�o������������* �pX�?G��=I��O����������o���6!�66��7cx�7���9��ݎc���c��pI���%����?A�����=A�?a�P�pG�xIa&"*;�c�9�ct7C��7cx�7���7��8�����W��W�����}`�_������_��_�������M����mmi��]-���JI��=����˖��9nnӶ��;nnS�?�����$�ZM-%��]6�������ݽ������N�i%��KKIi&����C��� qs����� mmm�[[[[v����on����PRC���t::Ii4���R]-&������ й ���� K��K� Q�I�`�4���X�8��4x��(�$��$��$�쒯ג�ג/ג��qղN�F�R@��J���5L�B�
}9�A
�RB����X�Ř"1�!3�"5F�Mf���0� ��8Ö C�32ĥX(HS(JS(JS(I $7 ,5�b^yt��L����7�)T�9"{PJ�PJ�PJ�RH���*�@|1cz0Q��\���IM���AL�aIL�5'EԤ��E �-Ƞ!01�����}���y���� E]:��.U�^ W���~�)��)��G)�9���ؗ��T�����Q
�����������%������� X����OV(�l2$f�3�$g&+eSg)Q;�����������"�fvs��1�D���!�Ep���~)�~=�d��d S���X��ė�mua��L0'D�y0��L7&��8�!���/�M�(�����Q�?P�s�o��z���}� �� ��%t%���⻎"�7��{z�޷��~��ߧ�䁓�{=��g�+���������~߷������������*KD�-�d�e/������������۶��NӴ��������������&I��&Kg�?��'���������~�����~i�
BP�{=��g�O���{{~����z�ߧ�C�q ��7�����x�9�P��c��9c����Da-ʇ��?�(A��?B Aa�?B �5�-��y��P�;�P�9�c�9c��7���7Cx�b����� E+���%+����%����ާ�)���kkj�i�6�Ki4�KIh�t�(7�Xssr�ܧ6��7-��ssv7�4���zJII4�ZI��Rm�kkn��ܷ������KIt��Ii4�=%#�:Ah4 �Q?Nӌ&�i����M�ڶ��ԛM����d� � �����zM&���m.�ݷwp ����l0:00b���!p��;02`Ȁ`� \ �~8 G�t C�8�%��.��,L:LX���W��R�!�N��{��et@��5Ft��@���@.�L�0NJ��<�Y�!N�8b�
�+(D�2T�Hр���d�|��&dDh���h"0����G 8 ��A�:��ȉ�(0P�(.P�+!G
�D�*� *a U�t�t�\hP�@h�� �4�6R�8%'D�4P�A"�jD�R��ReA����..6\i�l `��0܊0a���dh�r� J((`�2(`�¥X_u���ػ������y�#Z����/N�
� �/R���F?��ƾ1��Ʀ5��F�&Դ�����:�����^J/������������������￰�ĥݕ�q��+�;���&�f@,�,ɶK2]�be�f�}�wl]�\��UN������qB����dOD� �[
��Sg��ֻ�9�0
�2ĮvN�p��#�����w"�ʼn�Q&.Ll��C%
f�ud��.wW;�R��TU�5>s�z�ꗧ^�{Kկ��\+�TN���Q/*'ʗ��8c{zߧ���{{{{z߶��Y��w=Gs�h]�i���{{{{{{{{{{v��$�L��2:;����۶�;�n������nS���������;�nӴ�o����H��#�L���������������Oon۶����z��s��i[��=����O����?����q9!�o��s��w�q�w�p���s�vø���1 1 ,CBC�lABbb
Dô��;a��q�w�q�s��n���o����_���__��x(�u�]u��U��U����������M[[t�5���m5&�����4z=��Z*M�����m�������{�{�m���:G��h�v��ZkM��S[Vݵ�M��ۛ�jKIt��IH�z:E������
?�����;j�i��m6�M��i��m6�j����?��Y�Ah43E���=��im.��[���.H1� e� �rC`��`��d�Y�p�\���9�!�t!�Dh5*���H���H��"_�!_�Z���YU`��h¤z@~�EjU)$U� ~� ���r���F�}N�|c.Bc0@b�̐̐��d���``�?&
��x� � �� L�L�<$0�#��^�(�!��`��LSm�TH�%di��i��-A"�RH�TH�TF�V�ʲJ�l\��6�6Ջ`1l�L�6)�b�P ��Pl�:҆@{W@������X6�9�k�7]K��u.���j�\ ����*�)��)���Q����%�?������ D����������������������������Lc�V)��E�(����or�՝�՝�͚d3gd0�4�2q��ت��Ux�x�b�9��aqL3��3�� a� b� �x��GТ�S�U�Ǥʼnn�I}�/��}���er���2�Ʌ���XO&�O
乀׋]ؚ�WBj�5�l+�����X��,�ׅ��B�nʧA�t�!%t$���t=Q���Oo[����������?�h ��h��Z$�[%��K�z޷�����H��I(�#�G��Z5/o[�ۛ�����nn�ۛ�������������9Nn[��������G��y�2K;H��w�w��z��VOH��h��l���K��
���޷����������v�V9!�o�,s�q�wP��hw����p�8LkƱɇf!�8��E�q�䆱�k�;�p��h9���;a�wX�;����9Cx�7�LE_��J%_����}`�_������J%�����֚�Zm6��RjKItz=��R-�ϲw;D���ͫkj��ڦ����K�����R-���-�K��֚��m6��S[[[{�t�I4�M&�G����Z-=G��~�g��FL��2 �3񤴺].�K��Q�X �2 #���g���Y��E����z=&�I��ͻB��u���x0������x�`>`��Xl\ ��b�!��GB��A�.4YqSEA@��ʊ�( �]Xa[j�![��8�
I�Tkя%d�ԢR�P0*J��䯂����>�ӠO�B�� P,���[�X\@`��fD&xȈ�hFh F� ���p`>\:`
A��:P:#��,4,�XhX��Ŕ ,
��Z��.-}iU�-����Х0Z>�"����m�&�
pv��B5�BE6�*�t�"���+S"� H�I`�`�(�U��*�
Lb�(P����2T�̘�$�3K�̀U�2[R�n;-8���2��`(N)��b��`\����B��l`(ƺ&#[c_�_�]��C�_�������X)5}���w�}}�}W}��x,l]}���ع�)��W���eY*�&�Y�d� ^e�� TĢ�h)�,��2�bӊ`Z�Sfq� ߧ�P�l+b���
.�u1@�R�R�U�T}P,W�G���}݂��9N9�t���`�8�,�b`[&.M�b���M� ��(I�-�2ԉ�Ux��11�BqFZp�
\��¼ p��8U� 0��e1 N�*:b�B������=��{z�ާ�i�wwwv�޷����bL�$�I2Z%�,��r\�h�D�$���#�<�#ȤCd6G6�wv����ܷ-��sr����ܷ7)�sr����ܧ7-��r����ݷv�#� ���<�#�<��&�$Lȗ%�l��r[$�I2\�mc����;�N���S�����on���x��c��9������ÖØvÔ�퇱�cV7�cV7��x�90�����7��x� cx�Bô���h9�0�0���w�1�s�(o���������������R:�������������okkkM���m.�KI4�M�E���� d�%�h�%�K%�L��F��Z$�l��l�%�\�?EHt:-�I��im.�M��Rm����5$��M����"�V���l���gs���� �����?b� ��2V��������#^z��s���~��"�V��Z=��i4��ć!1��0D1�!/�!1�!3�$/1rAz ��
�,p�ʃ��T����L,aXT�V+ՅK5��# qI�RB�RB���?O�����+O�QJ�1`�v��'��\|Ř�̊���f�C��� �!/� /E���C �;a��[
��p�[�ы����փ崴��MS@���*}Y"�VH�JS��S�T�H�jH��HT��I��!H��6f�R��5cd Y��; lͰ���pRʁ�[*���Q+�g.@�\���2�
n� '�O�3�0�u05��@�u.�Ը �k��*�E��T@�. �.0g� ����������������R����������������&�'�آwb{�7�a�Չ'�iRd2cd2b�
�W�?�@����>���s����Ϙ@�
�� ���(��H�1%t��o] ��EU �VFR0���N)���O��|�����º�B90��LHZ�z��T�v\�r\�nU0[�� �������`��)d�<!��_+�cW ι��k\�I3a
!h��{I��=N۴������������g���,�$�(�$�L�#Ȩ�#�*#�,���,�!��]�����ܓ{{���ݹ�Nm��d4@�d6���ͻsn��ܦ��&������|� ��YEdYY�VG�d�%�d�I�dYyc������;������n����I=�`ŗ����r�,wÔøsXz��v��wc����n�1�s�1�sƱ�s�1�s��o�aa�=�h9��9A�;�0�����P�9G$^�W�������}��JQ_��uX(}W��W�d���R].�KIt�M$��!�� �$�-d�I��%�%�A��%��%��&Id�-���A��:+C���;I���m.�K���,�d��B�%��Gh��CHt�A�`����;�������Wb�z�x� �>=b�z�x��x���#^w;Gs�v�F�A��:E��Z:G��I��W0&��ƁЌ��B3�\B\����`>b �d:.�\l\����(���8�3�4X8X�b���&.L2זV����V�[��A�%�3R�HX�"��JU 4)@�=|���@ 0��9"�a|��j� ���B`�A��#�#"����Lf@h2!��̈́F�؄`�p` ��K�p�p;4@3  �8X:�p������*��~h��"t��ꦕ�*mX ��' ��NiB%Z�*@�����9��(�>D���
 �FP`�y��@�Y��%�}�fC��*����eE��2�9#�2-&e91)~���㜧 �N)�$�3W8�M
��.�pU�"K
ȍIJ$�,��J�D�J���+�.N���R:���P���%��������������&dRD�u�h��`�s��9N)�t� ,a�X���p����:b�JU ��)1&ns_8�|�� <�j���1.��S�i��1WR� �9/����G�2I�
2Q���EgS�s���1����ȳ$�b���5��/I��+)R������Y�k��G �0�V����0��dV�9�"r�J@%r]p��tK��d�Kg��Kh�wv�ݷww-�����{v��&E"���<�#���!� ��r,��h��h�6�ssssr��m������ooo@P��2 ���!� ��/ooon�����ݧ-�ssssi�l��l�����2 ���#��<��r)� ���������N��ӻ�-�Y-Q|Ř�9��wa�a�;�p�����z�I���7�c��9�c��5�PՍc��9�c��9��xݎ�����{�w��9�,9��,�9�1E���������������������������<����"�ėIIt����:GH�: Ah3̒d�%�G��tG�c��?��YGdyG��%�d���h)!�����v���-.}�,�"�;#�x�b��k�h�T�CH3�����-�.BTW�د��UC��=��7�5 �7�U�c��*��z�x�
�Ĺ-��.Ag������#()�V*�X��3&h�B53a�����D`��`��`���ȅ�rz!�p�\��x[*�����|�P�k��V�ڰz����J�ґ�:��:�Z�_~�?�(���kc ��t�� ���&:Nc �f!��iPؠ�&EFsCƨج�C��������\7.0`�&T P�9�`_���x;�5�R�\�B��TB�Ր��dJ�d*��A�@��` ^|!?( �>vN�J�P�K(")PdUyPlN6@��d���h�ʃbed %�)��S.AL�@�R�~������s
g�)��4��F�x-ց������jm ��⋄K�\]Kë�w��w_��J!X(�w���]`���������W_��=�P;� w)��c�Na�� 'S f�{;��U:���
��y]�f`�>`�.��E`�}�W�U]Ut�t������iW ڹ���q�F��`�>0{9�� S�(�l+d/��/��.��!��!��wB� s�'�ʤ �Rz)03��yry/�7����%���;���8b`.c`/� �LX;�^0Y���b;��9�dy�;D�.K��(���������ݓ����#"�l�"�h ��~����!�l�-��ݹ��nnnnmmmmSV՞(?�Yd �c�=c� d�P�y{T�5mmmnnnnnS{�t��3��h� ���~�� �l�"�h�F��r��ݛ��ۛ�����&Ih�%�s�v��L�_1��g3�ƣ�z������=��?A�ct9ct9�c��9���7���7���;���;�c��7c�7a�C������=A���s9�ř�|�J%W�������uu�]uX(�W����U���Q� �Cdؒh�z="�h4x�&GDyG�dYED2��
�^=b�!��dYG��y�g�Ah4-������H2!�l��l��,WC�)�8��'��(- ����ID�%��=�cثb�S�hK��%�-�%�6)�X�c��=�X�"���2K=���-��"b|O�,Qb�S�X���p&��Fd �f�6�Á!���������""��\l^B�b��\p\����%�U�$�͒���,L
K,R�R�2B��W7P�LjR)�)T꒩Jr'�� � N�48��`78>�Gs��L(h ÁH�Ѱ�� � �ix�2��3hp����26��Jd��p�7..�p�p22.L�"���P\�r��s^�z�WD p��<Kc
�T�SJ�ʶ��[j�����'$N ���m�G���+��u�*@H�7H]��J�T�@B(d���J�1SE�2PRf �&\�� �1"l%�er' �M��~�~����O�S���c�:���1��R�W(��)�e�-0����:⫓����[���b������%�� Do�����������(T��J@8I�NL�
�fJe, ���q� V%F�;���N;��&%����)�:L�3 ��s���R��(�J������.@W��x������8� �`"���0� �'(�&�� �����Q`OfT38�2qNS�`4Ɋb^
8c'1��`�Ȝ�i��8�2L�rb@O�$���Xa���q�ƾ0��6c�0Q�5�vGDY$�(��2L��2<�C ����������Nnn��I$r��
�W���Ibsv�ܶ������on��[[Y҃خ�v+�x�?�X���=�cѐP�?��^+�]�gW����6���oooon��7m�+'YЯ�����h�rn��nn[����������&G����d�%Y$��;/��3fs9�5��Y��=�����å,s�lv�lw�q� �x���x� �x��q�w����s��������{dݚ�Ѭ���hċ�|�N������B��Q ��B������ DH�,��r � ����W�ċEHm��Y#��;"�"�r� ��=�c��=�c��r�"�l����#��A44��d�����삈2 �"�,�b�SB�Qbj�l7Ĵ%�מ���%�&@T{��U��N)�4(��Ж���bLKb[�Q�lS�qV*DZ��d�;g��>PK�l7�؟X����X�
�Q��f3@����aQ��>9��ePФ�&H�a�|\|_���)!$�`-�9��O0���#���(�)ԏ)ԏ*ԉ�&�AL]0.4�@ὰ\r��m�p�4����������� ��� ��l�#�GD�P���2����������d�ȝ�l� �&� bH��z5��EP����Տ�Ր+ՊS�x0pa�|�Oo����T�O[���T@ZeD%2�"�Ql�FZ2�H��`;+@8&U��\���@j� m.@�L`����)����5�� ��X����0�>08�r�;^���aU����DKu����--����W����_�����X(�}�����������������u@��@�.�vR�.J9�-�_�@�L*��wr�0Φ����� ��� q.@�%�:��0��;��UWA��^�=�i��ؘ.�s��3�S�wv <�VؠT� S��yS=�&rJ��� /7�LgS��`�*�2���|`e�e�(���/�^w0Y��er����?bX.F1q����Ns�*O�+N<y�YEdvI�dyG��YCDZ��Ӕ���幹�nӛt巷N[{{{v����7M�{{{v�ݦΕ��U��{DZ^+�x��Ыb���b�W���{�T*�X�:�6�7�M����v幷��M���Sv��7nn۴���9���n�z�Y �dYG��y&I��dY|����h͚�٬�n���x�B :Ls����w���,vC�7C��9c�9�cv9C�Pr�lw�hr�,s� �Y7�����k3F�4f��2�_%�� C�%��r�P�������<�Ȳ!� ���W�c��=�r(���Ȩ�"Ȳ!�
!� ~Cثb�SB�b�U�c� �l��l�Ȳ,�"�XP�L�q�{DZ^?c�A�� �dt*�8�P�bl7Ĵ%Ĕ$�j hT����V*�8�X�b|L�ma�bKP�Ĕa�P�!>(�8��8�b�z���Q@��kbK�[ �6&����8�` F��l$6p&8C��ddh'a��`��%����0,l�JX�`"� ɋ2Ȼ#L�� K*8,`�%�+J�:�\*�M
��6�U *���V�y`e�- ֶ�$-�B��� �:�H]����Jpga���d2���hll ��8 �,4X �,ȱ�`�XdX B�"�1�`�Ɏ&�0X8,d��4�B�%��rp�Jp�X��n���kZ�k�E ]Z��F�u���!t�D��$| >J�2�
J(�L�4Tʘ,/&3s��8��q�|㜧��̄��2q�̛d�%�� ���,���D�K!$�lS�*rbD�ĀɉG*��(�-P�+[�ˠ\�N�������Հ�*� G��������+���������<(0Lt�r�ġ��҆
�ʗ*0�f�V18����ӎl�;�*��%X4�V*�F�����Ī%�A��F�.�(i�)LPʔ�T�KcR�J�˓�H�B��W�^�x҅�J(�0T>P�Q R��`?9L��`���9��S�,��%�6�fF,�VX�s�%�-�LK"z%�&�l\��d��(�1Je9"�dj��Z}ju�W'\>�B�kԯMmi�ԛj�ZjM���/Wj�z�^����Yk-f����[k$�I�<��t���F�[����Y��k5z�e+���z��t��IIt��K���].�Iit�[K���JK�\�W���-^�Y���5���ku��ZzS���=(�ɭ����Z�e,����R�^�W���i�֚���kM������ ��3��� X�e���X�5�cX�5�cT5CX�7cX�7�cx�2��Cx�5��X�7CX�5cV5�cX�5�cX�&f1�j��f�q�f�Y������X) __����`�W�����m5�I�6���t�] �,{{{{z�ݧi������sv��ݦ�j'm���sv�����ݷm��{{{{L,�it�].��i��MI��M%$���GH�%#�I*�wwww)�v�ܧ6�����������B����������幻N[������`���-#��KIi-&��bsy�9����2'ƅCk��0��e�͖�� e�-�:Nɼ�M�h�Bd�(�3ˣZ�t+�_p���v/q],mf�����k�*�Q�a+RlJ�8$wtJ��%{xJo8%�� �2%��(��� %2��e�͖śŜ�gI̛�裤��b��*�C��^�t0� ��<.�P��X��ckmcku�V�N*NU�;{�w7D�� ��?p�,�LVʃ"�T'+�%�����c(�_0��
'�(�0������f͓��!4��6�0i B ᨂ�xB�x‰r
%�Q]�1�f ���%�:�p2[KBeԸ%]K������%����J��%������A:&&)���(�lQ���YdS��ϙ ��Φ>ĘcdVͲ>�0(��(�L~+�WD?�S���D2�C.DR��e�r�a��\���e��2�x�}�%)��
�@خT3*Q��)
�+� ��������y���vEL�#����+a�.��\"�n!踇��ˡ�t?+� t*�u� d�ƽpl�\$]k����U���m6�M������[M���^�Yj�z�Yj���e,���f���~���Wk5��Y��j�e����z�WJ�]8�ZJK��i4�M&�I����I��i4�M&�ImnD��ڻUJ�z�^����f�Y����}���~%q���if��k5z�YJ�z�W����ޛKIm-����M��i��9��8͍P�5��dc/��ݍcT7��v7��x�5Cv5Cx�9c�2L�o�r�(oƬn��o���n���jƱ�3"������k���s��`��x(�`���U`���ԛMIt�JII)��s�;�N������ۛv�9���M�D��:j��sosrۧ7i�������w<����i-%���]5��Zm&�I��i-�G��܏%���sssn�ۦ�魭���j�Ҳ�E����n����۶��ͻsssv��Y#�福G��RM&�I��P�Dk6A���p����N5�38�h`8Xx��ر�a�a��&DLX�L\�nL�&X(�o
ؓ­y *����^�k
�X*X��X���b%#����&&�R�(�>��@�(�D����l%9��� �2 �hh'!��r�j2��&. �X�Ȱ��ȴeK�!&.NɌ � 2�fCx�D�%��B�p�©s+X<���ז�R������l�>�!{x��Tx���W��T�Xʚ*����c�R�jb@��VԦ��q��;�d�fl�2fY��x����%�J��<K�u*zb���E���k� �5�`HZ�m.}pV����������U��X)5_��X(�]������L\�&
E
H��@%*���T�d �:�s��`�8��d�*��VAQ�(���R�Q8����Ķ ^��&$���b��%шV���b���0R^�|ש^
kԯ�ꗁ���J(0P�*�Q���)Qy0�' ,J�i����N)�y�9QFA]���%�&Y�7;*�O8�xV�q-�ľs�2�3+�2�-�#X��H�)��� ��.�r��e\�}�R�5%��].�K���jK�T�(\�UJ�z�^��Z�f�Y��j���IU��sY��k-f��ҪW��R�^�NY�kMI)%$�ZM%$�i4�M&�I��i-&��i-%����:�Z�^����V��R�e,�k5rUj�T�R���k5��f��R�^�W��z��[V� t֗MIt�].�KI�g�q�Ʊ�o4��Ř�Q�f!���r�,n�1�o���1�h��7����#��9��ݍ���7c�9Cv7�P�&3c1F3Q��X�5�X�3��W���x(�_X)�`�u_��U��5&���K��h$z�gdKD�Un�۶�9���M��{{{t��JG��Zh[�������sssrݧi�(�.Kgf{=H&�I���m5��֓I��Z=�Gg�K���d4�S��{{{{{t���֚�iI���tZXSi������ooooossF0CdY$d�.zh��G��zM&&7F�sy�)��nrcBa�lL71�Q��)�&-e�-�l[,�l��웤�m�&1L&��Ȯ��_��:ƕ�ƖkY�#���w��d�H�h6op6wtH�����!����p6�Ca�lH7� Gf:'5�#6��E�f��f��Y��7 ��'�p�0����\m�8����j!�6�X��ck)a*r�
��7&����I�+�����g��bW* �偑[, �2�~���}�����
o����3��0��L)gd'�[ >�O�}t˜xB�xB�|)����)��8����A>a�݃(�Z ���d�Z V뾿����R��%*���%�����ܝ ��1):(bAeU:b��k*|��Φ+�Lz�EL[�m�4�Xiua�t&��EQ
�����W+�]\�+�d���~���9�0��a�q������^��D�(�lN�e(�bQ�
�����,�t����O����&D�����Qk n�1��%-��.!<\B���K���K�Z�e`:YKA��a��ĸ3_k�e��H�ץ��t���ZKK���t�[[[���T��R�U,�z�f�Y���V��j�T�k-e����e+�Z�V�Um0�MI���Ii)&�G����z;GH�z=�G��ZJI���kM��U����t���5v��R�*�Z�U*�j��Y��j������U��t� mmit�].�II)%���].3��͍ct5��dc3F,Ř�Y�3�9�c�;c�9�c��9C�4��9��ts9cQ���c��9�X�X�9�fX1F(�b�Q�1���5���3C43����^J/WX)euX(�W���%�ZZKI-&�?G��v�Q&I�gbsssn��6����kjҲ�E��T�G���kj����7)�sss:�&I�g�����I��R[Ki).�G��z-��ȗ%�2L�!�l��������M��i��2ht:�C��6�M��m[T�����HL��r�$�r\��Z-�Gh�xA�� �S�& �!�Ƃq��f6|Ȉ�!��B�>,6X�a�`d,\�,&p�fF*��
0 -���Ī�܅T ��:��n+�&X�x+䯃�� � ��B�����������S�o4�HpN�,d �0�3
8�(p GIMf��l#6 ��"��,8,tXh\�& � �,��%�6�fAb%�'�tJ�[ Ы�aP�}c�KX�>� ��!�zB��m�[� \ p<F��#����!*h�DT�b化/&(�1Ei�.`�X*� ����wՓd"��' �w>�_�z8��\*�zju*��3]���K�+8��qL �5+S�R����`[��]������������w��� ��(.Lp��FeT���U*d�����!������Q����
��,P~�q\��U3R�S�(b[h��I���4j�iZ�� S�_s��� �9½d-B�{p���1rcd�
J '*� }W^X���c������K1�l2�K2M�(Es��vʕ3R���%�-��QJR' �\�Ɲ`5��:���n������^�zEꗴ�R���I���M%$��ZK��Ԛ��ڤ��R�Wj�z�^�Y���V��R�V����Yj�z�Wj�v�U�U-��ii6�Ih�z;G��z*G��Z*G��Z=#��=��鴶�M��*�j�V��ڽ^����Sj�Z�SJ�Z���j�z�^��Z�NQ�kkMi�%���M%���M-$�i(f�ljƱ�o3#�3Fh�b�Y�3���Gq�w�q���Ɖ��g3���s9�B;�X�X�;����2L��ي1Fs6f�ٌ����k������� Ek%8��Z����i4�M&�?#��;����IDyG�X����5�����!4Z-�C��h����i����oosH,G��y%�Y��w;g��G��i4�M��t�E��ȗ%�L�$� �� �D��5�I�6�K���ɠ�h4 �A��.�K��i��MMh��2 ~�2 ��2L��s�E��h���)�А�lHo8%Ƅ�T6%��8͚��
MFm���ś�m�ɴ̘J��V)��q%������xZ_K+գXVC̼&|K����[A�{a��t4z� ��Ctl49gA���x�j9�����j3Bcy�AȎ#4�Y0�.е�l�M�Xe+;)Y�KƖ.&��M���4����k
����x8�S�V��#v����#��G�į����9k,�3!T���!�D,["6bd��v �L��90�E�&���� z�n��[05��C:�T h�b8��CD ��C>b ��'s ��`N����u�) `�Wx(�������lN���٠��uXA�¦$T����E����U>b��dP�0$��_a�Ն5tWBJ_1Dw�(�*�!4�BV��.��R��n�!��Wwa���6_p�!� ��@̞L1(N���=��ΰ`e���Z����
,��|�x�dJ��gEl.����.����3��������$���r���_Yk�lq������cp� ���k��;I��t��i4�M&�K4�m6�&܍V��j�z�^�J�M��Z�S���u:�����V�SJ��K���t�I#�R=�G��h�Z+E��R-�G����z+G��].�K�ډV��j�t�W���N�S��ҭU��V�j�z�V�Uj�M�i��m,�i4�M&�IH����LkƱ�o4��3���l�f��l�g5��9�0�Ö;C��#4r�hg9g(g��3cq����Øs6���k3Fs6g3Fs9�͚�oƱ�k����QJ� O/%���I��i)~�g��v�rZ#`����"�rE��mmRm-��C���t �C��B�KI�������E�dvGdq��.v����~��-&�I��h�6�;"L�$��*#�d?�����~ȗ��i�ԓI��?�������A��B�I��Zm6�"(?B����fG�YI�d�١��-�B3y���(� �q�d4Q��j����c1����#JM�fĥ������,�FJ�$`��V�-��lBh��*׉���� �Y�'�<F��$}��ҁ�0���K@���t�������#��l$7GS��4�X�3�4����Bsq͂����S�Ce�� ���e�̉Y,��fD����]�5�/�d"X_X,��n�+��:� =4VǛ����"x$|��X�k,d�!0� ɚ 3S�$4Q�d� Ad�*�,�
4��r&�ّ��>�����G� �
0�D�)�%� ² A�dU��✧�
⚹�#-�m-ymx(�`��w����]��L�2�2��n�[�+/�r��I�2X
��t�����I����eF.v����~�]J�>�J'@�"�]��ek�@rZ�l+WX��`[�Y݀�
�c�d �L�6 �&n��x{���lʖ(X�`�h��`2Ȭkc� ae�5s�.Nw�vʕu* J��q�)H� ��c�<�ů-^�n��
�j~�2���d(�zJG��i4�M%$��=-&�i�5&�p.U����RS��R�S���u:�N�U5v��j��)&��ZM&�Eh�Z=#�v������h�V�EH�t���;G��h�.�I����Ip.UJ�t��IN�S���u:�M*�:�T���Z����kMi��[G��ZKI��i4�=%���X�7��df��s9�5Fs6k5��f��o�;�p��
�T3�P�5CV3�X�5c8���øw&o5��Y��k3FsVf��s9�31�oƿ���QJ� P/%���t�G���=��h��r[$�L�Ȩ�!�,� �+M�Im.�� �A��h4 �A��.����!r � ��"�$�,��r[%�����Z=��h�T�:�&IDyE�dTC��^+�v=��{>�.��i4D�g��{=��g���=��B�I������WCخ�x��9�dYG�Y&v4:+E��SY���p69� �q��k ��� �FDƳBcy�1���&S L�VXa# �1��.$qq#��$Q™|��>e�+����|J�>��P�6�3Mmm��nnN�O�F�a��d3ƃ1�l3���s Gb6%7fĆ�ؔ�� Ni0�ɤ&�(��F��FvREƒ:�$\ib���Yr�?�&��H���f��g7gwgwCW��W��k,�&���BrK��W!��6L"f�ٶB�kX{�`�B�2�_�+�e�2�~ 5���7��#�����p�B(�b)��S�!�1 �a<p�k)g�wX(}w�`�Wuu��U����2�>� �?�`�d�:+�Eh�9+EB��GL�V���/������t�A}tR�Gr
�8�����u�Ku��lX>���xeqB����!s%(uaU�.�n���`pZ���`nZŁ�gI�#�����
��C��C����
��Ɩ�I���Vu��,���������w�_���.���p�=���JII-�G�����].�K���v�Sj�4���-M)��-F�S���u:���4��M$��M��hm��ZC��Z-�C��)!���Z-!��*Ch�4�I���:I���hTګS%:�N�S��j)N�Sj)N��ڭM4�].�K���t�=�G���)%���*EH����5#4g3��f�Y��k5��f���x�a����q�j���fƱ�f���jƱ�r��� ��՚�Y��k5��f�Y��g3f�9C�5x(�_X*%�`�(�v��H�v�r\�$�2L�!� ��2 ��("^����A��g���������A��D�MdE� � � � ���L�$�r\�;gs�GH�����dI��tGDtCd6CD4=�c����U��U��I��$�糹�;����������wC
KI��P�b���{�l��h�������$�f��ZX�+���a)�c�1�" ���!8�# 1�1�h2SB3@0�!����a)� L`q��F
�4�F0D�$�-�IȒD� #,%t�D�]#x�H�W�_�ɀhL(h��������[���+�e��Xd���C Bq�"�1���R8��j:(:�@�l#6��HlN�N��2,�2dY�8d�#��d�D�K�F�&�Y",<�?x��,<H�A|���=:tT�C͂�c�.p��v������`R,hX� �EL�ZLȤ��^L�C"ldY��ʼn��dBȹ3 �c������o��o�w���D*�?
�[�d
aY C3��5q�5��j���Q���(}��Հ�W�����������_��w�&I��^Z��xwq��l*.PyR�Fʙ*4X�c%�H�������uq�}1WR����:_5�S��k��Z�� @).V�d}r� ���~��| �̥�W������㻹��FJ�8��A���4,dX������������1]1Q�P��ɮX�d X�c�կ�
ؗN�uLUa�\��us�)��h��GH���V��R-$�i4���im%%�oF�SJ-F�SJ5�Q��Z�N�Q�M&���:G��v�G���C�������-ʼn���ȴ4�����C���tSG���:G��v��oB�Q���)F�Q���Q��R�Q��M.���M%$��M$�h�"�V��Z;G���-7�f�g3��f�Y�5��Y�7f��o7��to9cR��kƱ�oƱ�k���k����y�9F�y���vk7F�Tk5��fs9��c�^JW]u����]u�JYU���g�w%�\�$�2;#��+!�?D?��W��^+�3�������z�Y��?G��$�x���WC���C2*#��:$�2\�%�����Z}==OoooS��;��N�l5�� ��)�N)�F(ȳ��%�h����.K����%�\�ȱF(�4)�6C�[[q�nۻ����ooooZ{O�E�� ��C���f�CA�h3��AɎ f���bCTlHo6����HJ'2h����Q�Q"����/\Qp�;����o���)XJ&� m-��.[�W�,>�kO��a(����j���l0��t1�t57� M��S����2$���E�O��4L��fɢ��E�= �^Mxn����o��ď�� � �A�{a������h��h�����qb�e�C.B9[9r�r��"gd#g&3� I��&����e�
?
?
?
?W,#�3�8�XxBHxB8xB(xB)��Q�b8��㩈g�C>a<K�`�5��W�X(��}��7x(��D�4��>�4����4� ��$�& eh�-�ʂ�%h0��Q�C��W|º�!�`�ذqh�^k����[]kA��ׄW����������Vw�xf~R����!��/������D���V�fAy��Q��
�Z�0���0�}�
��@�e&
і�&�^\��� b�!TW�: �!��k����?�p0�H����-�E��h�:M&�I��t�GH��i4�vi�F�Q��j5� d�IH��Gh����=��Z ��Z!���O���}='ѓC��Z!��!�z=��z:GH�Z+Ih��v5�Q��j5zvId�I��+Gi4v��i4�M�E��h�Z-���+G8#̰g3����Y���vn���ݜ�y�9��f�1��fc67��x�7��x�3Fdb�ٌ�G3����Q�7F�tn�ѫ5��fs9��f1��f�Q��R �� D�%O�O������=oonۻ���"`WC��=�� (6�k�?-����;gs�KC��Y �6Ė'Z=�cخȣAq�n��������o�����O�'���z��ww7i���kkkj�mZj>LxXOBJ ��*��d�I�d�&KD� ɆsX�ǖ�5�I������ssv���ݧ��z�ߚ|K �.8 �S��1���k
��6�,4#4
�#Tl#6 �3tl#2�e�/(\�9(\������z��듮5��\�p'>D�:D�'<D���a|���D�A)0���K`�ح�-�N�6�r���a�b��B��d>4\h'��h9�Q�0��aզ�C`�p$9� Nq��f���L���ʘ* LVP`�9�R�u�W��z���^ ��_��^�_��8�,Х�LlV������ ��O��8���%�REdN@�"r�`fS�6�"�dř1rs&.L �`^��B�1@D�I}K%�e'�
��g�qڸ�/*��p�p���#_� `�1������tk��������� D�%&���B��� C��[�/�ܻ�r�us�W�� ` �d�{ �;��3(d̀r�S)PW8��`#��2q���E @_�tJ"]+ƾ%]P.UwU��\��������}݃;������s�os���d �d���,H;�:bP�옥5Xn�������9�f�I8�<Kb]؁�K�]R�~�S�P0�wR��u��5�ȴZC��V�Cht:�G����z*E��JG����zI�7G$Z=�G��I "�Z-�E��h) � �A��V�����������Z �A��R Ah�Z-�E��ZE4Z=�G����ܒI#���z=%��-����z=�C���i��R "�n,Q��Hՙ�Y�5��Y��j����o7F�y�9��d��,�f��sTg3g#8��3��9�͙�Q��'(�n���vo7��y�7��f��f�Q����������X)5����?O����������M����t�!*{;DtAC�(�-��*�T�j�kb[X��Y�����vݷ���n����������o����;on���ӛ������֛j�i�.�F� � A�����+d��h4�AH-�$�]5�ڴ�[{���������n�n��>ah���`�� �q��k F���o l�hk4͆f�a���jO(���2��Kd4_K�5Ը4]k�Eָ2v� �� ާ�'����6%�ɶ������x�bug�0�T�^Q�eόF,@,dX/7Cax� �Ø�\;�!�� ������ �g#�2���Z*����[(EK�U���~�5_� �� �� � � �C����'7'wC'��Տ�,�8�l�X���G.A���V�J��H͓ I��RtL"`�%�C.B�EWB*��E:��|�3� �0�p��p������A,|auGF#��G>b�AȘ��%��J�R�� D��Q�L�Ȏ�d���Cud7VCwb����LS"Y a�+ �TT�!UP>�X>��B����a|�0˞%�LU�=D+��CU��� ]גW���Le#�s��YՏܬW}�_b��"fm�3!���� ��_.A|���J��������� ��0� u�E�&��E9�WB��~�DtC]S%��h撜�F���C���!�3E���-�C�����G�����E��h�Z-�Chm��htT�A#���?g��S��>�46�����O���g���?����C��:-���C��h�Z-�A��Z=�G��R�E��h��C$4���m�C���!Q��KG!k�,�k5��vj��,�s9��g3��g6ɋ3���s6f�ٛ3f3�3Fh��9��g1F��g3���s9��Q�՛�tk5��([���F�%����Q*��F� !��?O[��������9�M��V�֕�z=��V�E��h����E��h�"�z=,MmmSv�幻n����o[����e ���{I������{{�{{T�M��R]44��h)A��Q��%��,��?��Z ��p��Z]6�j������������2{=`M4!.�ÅÅæ@��H2�48�P6�l�8 Mt4#4f�#D�F��Fl ��

)2�I�d��+ҮP���됮N���.������o׉��� )%%�
ZM6�j�5(�¡��A+�̈́f�x�3��x,4�l ��8�c��t0�Nl������$p%8C�0�b�J�ʙ*����ƒ���]^�|��^�z�@:>J�B|���u������ @ihT�v�m���@��#��tj�H�2P� ��6ȳ/2,���:�V0Q�L`���[&0L�B���4-LP T��j*�K����훊k��[�V�qMDKW��R������D1�݉t`*F�7"Y �VB�*��������� C�%.��������%�dĊț������W;��q�0Ղ�2Ĩ��w;�LS4���n9�j�S3��q��`j�:Ǯ8��|`5G:�J��S��e����3q�����2�V �� �[�����S�|��s�1�Q�X��{��s� bD��'*���`)���3�p�9��U�UC��(b]x�&)��U:��S�� c1��������+(-�A��g��E��T�EH-����Z-�E��h-���tZ ��Z �C���3�~���?���j��L��z�R �CMD��?����?g�� ��4: �AH44�E������h4Z-�E���t��Z-��Z ~�h4 ��Ċ���t�-�X��ؽ����o7g3��9��3�r�sl��Q�͙�6f�f�Y�3��Ѭ�k3Fh��9�3��g9G(�3��Q��n���yy н е� I�%0������ ��'wwwwww)�ͭ��M�e#�t�EH�6�����~������E��Z;Gh�,I�������wwwwwwJ����Z�w;���(�ۧ-��j����.�K��L��g��?���=�d�ID���~�Q��?H4(�R].�kjڶ��or��4L����� ���j^�����V`��X:�h/����p0��dj��&�l05� ���"vP3)� �ɐ��d/_k�u���pb�\;N��S�{��^��Z�4� .�+M�8�@�9D��v �@X�� ��`^��&#0'2��`\��V9�1�t-Bl/7� �Ѱ��� �X�bS*�ʆ2ayJ&�QP�xf�^/��{������|2~� e��������‰B�ר TR��M� ��s��cL썳2a�q �+�J��L� ���FIЊ�J�G.B9t"�b.��"�1�Ϙ��b)� ' A2��}����Q��� �,�7 ����������� D�%2�� C��%��U �\��NBY.�Gd�~��6��6�W �����*�1���S
�S
��/��c>a�� ��:�K��D|b����� ��)�̬atr�]0�w0�)PA��A�ll,`S�cө�g�M6X�L�V��� n�,��ʩ*faU�©])Ead����-���� 5�%��G
e�z��4ņq�Fcba>0�9��G��h�D`ya�������+C��� ��h4T�C����?��?��: ���,��AG� ����Y�IX?��Z ��Q��z�� ������d�z�g���Ah,� �����AG��
?g�����t:+A��R ���tT?�����<,D���h�z[-bؽ�ؾ/��&s9��hf�s�3�ٶMQ�5F�Y��k5��9���Y���f�Y��j�ѫ7� �(g��9��f$/���� жZ�`�u��VJix(���(t ��Q�=����ssooM��iE��hm!�: CH(���z���Ahm!��+CH�Z-$I��m�����sH������
A�����v�r\�$�41��MS[ZjI���&PQ���������vDyG��yvg����?��� EM-��[[[Vշ�`�$�r\�;G��"+����\:\�p��(����0�$ �����d��HЌ�$��f�3`<�.R� �ݒ�ɒ́yz���K�)r�ֹ:�.�D���^x��x����L�&�d-?����vT!N��(�+�\4^dD`��Dd@d �� ��%@�u8pF��l#7F�C�]8��� �P�Z(`���Ɍ�%�N%���Z�^�x$�J���.�NςC�f�46b� [@�
(Z�"�0*D���c�L]����8����c�&6E؅��`D&,�Z' "H���94�bl1 $u�`H����qG(��#_1�0"M|�D�x�U8�D��^,�R��P�
�A�*��*��������`��}�}����� U*'&$�3(�́>L��R�^|�w����; �r��%T�U�g��9�f��dā*�����UΥ@�R�78�_���e��`^��S��8nv�U�$i3(�N@_�9'���s�&*�\� ��q��*�^JqL��� *bPɊ��w�r�S�( U*Qs� �R��~���k�hፈ��X������) �h�Z+C��L��a��{?A��g��?���t=��g��z���AH4{=G��{?G��u�\���b�*Og������g�;���w= ����세�qܖ�s�����=��Y�=�� ?G�������{?��:?��� �Cg�=��b�`�!N�C��Z-�H--Bض/b��/��1C���63��6p��5��ݎ�v0���ö���l;A��v��{P{�;CtrF�4r��q���c����|_�l[��>������� N.������P�: �?����;���(�۶��&Ѳ�E���i�A����w%�Z%�[;����A����E��6�ڶ��'h�w=G��?��hs��;D�IDtGDtG�Q ��6�J�;D���=G����w%��dYYE��,��s���z����(��X�i���l���;#�;$�K;g���̆&c. e��\.0ɀU2pl�O��yh�^j��sAi��Zo6�����XͲ3l�k��Z�xZ�k���Э�Э�������x�@
ĥR��@Ap��@X��i�x!�o�3tl+7��� Q����� �����V�tl+9�
�g���\W*��0��P+'� !�B�j �������\1d@�x��Ui��r��*-@d�R�b�>��<��8ɍ�Ɏ�c���“(#) @��E�FX�F�Jl� 6�(�����`���N;��06�Q�X��E��{+�k��/��������<#+�^q~�%��T
�� G����A\�r��� ��e%���mE,2��� ��/��͛7�@�0�.A� *,/���� j�2��j_byK �V0�6#3���a\�������C���*��K�<�HJ6�+����4Vad��w�+��A����0Φ�SR� ����� �º�
렲� iu�eV�^0y���S�g��v���?HtT�AH)�A�� ��������=g����-~Gh�v�Y�=����;G��z�g����Q��v�(J.�Pw;���{=����%����w%��{=g���;Gs������Y%�������Q�=����;g��v�gl����?4
?����=G��;���� �h4 AhtV�?h4� e�Z��|_���2�|���=��rø{�z���3tf��콗����z/E�6n�c��0���=�p���6�z/��1�b�,_��j-Bص���x)�VJ:�?G��{=Gs��%�(�$�MMh�C���t A��.K���.K���.K�� ��A���t:Mh$�,�$�\������~���w;d�KDyG�dYC��A��.���z�������ܖ�$E��C��9C��I2Z;����=���~�ė<L� ��"Ȳ,�#��[%��w ��@��������������������������_��������������������������������}�������=��n���}����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������?�����&����uw��������]�;��v<���iM�ӧ����*USi7\�
%�����$(�$� a�(J<VY��BB�j�*���DAFa�q�q� �� �I(�J(��,��(��,��,��,��4� 0� 0� 0�M4�L0� 4Í8ӌ4ӎ8��4�P8��8��8��<��4��8��4���<��<��8�����8��@���8��<�8��9�<��<��8O��8Ӎ8��8��@���������C�����<��?�#�<�<�������?��?��?��<��4��<����?�������?��;�����?��8�<�������L���%=?���?��� ��O��ď<��<���������Ï���O��O����4����0�?��?�#��?������S�0?���?�#�Aŏ���ΐЏ�?A����ܐʏ����C������A�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������P��O���O��������%������ ��O���O� ����?��� ;��C��� ?��A�O��?�� C�??���PC���?�$��������O�����O��?��C��?��?��@��@�<�<����?����<��8��<�<��<�����=�<��C��8����<�<�=�<Ӑ@��@�8���8����<���8��=O<�<ӎ4�O8��<ӏ<��<�N<��8��4Ӎ<��<�M8�8��4�M4ӎ4�N4� 0�M4�L0�L4�M4�N0�L4�L0� 0� 0��0� 0� ,��,��,��(��,��(��,��,��,��(��(��(��(�I$�I$�I$�I$�H$� � $�I$�I � � � �I$�H � � ��q�a�DZ��@��:^����i\�PV��,�@,�x���&*V UR���)U �UAʠF<���zCqT��
�ɍЛ���Mlz�)��'�CģԠf$�% ��
&E8�dR♱T��Sd�� ��$6au5 0����6�b��k�R/R
���-*��9 ��a�5 A*Xv���V�X~V�p~V�����o�+|X�x���T� lc�2�pƗV��EVF�J���%VD�%4���H��s��Đz�<J=IR����SԂ�Y�D��)�P��S��N�v򧀺yt"��!]Ir��IZp��t����Z���ǩ?Z�R��{�J����1�M"F��F���q�h����+1�4fg-��<,�(��!�M!G��I�������몗]W���_��_���w�w}�w�������}�~�q]��]�v�wqs�W>.v�s�n;as�nv�s�S������k���`,*�\�
�]a�U9R��T�U��S�*+�w�:ݪ����A���һ���g��q�R㶳�`-n;mwi�qG�>��Sm8��� ZrNӒ�NS��Y9'e*_U�ʀ��ORî[�`Ou��/�S�ZU%e�A��4 ��4+B�$�2���;E�t]E�Y"R%"h�-��-"h�&�H�&�E[C����@��t��g9�Q>��E�&��h����v�EW���E�)D�2��~O�k8���æ���Q�mCʴ�h�&�h�&���-"�&��Z%���t]E�觔iHBЩ?� A��t�(�Jҭ>�Qj4��ju:���m���_����5�]1�c+l=����d�yA� �ec+XʆT2���X�0�h=���T1p�K��_ m��~[��[�u:�D�ڍE(����_���%�W�_�u��%�]u_����%�_��w��ZV��RU$�:N�iF�H�6��h�&��i=$Z>�H�5"��5"��.��Z.��Z6�h�E#�F����&����>�iF�I:N��ZU�iZVT���U��S����S������yGtu#�=����E+)�- �A�t
A�)�t A�tB�������H2=��:�ݞY��l�e*)�O)�K)�S*�V���G��91AZ�"�qvVE+����yz�y{��U�,1Wj��Ƭ��j��� ��Os�>\����=�؜����d��A!đ�D�F��ƅ8�B�J�C�dt�T�bjƘ��8�d��I -��Bɬ%-�����5Uj�UR�����wa��b��n0h�|Y2�!de�K�^LY���{�����||d�����'ǵ%��4�5�&,i�5��"Li��AzF�EI��*V�DK��l��4ږ;�V�8��t^�PJ[(
*f�FS������ �D�Tz�����%@�]���7�`�}�}� Ӝ@� �¤/B�u�� ��h#2�Rd!3��������+��,�����뾻�꾻�������K������������뫯���Ͼϯ�ە��Y�՜]Y��P��:���vO�6��k����o�[�5��Z�Z�6�ګ'�N���tP�ѵtqWG=��]����?��P�ʢ�Oٕ՘Mɐf��󩎧)��rcnx���|VD�Yw2$���S!��D�DYT����N���m�TrJr��Qф��.�OtJ��G-'J�t�d�4*B�6��hZ�h2?���hZ�hVQ��ʺ&�h�!�"R%"R%"R�)����y�Y�p��m��q���Q�{H�zF�\����6u���HYJʱ��֏i�H�����7p�6�!<�(�<���h0�-�-�-�-���4JDʹJEB�*Bд-G���4*Bд- (��h2A�DiN����'��S�D]��}�춋�{��� �0�l6]a� le��� �eC*X��V2��2�4�u0� ���k���K����/�]�:�Qj4������������������ c�_����_������N�i�i:F��h�5"��.��h�&��l���W*�WC�;E�tZD�4]D�4[E�t:C��U���e\�Hz&��h�.���֍�h�F���:U�Y�g6}Fe*B�
>����s�<���;�� �|�7�l�g2=�@�4
@�4 @� A�\9����{7��|�3�;�3�=������@�+)YJ�T��QG�+N�9bq%Ab� ����X��`�X�+�,����֫*�"��]�* �������u�-�Sg��5 ��-U�)��9�C�� �n�X�MCQL�S)�RҒk&%$�ښRL\�z��'�)ҏ��u���ևkCr��k%������Jõ��,�!��*�B` ���)`H�/���X�C�iĴ�pC����țD�k�&� �J�i�Q4/1)&�KBJ ��-�A�M$�$�)ED��h�-Z6h��@uC����nx�u,:��LJK��6��:��@/*z7�<o�~'�< �I����vM���p� �1���o=�ѻ�ط���r-��l�ݛD�@N�Ef�$f`���� �X��M!���몯����������������������뿻��������������y�ܹ���7gŹ�7n+n)�q�O�srq؝s���M���ء����
�_��˕ �*��'Ԫ99B�9S�([�**r��ER��J��PG��Uaj������r�Q�l�������� ń'w��X�:�"z��xD�'�����ސBS����l��l��y; �'%9J�N����=(d�%iZN���}4�tA�$����RHT�h:~���MA��YVeId���}���gVw�Q���ٮk���*�GѭEp�$-�,�?� �B�F��-Aв��cFѩ*�o#\�5�h���ugVw�Q�}�}�h�fT�VE-�tA�$}G���:!Z��}G��MA��s�ďF�I:U$�Ry��j,�ܶ�l��r��_��S ���e�n�K������ه62�d�sE�aL)~�_��n[��S ��������-ˬ��l�,yE(�i��_���W�U�_���_�������W��������WU����zN��i���=#R5"�.��h��h��HyV��RʹS*e:)�:)YO)YR��<�E*)�*)�O)�S*e\�E\�hz�R%"Z&��趍h֏h���ZN����:����3��:�ٞ���g�wGVu��6ͳ[5�'Y6D��d�'Fo3ɞH�D� vL�^M�:�5�h�6�&s�gTwg�y���{����3�:���<Ϭ�>��>��=($�Z�~�^B_5�"�J��V?+֐�°��Ր�8����!�n��"9TAmMG�v����p�It�� �-$h�� WC���Sn�Jb��NK�Y!-��2e&�$�BI҈it�B+�qe,/[kH�-i!l+I˦����X�����X�h0hZ7,���d���X�E'�ӐS��K�ȑq⨈0�"(ؑSi� 1���^�@I��TI$�$�4�K$Ƨm-��M��JjX��-z8-���()����T"��� �|C~��_��G]tBv�"9R%n.���1:���!GQ�E�ޛ����zn!6��+v���Pg6a=�3@̵���C(������������������,B����������������������gs����Φq9L�:�>:�:|ɳ�L�L��$Φg>�d���~H���H�3�eti]*��\���O��BWG��etwWGuT{WCȠ�׬i���n�sw1�u�*�k��o�Zn�)G(�����V(wa��N��'&���T,�B�D��������W!̪�ڪ} ����n�9$�:N���F���|��w����������=��t
@������@�3�@�dyg��}���:γ���h�7|��,�"�|����E� �-B����(�@�l��f�HT�H�H: RQ��s�� �2�3v�Y͝Q�u�g�=ϳ��<�٠g���g�����h��8{g�}���}�������x�t�#H��&ҵ�F���˲��v/������al2ܷ-�I~�_L6�_��(����
a������rܷa��
_��[���-�ٗe��a�yF�Q���_�U�UW������%�_���_�_U�]�W����N��RF���=#��>�H�-"Z&���vU��2�S��S�tR�YJ�YJ�YK)YK)YK)e;)�<�eL��,�ht����%"�6�h�>���E$h��iN�G�Q�ѽ��m�湼�l��h��h�9��5�r��읓ref��i��Vi�f��L�nN��B3\�7��9�l��l��h�F��m�Q�s�gvw��� �'',N�,P�'r���x4/���@,4X���%͖J���� z)Z�r��-ǜr�,�5��T���D6&I�)A���%[C'��������i��( H e�e�����A�J����"R
X(W�`�X�EZ�5���$�CŠ޸=\�堈X1Z��0!��0���K%�E����Z��r�u�����WM㨙�U�-��H��lJ��%���%�$�� �$� � � ��t�!�D4Ihz�!�D��MR��e�����D�"�AUQr�.ԋ�J��Z���P-��
�_V����� t�IT�q��r
r� \sm1�y���@�kL,��v-ʍ�[v�-�t�ɍ2Dd �h��!�
L�����R��뮿���������������﾿����������}ws���8����s�l��
p͌��lp��8c�p͜ᚙ�6��`L����n�>�&]r��r��P,��'���N�L��AI�*q�&I�*��l���r���SNH��đY��-6�`q\sK�xØZMq�⍌p�[y�� `9c�6��ʺ�;��+����<�ql��3����d9L$�⫏��9@tS�9��@���E���i6��i6��8}�s���uGY��g������h�ϳ�����<��w�Y�{G�s�Q�q�Q�m?&��'2(�+(����@� >p�>���?� <���>�A� @�,�?� (̥E���&̟�69�,�8ά�<��=�(�;�&G��g��������s�򎳫:�h�:ϛ#F���F��ZE��M��5������a�̺���-y}���6 �[��$�����a��
_��[ ���l)~�_L&[��6 ��_���F�.��0�e��_�yG�W��W�U���_���XX��U������w�_��_�4��RF�H�>����6�hԋ��-"RUʹN�yO)�J�YK(�*(���r�Q�VQ�YK)YN�yO)�W*�z%��-��֋H�6����=�RF��ZNH��o�f�m���B�Γ2L�H�VM��ͨ��|��7&�ܙ�����NI�M�rVJ�VLɹ7&�ܟ3Xͬ�D����,�2fN��f��m���9γ�;�,�
��>��>��F��='2P�@�c��ř`ز֍����٫��C�V���x~����������l�I�D�Ť�#��kJbQQ�@ي:a�f�CI�I *��I�L ���@H��U������+�a�%�5�XB[%�5���W2��Ѳ�
Ģ��8:L�L&�h�5cesV<OP_��?��8���#���vʘ��0l�Icd�I$�#d��L�$4;kmN�m�mOmOZ�Q���56�CSJ�Uq*
J��'�~
�D��S��=��!���������.B#���]W؉�#�#����8��'��q�5Sa �6 훴
Ld�Ed� ���S!�5 �������,J�����������������,F������<�L�u3���'��>3x�3h�2�|d��2t�d��d��2Du2<��]ٍ�c��Y�$Uȓ+�.W"t�D�-„�9r7��p�#�r9���]���B@�P�a�1f�b���Q?on�q&9L5�s�s�z12㘛9�8G(�gV��5�A��897ڔ��9BS��%J��) 59��xRy���r� �����ɸ:r�I��H�4zH�4�#H��i'8�s��9�l���o3�8γ�=�s�;��:���;�(�8�z'ș#L�A���4��r��#��-�� ��s�>ϴ @�3�;����>��@� �@�
@��
e��su�j0�6��2d����g�w�gY�QݟQ�{���q�Y���qg4s��9�q�5F�>��i��iE������ a�� �]1~0���������-�v���6 a��
a����~�_l6[L6�a��� -�v ~�_��[�,_�I��_6
_k�����+��,F��K�������I�t�H�4}F��F�m�tKE�MC��=�)��R���h�HV�e(�!QF�6R���m�-��=D�4[D�]�iF����}"�4�H�-@���ϳ�Msk5�Op���Ҍ�2�,���9D7H9f33����NI�<Ό��$�'%����$A�q�c��|�2�8�,�d̟B�sl�9�s�:���ȯ���@<N�;��� ��'V��8M',N,K�<Z�ъ�c+�B�`�*���_D�v� �@ܪ� �’k駨��G8C��|�)�V%&E4���|�I�P[J@J��$��H<H��䐔JAJ�Z
X2և��\�q`�XȰ@\� ����p]+ �m����"�b�;V����`��D^ ������ah���,|qs�2[�o&� A�Ȫ��ҢhB��"KBI ���aE�KAq�SV-��Z$���[R�ɍ��Mn*�
�**�Aʶ�õ�N*`�T `���8@�랷�<.�wuC���w-ǜ�r�NP<�9�q��oF�y��\-"{vM��SPyj��M�8�-�&h�A�4����Q�8�*�PĪ��ꪺ��꾪�������﮿����������ﯺ���������������"��7�m�6��6э#o���V��nF�1J6��6���x�tm��ᘗ9�]ؗUW��;(���|�rrvB��rr}�Y�܍��4q�G'�I�C'�ErI�N�� 8B���g.�i�X�{v-ַc*#o����Y7U[$���<�������P):��@}T2yS��u;�8��^���V�.�V�c�� w�����C�������6IRG�zG�����}��A��(��3z6�\�f����m��O��O��?'䬕��VJ�(�9�'̊4��e@p�Ϭ�@� @� =��>��=�(�=��:��9���9���)�)���>��4��e>Td��SK%d����VO��?'��'���f�o�پm#\ڍ��8��8� DzG�}G��G�)#J�l�M���Mm�� �.��aE�/��-~�ak�[E��al6
a���
aL)�0���Yn[��[ �˜e�[l)~˜k��_�B0�캋v�-�RQXYm_������W���` e�6RM�T����mE�jE�iD�4M��=C��JC��<��Z�hz���%t=C�-C��=C�MD�4[Eѭ��jF�}J�e���{G�{G���Q䍨։Γ2]�L��2��/p��l�������>ǔ:�X�c�u�,}��c��(��E��1�s+$DJ�2^K�fN��ͬ�9��9�s��H~�F~O� v��� 9�I��� �,P7W���U�
�bʸՌ�[����Q��O�SmM�����06��8oH�(|���`�&$f:Y&ID��R�,���H�#I$�C��,v�ib��\.����^X5_�\K�+�qt��s,#.�*���ūy[�����kխ�
o����Ջ1��fޙ ,\Mtћ�F鍓L�&�7i�9k6�m�j~�6�F�6Emm���u��Yr�V,�h��5�����87�84�*{�EzN�n��*B�r�!Ϙ�>a>w���� �[SQ ��Cm���Q �,D��Ǔ ��%�i���U�XX�w��������uu����u������u}���<r�)DR�QD�GQJ#h��u>."t\d��d���gq�#��#�����}�����2�D�[��T���N�8Nsp��髖᳓t�ٸ|�n�ݍ�gf�K���B9oP�����w�
0��87ۉ���6�u�� � p�_o� ��Ds� 7Q�t�F}�g�)�,��$��.6|/��ޅ�!ɼ`�6 ��^l����-�o ��ѫ��v�Jkm6�M�&�T�iFѴm*@sF�5�P����6�l��7&���D��d���rM�Nig�д- B�+@t�>���?����Ú9γ�������s�8�z7���9������>���>�"B�+Bд,��J$䬓d���ru�}��nM���f�m�ȡe (Y�m3�*6FѴmG�m*i��l�{M����MN�Sj5T�U��n,�]�����n[���ak��[e�‹r݆�a��l6 ��-�v[E��_l(�e�n[������],���ҭV��jiN�����������������������������������꪿��i��t�g��l�6���$ZE�)C�:C��=��<�hz�H����%!�z%���Hv���ZC��KC��=��D�]�&�4�el饴�m6�L�;Ψ�9���(Q1�K%�/4�2VI�'L(��.Eș <>Ǹ�P�P����8��x�Ǹ�dH�"�\�3 2��d��4�y.�(�>f��m��ŜY�/u;�R���|��p@�{�`-�l� ��:��+NX��X�Yr��׼�UE*��x vȉ�I����j;3�eV))�4�4Ңh_bTbDL=H>I=I%���Q�X�$� ^�x�>I>I iH d$����FK�Ĭ>+�X~X�� aH�@+R��p����D���5�����:V ����iX1XX�`�DR�`$� �Jˠ�����79�n��-&������Ij�� �[A{T��FɍQ�&6Dl�� �[$7d��۱n� ��
����`%V��B���aQR��
r��@����4@1yS��꧆�u5�*�(���$��МSmq�E�61��d,�*��"T,�)6Hh1�33�� -�5Gd&�� I�I�raM�)���ܪ�UUu�\�����������������������}��������v�,�F��G�2�&���������vp��L�F��h1��"6��F�6s��\v���t�S�*SR�2zH�A"�A ���0uC�X�����o(t��.�����T����'tѲ[c��m�-�� 5Ij F�-Jm�[�d���n5e<Ma&B���D' ����q�{����OT��J�Ӳ6q�;�M�^�� �U��/�����+N*@V�>�s���ׄ�>ҙ��v�eLi��c��[*c���]$�E���P�P���l�"nMə3'dܓD�3��[S��'tBв����g�{���}Gtwg�yg��Q՜�k#�>ϳ��=������Ϭ��s���3�A���hZ���(�%�3��Ml���fLɹ7'L֊(QB��r�T�I��clv;+e��;-���l�����y��ڋUJuZ�C��i�*
O����k2��� �‹m��aL6 ��a��l6 a��i���k�W%��'����������j�:�QI�OW�%�W�����%�]W����%��7q�5��v�]����Zk��m6��$�"H�*�VʶUʶ�H����z���z��h��eZ*�Z*�V�&�4�6m-��i���[iM6�]�֚m)�e
'�:��M�^iD�%Q��=э�6F�,�#X��?� Ϥ{�g�y������w�g�y���@� ���5p��,�dl��ٍ�쏙�*�Vi��l�l��f{�8�n��']y%�D~�*��U���}�&<��� � �S��X��)w��י
,ٶ7b���&�t�݉�,��I��$R�(x��@�&�GI6�;I���U$��d�B]KH ��|WEc��+QX��5��ָ~Y5�"�+1[�0W�#+�,��վ(��HnS
�J��;�n��V�tѫRd)���t&�lTm�*��[m��t������M��p��T��Wk�mib��Ui���u�-AZ�P�E'-~o�/������n�t ː�+��:��>a��a�t�d����y7-o&���2�t�sJhV��.kL�6b/K�� ������_������}` g���������խn�w���6�7i ���q�L\)0�)P���Q$E(J�� �/BqL�u3i��gS5��j�9���[��B�Q��Hvn��n�;���<���[Ѿ����>�����th��»Y5Zɨof�@�Κ����7� B�0�.C8F�G�8��q��rc�ݎ.�qu1�]*�qUC�F���pv�� \q�q�<*����מ �\� P�ƠQO��xT�7N�O���. JS��iLv;7L�t�.��7M�t����8y�gTqF�mE
%�2֨t���WJTQ�6Q��Q�@� A�h��h��h��3�=��?��>��=� ������{G����������H�G(�(�G)YV$=C���ljvP�k6��:���B��T)�n���]�i�f����v��s�N ����F��R�M��:�P�AI��}E'�4��Oju6��ku�\���[��ҚS�����Oj->�O�p\�%T�SJiN������������:�,:����Wk5��f����\���i��m��6��y���߆���}�3�4�It�I6�i����[o�m�m�ޛ�y7�S{mM��M��;�Ѩ�q��Z�U����9�o�H��.�TJ��#��f��Y�}�������;�s��Gq���sG6s�g9�qG9�s��;��ٞ��}�R�#� �%8J�]��6�|�9���b$�%N>�c����܍�/'y;��(yK�^8yS� ��.z�C�8��.���ocnŪKd��kt��� 4LL)&8�QM �h P%��ԚI<I ds��$����9�D�O��U$�'JAJ ���e��˂YpN+��xK�s,X�����V��\��k#X�U�Zr���_,�[�uש�Xh�gx�0���B���n� 8Y���i V��,��L�o�1��sU*��;X �U�R\�d��<Ӗ' ���������}[��ގp��r���i;)���r�3gu6�d��7Mn7b�Ʃ-s4��h��d�!��"2Y"�b�UKS
)�M*�������������,>�������������������œL��,���[� (Bsd��6gtًgڱn���7d����z&�GXݎ��S���ꮝ���E$�8�wauK˞R�g�<<��+�'<��`V�QyS�>�����buK����i ��-�m��YC t��i�d݋p�n�!eED�'biB��7� �qΧ;/R�r����@�E:�؜P�H:���T�ZyS�y[�e�o<���!���N�@3T0R�Ir�Z�SJ4�yAp[�������䮢�i4��3K�4�I�4��}��h��i�H��<�hz%��Z(�J�yS)e,�e) ��Y���}�������g�?������@�
@�r��TR�YS)�*(�V��JCʔS��Dѭ"�i�d�H֏���I�]�izf�m6ӊwnM����������O��4�Q��ڝU*��Ap\APZ}>���4�}=Ai��AP\�����R{O��ߴ��O�P\A�PRxUR�S��X[���j�^�[5��������a�6����V��8��_�UWԭ��r��]�U��_�F�j�_1�a�40��-�����k��Y���UJ���l�Ìڎ�(‰E\��(�����R��}���F�o���mF٭Ѯkf�k�٭�f�q�f��ogS=�����YG)YO*YW*��Qx��k8��:����v��~L%),rO)v�P�<��v��Ѽ��ܓ�\vHҪ*���՟��g�ͺjjr�;3fZi�d�M�\I4I��RK�II�C��DzH!$� ��Q*���V�d�azז��YYy^VC+p��Y2�!e�0_a�f���2�E�VnW�u�Zl�Tr���.������Q���Nѧsc8�o��(��g�M��n%1\K�6�é���8�"�;sXZ�֖+}J�:���J����M�\�I֧Ӯys���)��%ҹ-�R���GQ��5�m�7�˛Su���Z�W4�2�t�kJh��1X�dXɻ��L`�&?�W_�u�������ew��w����u}�On�a
�[�q��-�l�� � ۃCh�<6�+6���l�=P�؄(�0�9FN�>�����B���Ц�/�\�Vr�;��4:����� �I��_��+�����#?�L]bFgm�-�nPmm���ܔڛ6�b3zlCm&�d�v�P�a�F�� #r1���wv-�����Q�5str��;vo��7�� |���J��&?7�S䗞|���K�¬)�S��! ���/��'������K�]UU]����..-�6�m$�gl]L���H�4��(��(����Qq�-
�(��l�49��iscl�[JqH�C�NH4}H�H�E�YK)eK*薋iF���^����3�M��mqqqq�u>�������v�������Y5��d�B�(F�)ҍN�U�u��ߧ� =����=?Ppi���Oi�88884�A�o����������>���po�{OI��z�~��)�Q�N�Q�XX�_���� fu_��U�%�_�<*PQ����b��8WE�[����a͇t1���V b���aF1aKy�;
�p�a[
�V���[
t �
X� ���B& P���<��v��E�n[�Q]�FL@��B$aFaRž�c$ٴ��i"��J*ȩE<��� B�m@����h�<��<������;��;��;����3�=��<�l���A�i B�VS�yRʳD�m"�m26sM���y����8��R���U)N�^�|�r)9 o��c+����\Vv�#��Dݲ[R;dv�=�#"3�a0��BJ@J.J=I$$��'���ĘOGH�iB�Q�X�$�&$��Š`��;Z �C����`�\��b�x;%m��w,Jȅb�F� �J�����;X�`�P7).Tn�|؝tQ:�� �B�i�Ձ�|�����7c�0���8�g9۵s ��eJ����X:��
k
��)
*E���P�HQP�DԯP�,N�����տ�����ryK����N�<��9N9��S���lLۂ!�&�m�[8ًs��-��KS�h���!��$6@���A�+4�%T�biM7�]W�U�]��_U�_���5�w�w�����}����w>��YB�8R�i 6�[�l�$�Y5h�5�kvm@G5d�66�ٷdݤ-bh��)��ww;U]J��d���9��'}S�^}�o)�\
^W�@���T@"O�uC��R�[�]�Q��^�)��d�� �)��T���T��mRZ�ղSS�ɭ��魐�b�г�"6ѫ����)�T��� p��/��O��|������� 
�S��*�+�BPWkN��`]ST/X,*aV¤���J
V �3�R�i(�5�LD�
C'C��k�IڕnE�Ŷ��m����.�i��I���i���w�Ϊ�܊���dޚ�v�:gL���l��2��)��v�k���3��⻎����t�I�2��e&Ze&lbg��M��mqqq|r�n ��|Ø�QS,D�|b5�(�4– � �R��aV��­L*R�N��<��pppZ}>�OO�p\���pT���������������A����}?A��PS��TҝO������� buxY=V�'U�%�_�4F SɃm�}�}�����W�� GX=Xs����(,NG���7� �5�+H*�S
�l+a[
�V¶��AR��p�0k�7`�"��A#�J0(( ����=P#��
�:�郕}}md��@��&�Қ�v��g��[M�t�2��+I����)��(�Gy�s��͜�9�s��͜�Y�4 B�NʳF�{IҴ�L��7M��-����-��ii���ߘ��0*c��ݠ(��(�P�%�V��&��Ir�HIمx��ӂ i���&ʛ�I���ՃG�2�J�LR��K�SKy%ԍ"�cHu�E$�Hu!1�R\IFIґ���t�LG[k��Q�e����[K�^ܲ���%�]/y|E����%q�V�5���K0��Ӈ��� �PL�pm�{�@��� )��8A+q�
y����
y�@Tոd�P7p�f��T
V)ԬS�Z����.SI֧�-Q�� ����^�Z���\�˒���}��5ө���l;u�����e�v�ZmW5�em6�YS%��Kl�ٶbZ�����_����_��XYE�����������v�zn����e���p��6��oh��l�0�7� ���.�� &�@b�q�3*9FE݁�u`dw@du@e99�O8+��NpKq������t��n�h��i��˳|��x 7��t�����$��Tf���Ъ�M
mv�Mh~֚���6��q�9��4���:�&}�k�I\��';7�_��8_ӟ���F������i�iѠ��)��->�V�T���R{p΃���x"�+�_
�W��A^0��3jl��W�u�t�8H�
����Xs!|�����+��U+�T����NQ�����m��S-���\\uS�Gqm��2�m-��m��|||�W.[�A�j-^��es+���"�_0�a�B"7
��T`�0t�:�W�FF���3
�Wp+�W���y|+���E��`���t@�%N�
���u?�P\��O�����Pi�
�������pppppppppi�888. OPp\}?�AO���T�z�-���H�g��Wt� ��+�^�� z�H`�`��$�J`
K�Q8&0*�}�[`W`W�W��a�_@W�W`V����1�S�P���)�O�����!����^����9F�| ���&"��E�M��֙�:e��T���f���^���T�t�G����{G�y#�>���<����zG�}&�t���V���f���4���-�����mp�\���qF���d,��-��n�jg9����.��p�f/�� ��1�IM�9B��:l�� E4�50 TӔ���t� G��ɇ ��I=I}(�(�G�T�r� $���$�$ ��ę����I�V�|�ih)rL(����l֌�����+K�,K$V H�A,׈k�*�D,�����a9sr�� �*�U��1Uk�eb�4V���T�rP[Q���|�œ�H#���J��yS�����I�(xb��ʯ)t���2q��`�R� �T�)�B�C%cq(^�<NV���''^�8><��yS��ʞ�; �N˧$N)��a������0�,���&5q�C@��KKj��d���P،X�2�H���h�2CM�����������������������������������M��h��%!���+/Mf٣PM�n� �v���h��QƓL|����=X
>{��(����z���$� �����i�ys��^J)S�S�$�u���:� % ��� Z>��k4f��Ff��;8�3n����,�[%�y�SD&ɭ܅�g��������B��!I�cyc�)����7PX����*T�R�C��X)n���C �'T�hk�����1��03f6��x K`�� K`cL ���`fH�s�``X&�D�#�g��@ � Yd�*ӀU����^ I���f X5�Ӆk=�V � �6`��� h®h*aR��#P��'ЉB&"P��v!Ї��"b%��
8�����aS
�ph´�`كn � X!�+P4�׃V 2�0jj��K6[�V�Q�2�,��` �����{�0M�&�9�u��2�ʐ�@bP'�� 1( �@&��.@d� �)Ӻ���o��}?�A�Pp\A���������pppT�Po���O���O�T���%8\'� ��˘���g�V`Z�Z���/X �a�1�� 8�Ԙ��~05� \ \ x�6��� X'�N �� �����j�ט��m�5�WWZ�>��� 4�J4]� �@di� )�*� �(�9�3d\��p�!؉a�vm0�e�˜l2ܺ�l�.�k�� a�QeҺSI�M(�p9ApF�Q������]�Ye��R�~�.˲�.�݆�ae��a�� =j"P�@mTq�������p6[�l�x��l ��l���@=5q��@��h��v`�f�` �T�����(S�`�K��ʃ��R�`,� J�U�� �I�H&��)���<���H�H%)
w�"��A%ĠzJ��xK�`<-��z]e`�+��%��(XF����
"ɯ���L�e��_��`�e`U�e�Y�(��^� '�%0��t�\�tK��\�pu��}��@7(j����������_e���OXO6| ��|����p �9ej�P�M�V��,U�Z�V�M'X�N�>�j�B���ǩ����_�[.Ke�l��Φ�|�Ϛ�v�!���+[�E�6�Z�V4ڭkl��جg�Vʙ�gL��7e�����_�����%�_����������������d��C8��6�I�����-��&8A�.��K+M-&�1&� ��7P� ʎ�NM�77�fް񀖍<`%cQ`$�B5q��l@"�]`"5.�2��CF�0���e�S���i`ꔩ$(��f"��b#:f��@��f��1��m&�EkmB{m�����s�A���va��pAr�����' ��T����f�'��!=F�'��"�P"��ECU��XȬR�OL 7�6�6 Ɂ�`a��<�ɠN�����*00l��n����A���v�@�r�6́q ������-l G4�Q`"��8P7�6�� C��@Ӆl0��:
xR�l(�F†🈸��x������'�C
4q
XS�\0��N 6|& �7�8X8`��-4RH&��i���m�7j����.h ��p��B��:�� �^��7`aP'( ���`N� ��`c��� NH �@a� �'u�� � �
�Oo�o�{��߸888888888.
���������~���������8. � � ��<]` o� 遚��p
VN`&t�Иi�X���/�E�;�[�sR5����p�6��:L��<Fŀy�s��=���@� ��@h�o��@�x G�Ӑg2�G1�0_���,:Z@hH �T�9R�
��'�!�!b�aL6‹v[���[��l��ȷ-�t��u�п.˲��e�-�t������]B��L2�-�̶�i�[��n[��݅�� ڈX��x��
� �x��+C����>++�X n�C`���K*��^�b�z���^�O'�c�HB��Z��W H��i �-!)�Ű ��ҒhH&���SOҀ���b�=h��š1�0��(��A�@G!���%@���\���0аC^L6LR�( B�p"��/x`�*��r�tV1V���X6+Հ������k��-u;�*��4���w1��Ѹ[f�̘� ��� ��"�h�9�0��"�G '�@�� % �����9�@� �$p��l ���N�9\i��:�% S��u;��@���y9����~�_[�`'��.�ۻm8�$F�4���{X�bk
F���$4#5Ijx�)�G�Kj~�-�ݪKS֩MK�����_���uK����×� a�������}�}��>��������ww�T�J�����*�}�,��ờ��S��p�)�S�`,�읓�vN�_cT�U=�Wv����r�s����8g9Ϗ�����i�-�J��QԪNJ��u>��ϭ�w�e?���8��8�i'%*vR��K�����J ���w�Ww�q��"�� �||�:�����=����3��<����s�����2�ʱ�Z6��h���6�h֋H�5��.�H��H֏H�F�jE�j*8��H�Ӊ�g4oFٶm�پo���P�l�&�'�k��C7�|�7���6ͳ{9���GQM *F�h��h֍4{F�{E�kE�i��[F�jF��G�mFѨ��FH?���g����y�g����ugy����R�Y����vW���+�,�,�:�[2�-��X�c _"�_e�v]E�]e�]�b�.��c a�(_�Ȯ��f�"̳,��u�^�]����],�u�%�V�3W�%��` cW�%���ygy�uG4qg����k"vK�*����"�s5��:γ����6ͳ\֊C(e ��sl�7���s��:�]%ȑD����d���Y�پoG��՝gy�H���(e
'dܛD̙��L�"<��B� ��c"�J��e ���u^%f�i2m��mf�O�6�$id�� :��C(d�%<Etz��2 �V_2<�34�y3&d�&���e �'�(�-�FZ<a����zYe���,�������Uv���d���5On����U#g9�p��QE�Oo&d�ǒȩn��)0n��]D�l�� QtQ�5# hԐ-$<S�O!�����QZ�h�0�f0�x��� l�j]� ��x�/p�n��Ye�"��i%t+I�f񳻦�ۦ�Ӧ��7��o>3X��-���tדH���1���DH��}~�I#ԚI%iC��QE�W��bt@� 8�E''��~� 8~���5!����2z��Р�nҪ����������k�„NB B�C(��. ��v��=�~Қ�6��]�ɴ� Z[@��ת�����������K(��,B�����������G�w��\sŮX����,7u�v冫s U�oB�7�^����y���V�!^\��\�~t*��n���冮:�<7w���W��ع|�sv!B'�:�����*�����v��ۘ�Չ��'s�R��zm���9̇9̾��ꨇR��J�}�߂�K~�땉�4(���xΣ�Y�ȼ��r��nL��ўK����{g��}�g���g�w�gѠg�?��>��Q�Vh�.��Z6��hԋ���.Uq ����{Gy��<oF�q3�:���;���9�3E����{S|��U��#BLhq��Vw��Y�uGVq#k7��O(�=��;�&�V4]E�tkFѴm�t]*ȣ#�g�G�@Ϝ<���>Ϩ�>ϳ��=���A!�&E��]��kmm��et��Qe���f�մ�[���uֺ�Ye0�������_��~/���� Z�]K�n�[��kmtE�fW�R�]Ev�]����Y������j��z�,�����_�h� B#j'�6D̗���%d��Fy�G��cF���%�P�h��2~P�?(e ��-�D�#fa�َG��g�l���L�d���fO�k5�1�;$�&�3|�<��S)I
�mA� ?���>�dwGy�uGY�Ϥ�RʖT�����S�yR��T��!8}3�gVw��v{3�����@�mA�+)L��$����`�Z�-˂^#�����E,fX"r�{���`Y+W1X� jÕq,+ j<���ה8�� ��n�t�ၺcuM��B�b[��I��|�� �!MQ["����U�2�IYH�S����RX1Vj�Ձ��B �0���F�rKR˂�pB� B�pC�צ�����lkCŁ�[>�����ۼ���h���!�&��n��-�*��Ī�,�(�+KAJ��Ԗ�i�r��$�� �C�RYPCr�b)E$����9bppPYp�E�#P�@8�]��� �(zo(x�P��N�:��C'hd�ENP<�9�8���oN(��&��p�l,��-!Y7f�-�:4Hh�D����%���SD��5Jk��V��������������ޤ��y�]8����~�����z��,g9��Ҿ>�3� U��gw`��SW0X���ʀ�}�w`����P!u*����v ��u8��9�8� �I��}��q��� ��V�;~㰆�v��7�wa8��T�[;�%;�����nnH!��ۻk��m9M��$j��a8����:����� �FH�,�fY1��s��>���GY՝gy�g�}�g���,��s��?��2�ʲ(�}#��<��uGvwGy�uG/f�m�Y�g6u��9�r4��f�y���Q�����2Z>����9�s����6�l�ͳ�N��;���g��y�L�VeYd~��{���yG�=ϳ���\;γ�:�&{�Y�}�>L|�2��cdz3����f�[ku��+����,�5ά���n�[����l�ҽ^��kl��l��)m,�ҽ^���n�[ku��n�YK�,�2̯+����[����f�)W��xZW��` be?�˅ �$Q�Y*�,��y.ɔM��O���$N�nL�]Q��8I�,�FS%�m���L�G�,�f��Q����dܝe �(�D�&��%�/4�J%Q�Y��vL�}�Y͜�oF�mF�C(Q�g��� g��}���{�Q�uG4sG7�dO��(�3�УBp��W
P�}��8�͜�՝g�{���}�g��h6~�˅ 5���ٽ��v9T�Pm\��4�Qpi-��7�ڋƂ����� (�pY�-�`�^�x��#�6������x~�!�4�t�l:oMG L&ZX�2�Ĕ��F�-"�(�ʢ�QAD0�U��i�8����<J���^�;]
���V*�.XL���v(���sE��m %��q{R���Z6[KG cP:��?�=~�τ{ ���:oL���b=c�&<�8K�G �9J�h��7�'D (�#b���bBZi �Cp�F�;QjBr{P�Z��F�=N���������td�:�'.r�r�re:g)�s�ù��3���C(n��<�n1op���j�����'4���:f�� Zm:������������,��������������������NHk]j:�Y ��u2�@��y�:ܱ��z����x۫.�]���t:���y���]�����m�Ϙ����\x��ŗ$��*pV��i(\�*�1���gS�������v��N�T��f�n�T��R��r��ʋ�c��C�]e�W���Ƒ��:���Ɯ��= B��$�̲=d|�1�3F�gY͝gY�F{���<��=����l�<����w������9�s�:�s��s\�5ͨ�':E�u��w�Z�;���<�,��s��g�{�Y��
��;��ElN��6�\�5�s�Ns���s��;����w����,�=��<�l��(�g��x�͝gY�gYæ��f9�G̲5��-�F2�R���Y���ܮ����,�5ά�ku��[K�m-���[���5��[����[����n�Y�����R�[����f�"̳,�򼮖��n�[K0�Z�īK,�,J��2�Q�@�������>�t ������r��HT���@���=��<��<���<��<��=��?�4 ��:�YG(�)e,�H=ϳ��ϩ@�t B�s� �\�E
(d��D��F�L��s���3��G4s�Q�f�>��;'���D�'d����}��ٵ�Y�sgS<�3�=�s�<����'d�'� �ͬ�8�3�2��B2�z�kR�IpzZ��E.2�_B��Z����p"J���%���mT0T=Qc�9�N�y;�e*X��1l6IhNhUKИ��5L;Itsdam����hU�f(%T"�H��������AJ?J=KBK/K(�Z2Z�����`v�VKr+X�v#��z �I ���`ד��%���d�JႀgNWQ�o��N������p�n~�%��Hl��S�����Q�8�cta�19�
�C�P4c�3$��FEH��(,P"'^�-Ij�����L�^�=P���>0y[�U>���T;��ծ@��=%vP��=)P����8��6��Uh��k8Q�d�-طCnɺST�� �,h�̠���� Z$�������������,:��k����������￰#�>��Uu*���ޢ��U����w4�9�9�K��q�u]݁���ۼ�ʕ�UN�SY|��9���T��W;G�����4��g �)\���9Q���5��ǫ����v�w0���qq�Ww`;���ܷeR��xʥ9Le���8��$����`Ag{���\�д-
��Q͕�Y�aFaE��&a�fqc5��u�gy�ugtygy�u#��9ά�γ�8�3���l�⅓$8Dt}�����sC���wg���Yݝ�����6qF�s�y�L�;�R��9��>���$D�ɑ�(��8���8�(�:��9�s��g��yGvuGy�u�Yӧ����a�f"�~afaf9���l�e�E-f�WKmn��Y^Y�e�[�5��Ykuֲ��v�Ku��m���u��f�Y���u��[���f�[%����)m��ep�e�fW����[J�f�K������,��K)e(�2?Ϭ�>�s����u�f��L�g��������ϳ��<���;��;��<���>ϳ������f���쎤mf��u����s��?����:����yg�2���vN��M�GI9F��N��3��F�5�s\�5ɴN��L�e,�d�'d�5�s\�5��u3���s�n�Y�G�'4��d�'d��3k7�{8�����Ң*�QS�Ee,eϖ�"�ؾ��9m0 ű��ɖ �mV��bV.+���Ç�CJ�i��ZSAa��B�S�!�jM"8�ȯH�2�F�� 3���ɭSG ���(r��&�.���E����֎�R����:щ`F�����A�KP��tb��/L-K!\,.�H��Ӎ���GwF���s�p߄\l�h���`���$5$�$3$��#��(M�R bD�(fEn�*1IbEbݑ�-��;f1O��jFJ5!���Z��������=o��������p<� �UC���y;�<�0�:�;��<�p���C�v��}�v�n� a�4�ɐɞ�;g���` b����` b���` b���u���%�������V�>�{�9ܱ���|�o��;�v��x��=�LsR���8�����C�X�sj�i�-���<kS��G�{�y�"����s���rb�oا]
5,7�L5��b?* �: \x�9X�&�)�X����Xp�Åx�݊҉�N���~bW: V��k��y� r���&أs�V��f�B�t.U� ���hV�H��~_D\���F�荗������1�Fk�uGy����o������3p��?|yC�y�q�=ǎ��
Y�s��;��9γ�;���<�3��7�j:��;��;����+���!�=Ǹ�c�� ����N��������7��|����:�]4p�����������/p��r�/����4-
д+(����z�n��k���2�s�5��[���]k���[K-e���u��[K5��f����n�[�������v���m��k)f�"̳+�Ի[Ku��e� bU�%��� b5�����%U�%�^�"R��Qд,�G�}g��w#��9��m�Y���O�6D̝3i�L�=���:Ψ�γ�;�s��F�'H��fO�����mFټ�s��;��{�g��h6�h:��y�w��A�}�vL�GI9�gF20�5�Z"� ��ü��F�2}�r\�,�4�(�2nO��h郤Gx�dZ"�~F� 1������"e��u�ѮmFپq�XK).Uj�
�QP�R�C@�RZ�(,��\�'��>�EtV���>+d�d�� ٨+P�A)���p��!�)ؕX�MAH
A�1r9CTV��P?
g(g hI��QLIM)1D�Է��� )-���Cˢ\.5��ZZ��`B+Ֆ,���<Z"��0��D-��(�^���R�S��ث+z�Ǜ<��|�3���
Ɖ-�CL2j
Z����>�O�m(��b�#TC�P\��M��� f%V)�P��(���+ �����K��r�z�U ����<��k}[�}c���Ƿ�� n>�9���򜝐5Ӕ�J���q�s���� k��Wh�������ɭ��5�87bݣT���Ī��H���4VO�Fg���������_����-W�������w�������ۻ�v��������)�$��y�`��n\S��7�x@~��_]����� /����C'd r��JvMd��2N�Z�u*���_������9� #�5�ǃ�;Ux��F�5���R��qL MbS8� %J�ʤ
;�}`���� $�5s�����f��N�}�0��Mr���cR�u'%9J@�UnW�Q��s�?�(�Aд,��5DL�D<�2��"��y
�q�r-r.D�2 ��2� l�1����c�V;�t;��<�nR�l�:��;���9�l�7�9�S��ʉ4�|f�k��͝�vwGTu��%p�1�<�t;��:��b�D �h�d,�d)rA�"�\�d\��
�yȶ_��Y�%�36G�д-AЭ @��H���ګY����u�k�Yk5��n������Y������uַ[K5��n�Y����[����[k5��]��R�f�Y���k�v�]K5T���,j���������� ��ï���,d��,�@�-@���3���s#��6��kE �D웓$iF��id�%Q��y�g��*�ViF��idɓrvN��kf���3��g9͝��>Ϭ�?��<��:�9�ɱ�FsgTn�6�����Ό�Fe�H�D\�D'H@��Û��c�j๋�.L\��B�5�q�1�q�! Q�Ql��l�fY#3�쓚DM�P�sk'H��"D|n�R7U�+�c�q�"*�#�*��E���[���[eays����+ �q� �4�u;����Kʤ�!i���Q�� V:HH�(Cj%�z%��Zj`����6K���f�.�:�)�<�&�<�R�(JK��λ\
��J,�x����utK�u�e��QZ�pM-X�#�Qp3K��$E� BT�V��HZS
��z� y��V*�.���_k��Է��U������U"��8�CrZ3!�6�Ȍ���7M�������j�RX�j�U�X�\j��/>?o�o���������x��9�2v�2�A�t�A����e|�Q�A�\a�Uy�ömö��:oM��г��ĵ���2�%�����wXX�w_�����1W_���]` a��W_�����c���.S�SO�]��[�Ɋ��&��(�1:7f�X��.�J�J�6UЙ���uE!Iː�(�W�Bܣ���!����s^8��ߍ�Еua�� �9���Sz0��b�!�'! �Յ�߈%"�BB$���")�Y�0c�@Ǿ���DTvS�
j�J;n�[�&��gv7�f�krR��A�Rĝ�4~��h��s�8�3�7���Y���g��Uh�"H���B�s"dL�D�� ���1�1叱�>Ǐ��uc���̚��8��:����h���l�d{2�H���0�5�5�Y�f��qgY�Y�g32P=���uC�7c�}�(y�,��2A��� FC�&D�r!d,���$ȹ � ��<j��g��Q�g6s�Y�w��i�=������Q%6�W���u��]�����Z�n�[K���Yku����)m��kmn�[�������v���u��^��MM'����zOP` b5�%�V�1xY� a�twGTsg9�f�kF�qg4sG���(Q:��:��6��Q+%Y&��NH�#$d��$�*�Y��#&�7'Y;'YB�fo�Y�sg6qF�kf�m���sg6s�fy�(ʈ���!d7���gd�$Q��Ft�D���>�O(qC|k!wl[ż[ż]�w�o�,qc�G����@�1�l���H�E�ы�GS!�L���F� 1�=��.R��)P�X3�UZ�`�ԗ*r�z�gV0T�xv�� u��H�=\ �F*�S�����q���%��4Vb�4fe'���!�!zIE(%���"�$�%���M),t�v�OH:H�$��G�cē�����V�a�X�����k�U� `;.Wf�>\����ea��qT0T�XxX �����'+
*X)qIj��Ac�/&�&Q5�6&��Z�����e4��ZY90��`ȪĚ�����5�U�^bUbNb��|���$F@�)� �=Xr�(���B��O�� [{���c��(pEu;��P�7`���.�S�*���{���9���JbiDMb8��H��5x�)� d����!6Kh�$F%%V"�$FD�H��꾺�������������/������������qM���FqM���9���)�����b��i��4ፌp����l�w��ʝ�R����������읥���2zJ��vJ����vJ��)�QNPD⍌qFu1�F� HD�$ɶ���͌�F�&q���2�-�e xC���g��9�9�.z�jRUNS���}�N��x��,��@ ��+�����9�W���d"I�['��;Ψ�9�s�⍳k8��|ލ�l�����d��A�4A���c�}�����;�x�L{��c�3&�:���3p�">efY"���r<�H�Ed{1p��&d���ўgD��#�d��FY��<��'�q3�&�)X�B=ǒ��w���?��>��� FC�.l��rA��D8I�ͳl���|�6�l��3�9��9��⠤��O���~^߷������OjuV���u�����u-���e���)n�[k�u-�Z�[��R�S��������~���>�����z����j6�k5�C'��rnK�y�J�VI�L�D�&Y7&�3%��rM䌑�3,�$d�����$摒�fM�nL�]��$�+%Y�K�y7&����}�,������ �T@�?��$:��7�w1�-�:ػ1q��Cُ�}C�y��b� �.cJ�g��nƖ.b勖6�P�1�>���d7t\�]�Άv-�L\��oc�uc�{�&E�1���ꅵZ�m]���BҪV3UjFjuC5T�ST�PhP�8J)}X3VQXH��8G�n�{�� �n�k7ل[:f,��E����JHM �Z���06%I$5$RHiJ҃:[�:E#�D�G ���BtP�E�%W�X #^Wļ20�u�X�#ZWk�Qe��ɕ��&�7+N�%կ\e��"TZ��Sj5Ku!��|\A D-$� ԛM D���CT�b�&lFlm�͖�fʘ�Lm�͖�[c���a�2\�j�*Օ�լR��*-�Pp*�N�=�Y>�ټ�ٺ/zo ]� j�c]r���1�c��c�E������������S]���e-��ƍ��خc�\�L���īKL�,J��y��i�#��(��>0��#�bTn�$�Q�����bT��� 3�4�a�� 5�i��Mt%Tn R��T� �.BK����N �M��)�(9�Rrr%r�:�rLw0eNs��a�.*�!�z0b��@�n� � B ��a6�9��1!O0g�@��S�*�� t I5t ��?@��8�[��z���n4�xn[��rn�L�AQ�.�#Z5�B��:��P�k�Q��پqF�mF�������Śf-F.b틶6��8Ʈ 1� X�B�
��$BI�K%d�$�H��J�VgFTeDj/�%(v�ֆ�6ƴ5��&9�7ƴ6��2�,���efVgd��Fr$d��VJ�(�D��*Y��,ص��i�cczb� �.bӂ̅��#4(Bo�Ѯmf�qf��ѵ��
(d�'Q>�O���i=�������=���������O����?o��Z{��j56�W��jiF�������=oo�������������
}>�O���-��E �"vN�nL�fLə.�(��ȑ�H��эdl�/�苑h���6F�3�0��/���d\������f6cd|�d��d���vLə3&Q7&���e ��n 4,P��ح1^BŌ���(f����B�(b~'8�2�m�K�&�[�]�ن��P�GqB�� �d%�k�I�.�flL�݉щ���8�b�c8��cZ�,P�b�
حb�Ż#
\RZ��KU<�^��ct�`�ՌR�z�[*.R�K��+N0NV����R����(s�#0�h�݋p$P��d��Ғk&%�%�g�JRO��G9HN�r�r)�:t���:QMQS���F<F�� ��
^�"��ۖ��;���ڰK��`"5^!�XV �+ �@���V1X�Qr�P-x���X�[�u�H���M�g ���Jj��%�-�#3j��?�CclP؂�UclP؃�612EdՒ+(��3T��ڡz����*��N\�� ��� �Ӯ�`��#uC�۪^��:��NP}NK��N9���S�|ma�g �g��8�1���[]�[R橍��!�ŢCFL�X��P��$F_��_���_���%�_��������࿍�oF�0B�m5�ck�5�15����&�?X��F�7"m)&�oN;M8���nUԨ��C'���܍��^�7q;��v[;���w!q;��8���@�/�~M���"M�7�с ��nB�!����h�h�G��0!q��(��u�8��0"1�>�`E.�;�S�r�#ʺv@C�u�d� ��쟐�?-��w-��;�ޛ���7z�?'�>��N�nMə3%٥�]d��%�3'L��s\�'Q;&d��"�A���[�h�D���Nid��D̓"�r ��C�1Վd6Ƹ���.�ֆ�.P�ckcL[�v1� �kb� ��c\m�f:��8��d!̾2Lə2�y�sH��2ɶI|����3"�G�&2fN��k�湭�L�ti��L�d���tLə7&�ܟD�'� �OpT�O�����Ooo[��?�O[����=���Oon���۶�=���Ooo[�����=��O�����Oon[���
}?Ai�K(e ���u(�F�i��Ml�$fY#�4aDj/�!�!�<�D�D ��,�D ��,��l���C�&_25�Y���>e�3<�D�%f�����dܝ�쟔1�5ŧlV�bB�����cɏ� �d[/Ȗ_fed|�0�25���E�_DL��2&Dș}��|��F� �1���Q}(�"�D8<��CzH[��b�
�lgb݌�I@�����\R()�!�V�8*�Bj�P��� ��P�����MO����%�R ���1��Lo&��� �v{�Lq0&�I )2J����)�%�Pe"�0C$8� �[F:3���Hj� i��-B���Z��c��� (�!��^ �Z%�0���#�BXWL�&�� �����CB��������w=C�s����Cs}���h��11��S!1��X�C�bYlEV�Te1]�ٌ�F�r�QZ�V�K��'�(Oi�A��PI�0p*wuS��ާT���])�Je�L���jg�L|*��UCª-�ʛͪ��UM��SE 6�7fVƘ�e���+����/����Ũ��U�ȅ(�� ����!.)D$�P���!"�G�� 19M�Q���0���S ��&~��]ʜ����M�n�cpGr��CC�����%�7D�f���N�N��U������6цx��,ND��BDR�2�QHeM��!rD3��N*�IN� H����aj� ;�$���xI��%+�I9R 9[�2��.97Bm؜ �M����$97C;�pGr7w]p.��g�Ԏ$m"}��D�&d�4�J%Y*�Y'$��Ήg�ٕ�*1�1�r5r��"&E��
� q�>�܇x��RX�cwE��څ� x�hW�E���Ј���(��f�NtPl+سc<[�ٍ�kB� �c�qC���w��>��=� � !�E�&D�~E��c��4cfVG̬Ό�E�'$䜕���F�iD�&d�&Y>��m3��L�<��}='�u�v�޷����zߧ�����z������ߧ����������������~�������z��ާ���z��>����K<���8�,ڊM�]�Ng��"��>G�0�(�Dl�#e�~_e�_e�_�l�E�}�}��~_��������3#�2�gfy'%d�&�Bͬ��3��<�J4�L҉.�&�,��dH̳*0�|��D�q�=�X��jعCI v-�� ��-ط�t4��cZX���{��B�%�l�f2�,��fK�(�FtI��4�,���N�8r��8���@�B� A�R)`�;RZ�d���7Ԗ�',N �,P\���j����y�]��� �X�8n��^���$$�I� �T�Ā� �j�n�!��:D6ELE9C"�Q@�J)�����#2Fht�������b�aYh�p ��9x�Z��(0^��`����A,����7V��R��(���_V� Zr�w�m�i &�o�Ml��%��D��L��f���+"�$fg������U�KC��M
�څeEʄEL�',N ',PT0R @� ���� �[��M�:�Ц�w�ڊNJ
r���6��n�SgH�hZD� 8e 8JmSɍ�MR�ɪ[S�h�³D���Z$�Fdp������_���%�_������w��HQ�i��B�ݓp=3��&�ۦ�GnɸV�[�Dպ��[�D�"P���Ꭷ;����uʥ+��R���u;�T�[��-}[�z>����}!�O<��>�T��T:���uC�Q3�-���[��e ��†݌K�g
,��8�ag����&р̍��G ܜw ��fr�jU���@� �q[��f⇋]R� �U</uC��x`��]R���oT���.�gtwG4sG�mF�P��:��L�]f�J��E3,�D{1�s
0�l���.D�C�.2>����\�� �XtP�F�8��M��bk�e���Y䜓D����VJ�9&�9�AT+* �&P�p�6�}���(Сb�C;X�c�w���� �C�yȹ~_f4a�Y�c���fY#$Y�J�(�%�2ɶN�~P�l������l�����OI��z޷i��{zߧ��v�ݧ����{{z������ާ����������{{z��޷m��~߷��{z�ݷ��~$�{�K�=�l�>�s�=��=���ϳ���-@��Yӆ�&8J��ʌ2����~E��/�-�\��� ��앓#5��g�{4 @�(������s�<��=���>�h�$Ȏ��a����Y P�89�8↲1�4ř �ib�Ɣ4��\��1q�o�n���o#1r��\Ƙ��� (gB�Ƙ�1��9�8�1�@�B���f�G��2�@;���8�[N��aD�
jP((q@��Jj�'��pҞO�W�����ܪArܰ��DM�B=� �-��!R�K2d�MQ���F}�9#���!(sJ�Sd��bUb#�j�JclD�Rf%3�bR�R%���)U*�'R���`�]X!+�0�������svMK5��`�hB���"�jB=Sd�$��L9t*<&�q�H�n[�`��m���6��15��
#f)�����m�q������M�m�n�U�X����Ԩ��Z�p\
��ԿO���K�����Ӫ�T˥5Қ�M�����j"��Eq*��S B���Kkl���V֛(gLԴ��m5���T������KT�������/�M�-��z�P�!ۏa��6��� �!6�"G$6� >$W24�3 ����>��\���H�nݸ�;"������|z����<xz�� �7�ޛ��������do&�}���Y��B=�͂)��B���� �w!\@Š�r� c����
�/���A*�0����+pn�Ѿ w��B��o{���D�_~#�|Gz� �M��":Q����q�Y�2�O��N�^K�tJ���$Q�хf_DJ"d c�8<��8|m�q��Lg!�+X�B�)<(⍉�&�,8LOh5fdЕ�Y&Fvgftgfn���(�fq�ѝ�ѝfiD��@�H��8H8P��B�
8����+P��i�c�lp�w�,}��ș����3 1�+$Y�gd��d�����d���3{8���g�(�$����q��z�޷m���z޷��{{~��ݧ��������������{{{{{{v��ߧ����z������z�ާ�����` c5�%�^�.�$J)���gy�{���{g���ԁH: !DRʖU��9��Sc6�;i��m6t�c$�#�rCʹR�Z�6��Y������������w�gѡFS�KH��cd|��daE�C�P�P��9���x��s�uc�ucz\(iCL[ź�n���nżi�,\�v1���q��s1܇v;�t9���<��<����_�Y�̨��ю��/+yC��@��ǜN�d ` P*���C� Z���j�/y�q�*��
)��tL��� �4��VED�Ig) p!��#�#��E>Ed�t�"2
i�� =X�1)1*&��,���*���38�$��AZ�T0P
E!ʭ`�p��Aڢ�`r**Շ�{�1z���\��[�/��D\�hr��!ڲ����uK�nA@�S��8b�Pݳpd7b�1�8�v��ڱl,6Ll�դ&��M��nѻY�*`�Br��ӯOiר-R�Li�������`.�lyKŮ�v�P�k�ݝ;A�;Q��Q�7'��S�Ma-��7HK�d�M�0l���&�-j���h�׳HiM �5h��������%���uxX}����}7f�nպ�[B�8c��j�T��&�[6n�8[I�[@� x�G9�&8����;Nw}�;u�T�rU'\
�N*u�De ��d2u���;�� ��)��'u������x��[��-�(Z�6��K@<Z�6�,�lŽ6b�֬��f��x���@Gc�9�9��8�W;˪�r@Gi�JN������8k����m�O����.����9b�Ϯ������+����(��:��N�����Q8���C��<�"� ���}(��hΉ� �)�-P�C<g��'<$Г�6%�� ���;hB���&E��":Cȑ��C���D �$?����A��!�H���DL����c�z�ۆ�KĚq&��Fs�<Z�j�q��r �$Fgd�&d�'��(3)YNhz��[b�;��������DWe�WEy]��u���zݧ�����{zݧ������{v���ߧ��� Q�৩���{{{v�ݷ������z�߷�����z��ww�O�%��^W�k�1�?���
#X��+|*L�������R)��������U�g��AK
T�)aJ��­�h��0t�9�9LSkn��:P7@$ �R��(X��A�1y|�2��+�@�4@��C�d
��Ǵ<ǘ�����c�X�d;!d ����2�"H�ȹ}�/�$���"2B�t?����;�����c�P��>��@�� d>zN ~J���srN@�h$�S�8���������4��� Xݐq�<BCe ��g���A��( �i4)*J`�*>T�x��|���$R��d�c�C(���SCl؆2b�@�iP�N�p��ՆsV�`^Y����A�TkC�- �W�Qr�}\�[Mà`�Y���X����Zb���o��|8���b8�Ŷ�6�2lV��8cA��iQ���y��M�~>5S�c ��>�mթv ���'�(QjT���?��0p*~�P�:���/n��K�����Y5��5S��.0�(��U 6R�l���Cm����C:f���CM���Embg�%�V��xXx~�(��Mf�`����i$�G%�g`W[Kg6��x��6���8����|x'/�N~ �� �T�������ߐ��:����%�K��u���&�@�OPR�����co� m�f�S`��&����Bn9� p��k�Ho!����6ͼ���bt�b���Պ=СUBuJ��S��O�I�p4;�$:�����1��o���p������Dp87�Z�u������ʏ��ǒ4�#H��I$|��qGq��5�;�j/���C��y��p����࣊8�� ǭ���c��2��'�}�,��2$��a�fvK�L�2%ٝf|��"d\�E�Ẹ3̲>cF9"���_�X��8�����ǘ��"Y}��k#�M���3�8�����&��iF��C q�[�������*�u>����N�����oo[��;Ooooo��۴������ڍF�OI�F�Q�����������Oooon۶��OnӴ�=�n������W�D��?��A� X��S
83� ��������;F�A%{� L�%�
[�0K���/`
�]^�/�_��)h� \�$�� '��;8�:P9��@����gt(�� @�� ��N����J�U�a��Œ&G�Lɶh�&f�"D����L���ѶP�o3���R�Vʺ�h��H��H���r��~�ԍ�P��m�ٵ�4�2"[���d�FM�L��a# #цfܕ`��Հ�X�j�9T �å�+*��`v�`z/P�)��S����s+
��\ .
�bXI�<���w���tCv0�[�nE��s��,�H9H$��9�8�� H��T��%BZ
Y1 0�aI4x�QM 'IB�Q�8�`�V%b X��`"V V�������%��X:�"0~�^׃��x�x</�)+|@yS����÷�>��"B�"dMa(˜�!��iG�A�$�$��l� �MA " &�aI4��SMP�TbEbTdi�郔���6�T�t�����O/*|+��X�;>Z�BTX���]��������p�z���u��W��k��\����9��H�4��ݜH��n�D�'M���7=nŸ0[�nU��#��[��n�����������P` aՀ%�������KCw���������(����S�SR�ک=*����U��w:�4���)����)����)9UNUw�WS��w�����9�9������I�6����v �{,�)d�$��?*�����U|�ϝO�/�s�w8�9�02vU'eRvR�˫����uw`��]����s��s�9�mx��1��Q�+(�K)QG(��el�G�L�9�i2|gQ�Z !h:��@�4 ?� @�4 ��-H:�������Te#��� R��h��Z���>}����R��h��YJ΋Ι6%Y:�O�@�t�Q��h��g���h���
�t-�(��{��3t�fy�aN�4Q�J�9G(�+)eB���<��R�M����V��j�Z�`ܺ�_]Ev�a�a�a��ʃ�;�ꃪ��ê�:�� h:��û1���{a��ˋ�WK���u�}U��j�4�Uju:�Q����%�V��xX�t- B� @�(�?���=���F٭'��3萬�hT�HZ������>ϳ��>���ϭhZ�YF����w �(Fkf�����>���?�-@�*BдO����{���y�Q�u���D�3J%8I�>��-������ü�;����:γ��;���Ϭ����(��{ę�4�fO���fu���y�g�{�g��z��Y `�����#���k 5�u�-� K�X��hp,�����/ +����i�ۤ�܅܆�ۏ�8�.�'DE��$�d�8J)�%iE�T�^�IdT�L!&��-�'C hj�6 X �a^C,�ae,/]k��Z���p�b�I-��La6�kr�t��h�lpߧ�Oo_��Qp�b��Qq��7H�SG�8$R@kF��)���H鐦4�:f�GMؘ1q(t��RFR���}�����������/ƠCT�X��D9��"?7�g�|_��mr� ���W@�W@�u`�u`�u`�;�[��Fn�q�����Clј��;壍���������݃}����K�-
�K^h����\��V:���s�b�Պ�,U��Ρ�ܛ���>�L}:��w1��C�]�r\�w�1�ޱV�1S�+����w��\x���7q�cv!n'�_M�Z����|o��1Wsybm��m���:��B���i�8�1�������� ��q.Cn�\��'� ����m�Bo<Q犼x��c{������B�I�'d�&���)�O)�<�E:)�NE9��6ZcFmM3��g�2LD���@� �?�������4 ��k�N��ƈ�g�$cA5
��e(���i
�s�Dt� �d,�D�3ɰ�6AЬ�e��r�!e
����ű"fy�l�FQ[�ā�h��������Yۤ� .�3<�3��fi�l�0�NE9���e;)�<����I6,�d�E(�j5:�U��Z�^V�_B�{�rɰ��,��~‹l9��a� �<�Xy���c,<�TXu ��i���2�,�Y%��E����W��jiV���5�E� cuxZV�6gD�2ɑ�{Gr9���7��l�5��(�"e�2fK�^L�BG�g������{������Å �$K�tLə2��(YB�l�6��|�8�l�g�x᫄ٓ�}����h��ٱ�Q>��Nɹ7&d̗D�%d� efY�G̣%QB#��9�l��s���h�:β���2p��fY�,�+%Q.ə3&�ܝ���f�sg^3�9+�`�X԰@,Z���'. +�r�kՁyhv�9V1V �C�����X/ Ŗ�A^R������-}���;T����3�4ve��I�"��B�~� ��YQ0���R�% %�Y�Z����`���SB���,�V�ND�hP`̀��E�@��Z"�`����p\\.T�d� +����A�Bqkš<���*RT0P u Ӳ�rp�l��Kt���5Jj��"P,��� � II )%V!y4��UM(���)��@�K?HR Qb�n���C}[�}c�F���o����$+��kԪ�l�}[�<��'X�P*x ��2~@R8��I�I8g�� ����m�q�&ζMl�ɭ�n����d�4SPدf��(�Mo&ɍ�6ɭ��5����XYM�}` c��%�_���+�y��P�!o)y��� d�,�w�`���?tUJ���[N.:rA'6}XAw���-�ܷ(��';��Z�������� `��h`�)��8�������0+|7ռ��wb�� �`�wi�9� 8�?t
��N���U��-d���-{�qL9�7-������ ��jTE9Mz�cQ�Sx�WV�a�`�G�qFL�nMə.�vL�v����R��QЩ
2��$�"D����Gp���2�=�Q�D�N�;t����{1�1�F2���l���hV�H6����hYJ��'@e��a�Y�G�dH��gD�2�,�'6?lR�- B�@�iШ�D�4e3)H�3�ٍ���"t'q�Ox��+#ѕ��cDx̲Ld��2M��)Z�VQ�9J�YK@x��e��if��L�](�ڍE)�Z�U�����/��,u~YE�e/��˜QnX�]Z�ak�هSLe �E�_���YEvYn��Z�_e�Y�Z��"�оk^WJ�4���-F��` c��%�^�6H��G�ƌ25�k �m�湭(���vM�/%��4�.(��1�s(���r�5�'Lsƌ�$Y&3L�d���fN��?(Y��湶o��f��fG̬�fy*Ȏ(���{C�Q��rnM�fK�tJ�4J�NH�1����"d'H�8� ���$>Ct�2B����aF9��D�9*�6J�vKə6ɹ��G��>�d+!�L�a�|+É\���xq,��X^�x��r�Ԭ��՗�qX�R�!�jr��X�X�WI�<� N%'���f$3�0��f#��`̍4�A))��)�4�K ��Y /H#�E�U#�i#B��P�U� HC�@�/l\$���[��-�Y����!�֐WZ��XAX��AAYXf+�h���e:�!D� *&��5 i�gk�ZHiI� 6��L3Lb^�4�2m&&�X�%�qa!:@qHu$7"��Ѧ����� �a�0~ӈ
Z*
�P����)� =�"?8G��'�����!��"9�(9r
��I��q��q�"3n"6����BmM���Cm 0��؈ T25��Sf ��S|,����K<�$$;N��I��p5:��A��*��I���Ìް���nL5N�k��)�i�᧔�,�0�>�T���� ��q�hQ�ЩWB��-��T0D#�Q ��T�b]�a�S �zO������ n�x5<�A��g)�s����a�� 6�av9F�R I\�ܣ����R:�JN�.�97��wa��B]\�l�A�]����-¢� � i�0�q�^��gFq�(���L����4�Y�'� � �Z��YFgJL�0p���cF6G�1�r#�Y�Q�Q���y��_3&���3Bt�@���?�(��d���|���F�l�1�+"QFH�>G̨���a�D�g��h��FG�L����2<�s0� 0�,����9��ƌl�fTa�GL�2B� B�A��M^%f��K�^I�Y�i�Y/Q���S��k"-��.� ��W�Qe���a��[L-����� �Y"ɰ�l5���˜Qm���_��YE�W��a"���m,uV�S���Q�%�U�` g��4pƌl�#dj#Q~D�&G��d��D�&�7&Q.D�4�7 eD��Dk#fF�,��#Q���5̑�Y"��4�U��L�nM�m����h��"Y~F�5��|��#$ٖFt�C�}C�P��T9�4Ane+$�'3�H���j/��vD�c�{C�w!������� L����e�#Y�G���,�$��%fN_��X�ǖ@� �rC�-� /��yH�B,����`�X������q`����jX1T)(
i�U���z��B��Ru�; 7�f��cI�Jbt�,�DFdve6H��)d4�����I�9A '�E�c�`����U%���OD"�����\��(�H�E`��E-t�F.7���x���`NZKFJ�*��%��\Z�CTV�I�(-}C�o�I�X���� @}&��&4Cf�Ȥ�HM(���I>I%#�(�I��Đ��a�1�1b1�8��$
�>2}d�/�T�*��T� ��T����rr����|<}k��[ů(t��8�O��ǥ��ӎ6�����66Ѐ:��(бk&ɍ�-��n�)��d��٢�7fUb "�#6� ��ɍ�[&�����ê������������������?��]u����ғ�Jnu7p�.������fq�9�S�J��=w9�V��R�R�9R����� ���S���q���qϻ�ۻ����s��2u�^z@j8��;*Q;��}�u/����(� )�� NNK�`4�]�9��r�r@4�'�����;�x�:��8���@qG;�ҿ���FH�LF�iD�4�VI�Ng���*�Y:g{4!DRФt����0�,��f��#L�FF��3��� �:�#�:p�ᣤ{$dw ��#f�c�8_��5�f9"d*!Q>c��9�a���/���2=DP��3�@�Q�dr����#Y��̍"��F�d|Œ3 �����Z�3=���J�Vi��y'$�+4�T�9+%Y�id�M��6�S����_L(_6���al-|���.��`��|������[k�}���[L5��~�_%��h����_&—�]0n/� �l�<���u4������� e�}�U�%����/4�(��/�苑r�����.(o��"�g/4���e��ʈ�Dj/ș��D��5��G̬�fY"��i2^f����|qc���A��d;"�\�3�#�VH�G��aD7ǔ;��:�T8��.�-P�৊X͸��,��,�y�Y ��C�{��9�8�c�{��A�B�vCȳ1��"<:|f���x��b�q�8�Վ��c��d,��1$�K�K �l-�x�Y��º, k�x��� �tV&��h��5�5�U�Z�����N�������Gm��"�,ێ�D�t���Y-ZH���P���@hHу�&�����*�"����sEm.H^"�0尼2���# �"�^��/ 5�IdK��ѕ�ŌW�¨v�����^����9�q��O��CF�ُ�!�jt�A-��52IBbM��h���- 6$ZHlIuKF�LG�ԉ��|�
�:N�`��%AA\�jT@ ��q F�DO8|�D}ׄm� ����ˡ���D�F"��!�� �P����'��a���M6� I5ڴdd�Dd�Xt���kkl��������k����,r�������ua��a�pP`s�^�H%�D�BnL{��E@ͨ�-\��&�b��,nF*X\���x`�a�Q�����0�΁�7,"�ك.8�$%�^�X^�� 3� �ᣞ$��UՆy�ani�,�)l��2iL��݌���{(� �5�K��,��%�v ���e���}��Yȝ ;�;�w�ް^���{8�%&��F�(�Jm�&*t]��Ό��2��2VJ�Mh�3��g*�2$��Ό��+&Y���(�|᫤�(��gp��SB��J%�gDwL3 �d|ƈ���[/���Dl���r�#dk0�s"Q ���_�afF��_���c#�6G��a�dx���Bg�!Z�s��\&8L�t�b>�(���&Q+$�gfvI�9&d�3p�$fy�I�M�dH�<��l��f���R�N�6[k������-�YK��a2��E���~�-�[��)�0���Yn[���a�����e�l˶,��e��)|"����m0�N)�j-E� cU�%�W���xX�� c$��%d�ΈΑr%��DG�<ǘ��� qw1r�n�ϊx��"F9�rC�B�vCȹ���'G�.�x��g�b�.�\kc�ǘ��"���26a��̬�$f�/&�7'�)�(�C����V8x\��B�
��NpMx5�&B)�� d
���9��(qc� Y�)�&<�a��T��b͋�B:�� �q�d "̍��6F��}�)KC���E�~�
,��U�tX �I`���� �X|�jå���b����P-U0�8'��I�;@���p�Ũ,٤��44�V&����%����$�Ā$���8
��E5E�cTp��(�
� *��PX�X�+X� Ł89�`Ö��Z
U�A����$��^�`#��X .�����a8�)h�`,� �MAb�Y�V��@�,gpͳpZ�Lj�Tf �Ȩ��0���4��$��T�#��v�
����J<J����1�8��hУ�#0-��ʁ�<X��=\�e�T�V�Ӗ'�9b�G�+O7վ.�wyK���w&��6NS�r@��s�q��o�h�ag (A�5����v� \j���R��d��IH ���DH�`l�������:�ū��K��������U*����k/�Q�k#�0=#�5s����xQ�� ;*Tʥ <n��ǻ��;'�N9��>㓲���}��r�2v@���M��S�TUT
{���0_�[�s9�u����N;4���ł��ʜ����܁E)I2�@|s������QN9��s�u���J㻰Sn�6N�u)%��Һ��X�ۼ�5��c�ȱ�ƈ�H�Ng��#$Q�G��3�9&��*2�3�gD�3��fTed�d�1�����0p�1�3 �1�3�L��r-��}�
ș/��ڔ2~Ləz�����L�������D\��24F4c�f�a�FG�����dH�,�3*2�,��I�;$Q�H��efy&�9�f�2�H���$�{$fvI�n�o�Zƫ��e�]�y}k�̈́�vn]l$��[ �-�ܶ�u�_K���~��̷-�ܶ�v
_l&]E� �a"�~Y���e�Y����<���iW�%��` fc�w
f����DJ!�G�=�ݎ�wc��Zh\��ck�4�΅��S��A��:bt��8⍊s�Y���&7�mB� �lkc|sc��>�D<�e�F� ����Ã\�F����h:�Gr:�6ͳl�5ɲ&d�%��h�2t�0�م��"��C�Y��#Y��� �2��$٤d��d̛3\�6ͳl�3��<Ϭ�:p�D�,/(`�#@Z �����Z ��KQe���, ��k,Ն���5,Ն���U\� ����.A�.!��f�h�Rh���HcJ��ȗ���t���D ��E �D �X
�Qq,����i�SE66�8+�a�bՁ�apC���2�. �- ����|b��� �������r�V�uv�3(�<�3������A�ډ-��jb�`jM�CZm����$4#�8iH��ԓIBCȡq�0��� G��J �,�Ai��4\1+���d%bד�)��y�Z�Li�W�xEz�^��G%B �U�B�b ����b$W�� B"�q���Ft�Ci&� M�����)䑊e%��h��5��������,R���*�K��������eK �xo���7r��9�3��9�Å�&��d����bGT#�a��as�.wa���$]�k��%�L��8s�:�
2� ��&���vĻvě�5��S�{Ś�>ŋrʼn�b�u��X�n�%G�#Oa��� Vf兾��uav�������E5pJs��(�8wB��pX��X�P��C=�����؝}�ѫ�UB��� ��-�9nC��2Fe�Q�s)��#$Y�G�=�&gD��F20�31�hƈ�~F�fY��l�#dl�#dW�VCșȖ@pr谜8:)��Rə2ɖM��3%��+%dE������s2%(���a#f#e��ё��#ȍ"���ٍ��6a�f3$Y#3�D��G�,�D�Ό�c���̲F`� ���I x�b��r##f�v���5:�D�IT�Id�L��[ }��vZ���a��k����)��a��l6 �������l2�~[v�aK��‹)t�Id�IT�MN��OoV�eXX�� f'Y��q���(f�6���Q�gy�8o�Q���>��&Q3&f�i�Q&�Y+$٥�f�Lə2��'ٮk�ٵ���Y�y����Hڍl��l�6���8�h��re2^J�EY!�Td�ͨ֍h���l�y*D�3�FH�5��"%��A� l�d9�(�25�����$d���6J�/&̟�3[5�k&�Jp�2E�,�d�%f����U%�De%�A"�:+���`�� �X�.�E-YpQ-p\"�����`��X7+����瓸2q;�]�@-�b� �ca�d��ƈIe�G�C��Ԡ��v�6F$��
�e1�PԪES�21�9zba 0��#�(�"&���Ճ���`����rZ2Z +��/FZ!D9ptp��t�A��A,�p~V���U�…�������V� ���.&� �����NSJ)�dғ����@J7E&F5E����s�r*!�����IJ*�٢�'�Dd�ph�p���`6���j˔� �:��H���H�KS���|�T���o1yK���I�O'$t��Y�4��4ؙB�0��c ��-Q�~��A�31e�3Cv��B�RQ!0JJBK$5Ik��]���XX�` c��%�]�������]�Wv�wm�v��m��^{n9���V��h��6���s⻶�;��u�*�OU�r���J�mJ�ܠ��,9�~�DJ������"�owhWv���$g�q������p�9�2�qD�(�gCs�w9�s�[uNT�EU=r�q;��0�)M= s��;娧$.S����UV�U�Y�u���� r�Z��4ź�Zũ��[�&G����ƌr<fY���aDl�#�{/���"�}�dg��/��Et|��H��� �a���O�>���CB^M�m�rfL�#�N�>��;'Q:��K�B�u`�B} �p��Bl�(F��ёb#Q~Eȹ ���_��~G�>a�� #Q�̲;�9��菑�"Hz����!k�[��4Ū�gc�D�'�sgA���SJmE��:��������
Qj�nW5��}��ܷ-� a��n[��S �0�h�-�R�_����WJ* OI�7�7���R�SJm�~����kD�'�읓rfK�I�Ng�䌑d�4�\�(e �D���2�ti��VJ�9'%d���d�&Q:2~P��P�%���TH�Fg�䜕�L�d̛dܟf�o�L��fe��9����DL�D ��}C�́d##�H�eDz0x�"H����@�Y
�Y"L�0��fVH�FGp��d
�{c��� d+"dK"�}���d�%̛�ʣT)*��Q\��K�Z��a`�^Qh1 ��b�YhDƴ�bZ��\VĜ.�n��f�M�7B�g[���&[S`�e@3�GBC���(.J��hR�L ؤ��(���-�XlL�PjLu(0��I I0%��- �b\�F�6�hh\�hYZ\� ���c\�c����_
�f0��J/l�&`����^�(nB��!v�.�u0%�Kj[�a��H1Q���(XF�`����ZJk��!���lE.���\d���ְ]Yb�+Wp-SjW)ԮSjת�0z�� �@!?n2�UR됇1
w1w1
:l�u���͘7���l�1�K�l���j��ibkd� N%��i��\k�%�V��xX���{�u݆���|�a�nXk��3MɈ���$�.v%\V%��o��wbUՉ]ᯬI�K␕NБʃ%t#����]N�mG �WA��A�� ߉��s��㠗�a/L&n���0�7&��DG������w�Aaf�����J��J� U* =a)M� =���o�D9��D�Y�t��3UA/W ���V� �����FefY�6K�6�� ��x�Ƙ�P�B�,�4�� v-b� �.F7�6;��>���;�T8��.��⛢�(��)��(<'b�b��xᑛR^J�4c"��Huc�s�q�&<����c D_3�l���4��B�(Р����x��X�����]����V;�� P�����47��r�Zź�҅��g1��1�3��.2/hM�\�22���Y�H�F���F��1*�y������{Oi�?���)=�����U5z�[���+�ַYJ�RS���}>���. ���zOI� ~���V��1(Ӻ�` o�Y�aF���#�"�VJ��E�F��~_DJ!�,�d���A����d[/� 0��"��T@� ��@�9�Y"Y}��l���H�<����Dz0��F�,���H����iCLgC9��5�u1�d}C���.cLg!c�^�lU�;�*X�b�Ɠlo��v���+ЩB��:q[�WŌg1�.b�5�F>�?pu!����rط��5��`����H�H *���+U� V� �̬:,�0�Z��?^px����h%aʆ�,tG�������ɣ�R��� �ba�HDc�zH=E� � 1��Z
Y�bXă���h `w����J?L�(�):Q�X2������h�Br�e�`š��ŀD�D�%�p0-�c����`!0��@Z��_4��ۧT��p� 8@�B��C2�h����~�#Œ��2:AM$�� iU�E�U�%F-X���U����TkZ.ⱊ�jåa���DJKT� T�Qr����7�>!>��Y���jOPOq�t���>qF"��L��MS:�1�ɲk}�;0��+2Ef4Fd�2�hNbTMb�RIS
)j
L�����/K���TN)�8� M�7� ���m��(g ݜ3�6��8l�r����v����������u��UQӒ�N�rv���e��(d���h��i�S'd�N�*)چ��9��5���\3Oh���m�������o8�M���u�D� Q��;�www��ꫬW*�N��ǝ��y���PH̟�i����oOPW u���!�>�I:��l���G��c�f9�F�5c�b����g�I�m���W�ZŚ(U�V�h��1^�j�)LW�[1V��P��b�*a��М1ؘ�\f;���x�C�c���c���1Վ�� hs1�(qc�o�hqC�sC�����.)�: C�"�*b�
�E��B�+b��R�+X�b�,X���b��,ص�� φ� 2 �f��� �dj0�s �#�#�VH�F�5:�E)�~��ߴ��OI�=�PS������O��888)��������� ���Oi��z�ߛ��i�='��z~��ߨ"Sj-N�N��1XZe� b���0�
#QD<��1�=��9��1�6�Ŏ�=ǘ�C���c�1� �m���6��8��9��c���c�{��8�� ��8�͏1���B�ye��,�̨u�qvB� �XtU�:�p�Bf%H5Pi�E $�L�N�6Ä��7�o�u�� �hJ�' xkĜJ��a��Ɇ� �o�7hN�1�&BE� 8j�*bf,8�|�;qb!kL]ƶ6�aUj��P���ET�GW��R�©�A �j�^�-R2�+AZ��UD��&��>C�xzz�aM�f�0@جK:T��P�H*�Y&��j"hD&5JԪLb[�!�IA�$��H�HB���i4� $�A�W2�a�BX��,rɯ�ɭ��+a\k�5m�����`�`*�*+Ac���a5���MV:�Ԃ��]���M�^���e$�U%:�
\i��%�L�$fA �1�ac���i��6؈�i�ccl�b�lְW�.V�Z�z����r�IZ�T�K�U�� _��pTpS��W.J�䪪�N��u5q�Yܭ��+km���el���q2+eL�3٬M�i�j�-X$�������������w0���ٹ[�� X܌$bv fD�a�h����@ĊS ��|��7,�v;��� Z�5G@ŗAbU@Ĕ�5ːCJ7!ɸ �!p$\����n�\��� ���0�@œS��q;.���/����m��
��n
f���7[�� �w`����ݘ<�R��R������QH�)��0=�o(~)�ȞC��[�^�ۼ g� �wv�N���`I�hyC�{d ���e�F� Œ(�E�F����d%"-Hax0av����$Q�� �La1A1���_ |%_ ,$�-H.� �F��x�����c� �s�q� �4��!VBrp�!&A��E�� �%�Nj*�Y��b��,s�q�f:�T9�v;�x�� ��갵0����U�K�/���c � �.�v�i��0���� a�Kf,4!3#Q~_���#Y��Y�F��"Q
�c�yc�S%V��N�ߨ-�Oi� ='���7�=�Pi� �z���)��vݧ�� ��ާ�� =��i������� =���
~���T�R�S<-�yC�X�Dz����@�<���s!���.йB܅�(V�k1J�,Q�C�?8�B}�O��P��J�LV�[,Y�nb勶5���3��ǖ@�?��h{1�<ǔ<�ӆ�I�l�%�&0��1BË��0�A��� �A��nA��� XZ���F�"�"�+|4�C`ɰ����Da0����G�-XZ�bao s �l4L5�,L�vc(N�mpIpI�K�&�Fp�,�J�U�T/V"����9V���aʱXr� �B�AACQAj����a@����>:�>���n��1���5(4Cb�M�- 1-0�,v�z� $�v�t�� ���p� �$��t�����NJ*���\�
Ea��Ţh8%�0�R�t`!�+,�vX ���+���Z2Z���@/� �A8�<��W�\Q�n��5��Rڠ3FfLf��ي,��J J���J�IɥF �P؜1Db����4f`�Z�
�F+ �ՃB��X7,�B��6��P����pP�@��!�dվ �(q[�UӒ���6G��)���6&p��v-��S<�1��4v`����$VT���aE4 �F&��l�SJId�Šg��X[e���F�4���D�$���.&�#��1|M"J��@1�i
\M"YH���0ѷ�Y�ӎ��� n�\�;PI��q�*u;��'qs����J�N�#��`�w \N�[��*��nA �ZB�ٓ`��8J���lۢ��6��&�����(���Tpƙp��p�Y�7�w ��^�N��e)AN��=K$��I;��N� �\�G�w �Q �A!��@�K宧ty���9�7�6Ƹ�B�.�҆��1�-зb���9�ݏ��샏]$)P�B��V,�6�}c����� �kBÂ���\��I��葆{ 6�,2ؑa��#�f�͆{ h�=l3X�B<�>$Pe�"�<A��= i�I�' s�3f,F5����w���>���˂�
T(إb��؇�q����sCjd-зcL[��X�b�.��c�����w�5�F�׷���~ppT����~ߴ��?��OoS����pS���=op[���A��ߧ���O4��po��~��ġ�����9�ކ�6�v��3�j��W�[(S�JB} �'؟b��8��T(��
8�B�6p�A�Îh8ءb��8�b�)X��8�B} �'؟b��;,V�{qj�v4�v��6���f<�!���^���[�/�_��a��x��,4X��8k��0��1V1j1r��kc[�|o��.ػ�hkb�.��c|o��� h\���\d��$�N(H�"�wC ��-�S �#!��#Ґ�U%@�UJ����@���@�U%AaV�,*�@�SjB@XQ8���u�Ay'0�����y5�Zh v.����`�$�AR�H ��Fy�kI:;��K��p%�2F��X ���Adы@Y(V�Ep-�rvKKfX��Z
rؘ�WL-�� K�� ����ٮ�\*�n�%`�Qp�<��\t��^\q�(� ���Y4 6`�gL��+d�A��lA clA��6@�elB%��c;f�����++[�j�Z�z��u��jW*���5 �R�8AO�yS���.����\�O���jgQ���Y�skl���c)4X�f���.e�X��*c�Vƙ�l��64��������؜�"ar���A� ��
!�.Bй.����X�P�D�J W�Q��u0W]`���]�
��ҹ�V�>97A v����-���z'�����Ѻ '�x�D�C;��n�k�� ȣ� b� ��� � �������R�0�-���w�����)L��+gv
���[w`��mN�[U W���SpNr��� w�r�/��p��@�n��f�B=N� �8 �puC�c�q��� q�5�v��(iB� ��3ŬYŌW�lW�[qS1F�+�BB� ��蛇 d�2A��^�5�kpI�' V�&,H�A� �g�y)�K mEF�xG�c�}1�¢p֜2Pb��0φl2�<Ċ $H3��IĚ q�� v��bd�v&�8P��� ��b��,R�F�LT�\V�{�_1g��3�x�cK,\�vƶ5Ƹ������sC�Q����Oo���������P\�O�O�o��~��888888)�~������O�PpS��?I��Apo����֝�{Q�%���8����kB�-�ZŜX�[1NB�
p�Aƒ��L��6Pl��B^%bV%bU�x��T%bV%b^,6Pl�30݇ l8⅊6)�T�lX�g�nb�5����qc�u�,{c� Y��HsCj��B� 8����G(8�&ᶃm�x�BNd1"��[ �h2Б1"�Ff$�U�xm��bnb,Q�<V���8�cY�lmc�L�2(}C�P(-P�AZ�9�(V��@+�(TZ���
��`����RR�H��S��d9�V�ʀq��\S�
KR�h�@l5Gd��` ct�ģ�����#�@g��R��`5���hIeF 8
��&H��y4Gh��)�$듗'^���A���` ea�����p ������r@; �!`��\��J�{ �l�0��r�(���'i��i�f�[��j�իDƀ=Y���$f@?#2f��H��2Gf34�lY��4���%�+V)RZ�`�9U�V�C��).R1P�C�W�ԗ)�:��վ��]V�n;!���I� g�qL9�Q� C��፻��d��3Ef1h��&���h��L)& J����4Vl�J����` m���Svp�ݛpP7i ��P7f�M��Kv�� h@���(�m��3�`yN)�8�[��x�u��R�$��zN�]�u����u�� �
_�;O'x��= ��qJ؀{7Ll��S@���p�� (��Ml��n&��ቬOD��7����o\Srq� �R�NP �q�q�p���]N�'v�V� ��>��.��uC�yk�=���M�k�p��麡��9��ކ�4�j���*HS��O��A��e x���5Pj��A���H�φk �e�b�b��!&�Iaj�K XYp!�: ;��� ����\46��11��N�V)�|���lO�Nb���4'HN�>b�)P���1+�A�
i`�l � 1(t :v���ak ,-XIa'^f�1a�a�a� ��"��4Xj��a��^%b^,7Xp�>��lS�I��lZ���loc|s���׷w��~O� �=����ޓ�{O�O�o�����?oo��}=A��87�4�z�~O��z���Ģ����q� �mc�s�hq1�7�1�/��"l'<���;���;��w�Q�s���s��Y��9՝��܎��;�3���$Mx����]��q!͎q�6����s��T�GqC�h4Ў�M�`��a4�[�-���tXIa/anar��Vl/�/� _�^��A~a� �_������.P[�K�Ia%��������ہ5^��a7b<a�ě"�1GqR����* 4�)�N ��'җ�C���C�P��U�v?�u�?q�%o����E7����h�4�������j�@!���Ƌ$�!I����EKLF������fŠ.X͈?���@2�@�Κ�K�ޤ�����R��T �rV:�j�P�X5���t,\Z)j��q��p����D����N��m��X�8��
)C R��%p���mp?���m�f38��HZͤMt�6`�iP�kPc6��2�F��an�S��)�J���*��kW,�,Qj��-S�Z��X����Տﬗ%��UJ�\�d��O���eP�+!ۭmlֲ٫g�XΚ.g��L�V&S%Lv*�S5�be�������f� Xc�.�a�8�co�1����S�q���N�?�2��.��wd+���B� UQ]��yU!ۛ��T��;!Y��y�%�� �9 �' Wt,��������n�@|k&��m6��h�`V�p�
ޛ�������q� +"��[s���������@�U@�.�['c�� ���U?�
���W��V�O���`�P����x��������P��g�V�<Q�� �A�0ۆ��5HH��B=: Xb���0�Ka/���Z�$0����9�e�"dn� �!���-5 m���^ŌYŬYpS�SqO�Y�f��(Y�U�V!U�V1fŋlY�f�j�G1NŘŬYŌW�1`c�-'��N�n3\�: ��B�C M�[ l%���b0�b��G��bE���v,6�f��bt��x�b�,��3Ɩ4ƶ8��pI�{{{~�ߜ�?�pppM�{zO��=N����[�?OM����PpoS����(7��������x[�d��ћFu3�<���9���<�s�<�(��3��?� �?�)A�m�t*B��i@�,�?�3�?�s���,�=���:γ�:���;��8Np��B�
�)P�B���,�Z��b�B�+ج��1V��E�]���lg!jcX����y��:��:�T:��:�V;��c�y!��Ԇsй��qe�V�Y
ъ�+�â� Sd+ЩB��V*ح`@��@Q�������������������������������������������������������������������(� @
�D(����@ P 0@ ����Q��
�@����HD�A 0$IR,���d@
P�����������������������������������������o������������������������������������������������������������������������������������������������������������������������������������������������������������������Ͻ��3ުw�N3�����D��2[=<P���'�\�ǔ/��a{��j����4=�����:������^yo��p{�m���g�����{*��GB�pѰN ���c|0�\Ѡ��������X �<���ZB��*�o�3/��I7���{ߟ��;���[��+ sT8Z-�����������w|��'U\�I����%S� x12Єj����p�}½�_>��}�������������)�&�%/l��oXO�ܵ�N��v�H�� B$@$H��@G`��$`� "(�CA��P(�H�J��PDa0|�%"��k[4�����*q�>��1Fa�r � $�I$��(��$��(��,��0��0� 0� 0�L,�L4� 0�L,� 0� 0�L4�L4ӎ8��8��9N4���=NA�<��4��8�@��<� @��<��<�<��4�N8����<���A�9�C�����<O8��8����@�4�8�M9�<�@�<��9��A ��8��=���=P���=��8�C��8���<�<��@�A��<�;@�A@�A�8�@���������AC��AA=�=<@<�<�A@�A�@�?��@��@�8�A;C��=��9���;D�=�8?����@;=�A�AC��A����A�=<�==����<���C��?����A;C�����<A�;@�;<A�C��@C��@��A�9=��P<�A==A�<�<<�;C�@���N��C�;@�C�;A@?��A;C�A��A�@?�@�����������8�=@C��?��AAC�A���A�A�;A�<;<�@�@<@��P=N9A<����AC�D;@��;�=CÐ��PA���A��;C�A�����)���A��@=C�=C�<C�C�<C�DC�<A�<�|C�C��%�P������P�C�@�C�C��PC�;C�4���A�PA�C�?�����;C�C�>C�<C�C�;C�=A?�� �C����C�?@C�=C���A�?@>?�?;�� ���C��C�4APC�;C��C���U�P��P�P��P�����Ð��P�������!P�?C��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������!G�S�G��?G�D�G�;@P�A�O=�D��|DQ<QAP;�Q<�@�D�D��<�M4�N4�O8��4��4�M8�M0�L4�L,��,��,��,��(��(�I$�I � ��q�;4i������c��ȉ�5S"ң��%��t� ���� �q���f�"��!h�x.� ��fB��ah�<� �
�c�",0�+�D20�* ���
�����AL�7���"@�l# ��"
�`�*K2��P� OC�$�rH;(��0� �!4���~@
� {�l=T� w&'�b@uѠ��:h�b�x# �\x��l4$4�HL�g ��P$%��¡�1��D�#�ȉ�! F�D�DC,��<`(d0(�a�=��8d1`Рh&� I�910蘌��A)@�����x��(�'�$��rI$����a4L"-D�#�� �X���X��8ˏ�!aQ��,���\�X@#��<|B 9�B\�TBR!���ͻy��OwO�������z���T�kUF����Uk2�GPSD��R��.��%� O���% Ctd��bQJ ��4h5�P�d2(�4" D�q(b&<`�RQH@���*T��R�FL!,<+�b�X�:>T/��x/���j���a�YW*-,ŁXT �`H �, !hG��$!|�Vd�"hu E� K�0�
 j� �BY�+Ba�����2������#1�9NRL
•����Z`��Z�Y(�@2fB��Q �
��4��vKf &��+4\pV<W Y�,F@���@
!�[P �A�R`W�����($@WD���@��%a����Z X�xB hn 0�P�b CK >���hu�!dx�:�����0H��GDH���&������e ��rT�@ KFT��IK@4t�0i� "A$Di,PI��dT���  T2��#h2�#lF�`�E��#q"��" $Ltp4I�B��A ������P�&�5e�� �� @�����J�� ����>�@�*��'�W*px�� !(e@���(� ZF��\�����v^]K��2�������������켼���������������������������R��켺�����;�����W���������꿪������Z g�3��F�F�D
1" .�!�8r���@�� `D �� ����1�� �Rp �9X*���\ �p��f���< �ઞ
��U`��p!�0�!P �@�� ���@���� �D` ]N�Pb`% �d&�H��Y`,GHd
���P��RH�2"I"P"V0h| �qp,�C.��(�@ Ls*TH��` � ^L��d� FOP/�F��)N�`_�)���S�0�/&�L�,���D����8B@[ �,�7�h
����
JdP
I0�@Ā ��LC@C����a\� r$E�NL�\.���� (���,�Ȁ� �"�/BA%�&��΢H.Ϥ@$P%M�8\���Aa.\.�b�q��/�@�x 0Z ��4�FH�f�aT ^�� xH��$�T�@`�Ap |��U�L BL4/�B��@��aȼ���'� ؠ4PCPU�`���R�0�A�
�x ���&l&���pl`%�@4��(L"Ð8�����2h �� �����@6���� A�@�|�22:H�0�D�C!`��D A3nX5*�B2D
�lp ���%ǔH�xD<��#cC `�f2D2ƈJJ�"&��JJ�h����@���)��4���h�#D����%��K2�唌��DDFȈ��d$R!�"��
���=�~���_�������Z��^�^�W�w��^�hF��`!��� ��@�V�� `d�`�P�z�Rd��P2�;�a�@ű;���,#L ��R@,}@-Ժ��QR�j JYEJd/�0�d)���X��+#$i�L�i��/�����!� 4"��x����` ���x��h- �� �m �]A�� ��2 �H�� ������#� ;F��q
@y��� �#�|�!4�#��~HƑ�20`��b*��20`h�ɐ�� �(T�.Ȅ�!L �9�Bt-�,�� �~�#�e0\
�0z���a0^
��Qx��a�@2E�d�6���`�$ �@T�n��p�� �\��< ��q�lF<��;� ǀ}��;B`2@����h�����p��p�
9���B�>��d>�:D-��h,D@:!�,!Dl(�� �Ql�H��� �h���8 b
h����58�F ��(l�/�����@�"�3���Y" ����n�ll���pD-��PH��h��pD`3!� .�` � *!�
9��
�:��`h��BA�� AS#&T�$�>�� ��̓���6�@8Š���΋����� �5���7L��T �*��� 6���&�%0pB$�0��� R� LL)�yu.�%�iyy�.����ie0���)f]K�K������K˲�Y���R̴����fyyiu1.˲� �ı�Z���~�z����_����_��￿��PT��0 `�R4��h��
x=B&`q�H��H` ��P����4�(H� �Fh��* � ������0@# ����D* ��@��&\�����d��AB�D ��N>�
�qY
�aLh$@+��1'�@l��P�������+�e��Ȋ�̃�+�@@r�����Z�cA�R p�������>�����xѰX�:�8Q09$�q��8�Fz:�`��09D`:�" �4x���`R�?E�~�� ��\Ԅ8 hD���
�ph�E�� �d@ȉ�2��a��S��RC@-��(�'�0W ='y�+��=���Y��֓��������]M9���ډm��Z�v���*(�ډ�@��eB�&�D� �2T��LA��t@�L�2 9��@��,��K"�dA����Qq�D* BaИ���� Ѣ�!R�@�� � 4�B,�I���C�HQĒ 9 p�k��y&��m��n8 J��Ɗ�����—2����L"։tC�K�ʦ�&a���$�+�K0�c"�f4D2� ��b2* PHPTPHMI�
dĥ����TP�:��!���MH���Z&�0��aQb̰�a ��dH��B�!i#�
���FG��a�@�"�B ����o�uz��]�������W�z�꺭Uo]u^���~i$�M@�5���B%'��($%��@9�= �j �4���X#O44I�1��X�lo�L-G�1Q!S(��D�!���@0USD��c%���%��z,d*�X��%�����~d���d��!P�JLl��B#$؉�����Y� ����� T��~E� CPIMH64���p�K*�(�|�QD�$�*`U�y��"];�U �.���]@�T����|T���x�VH "��! �P{P~2`���A"��4!�!�"T�p�*� y(j� ā��0>TIA�2���A�,���� �H0 ��$,�ƃ�A��uHM��Xz��L���F��>@�#�0`� ��4��0 j!�=P�A�BlQs ��?�BB�R �2 4@�D����|��4�҃ f X�����`ā��<�Li�B4�E�|�%�;vЅHA$ �(���{`�a0?�.� @Q+#e���f�ĺ��������e���ie////////////////////,�K)yyu//1//-/.�LL2�bX�5+����������������� L;0�`�.T("�
��� � U
P�
P�0P�D�_�~��������G(0�L#�GA���� � �/����9�J�J�!!8A0�� ?���\�`�� �P@X J �� pᰌ(A�L��t��MP�UhO��x<����
� �/Q�B)_���P<�z(��X�F�#�0R  �B)!�^� �
���A� � �'���'Bk �t���� #�� ^ �[A�j� �T�?�4hsL
L�4�8cK�x�&� 5XIt�-- �v Ƭ�5A��38!J�j�P$ꨂ�2��2q��C ��!&Y�$E�\�At �]��.��&���Y��df���8p�?4�c�ŎAŎ �"=� 9M1�4�f�&J���@��5��
�3838!S0f"��Pe�T@�"| ,��&���0r ��j E̜d�#�A�e�Q�d^5 .4F0�$C�!��6P��%Iɐ�� A�@��B�� ��4���Uh�#2@aK�� *�R�$R29
H����~@DA # d$�� ǣ߭[��u��o���_���k��Zֵ�W�u��Z�(������h��E�T��N�N�&� �MJ�z):��#��A݂ L-���������**:4@����2�AE*0�2 �)0!�La&�a&�f�0>`� �2�L�%Hj�c�8h��4T���is�4���8���4�����'�H�Y�J�`Jҋ�S���~�*��+T���%�s((!�Y�e�<�2�\3����L `P�&�`^d )���>�� �
����p�� ��D)B��2�D"a�D��8(�F���䇰�ö(w�<�����!�<a���Bj�� ���` L9��P`�� � �k��"�E0��KhC� Ԅ���D ����<!������� xA���0R�!����xa<К�bC�(y!� JC�vøtõ j�r!=z2L!���A��HD�"�)0��B0����aA �`��U+#�0bba����R���aK�K��KK2����̴���//.��奔������������e�iiv^^baLLKG+*ի��}����������z������`�
XQ��Av��P��
�! �P�”!�)$!.��By�5��<a� �n��8P�C�qo �n�҇��MP�dL���B(RD!�R�%�HA�� llL(Š��}���#!I�P�P�a�!�� J 80��@�HG0�<) �����d��Ka-��a�&0���=���%�M�� �����.��Yp�P<Q́����� #XFB-��!���)$ ���qy��rHrP4䂬�Y�,֖s5��if�[Kl��-�UJ���*�0���(�D‚Ц,��@[�0�TK� *%�#D��7� !0X�-F  0T��5B� (j��rI�� ��I9 l��=&��f����4�K5�ZZ[`W�$�����TQ2�����EYL�]*e*](�q0d���FL�2F`��r C@� ��A��<� BDd0 �
$���J(%&Rb2a��(���� ���'$�9 �D�$fK��&0BX��ʈ%��,@X/� H�D�XBHE�H� H���@B �#�D��|<�����;��n���o��������U^����U�V�U�U��*� 3�4�N4 �<�F�h��L��փ5���g4��������^8�������������&EB��R��D &�&��D�& �i�,d��c �.d��S2� q4�hL4�I�q�0)9�Ґ]�Z ���I��o5'%,��[���+������*���"�&2�qL�](���aȘD�L�U@e�2Dd���0\���‚���ɡ9��C��M$1QDP��2P�CHi 5�a����C�sXrøv��<��C�y!�;�p�C�u!�7��يb��)��5�����z�;�B���2�V��&�A� �hz����!�5��)�b��(o ��8�P�C�w��<���BR������r��8��7��S a� !�3a� ��(�,P���t�L2�L�鐢�A��R9�� ļ�.����e0���vZZZ]K������2�^^Y�R������촴���R� �.����u/10�%�#�ʲ����_������mW����_����
,M��䄴�) R���b���C(d���J�Hk�LR��6����xq ��8����hm ��)�T5���0ɆL2���ņ0�CTC�BZ!9xDL�
��I!hP4��N� Xj���a� �7a���C��;P�BR��K��z��=P��t��������K��Ja�<�l;a�!� �n�� �S Xj�U���y�zD(#!I��'�~i`�Ґyia=���*�pՃ�E�۰zj���<̓��ް���PvZ�����J��ꢠ�����fB�3!@�2 �Z ���
Q2Q2��2K� =!�� ��� ���\�R�
&��(%�~J�����L[�����ۄ��z��eA���ҵ��=*Q�-A��OE(�ʢ�=����(�@"]p� F�� ��H�Y2rc�%(BQ� >yРB���B�I
i!F�
-h���-,@ZX��� ���|�D@E"""R2 ���p�x\>�����ׯ�Z��������u~�w��Z��U�Av���ԃ�ZAݚ�vM!=*��� ��`���xxO������ۇ�=�=���P���=QPx��Z��4A��OE��h��4A�(�ٕD�2�.�.�D� Ɣ�MHQf�)�(%RR���۰h��xQi`�n��U��������UB����A��.Ѣ��B�,�PE� �fB�&QL����D"]4O��0�(c TP�B�P�C% ��1��X���5�qGD�$I�"�"H�$�"5D�$Hı:�(�j(�)�X����C5 h�6��(PɊ"�d��2�L3P�CE �i a�R���0цl1H��bED�$Fđ$ID�#��$�"H�#��8���E���C8d�&E Q(b�`��'bx���fVF��r� K�˲�]KKKK)y�.�)yyiiyyyiiyyyyyyiiyyyiiyyf]L2�̴���.˩yy�c��r5+,���^��W���������u_���UWD�2��x`�u a�1�"�b���1C �"F#c��G�b(�DQDQ��&"�(��(�D�"5(��E
(�(�,QCc bv1<OD�<P���C5 ��3P��k b�l��6��R�V$0bv$bX�%�X�&Q2��x�&��h����%Q,KĊ'P�C$CU�n��6��S a�5a�3a�3�P�(� �f�攃&�ZXE4���������� ����P��p�����
����C"�(�(��QD�&T2��L��&UL"�& �2]c0d�%�2NI�9 {�䜓R�9�����g3X/��֖�KKKV��V�p��� U��"����%Z*�ʊ�����(�D#Q2�(�D#�2��L�FEI ����p�h3(! �I�LFL@&%(� F"�Bf�0�^@a�2�[<��&�,$��jB�&QTL"�2��!,���D�a� s$b��XB�B�!�t����@!�� ���]��G���m��{�������_��W���꺯PN�a$Ԝ�R�5��XD$֖��--, �Y��m��
-��\��\��(ꊪ����TT �2�T!Tʢ��D"eQ0�F"eQ2d#�2d�&�&�Ԛ�>k9���f���9��������m-���xCmj���U򢨪�02��ʊ���h����@�D�&Q0d�& �2a2��v'�
'H�������iF�Q��m��m�F��q�F���F��f2�Q�6�j"��&#QEG�G#��clqF�%(��E
C(�EDP��(d���`��1�1�Q�9��∢(�#b%�Q�6��j2�c��F�mG#�9Q�ڎ1�ڍ��Q���F�D�E��D�<ODҪVF��r9cyf]K2�^]��R�������Y�Ȥ2 H�/�"@��YK�������̴���e��,����r9�Jʿ���W������_�U���_����4O��;�F�#leF��f5�F�Q��n7�Ƙ�j3�F#��f5�(�n7�F�Q��j5�Ɣe���F�TD�'��v&���d��2�p͆,NĬD��j9��(�DqG�qG(���(�m�1��iF�r"��%1G�qG�LEG#��7(�D��e �e ��E��n� ]�m�ClP�2v; �pŸ��jļL��*�L�-Dˆ
��J��������D5Z���5Z!�*�p��C�QD=UD=Ka)�� ,6m���V�5v)v� )a�,0�&؛����x��x�Z�� j�����2Z�KQB�P��������
��j�"��ȼi�������D#)&@NL|���IA����i��ƞNf��aq����h��U���aK��̗2\\^\x��|�D>E" "���@><��t^��x�� �#�޿Z�[������_��Z�V��ֵ�j���kP��6�V�d�2m����dՊb���ĴĔX��8���j$�ELJ��`���U*�+D1F��j*�#D4E �C�TA�-��k�7v)ia��K�K��إ�gLQpÆ�0ᆢz�
���VъUT6Z"���j�QJ(�n�C�TBR����(�2�1�Fc1��f3�F�Q��aI�RRRRRjMI�ɩFNNMI�FQ�RjNNM�d䔚%eF�m����n7�1�6�Q�ҍ(�i�2�*2�*6��ҍ(�n7���mF��(ɤ�'&�Ԝ��&�)E&ɲrr�M���d�)))))5c��j5��c1��b1�F#*VVUJ�VG#�.^Z]K2̴��"H�H�.Qk�lZ��-Qj�Tu���:��:��-b�-QkŪ-QsG�R$K)iie,��iys��r�U�eeu�����W����k_�j����������)�Q��aFe��c1��Q��)'A��)%A�����d�Ԝ��%$�䤤�)&I��)9Hʌ�XҌ�c1�ʌ1�1�J1��i#*3�F�m���j7Q��r8��3�d�����R����FRRQF%%%%FQ����Q��mG�F�ln6��q��1��e���sKA�����7:��(�O6��w��MUU��TfUʢ�UT���TT5EK�*F�Q,�(�Q2�tL�D��K�eASI�=&��JOiH ,��I���5���>�i�+KM4���V�6�Z���*�����^�eQS�0�*UL��E@�F��hP4��!�y �Q�) ��� ^$)$"&.LqA���8HqC�GHɧ�D�d��](�D�"�%̏�#...D\Z`��I . � ��������1yW#�x_��x?���>C���m���茶e��������[��]V�f��S5U��UEULV�T����ɴ��XF�ͦ��m�`�Mκn����aֵ���+*�*�aQ�UP�EL**YQS���)�L"�$h�D�(�*��rMI&�rR��K5��l�Xm<ݦ�����
��UUU+EULUL�*
��2��Z*aT��D�(�F��K��))��F#�FI�СB� %$���JJMI�95'''''&�Ԝ�(����)6NIIIIIP�����Q�Q�������c1��f3�1��d�)))*RRRRL���d������d�999996NM�d��))&I�hP�B�$�b1(�%#����������l�HX�1صE�-�b�-Dv;���u�T[Q�:�X�Q�Q�bص���u��c�jE�-�b�-c�r�)
�25#��ʲ��������z���_]������꺮�����# ��R�QJ(Ĥ�A���'�(P�A��)%$��2RRrRRrrRRrRT��$�4B�
� ��AI�H�b1(�2�aJFc1��i�1��a�2rRRRRRrRL������Rl�aJJF��a���2�jQ����d䔔�������aF#Q�ҍ(ҍ(�f%v$n$n8���cO�UcU�V9�U�����&�:��Z�֢5��j"Z�-G�j�mj6���Q����`��!����%m��c���cn�ڱ�c�<E��nĕ��$�>#V�%U+Q���ҵW�ij6�����訑UD��^2��hɣ"ѣA|hѠ�0`�\A(�L�Y%$�4�O GO 'N 'M )Dж� n���-��e(��2�d��Z/0 X+�R0�G*��P�U�p���<d|B2>-2@/ D�]߯ׯW�Z�ַ_���kߪ��^�W���kZ���F؍�6�jƝ����c[�o��ǎV9qq����kQ��Ҹ��eZ��Q��ҵTTH��EU�C�`�L���O��X��M�mX���bN%�Kķ�%\J�D�Q"�EU�Q��-F���%��UDʊ� P�h��d���ϡ>�
��B�II)%%$�Ԛ��RjMI��J2r���RrrJNNM�RRl�������
(P�=�$�aFŒ2��B�B�
(IIIIIIII�)&MI��2rrl�(������&ɲRl�$�I2L�AP�B�A�B} ���RR�RZF���űkť��\���v:�X�,�Tv;����bض.D]E�t]E�űlu����v-bȲ:��;���.Qi⸵E���yH$h���j��_�����Z�ֿ����������RM��>|���ПB{B��� %$�����I)* ��������%$�PRL�$�4(OT(OT'П>}
�RjR3d��PT(P�T)))5%%&��������e���)IIIH�)(�2jQ��d�����))6JJJ��hP�B���b0�;������(�� ۭ������ ��Ǿ�U�j�Z�UU�*)TUU T�-QP�L�E �4QP�QTU �ZZXj��K �Z��ե�K��lSm[�}�1���^_�EU��f��U �U���QV���QU������*bCd���� FI�� 
� i!�F�$ �CH3�P����q3�ZO4Ğ�Y��2�Q.d���T�S��#0�r��,@YK��F/*d��Pl���!�A�@!����$� � �������_��_���u���k�V���WUUUת���t���ť����ia��ia�mm�/m�7O����a�����Uj�2TmQP�QV��b��TTP��L�f��*��ʹ��J]���-[b���K �j�6��t�Ͼ����U ��CeUj��UJ�����L�h��QQJ�����s>|����S�
{B��T(P��)%%%A�:l�ӧN�:t��t�=PRRRl������
(4(Oh*(O�>|�(OT(PT(P�AIIIIII�)* �s:k:t�ӧN�:l�����$�T(P�h4'� �A�>|�����y��.Q�.c�cEqi��/��c�u�b�-��:�c��ꎨ�-c����X�Z���c���uGR-�T[Q������+�"���uE�^���k���Wׯ^��~����������}����z�>|���СB}B��(P�$�P��g)�f�S�Nf͝9��*$�(P�>�
�(O�>|�����P��T(P�BJ���������&����3�ӧ3�N�:t�:t�AII�ɲJJJNNJJJ��
(P�>z�>R��Xñ���m�li���i��J��K���'�UI.MjQq�UUQ�UUQ��ڵF�J�Z#(�e��v4Ս5cN���m��ln�W�NO���O���%���(�TTf�4�Z�*���aj0�J+R��Ty��f���2
���0X�\B�[$� $��`�eN GN '3B�ZB�Q4-� h�,�I��eL��*\-� %�X,� %Ԩ[*�B�Y`�F�U ���l�H� �!QR��������ׯZ�������������W�U�ֵu��vQ�GHñ�c.ƛc.ƛc7�>K���%�jJԗ$�>0���*���iUFV�+Q��µ(�UQ�c.Ɲ�;jƚ��c�9q�5�.N��J���(�O��aV4�Z�UG*6�E�ڴF��KQ��µ9�9�>}>|��'�(P�Κ�Sg)�f͚�M��NgN�5NgNf��l�s9��)�JJ� *(P��Oh*����T(4(4(P�%B����s5��)�l�k9N����N��NfΚ͛6t�l�j�=P�Bz�>|��'ϟ=�=�HX����kE�[Ŧ��/��l[űluGc�k��ꎨ�;1r�ű�:�X�Z����űl[�T_QtZp�+QdY��;��
�U�}_U}���_������_U���V�_�U:t���ϟ>|���P�>t�l٪lٳY�g)���ә���f��f�f͚�O�B����ϟ>|�ӧ)��P�B�


$���3��5�5�:t�ӧN�:t�ӧN��MS���>z��B��
(P�B�[f����[���[��wom��]�xs����UUBR����*������2��eL��QPwDʘDʢ�T�&T�Y�-���X:4���km7 M��M�p����q��]C��WU��UUUUU2��LUS*eUQS
���x�t�҂A�I1!@:cb�(`N0>LHH:$6H�'��A�0��ↁ�4��I�A'$�����`�dK�Y��D��:����R��E� �*<T,� ��B���B!i^!�21⢢���v�z�������}z����W��UZ��UUj�F����a�K5��������[���qw�m�SO�J�Z*������Z5P�UQUTUTʢ�ꢦEQTT¢���9��Y�,'%,֖ۦ���w|<��߇���Z�CڀCBufj����2�<**eL��eL**|���ϟ=�>|�k5R͛6lٳfΚ�S��gN�:j��gMS��j����j�6l�l��}
(* �'��O��3���
�3f�Sf͚�f�Y��r�Μ�)��ӧM��Mf��f͛6lٴ���9O�>z�>|���H�D�L��$\���Y��+�K����]1�-�b�ꎨ���c���uE�\��v;��b�c�[ű�(�;E�i⸲+bȵ�.Dy"R&D���W�_���~�_�kZ�����]W�oU�_��ϟ>|���Ϝ�����͛6j�6l�6l�6r�9Nf�f�f͛͜6k6l�U*�J�NS�ϟ:z�>|���P�>�
(P�:lٳY��r��)����:t�ӧϝ:t�ә�t�9��f��j�6l��(P�B�B�
�Xñ�e9K���C��6�%Z�%�.IjK�V���%�
���jJ�IV0�F��4�Q��ʴFc.ƚ���a�+d��V�C�VI�*��K���%�.�%t: ���U$�)U)�´J-J-E�x���� �i&ɤ�U(���0X�[B�ZBxY=�h�<-�HZM!d�ºRº(�QS!i!l��Y.��`�� %ԸZ/,���$�
$!\� �D�|T�QYiQir��[�[����������]U���j�U�֫U��V�(�(�a�F�;��z{s�J�U����I]���z���Aj���5U(���ԢԢ�a�m��v0�&��;%�l�d�:�rW'�\�d�%U%ɫRZ�V��������UDih���ҵF�ϟ>|����٪j�K6lٳf͛6lٳ��g4�Ҧ�gMST�s6l���l٪l�lٳf�S�)� �'�S�3���A�9�6lٳ�٬ٳ��6l��r��gM��i�NSf��f͛6lٳf͛J�5�͚�NS�3�N��YHd*@ǒ.��E���+b���Gc��ꋘ�-��.b���b�D4����D4E�Gc�ع��u"ض.Q�;���]�+QdVŨ�X�E��H����*���U�W�^�W����������}WU�oU�V�W��Ϟϟ>sKKKK6j����j�KK6l�6l٬ٳi�lٳTٳf�fҩSf�Y��k6�J�R�)��Ν>}
�С=O�͛6l٬�k6r��)�Y��Ӕ��Y��6j�:s:t�5M��g3f��j�6lٳ���
�Ogč�lq�x���n�ƻx��c��­�R�Z��UUZ�UWUUTUUQTTL�����v�m�Zn7m7n���v��t�g�O�x�^3]V5��FUU��ʭUTr����UUU g8�� 2H�D�(%( ��a�"b4k<���P�k�P��&xĜΥ�ٶJ�vj�UT⢦��k�".`�pZˑ2\��6 ��!�`�XDX�\F"1����J���E�˕.��_��o��������귪�UV����V�UU�UW��[m���n3wq��3w�-�S�O�?�:�0��UU�TeUj�2����j�eU"��������F��8�Klm��n���q��N�N�g�UZ���UQ�[��**���EUCEUQS�ϝ6j�����5MST�6�lٳf͛M4�ڦ�n�i��Lٳf��f͛6lٴ���T٬٨�=��ϡ=Of�٪m,٪�lٳf͛6l�lٴ�J��n�i��M4͛6lٳiSf�Y��m*�L�k6t���Ye+"d �>��.b�-�X������v;�űص"� �>a�?P�0�C������(��Z��[��c�غ-8W(�E�b��yG�"�)��eW��U�W�_]]u~��խj���꽪��ޫz���|�Ӧ��KKKKK5MSU-,ٳT�6m,�M4�M4�M4�M3ZTٳY�ٴ�T�k5�R�T�U4�S�N�>z��f�-,ٳf͛6l�9NSf�f�Y��i��i��i��i�5MST�6l�s9�6lٳfͥR��r�>|���sڳݞ��>���m��+�Y�6����������RJ���-PZ����OZ�UR���nJ����m��I�~��s�7�͹՛s�;�Y՟�����S֧�OV�.%U 5' �I£��'�x]=$��9@�Q� �����`��F�hHi�m�~�=�G���#֡��� L�����L��\,�@���+����%��K
�ˋ�"\��&u��n�ֽn�ֽn��z���k_��V��ժ�V�W�w%�gs��=���9������y��o7��V�-N���=jz����S��U$�(ܕ��7?�V�$������w;���s���r箂ԒԒ� OV��PUS֤�T�����i���i���j�6m--7t�wj�i�i���4��t��SJ�6l٬٬�fҦ�ZU3ZT�5�������Y�͚��Sf͛KM�Ү�U4�J��n�i���n��R�͛5��M4�M*�i��1.���6A!d*>ǘ�ZődVŦc�V�!�����/��D��?��?���C����}���1Z#�;�+QdY��yGԅ���J�ˢc�����W�___���u�������ޫz��~��i��i����j�������U��n�i��i��i��n�-�Zi�R�T�f��i��M4�M4��U---,٪j���5M�6k6��iT�M4�M4�M4�M4�j�Zi�M��͛5�J�Mf�iT�U*k6<��V0�ꌨ�*����CsØ����� Hdh�=��/*��2� �(�r�H�P4�GDž���x�b"����x[!G�dc�A�\*T�A�F��)�9P�\+���e�D��\-��X\d�Ǵ�H�B�DH�sÃ��q�t��� Ăi 4ā�І@���$4LL2( �Ĥ�(x�pD4$4 #8�f�{J2ȗ8��G%��p:���p�@G�4Vh�Bꅢ�m�) ����$�(��$@u� ��b2aPHP<(%(0��`<&8�.� � �$8H4$0pzqCć8&h�NH᧚L�Td��3%̋��D��p[��"0 ����@uʋʇ�G���*."
�"�!�!aW"�D-# 21Y�������w�]�_���UX��T~���T�� �4����!I“CD�N�����nH4є��'
8m$�D��$�B����D�H̋ˋ�%�"�ң�B�`;e�o*ʁ�.��
��!|�^.���Tł���8L ̄��$AYH�#
iC�;��Sİ�(P��@G!��1��$u �=�'Ϧl�8�y�2�YHKQ LKK��2�ׅEf�X���� ��uB(��rA�HQ� ��Z���Th�A!4��D�F�� �P'&�� �� �A8 q`g��H� ���@䀗� �A�\�8�^ ���D ��rA�D M�:"� � �I��)`�0��L2 �a�g^�`��VP�� 8&�@� c�#Ձ���P=����4X&@�ap%d@��U@��3��6!��b�A(PJTr`�� pH�tP ���8���# ��r����#f��3�j@��yPhp\D��4�E 4�#�.������H#H�D�#��Bd ِ� ��-`��i0d�10�L��LLK� ������10�&&&&��I#���L�H�r9�D�0�LLLL3
bbbbbaK��������12� ��/��!�p������@ ��Q���PJ�. �d
Q�)�@����S#M* �`N�{�F�]"aD��i(F@́h�iD R�;�xP��h�� Z f��hi0B@ )](��L�'Hp�i *d��O�N4
Q�R �d��"@�� D��IX� 4���1K�0��@ �\�p$%� .4D��2��.L`��$�A'2 Ap($@��@����@ �Q. �P��U��v�'��|��pC�>H'�� U�O<B@TO@4
r@��
A KD�PJPx$��Hh:�H�&d�� 4P����p�A�?�&p1O� �B�DC �A|DN�(x�!��l� ����Q(I��IL�AH Q�4y 2�R�o� 8\�64ȋ��*F�g.@�� p�,XS@4#��4��y: P �T7�C��P ad��TEA��\"Y��A�Z(z!�D8B�`^P �B�
A �$� C�(8�\8
���&� ����@� @'�� (LyPP`S�@��d3��=��H����I�4yD@e�&X ��� 2�4@c���` �( �P�� (�&
��!<T���.W��{S�Dp\��t���r�I�eI��e#c�2JH� "2RDd���S�ΞFt�#��)�rR��i32.2�$(�"0������#.���#+*FVT��##!���Ȋ�)R5"!!8���!%_�����_��_���F<�R  �x���&��� ���q@S����. ��TR�@`�{@� 7eB@��JǍ�I(�(�s@e XH�L�Ǚ&>BH� ذNB�FyP�;`�l p^ ahLC �` ���Z
��D2"��?�
�H*x�`)�eAF,L�����)�1�
�^4 �Dp.���C@g`� ���j� �@�2<PJ��qc�rP*xa2#@s�a �2��\� 9�ND0�B ����@� �F@d`@j���h PU�V8�ZPxN.Dt7��#U��#��� dBR(��d
9p)�@�A? YJ�j*�p/!h U@���� !d @H���H
�+����|�����vD~� �� ��C@��^F � ��6�@n0$@qL���鋀��`����������@]��Y�0���z��Pt>P�`� \�`[��Y�`��|���s�9& �0M��9#�\p|
�(%���n�s� (�|��,�fx�q�x �5�VA�� h$��H�,c@r�1����S�p��0p�jd��`ṕ�2f<rB~X��sr ���D|"@R������q@ � hK��� ����R@��`�0)�����(��e�S3*bbbbb]K�3����1.�%���)���f&�������������R��������32˜U�����\Bn�������S���`
iPB�UG@�@QA�<+@�� �TT�!���� @F�^`W���Ł�z26&t�X������@)G���`��"�&D@����!D.�\ ��
���V�@`�`1��oHb��xp�vP4B@�0�`TN���� �'�������
���)�����(�6#���� d�c�.��� `�`�
�X(9�t 6�KA�
�6@݀u?�� ���=�=c<�@9����x��;evȀw�����00�(�����Ȱ�`��?��u,v+�
Z h�tX(b��@� ���(���(��������6�2 ����ؘ��1 ���&��A���n�,��oKضҬ:S#��1����P5U ����** �*-L��2�� "e �0�5�2��& Je!E0�_P�p �k��*H��T BhM��!��,3a�5�3Xr�`A-)vsf�d\ZMH����4� �6�o��"�r�5P8�d�@v�dUPuEB�@�** z��@
eK(�)���I@{� T0 �� ����
J J F�$:Hq
���I��O(t�g N&m��&k9��JeL)�E��F`������"���%�*/*:T^ZX^TZT^T���\D,"� �Db�d������!$]W���W�����}���f��:�9�4DƒK�f�wi`�$����}\ �K X 5�;`/�s�����U@a�a�~��|�Q�U�Ȩ�,Je��Q�S*
e@�*(�uE�"�aL*�>E@A��M@l��x`!`� �6�$��f�sK
� �e�}k9���F����su-�z���PEEL)�@��`Cʊ�)���DIL�]S*,�T��p �ZA�a
˜T,=A4�#�xp�CXj�1L6P�(qs�ِ� j!2�{ �a6�:�`����:�5Bl&�у�=��BT<a�!����rØr��8P� p!��: ^��<`3ು��1��"@� oqXsT:P�C�v��<P�BT%�`�E �� �'Bt'A�����t'Bl&�ka� �� l%C�C�s8� 7��S�U a�4�p��< PM�
(8�K
�YYsfT����ļ����Ļ11//1111.���0�LLLLLL)�.˳���bbb^^^bbbfbe��8���������_������������E�&��E@F�p�CHi a�5�b��Chm �7�C���<��BT%BS j�KP��R���%BT<��<�p�������E,S�Xk a�4�l3�@,��T@j��ॄ�����/a�81����C�u��<P�BT%B\%�b��C!:�v��'���x�ʃ�T`��0y`�x;�|��XN���1���.�*0��p�C�q �1����{��,�g�g��kM�S&0}j�rՅ��� !���a��yV ��yL!+��B*�B��UBjʪ�P�E�C-^�D)"�DZ!��V�G"TA+D� XQ��XXF0J��B9���U�iF�
MR ��ɰ��wa �g�3p��B\��%�yEAx�Ax�BQP�Sa�j��(�T(��Z��
��U(��xa�� �#&���J(���"$�"4$��I<��O#:q��'I�&�D��F�$h�R�f%ȋ��yr"9R2��Di*BG*T�H�ȤDdL������ �������������������k������H/�,2`����.Z���B�lIV ���p��V�……aF�����A�j�� ��.��QU
��-|F�=�P�QAD��Z�SP,,"�6�䃳&�!��Մ:U�BU�SVs,#a��,#. �\"�/���1R�����E�l"���B�RE���B ��9����aDuC(d��3�p�����Cho!�8��6��$N�+Dlq����r8���1����D�H�'�(����0�C�w����a�8��0�E,S�*Chl��8��Õ�҇p�C�w�7a�C��X�"c��G�G�q�G#��Q�"U�(D5D6��C�q ��6�a� a�����(d�(�U��e��S ��/.�&&&v^]��S
ba��R�]LLK���10�&��^]K˩�111.��)y�1112�K�YKJ���_������_���������d�(e ��3���(h��)�a�R��S Xf��"V#b&8��Lj7�F�Q��n5Q�∔F�U Q � TS ��E1LR�� i !�3�p�C%E0ن��Cxn��8P�C��;P��J���%C�r�)���$GDj#��8�#��6"��H�D��1A�J!ʇ�� l%�J��!��rÖ0���0�(������������6�p�Kp;m������V���UU#TUE@J�ʢ�+ʊ�TT���TT�(�D� �L�a(��%)9� &�kK^n��ZY�06������ ���R��=���p5UUX5�UE@HUEQP�UTUTQS*��eQ2�(�1��`' �#"��b`�LJP+�� �Rb"a�! �Hp�bqC�yCħ�8*M%k5��I�*"eșD�&"2F\*�".+.B]�E�"���\���.���QyP�D+"
d"� �D*!��@!�~��������z������U��k�O�k5�����i`"T�[������[�[m�������V/U�T�UQUPY��j�"J��TT���TT�T™DҢ��2�ĥ����if�����:���������G��O��UYUUT�UQUP"UEU@ZEUAΪ�h��2��QDDQD�&QC&�;1c,�Q��F#�Q��iF�Li�1��������r8���G#��ڎF�lm�F�Q���c1�Œ�F�e P�j���)�a�$0bf#c�f0�c1��j2ƣQ�ڍ��r6�#���r"Q���G#���q�ƔiF�j4�c1�2�#��a�2�2�j"Q"��1P�E��+,˙0̩�b]�����S��/1/0��vb]K��ba�S
]�f%Ժ�e�%�Ժ����e������ʙf������X�����������QC'H���ieIIF0�
1�1��f3�F�j5�1�����Q��(�j5cQ��f1�(�b0�E))(�J6��%Q:!��"��)a� �b��F��3�(ҌƣQ�6�j4�m�G�DQF�(�#QG�q�QDQQ�ڎ1�cliF�Q��c1��"5(b����)QL3ib�lOq3��MV'�OVV\Oq7�5bUĵQ-TMU��UEQB�P�-C�b� ��UC%U T8TT8f�F�d�6��1v�P�G\Qp�؟���n%n%�k�x��ꡅa���\N�D��e��j'�� QBᚢ�������q�2r�C � )"RdD�$FJH���')�G�":�6�i#vF�H��F��Df`��� v\���YR"�#!#���ʑR2)��� �����o���׺�����_���������'v%v%�5bj��L�7�'�Gq�U���$�^&Z���u���L�D��U��j'UQB�3TT8f��a�K6�
�C��&�ˆO ���apÉ�'�~'�0\0UQB� � ����2V����j+QB��j���P�L�999E&�J)IIF0�
1�1���d��I))*(P��d�����)))))&JII�IEQ��F��f3��#��bRRR0���b1��c1�ҍF�,a�e$�&JIIIIIII)))))5%B�
RRM ))5)����F�(�%%I5(���ʲ������ ���ĺ�e���&%��v^^bbaK��bb]LLK�
]�f&%��Ժ�������R�����–4�����X��k��Rrr�r�������H”e$�: ��B�
(P�B�
(P�B�
AIɩIEe#������rjNNNNR1Q��b1�1��iFcQ��c bM��RRjI�RrL�����������d��%&�ɨ�aFTeF�Q����f1�F# ���m�l9n���6��n�w�O��k�EU�CZֱJ�XoZ�**���j�����EL�*UEQP�KKK mͥ�m�p��n�qO�5�>�i�P�UZ�UkU �uU ��EC���C�UUU ��� FD1�@��`PXPD�I�&Ɉ�
� �q��O&y��<?8�l�٭�X_D�*�T?D�3$e��E̗#.+.D\�ay��\F�b��¢���"Ȅ"�� _ ��C![�����^����_����_��W�_^�����[v�n�� n�]� ����(��~}T2UWU Uk j�������UUUEBu�� ��l<m��v����q���ۯ �|R�^*���r���+UP�UUUBb����NTUU'&��I��2T'�g�T��>�=���'��ϟ>|���>z�B� &�
(P�A�О��ꄔ���R������)))(�6NJ��{=�APT(P�B� %B� �����|���ϟ=P��3��� �>�=�9O�%$���Ԝ����*����110�����唺��S
^b^^Y�eYVE"��B�*E"�R�UK)yy�y�a��e�yyyyy�bbXҲ���UJ�%
��X���������� �����s>|���
|�{AO�>t��Y�t���Ϡ�S�� ��|����9O�ϡ%%''''''Q��b1(�I�P��*
J�
��RJIIP�B� ����
(P��d�&I��P�hP�A��hII�2�����1x��x��K�V1�8�)��u����rJ�j�����(��c<f�2�FV�
�ej4�ڪ�*�j�#i�lm���x�X��kn3�.R�;��:�\�'Y>Nԟ)�8��bԢ��*���ej5�������ȼf2>4\`��@� ""JH���%<x�h��8Ti�'3D؀�@v -D� �ʘ2`t�&�)�쌄�FDU�!+*FUH�����$�������!)W�����~��li��r�b�8��9NN��K���.K���.J�MVQr�aj0�(�UR����ڪ�*�����w�<g���ƞ3q���NN��>Mr|�e���f�4�WZ��FV�\n�"UQ"��5�:t�s9����s9�>|����f͛9M�6j�:t�l�:l�6j�5M�6t�����>�A��ϞϜ��gϜ�gϟAO��T��
{>t��f�f�f�fΚ͜�N�5�6l�lٳfΜ�O�>r������9NS��ӧ�Ҭ����#�2baL)��yyvU�HX��G��z/�G��=�G�����E���yG���!R)U.���&&�bX�9U+++*���p :�BRt�ӧNg3���z����z��N�5M���͛6lٳ�͝6lٳf͚Ҧ�fΝ=��g����{:r�:t�ӧ�S��>|��APTB{>s5�6l��Y�t�Ӧ�S���N�9��M�6t�9O��Ph4 �>|����g���<ۻ��}������'���u������Z��j���j�UU�Q�TT¢�����s���Ct�ۦ����?ww� _�]E�kUZ��j���U����Y�Ѭ���`& !2��ѡ@�2�$dO
( �(@i!�C'��&htq#� $h��$�NcM,��0�T��Q�L!D��L��0 *H��Q��`m�,
����#�"@!X�C 2 �{����������U���U_��_U�h��7Klץ�M�OM���� ���
ߪת�"�UUF����UG���U���U0���0 �����…��n�"��|%�����j�P��^�]@.���eV���uV���US*�t�ӧN���Ӕ�f��T�T�f��f͚͛:t�ӧ3gNf�f����f͛6lٳiSY�j�ϟ>r��S������9�9�=Mf�U,ٳf͛6lٳ�٬�6r�6r�:t��f�Sf͛5�l֕5�M�l�t�{:t�ӧKJ��VVVVF�̑2��G�^Ǣ������z<Ǣ���(�z?�G������=Q��z>��_��y�G��A"R3HԬ����*�����! j���#��YӧN�:t٪����T��Sif���if͛6lٳf͛6�6�6kJ�5�S5�S6���ӧ��N�5N����s>|���t٪l�Y�f͛6t��k9Mg)ӧN�:t���9��3gM�6lٴ��f�gNS����)�����\�����?�Ϻ����K���%�.�T��%t5B��PZ���RJ�MUJUJ-Jr�'rW>��9�
�y*�U�ܖ�r\�%�j�C��O���=jz����S�$�*�5��FP\Q#���#)�& ��h�P �3���N͚4>6���C���a��!��B�4C�3������_.ip�]J�ť���X@,���3H�Hd(� �!!R��������BD������_��y.�s��>����}g�+A�= ���.��j������\�OW=j$�$�5U'�l�%��� ��z�%Y.K���'�;�Z�Z��%�] P�.z���%�%�-I�t�kM4�K5S5R�T�U,�K5M���͛6lٳf͛5N�6lٳTٳf͛6�J��fҩ��f�ZT٪j��SY��Y�j���if�SU-,ٳf͛6k6lٳgMf͛6lٳf͛5�M�Ҧ���*kJ��5�S5���j�,ʲ&>��z/���y��?�ǣ�����Q��z<ǔz/�G��?�1��_�1��G��y�����G����������^��D�T���������G�������9M���i�j��j�l�L�f�6�lٳf͛6lٳf͛6l�T�f�6���f��f��L֚T�������if���l�K6lٳf͜�͜��g)��:l�:t�l���9���f͛͜6lٳiSY���֕L٪t����K��/��z�����.�����f��f��TeW��*+��*���Ҫ�cWm�.�1����n3o�:yK�S�N�g�1^��U��V�T�j��u �Bg� A0��b��&$(DHp�q0�@eo�0{<���8��IOKI�
Nh��p�*�L"K�TK� ��&H�|� u.@XE��)b��..*P�XDYrQH��L H�u���������������V�j��W��?r���vהߔ�1ה���O�)ֱ��Ԣ���*�U'Uj�����V�������3}�n�c_�;�?�}V1֪4��4��2�uQ�]UFUUUTf�U��i����Y�����T�i�Lٳf�M4�M4�ݪi�T͛6l�T٬�l�U*�L�k5��f��U4��5MST�5MT���͛5MSif͛6m6�4�t�i��i���fͦm3iSZU3i�ҩ��i����y�(�Q{�{(�^`~>�����_��ȏG���(�^ǣ�������=��z<ǘ��G�/�E���z?Q���ع��^��c�<ǔ�����������������_U��M4�M4�L�M-3U4�U4�T٪����SM4�M-��J�͚ҩ�ҩ��J�kM4�M4�j�i���������l�K6lٳf͛9M���M4�wwj�i��5M�͛6lٳfҦ�iT���kJ���3�}Y����y��Ϭ����y��o7����M�������S�T�jz���z�����w;�Y����u��snm���y��o7��\��s��Z��9s��.v�j I0���|QJᄔ �0�P� ���~{</�� �)�|�'����>L��4��j#D>3D>F`?10�\/e���,�R��e,ʞB��/"B2��D �G���_����_��u������Z��9�s����}Y�>��u���no7����o6�j�juT����UOV�s��-N��N���ι���=����͹՝͹��mT�uͬ�ug��U�����S֧�N���U4�M4��5R�T��M7t�i��i��i�����Tݪ[��U*�J�5�R���i��f�Y�j��i��iif�������t�n�n��馚i��i��in馚U3ZT֚U4�J��i�Q��}����"��.Qs�Q������^ǔ_D}�(��G����yG��z=�G��<��y"����z>��~<�� �\��t^��}G�~?u����W����Z�k����������i��i��i��j��[i����[wwJ��i����Kwj�Sj�M3ZiT�M4�M4�5SKK5MSU4���f�Sif�t��M7wJ��i��[���n��fҦ�fͥR�T�f�ZiT�b;�i�m����7��o�����U]z��UD��UU����eUEUj����������������������Q���^"U���F���h굂�LFL:&$(#(%(���PFL:($&.$8x������(x�򇳊#8��uM9($䞓�rM`uQ2�tL"]�D��!�$fK�R�Eť�K�,@\.������A`�t�B1�0�B,""�!i���������_��֫���uU���U�TGwm��q˻��_�����4����j��Z�9�V��k��*���U[w}�I���G�����.���#���UQ%kU��*�&U�Z��*��i��i��i�ۺU�ҭ��Uҩ��mSMڦ��-�v��-��KM*�J�R�T�U*�J���iiiiiiii�[vҭ�n��[wM�M6ڦ�in���R��-ݫT�M4�M4�L}�(��ǔ]E��.���#���c���yE�y���G����}G��z=�G��?H�G��z=Q��ǍQtuE�t]c����1�W��_��W���J��_�U�_UM4�M4�T�M*�Wv��wm�ҩ��U-��Kwv��]ڻ��Zi�kM4�M6�i�����iiiii���U�M�M7wJ���R�4���4ݪn�-�v��R�T�i�k5��;���w9��O6��zy��o7�sW7SW5\�M�*��ҫJ��U:�z����S֧s�?�ι�M�t�77�ͬ�o7�����uJ���ͺy��U9jw;S� �b FP>(�at��\'&�Ʌⅉ�O�g�������4>KH|�C��^v��#D>F�|���\/�� �&��\?-,��DȤap�FH�a�$B �jG�o��_����I֯�W�����{��vs��w7�Zzznmi��zy�ޝM����WMU=+��o;��9jr������~ι�6�zno6�y��uf�y�7Sy��szk5jm��S���OZ��;��M4�Km���7t�n�V���4����Kv��Wj��n��m]��jk5��f�Y�4�5MST�m�m�J�UҮ�m�t�t�n��SM��ڥ��KwM��ݪU4�M4�#��~/���.��]c�y���c���yE�{��������b�+Q�Q��~?b�/Q|y�G���Q����ꋢ�.��_������_W���u�I��������M4�M�wwmҮ����V��*���in��-ڻ�wKv����4�M-4�M4�����v�*�V�7t�*��U4����M-�4�M�7j��n�ڦ�J�R�T�'�����s��w��;���U]T���}WZ
�U�U���UZ��wm����m����>�w�������֪wZ��Ugֺ��U���T��D�LFL���<��0[�ɚLHL�ą����iĎ���IĎѧ3�`�7>��*�uUҪ�D��m�#.�r���`���e��\\FP�XD q����7���eʋ���D-#D�t�v��׾���X��u[���Z����Z��U�vއo>���nu��z����7�;�귩�Ug��gֵ�UZ�5UUU(��O}��������w��������g�]Z��UWR����Sm7j�ۻ�U�*����m�������Kt�Kt�Kwj����4�M4�M�wwv�Ү�t��]*ۿ�����V���������ڻ���M1� ������/�غ.���E���z=�E�^����*���(�ELT�LUEQb�����^����z<��y�蹋���/Q|yE�>��? ����������?����_��M6�wwwwwm����wwwwwwwwj����]����ڵM4��5SwJ����UҮ��U�M��������7j�黥�[�v��n���f�[�[�z^�mZzn����OO}��ӫU����ҫMU:��t�j檩�7i�zzz[���n��裏���t��ҹ����=��W6�!d�l�~I� ���rap��[&Ʌ����M ƚhZ5) 3M4$�� .[ 'a$� %�I-BI� 3&L��(� � ��L����%" �r0�G# �eC��T@#R1�H����������������W������Y���5����������}��}��o��t�����6���U6����Kt�5��kM�t��}��}��֕Y�7SuMU5T�S��ګ��{wwwwt���������wwv�ﻥ�[��[�WwwKj�U���wJ���]*���Www��������n����Wm��$�z/�"/b��/���u�����\ŌU؇��T�LT�QTUEQTT��(��%�CQTX��Q����ꎨ�/����G�/�G� �W������ֵ���k��W��W�_����������w�w�;���wwwwww���n�ۻ������ۻ����ޮ��Wwwwwj��@w�2pvqF$�J3�$�H��i�"Q*��U�u$(
Rr-I�@�SUK�,T���,@F>X�����H
��#",E��
�p�S, qQaiq�Ef�Ee�f�� ��`t�H�04H ��h�A�ѳ�i�#C���N %H��3<Fx�������Hg���$4��d<��( 4HaZO$��ٕ*\��f��Ra�X�A��}������Q��B��K�
$h��"0�m��@�Q��l��A�D��#`�4%& �R�0`L0.0 ��$��$���I�$��I�D�$H�2*D�"��偪X|�~X|�7J��BL�C!m!����R!X�8��x^ ������7���������5�������֪���k�U��Z��H��0hnh�D����0��DLN���F����
'l恤�5��f��Y��D�&�&�%��0>d��ȗP��6�B�l�鐾`?2*DCQ��H �&E��E�BقB�$&@y�(�{' R�"�E$��
5��0��H�d���7@�lٽ��TkY�2�r�z�R�aBL�p��,�̣��
�����E�G�u��U�(H) �I�h�4�O��G�$@ ������DA�9EA%$@e�!Z�"h�$�` QPDL,8��4�����,2�����&FA��D ��2�N
��N���>H�`�Z�"LA4�`HN<p2N �?��3@�H1!�>Q2�`?˂d&�B`�0Ĉ d%ZXb���>T%v`e�
8$F�C�H3T ����>�D��A&i��<������!G%,����D�-H"#�@ !`%�,�`gf� LM\�S ��0 �'��}� 3#.^^Y�e��fYK)f]�e������e����������------*����������e,�KKK2�]K)fY�R�^YK)yy�����S���$���%%� Ȁ���D. yP)��2, ��S@��0�&��:0�F ���+��@�((��`��6
���gD B�kD Z@�0,�q`P�Ơ ���p( ���@���h'����tp&��&����L�fp&HM<�@Q�L̠%(?<f C}���1�4d%���YpC� �P�"����t�s��x\ �����������A0H�&����d�A;D�A>2 ���$��r�*��T<S�� �p&'I<�����l �@'��Bxs�4 �����hp2�>x2P4h1��}� C� ���y cʒ�4�@%P��|&@2h@� ��"AL6��/@I #4�*d q�N1@���nj�.DhCʂ�X��6�T� �e2�Y)�H́�"��+�I�g�ģ�DcD bC0d1�
pj-��t!&X ���䀺 FP8��l�H����F� �b0 ���@�B�(PL�v�!�NI3@R�JmMh�&�
��Б恳2P�V�D�F �0H� Q�� !�f@Ai� �H�/�A4B/ ��� ��J�
�E�4�1RE����|#"���h�m� F�#��IB�`|b2<RH}
�P%<}4��R>�Gљ2�Fd|���ia�ң�dC�" "��t^@/��(�� ���&+�������_����b�@H�
I1p�)C��/�#āP(!��ň���d1 ��;0b
�N"�d�4��P99@؜��� �Z@آ����P6*ˀ��I�r�0ld� �� @��A�+�l��8B+ ��� C/�F��J �IA&X�������B‥�S �@�atF4H!�R(*�(+� Am@NDp4�� ��q�\,�\Z�&a .H�� ��pE�-E�. 'c0L� �p6= A@�bT��@cGCh��6� ǁJ!D��?��X@ y�z�TK%��V0 ڀ(�-@��b#j v�B��S˜qh*!P��% D@l0$����k���V4� i�*6D2L IP�x A��k̀����!B,�>�T\�+��Q@�~���!@tl ����F �p p���(��NƁ8�nh&��38
����LT
�pL�jTs �A;�B�X�@�| ��0��p/@'G�*A�� ��;(�`W�W@P�
h�
l�MD`k�Z� @����@#$`#eEI�2�5c�$�`kȀKZ\���% ���*!�q )�48v5 �1�p�D�'l
�� c@TP=`R��`� �ʗ///.��e-.��e/------+,����������,����U--,�KKKKK2��������̲�e��e.���ʞC���W���_������U������0)I>P3A2�R"J*P�M��S�4�[��h��T *� ���<t �4��4�L�U�t� � ����T�2�U0\��J �w�#�.��Ap3����1��0� ��42��4�@
b`N m�\(�"��@̀0)H�^L��LQ�`2���ܸ'E�J�/�3��<�t�`b �S ��>Z��l��X� �+��_8h�6�UF�S�Q�CH+�A4��[0�d�@P�F2�>�>܈h�+�WH�XK���� �.�+E ���h��a�R�[�`���3��@It�&��j�&g�P8��
 �/�"�@ 8�����<3�.m���\��
��8./�Ũ��l����+j�,TT�VYVQP��� "��mQP8�T/��U�
�X+��I�P�V����%�8�,j��m���S m����V�X��f�apW8c��q��Z�_X �j��n8��\��eQP7���@a�T���/�� ��� �r$�cA��l3�Q�J �%�#a��`N0i!�Ch*H����� 9*�� .�D�"��ˏ� �e��C���3$�B+!��Ȅ!Q �x^�b��z<�����.���������������������b���0��6(� ����,� �I�/� 5�� _��S���VCU&UR5UI\��Ψ��E@]�TCTTUD#`B ��@��PJ�v�7A,i��`6 ۀ�\KlM����7%�[8�fzx 7GP�U��VV�&����4
�,��TT.Vt���
�5�X+p~
�T,z�-pi� �����Q������DJ8�QG(�*�TKD�4OD��C'P���0a� �'�؞&��V$�X�$��H�j#��EDQqB�-��� �6��X �6@�(p�����0Q��"��(�"b8��Fđ$J�H�D�4O��'�
(`�v(��
C�&��h�&�bV%b4���"���"c��6�q��cJ��P��9�- OA�D�eK�����R��,ʤ��---*�2�VZZZZU��R����Y����e�T������,�T������D��R�Y�����<�D� ����`@OBx�<D����tq��cLn7Q��DJ"Q�Dj"bE(�DlID�J�X�$�"H�%bED�����Dlr"b&"c���cq�ҍ(ҍA�$��� �8 '�����H&�b���EDqG(�$�TKı,N��0���0��B�"��(�"��(�b��1�
Ca�,Kı+D�#�qEDP]����` 05���� �;����8�C>�b��R������8�qp��6��T8��W��ýC��x�C��v����8V��� ��:(�A PZ���A*a %�&�; � ڰ����m���yXw���U�\9��8sp���p����*a��u��Z�U�j�C5�p��? �Pf�HEB(�tFTp�j4@6�dllxbPx�(@RPxa�!$/AI��@y ��iM#�iEQFdy2<bX|�����+*<B�$R!�!!�� �x�y�G�E䅢�lw����������#k���f�݁��p�g�ѸjՆ��n)xm�<S�7�O xk�<R��UE<R� ��E5P�Z���4UP�j(�@��9T�J�C�
`�`��n���rՇmXy�S�]K�*�2�%\<��8y�Ua1\%UBZ�%�a+P�j�P�Z�+P�j�!(!J ��A��1�Q��mF�i���q��D�%(�"�F������d��L����%%AI)9IE�(∔GDq$I�qEDLqDQ�F�r9c�ȉDQ�"QE�qIDq$G1�4�eI9&�%%A�����T$�������FTmG"(�"b&"c���n7Q�6ƣQ�4�d*@�b̳-/-,�eT�,�KKKJ���������-,��������iU----+*�eT������R���-/-,��� R����!8��XҍF�j5���n8�lqG#��6ƣ �'%$�hOhP�B�
'�����Q���ڎG#�mG�n6��Q�5�1���#�9��%DLE�qID�J�X�#���c*1)'''''''''''''')���Q��H�%bED�G�Q��&"�G#�r�ݼ��^ ���?���/�z�A��K���UWP;����o*�UP�UEU@>UEA����*���ʹ�z۸sw�,����
�c�_��x)ծ�ު�T��T.��P UEUAȪ���� �@��BAP�7��h#��1��PNRPLP=�|`L0 6H�Ch���F���ZOI$��o"a4K��K�/0>X���a�Q��J�ʅ�QG���H�TE!1��^ ���xC�p\'���;���.���������Z��������zm��M��]����w{�����K��W�� ��k&��j��º����g*�*� z������[�-�p{��{x�"�����]���k��U`խj��UUP��Z��UEQPl��*�3c���$�������|����T'�(P�BIIIIIIII2RT�$�T &� ��A�=OS�3��
IJF#*4�j9���2�%$� �}>{=�APS�$�
IPd�2RRJJJJJJJI�B�
�
���Ϟ�S�Og�&II�(�eFd,�C ��/-.��VVUJ�YJ�KKK)YYVF����iiiiiiiiiiiie--#eT���---+,ʤ�+*�Ի-/#@�C!��Bv������X�)(�� 9��S����|������
� �
(P�=P�A�A��П=�>|�=�9Og)ʃAI)FR0�*3�ƣ,a��h4����B�
RRJJJNJMI�2RrrrrRJNM�����d��P�B�z�ПA����aFTj7�����)�+�a���1�.1�r����S��cQ��u�<f�2�\c���UTTD��+�6Ʈ3�8��7�<g�\c��9>R����Q��U�.1����jQq��*�<X6��Fă�B�"���(/� )A∌�c�4��D��G�iM#��}#�fG�S#�e����^VTx�� !R!���2y ���E����r�P�GE���@#�!^�
�����Ͳ��r�)YNR�9NR�9;���>O��5'YMJ*�jSR��Qr���)UU��G)���c<g���ƫ���q�1q�1�8ƣc�UFu���6�F�4�FV�+Q�6��|qQS�N�:z�9��O��ϟ>t��Y���lٳf͛6t��ٳ�3f��gMS�O�Bz����|����S��>{=�����3���ϟ=��g�'ϝ:k:l٬��tٳ���f͛6lٳT�l�:|���Ϟϝ=��OgN�:t��L�C!��--.�J�$�+,ʢZZU���R��������e����T�----+*��YYU--*��VUK"VZ]KKH�!��dJT�`�k:t�ӧNgOS�3���s=N�ΛK5M�6j�6lٳf͛6k6l٭*l��t�r��g�S���)ӧN�:j��3��S�Ϟ�h*
{=�B{>|�Ӧ�g)ӧM�9N�9�6t�ә�T�ӧϞ�P��� z��ϟ=�>r��~���������wƿ��\r��D���J��-V�%�U������%�n$�_q��7�k��^5׍�����Q�U�*�V#���G�VI �EAȌ- � �D ��A��J ���8Œ ��Ȝ�������� ����'0���I�
��2��D+"a2@X,�0Tx�^*<T���/�
�Y��?!�B!���:8-
�Ъ:�H�¢�����������/��_�TG�?q�x����?�{�?�������U֣j���Uu�����Uj�=��/|I�I�E��;�.�s���k�j�EZ�ĕ��J�Q.���uUEUN��N�9�͛KM-3T�f���͛K5M�6lٴ�M4͛5�M�6l٬٬ٳiSiSY��ӧ����{=����z��Ν9M��f�͛6j�5M�6l�Y�l�i��f͛6l٭*l�iSf�͚�J��6l�:t��t�y���d"��Ԭ�*�e���*�fVVU��eYHd2?b�.���Q���dh�R�VUJ��)T�R�̬�,�e�i� �H����S�)�t����i������j��m-3i��ͥ��i��i�M�5�m4��Ҧ���3Zi�l��T�ӧ3���|�s9��NSi�K6lٳf͛6k6l�6lٳf͛6lٳ��f��f͛6lٴ��͜Ξ�S��9Og������Y�:���?�͹��o;��ڛ��.r���\�PW?���t�UIUI] ������g��:�s���w;����k;��W?S��Vz����5B�/$H`T9�BF$��C�i(<Q��)(:0�1Y���O ǚxX=�ZXWKaY4�dh�tU��(��
X/2\A,d����#I��x�D<B�#�(�ţ���E��l\/!*G��_���/����й�:���>��>���;����y��o7����ugs��W=\�s�:���UIrU�t9�>����t+?�������v���ڟ�W=Vz��Y���U�
�IrK��i��ii�������m���i��i��i���SM7j�[�M4ͥMf�6�5�L֕L֙��L�M,�L٪�m3f�Y��M�J�ۦ�m�U4�M4�M4�M7v��kM*�f�ҩ��i��0ʜB�T�B�Yr�UJ�YYU*��&�E�ZŌV���+b�+QcE�Y�qdX�ȱElV���q[(�E�=!2ZU�eeeYVY�B�*C!d*T����=-4�M4�T�T�T�T�T�wM7wJ��i��i��i���i����3Zf��i��M4��M4���T�U,�K6�m,�Y���wJ��i�ۺi��M4�M-ݪiSiSiSiSiSZT֕5�SJ� �w}�����]��G�Z�)����*��uU�`W�UUF�U��UQ�Z���������?��}�%��.���W^��`���UUk ��kZ�@�1C�Ñ ?�C� M I��A0_���� ��(#@4<d�w<��c��LѣPbFjI3X�L"F��E��0<`���r²�%��\��_*-"�F,# B� Y�Ť@�"E�LXŀ� B��-���-_������������׭U���z�U�'v�ݰ����P���?��B�������N��EV����F��Uj���t�������������P�������k
j��UZ�i��i��n�m�ҩ����SM��M4�M-ڦ�SKv����T�M�f��f��f��Y��Y��Y��i�U�J��ۥSm�mҩ��i��首����[��Kt�M4�M6���f��d2 2<��E�X�Ȳ,�X�,���1\W�R��XőZ��ElY(����Eq\X��+�"ȵE�dY1b�"�G�|� ��d23%����q`������iT�M6ݷt��U�wt��4�M4�M4��7wv�n�n�]�i��i��T���T�T��M7t�t�n��i��M4�M4�M4�Kj�i��in�7t�M*���iTҧVw6��7M��鹵����y�����j��j殚��7T��Y��U;S�˝����oM�sy����y��o;�͹��o7�t���=5�VmT��Z��BJHVH��/����0�6\d,d±&L+�d¹5$ "xW9�g�¡�Г6hVM!U*ª�B�3!&bd*R�&YK�r�`,IP�U�r%"
�jFԌ+<�GB���p�\T����o�����!9W��Z���ugVuf�7Kt����ͬ�mf�y��o7��o6��ڦ����k5s�u�W>���ۛsy�����y՛ά�w;�ι���n��u6��V��MU��˞��iV��wJ�����M���M���ڦ�[���4�M-�v�n��[��t�M4�v�*�Wt�*ۦ�T�*�iT�*�m����i���in�]����ݪ[T�2��v+��U؃űkElX��+���E��,��*Q\VŊ,�"Ȳ,�"�+Q\T�qb�#�/�R+���1Z�"�űR CQTT�q�U/0�X�q`��?M�wwwwwJ��]�7wM�t�M4�M7v���n����������T�m6ݷJ��V��t�n�T�m*�n�i��i�首�4���Kt�ڥ�T�j�Sj��s��w��w|�����y���y���U>��T*��j�AW� ���C�?��^����;�w^}o��S��N��;���W@l�����4� ��Q�Y��A���Ę-�D�$#& bb$�� l�2tↃX�Ii<�k�zU�����Z%̃X�c*d�pl�"1.@\�c�Yaq-c�fH�H�f#���|^ qx^C�\���Qy_^����X��U���W��_?��v���������9}g>�Ϫ�z�Y��U�g��_����������?��U������Uj������P��wwwwv�Ү�ۻ�����������n��T�Kv���-������Ү�wm�t��[t��wwwwwwwwM7wj��n�]���܍H�L�:�[(��& �E��lX��,�خ+��X���Ū:ŬV�q\X��E�,b�,H�+��Z��-c��,H��⸭E�j��-��b�j*b�D�D�R7�����`G��������������*��wt���������黺[�[������n�ۻn�wmҭ�U�M�M6��wwwwwwj��4ݪn�-ڥ�Wt�j���������skOOOMi裏�]����O6��5��j��櫛tꚪzy��Y��Y��鹵���������OM����WMi]===+��Ph � ���B���@�ca$8F0ɲaX��U'$d�t N�NJBɭ!]4��ae�s4B�*d,�D�Y/.�T$�ʅR�0�G"
�jFD���Q��>\^Hʋ
� K)_�����X��_����������zznmi���レ��Ү��֞��ͺj���]=:���V�����mi��<ޞ��������zy�5��M�MU5�sU�������*���������}]����wMڻWj�]���Ү����n۶�������{Www�wj��n���ۻ���E"�Ɋ��A�1 ��,��,�⸩��ZdZ��-���v;��.Qs��v;��lZ��-4V�J+��Ȳ,Qd[�1!D(�ȼ��E"�H������W��������������n���ww��������ݽ��ڻ������]�Ү��Uҭ�nﻻ������������T�Kv��n��O��俧���?�����]uG���UU��R���WR�o��o��_�����C������Z���Z�@� 4�fHl�:�$($" �`�h6<2 ��d��I�� � �� �2p��$�OJ��r@�̗D���K,d��b�C�� �G����C���0!�1�0�#�����I�C�vE�D1���*<T?*<Yo����� R�_��Uz�UZ�o�߲_��������?�^~�����V�k&�Z֪�R��ܟ����_��}���UY>��U�*�W�uj�����n�����������Ww~�����ڻ����Wwwwwv�ڻ�]�ww��������������������L�E"���EI�!D!1QakE�\WEqSň�T[���T[1duGX�,QlZŊ-bص�+��WEq\YE�*@BQD(����HY�E"R8��]`����������]�������������Wv�wwww��ۥ]�v�*��������������������ۺ[�v����Ӵ��t��茶����痢]��_uW�U��========5�����領��}��}�����]֞���qb bhO@��&x�9F�A$8Td+��
��U �$���Τ,�
ɰ�KHI���e� ���f`+I`�*�P�VT*�R�\�FD������r!�b²�������[������`�_��W����Zzv���}���}=��ޯ�ӫ�wU}����U�t�ڧ��n����}��֞�����w�OJ�]����zuMU5T�wwww����Www���wv��������������������j��w�����������~�����r9�E"d,�G��Ab TXX��,���+����Xd[QlYEiR��Q�,�"��ņ��1\W��,�TX�H1D(�.@�T�H�R)������� #�������ڻ�����ڻߵww{����Wv�ݿw����Wv��*�����{Www��wwv�����������m�����o��O��N���=y���U����u]N^���茶o^o[������������:������7��,2�P@)�0y�� R(%�`���Cb��9 j 2�� �JHaP<ѧ��� KB�D*��TTҢ��,`��S%H
�P��c%�ʂ�F!���� H�"�備r�K� G�"X|���������$���U��U^���{��鿧�������?��+�i�ZuZ���������ככ�?��?���������7�7������j�~���������www�v�v�~��]��[���{��wڻ�]�������wwo����ݽ�܍�ȤjE!��d2�A�1Qak1\Y�\T�LT���z�z�.���y��^��^���,T��(�+QdW(�EH1!�KHd2 �FȤr5�������B@�������j������߻�����������������Wm�������W{ڻ������������������������������]����Ү����N�������w�}��[���������]�������P�*=�!��� � b� 1��YxS<��@�N�� �� ݶ � ���UPn-A����2�|��� `ɀ�\�p�]K2C��0B��R�e.*,�ť����o�����n�����Z�����W�w}��������'�}��]��}��ꩭ��Mo���w}��}��}������W}*�v�����Wj��]����������~��]�߫���j��{���m]������������߻���������C!R �H$���b��ȱ"C���\���[��!u��^P���/(^azT/0� � p��mB�.C�D$E��"���� �H$ �C!d2)�H�������ֺ��ֿ��������~��^��~���w��}]�w��{��{ڻ�]����BH��߻������|`�XA0��������������D�'��o�u�}���{������������������������������_������������������������������������������������������������������������������������������������������������������������������������������������j$�Vli�!��I(��0� 4�N8��4��<����?�<A��� ��<��<���8��<�Ï�D����?�c��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� ����d��O�D�����O�4������<�������?��?����<���8�<����4��8�8��8�8�4� 0ӌ0� 0� 0��0��4��(��$��$� $�$�J$�H ��@ c�v=��c��!�?����S3�dP�$�di$A1�i$�$� "�i$��@X���`�b��"����w��!�����ɘY$�+30���VHـ�h0`A���0 �xx0@x�x ����1` � ,4X  ����� ����X�а���$( ��"��P���d�d@.
�@T�0T ��P D�!A@��(( ��`R��a���������o��<��$����F�$��#d��I��Q�.Ǩ-cص���������Ɯ�^I����$��RHd�+�4�&DZu�v:Ǩ�}�����?��"�3�6H��$�$�#Hd�*F�BH�H�����Ǐ<x�dYV��{cǶ�G�Ǐ�:�����ԏ��E������h�Z,��#�E������踸��Tx�G�Tr�x��x���cǶ<u��h�x��Ǐ<x�x�� C�/ �F�� BP�C���r A�l�86 A8'�A�tA�tA�h���H6 ��lA X����$��(M @�/ C�2�y���y<������~I���ɽ���Ǐ<Y<tx�<t{jDZ�r���Ǐ<x��Ƕ:DZ�-����-<x��ődttt\YGGEő�u99Ǩ��<x��Ǐ<x�G�{:<tzE�"�q��Z-�G"�hkCR����\_1s��|_œX�#,Y�|Yř�fE��a0�!�CL�� 2d7C\7C\7������|_���c&.Ŝ_�y�ز��4�i��!�CJCL� F E��A`x�6 � 80�@�����00b��lZ8
Eŀдp�xXIӀ~4`�
�P�E@lT��جTD��p�@|L.&�q�p6
��AA@��PP��
AB)|�<��y���y�����ɖI$���$�r�F4g(ƌ����u����.b��2c ��v/"�/#�La�I#20���q�Cxk��o �7���Ld�L_�q�g�q�E�^F�,ab̌�!�CJCL��CL��<x�dYE�dY��ն=X�{lr:�<x�:��tzGG�ttu���E�����h��h�<\Y:,��#ڱ��r��*<rǨ�{��r:�:�=���R<Z-�E���Ǐ C���/ �^"0&BPx�F�$A$ ���6 �5�4A�|A�A�=��L�d�t�`�: ��" ��0x�JDE�� ��� C�����^K9g���ffd���zMɤܟ��Ǐ<x���G�Vڶ�Z���<z�x�������[i<r<x��Ǐ,�#�GGE�dt\YUj9j=G*99���Ǐ<x�ԏ:�ԏKKJE���h�r9��@�j������p_<���|�\ɐY��d���JI�ILi0@�I �di+�AoX�� ���`����_r ��gI����A|i$$� y&IF� ��łņ��Xh�� �`,4
��0�0
��@�����8���-`�p�`.+�.&.*4�Q1��1P���Q�D�@�� �@��\�\,
t(�B��@ȠdP
 ���ߞ��?�<�?�y�&{��L�L�rL��=]��\�V�U�o�_<�������I�!�$�s2@�I#H9$�A��࿰_6 ��9�������NL%$���� �$��I�#H��Ǐ<z�[Vڶǫ�m�G�<x�GR:�G�tu)Kc�����h�x�r<r:<tY:,����-���r��,r��������֑������G�<x����.Ca !r�#���$�H"�C �=��6 A�l��|A�>�`�6 �H6 �<���X"A" F��D"1!�x] � ��%��K�>K�?,�g��g�'�'&瓓{ܑ�ǏG���m��Z���G�<x��Ǵ����m�:9<Z<x���Ȳ<x��,����U��=G�cǏ<x��DZ��=#��R�X�ZR-�G��G#1�_(�~?(��b��/����dY�fE�qe#�E�X��|Y$4�i$4���Cx��X����.b��/���ɋ��/�1|y��e����e�� �20Ȁ����XLX���8��#� 8 !��`4�@tx�::8G�����G�����ƀ�����R*��P ��2@ȨF���F�*4&*4P((ED"�����6y����?�<���g''&I�NO.\����Z�X�G���~=�b������/�,^G$�$|�q�9Ŗ<�rE�3�2�� ��{DZ|u����2b��3��/# ��y�,��H�E� 20�4�<x��ն�m��c�=�9��Ԏ�u#��c����,u�:��G��:<x��9m�Z�c�����r����{c�[cǶ=��m��i<x���b��+
�b1F"D@p��I`��9 ����:��)!:��A�tA�A� `�� "E���+
��C0C�3��y��y���)��L���OO��NM�{�x��ǫm��r��j9Vձ�Ǐm-�u-,u�:��m�x��ǏE�V�[�c��DZ�9�#Ǐ:ǎ�{DZ�֖:�ZZR-�G#�[�wl�W�v���S���I&K$�rF�RH�`NcI2cd�Rd�6H�H������w�;͏`S��>rg�9���� �d�&�9�I�X�`Lqc��,pX���q��8acb�c* E�E��LX��,q��8�ŋ�4TTh��Ȩ��A��@*** ��E��EB�EA!��CE�h4Ph`h�����aQ1Q���^��+m�����������4�I��$��$l�'$��l]�;V�,w6�)���2^I��6H�`�L�1�i&b�I$
����J��p����?��Os� &I3���d�0*L�$�#j��m�����l{lz��ZZZZX�R���:���X�X���dx�����Վ[j��9jիV9m�{l{m���m��iJC�,�aR�aX�F#��b1�"����Ђ���:��tAH)A�tA�t����DH���b1�F#
°�*�ab�3�<��%˖K���g�fO��&���{���=[m��m�m�V9lr�m��:���Km��m���Nj*9c�9m����j��<r=�G���G���x��:��:��[c�u��Z<{����}(�~?1�_��_H�E�.�g��G29$YH�Y���ǒ/���\��z?(������������,��/#�]�d~9Ŗ9�8�|�ǘLqhEPQ��<pk8&., E��cG��G@�:C��́�4 � ����(
@LV* �EA1��ѱ�ѱ���h(64"4�����y�y��~f�<���~�<��r��\ȽG��wG���ZQ��.c��\��<�8�G�?R?#��>G���q�.b�.c��=�������/�������/�8��dY�e�IH�b�X�m��m��V�r�����c�u������������[m��m�ն��G#���r9j9c�9c��G��=�:���m��m��д��*�"HV�aTF#�¨�F D��D�Q(�Dp�8(8(4<hP���D�Q(�DX� �"1T��b1T�aXV$D�*AR
�Ш��s˗>y�<�3���?�<���rs�Im��m��m�Վ[�9lu���Z[m��m��m��Z�9m�媱��rǎG���=[H�<u��GGZR�R�m--,g�����2�桶\7�2oL�a�0�L�I�FY����1�Y���.�*\e� V�j�3�_x�xn^�c �91���O1�r@�4Eh#�-�q�Zh���E�аX�łŀаX�����8�.`p�@Nd2I�(*  ��Ш`Ph�`P�C"���F� 4Th H�*F D�����o��oy�����9��fF�$��2s2rE��owuF_�����������Nc3&0ɒ2rbϒo��6�{ ����;�rL7�%$���4�&O$frCff��m��m��m������KJR�m)m��Km��j�m���mUZ�����{m��m��m�ڈB�J%�D�$H��hY
°�+
�0�#�Q(�+D�!HN�!4&D�
ĢQb�F"0�
°�+ �-D���D�P�!/9�˗.\�Y,���f�}&�I�����Ϲ)n��i�-��lr�m��m�:�m��ʹm�m[lr�V�-X嶪�,{oKm���ZR�ic���:�c�y����}G���?�w��[��1��~?��e#�̏Ŗ?��~;�ť��������ǘ�������>G��s�q�9ǤzA�P�PzQ���Q((�<r8(:,:,���E��;���,������ L4qPLR* ��Ph�H�<U
$����$1����<��<����<�����y�g�rs)��e�ܤy��G���;��h�~?m�{ُ���s#�|�q�?�1�=#��:���1���h�~/�c���c��/��2,Ȳ�ȲŖ>G�<��u���m��m�-��]��m��m����m��m�9m��m��m�m�m��m��m��m[�"��(�J%D�$+
��*D��*��aX�F#
B��) �)
B��'
B��)
#�±�*D�HU
¨V$D���D�Q!�"�<�d�Y,��y��333'�<��I��i99��Z[���m�����m��m��m[m��rڹm�ն�rڶ9��m��m��m�����R�im��C�>��=[wj����c�y�ӒH�cfH�H�1�$��$��mT]��c�Z�� [ox���_��$�܀�cI�999&*Li0c����GA���hj-�� � ���`��E��<���<7��0��^'!AQ�4TTh�dT.*F**4Lh��*B�EH"4.&&
���������m�?���3NI$�&'2L�$�L�Y#I ����[j���� ��2I0Li1Y#I�9�+$��?�x�x Z�����cɟ��I$�&)�$�̓��Y&n��뮶�m���m�m��tu�::�m��m��m��c��lr9���m���m��r��m\�!�D�dJ%
�$IB����+!h� 8q ���)
B�A
B��)!D)
D!1�$9$B�$+
Đ�*B�"$D�U�B�J%�DR��r�<��\�S�333333�d�rs�{�rrI%���i���m�m���m�m��mʹm�V�j�j��ն��m��m��[c����[ly���~?G�����1���.Y)�"̋2,��G8�s#�̎q������v�h��kom���������~9����6H��## ѡ���AA�=��E��G�� #��4��E��bh%��V L�K�ѡ��hU�ؘ�p�*"��R*
�A�41���h$&8�")?<�6lٳ�<��<��?d�瓙&fI�s.RL�G��>�Տ�h�m�{��/r����d~�G��|�c��>�1��?b�c���<�������w#����e�$~9���9�Km��m����������m��[m�ڶ��m����wu.�n�����m��m��Ȃ!�B�JD�Q(�%
�(�
�D+
�P���BP�(*!
D"�B!
D"�B���z!XV$�H�%
�Q"%�B�JD"�)J\��9���)�fg��f}2s{�rI$��m��u��n�m�����ۖۖ�m��m��m����n���m��-�m���m�ܶ2�2ˌ{���[��.�_�y'�&�s�̒H�L�2y�$�2I&3WuF^�+TcW��l~���1��9�,���rFId��&#�����h1G@}��E�� H���蘲8�� ����'��y��E@:El,h`TPT�D�H���4�"�@x�!�B�`2(
��Eٳ���7��x�x��g�rf4�g1�I2O2NIII"��Wb��vl[���ߏ�������H�l�d�#'&.L�����e�e�F;��/����,�#��rda%���0����--��m���ۿ������e�m��m��m��m��m�ߺ�������-�*ڶ�n[V#"�B!hZD�Q$J%�D�DDXJBP�' !(PTE��B!D"$(,% �% Bd%D�Q(�J$D�P� BЪ!�FR���s˖s�>s����>��s�99���I$���m���������o��-[�m�ەim��m��lr��Kw��[Ym�u��m�:�j����y�1�}��{���;ܧ{��9�̏����i%X�����v��o{���7��ܽ���>G�{�:Ir FC���Q�������x
��2� ������. pK��*�b�lkz��#F�ƑPPV42
B4& �0HP�y��f�����y��,����'��I2L�$�L���}m�������{���N����G�${�G:IV?����?Gw��c���~9n^��ds��2?��s�kMim��m�۾��m���_���m��m�u��m��u/�Kۻm�����m�-��UȌF"DA!hZ%�D�H�J%��8H�М' !8Ph��Db1�A
��N��I �p�@TJ%�(�J% B�$@�"��fR���.Y�)Ϝ�?�'��O铟I��nI$��5��kim�K�_���寶ڷ*�nU�m���c��w�z^��m������c���V�2�m��x��?������fHi�2O�$�f6`�H�K1�A�����{UU �{�~�x���3�σ ��&I� &JLi0 FQ�x�A�x� @#�j��0tu��"�i�i���.4p&,4qr2H�'�D�B¡�P E&�6.��4h���C$i�h\L&&
�� ��
�,{��+��S�����+��b�3�1^dɒb���䑤�e�mp^�����3����g��|�& �I�$�2I&�$��M��uv�߱���g�/��<7>4��1��F�&6i$l�ZkMm���Km��m���e�]��m�շ5���m����Խ�-������[Vܫ�j°�E�"$D��I�D��J��
!8L��M �B���F D� ,' ˆL��M �8P�С
B��P�H�D�D-DQ@��HV�J^fr����|�9�����}?�~}''���Mi����n�.�_���/���ܶ��չV�[m��m�KwoKm��������m��V���y����������N�w-�29���2�G29���[������{ٽ�{�zw�܎t�$zG:Ir��FC���Q��(�メ�IR�8I�X���GA9 ��$4T Ec@����T�q`�L�Ƅ�2 ����&)
C�<�f�<���y��y9����2OْfL��$���j����7�{7��[r����i$s���r9܏Տ�h�v��{����{ӧr��Y��2?���9�Mi�-֛�������������m��m[Kn��mԿwwzn�{�o��rڹW*�I
�1�F!D���HZ��"�)
B��)
B��(B��Db$E� ��
B�R�!HN�!HR����hZ$B�!��F#�¤H�J^fO/����s��?��}2|̟?';nI$��kiu��w�}�����/�r��V�[���m��n�[��_��������m��j�����~����{��?�&f9�G����I�\�I$���.�2�;����o���g#����H�9�$��M$����E�ŀ�`0b00E) P� ��#H H�G ��Gq���p���F�`�1��*&*Q�b�:�:Q��D�� 4�H�\P��P0(&*&(6�7�m�ox��{���l�'1���3��II�I�E�������{�����$�I��g�$�,�$��$�}��c.�}�x������Nq��<_<a'1�I$\��֚�[�-��n�[��]���_�նۙm�[m�����7zn߶�-����[�r�TD�DI��b1� Bв!�!HR�!HR B��B�R�"B��@p�)
B�(B�)B��)
B��@�D!b��H�F#�Ĉ�%L�K�̗��9����?��~d�3���m�&Ժқ[u��������_����ʫ����[m���wwK���y|��om���rǛ�m���{ٿoze�)ܽ:w�I#���G�^?��ڭ�{����r�4�����4�=��#�E��`�c��Fc����A t�2L�����q����px����H���P84���X�ZZZ�EP�#A1DP(E��EB�hLh���6y�~g�l�y��ϖd��'��?��d�&I����Ǜ���{7��r巶�9�r�H�\��#�}x�~��{����r��r����H�G�G2=�֚�k�ۿ�w��+�Wk���Ym��ۚ�J[mԿwK���鼵�o����*ܫ�b�e �X�J$��b1"F!�D"�)
D"Q
" D����AD!B"�)
D"�B!�£D��F$D�PV�H���/3&S��>S�����̜�������;nI$޴�җZ_�����y~��j媹�r�]m�.�[�����mv�|��k��[rհ �����?�Q�L�<i$��N@�3�1Y�cI�&F�Z�/���{���������rL�3$��$� ��\ 0
�����0`�* ���@x�X`4 ���`G 4pc��� �$��,EF��DƁqPȨXT24
���ED�� �DC���\ �����P.�\@0 @�`@. ���w���2
<3��y�g� �y�x�'��7{�>�߀�߿�������nI�d��2L���{�;��o�������L�̐\���W'�紺�[m-��[m���k���|��m��m��m��m�.�Է}-���m���նչj��I "(�F#"(�(D�)� �����aA���!C���C��:���!B#�0��a�HR B��D�"1�D��� ?�?���`�����m����iz[��
@��k�m��[m��j�V�wm�-��m��k��-���Km���wc�������r�c��)Ƿ���y#��9�8�>����;��om�ͷ��zw�^��1�=���0P���`�h-@� ������h���`@�@������F-#��⣁~� @�@�h�P!E@�T��aR*�c@�L�Ȩd �����`h\ ��H0���EC�\�?�?���y��3?���_����m����{ǘ�~?�oN��{�i6i4�L~?���������������ӳ{Ƿ�X�~?�����m.�o��w��m��������m��m��m���Է������k��-[m��Y
����1�B"�!���tA�t��B0� �!���rC��B0��F�!�r��9A��Q"D"1�D�aRB���?����)A�����'�u��woK~����m���mv�rۗ.[m��m�om�n�m���o�{k��m���x�����������#�ُ�E�8��Y�91dӋ�Fo��=��x�����/������|��9&2K$`T04�@d4 ��A`L�h 0
��^� �� � �d8h��z8���D\� �ThѢ�cE�d*&*EDƀ9 �@��`������*&��*("&
�@d0$ �@�2 �C�������
Bsy�'��d�|���/���ǿ�_<_�����1���&9��y�\�����=�~�����_�~Lrg�$�s���#?���[K������Km���o���|�[m�n��wwwu.��o�����߷��-[��H+
�$*�b(�<X@��R��|����t:B(E�0�#�>C��q!F�a!�t: ��|�|���*#!XT��R
ď��������q?�'�����ZZ[u.�~��}-��m��/���[jիm��[��]�wKm��m�-�Z�~ڶ�m�6�{7��{�?{�?{Ǵ����^�씚L|��m���{ǛǛ�?{�>^�.\�;of��P8, ���E�b�E����b0�#x6 �d ���.<p,:888j, L T ��c@��4 �Ɓ�00��`�0"`@(E�PPP � ���C ��2
F�<�����l���y<��?����ϑ�<���o{����{ܽ�r�>ns{�,{���������ͷ��{َ[�-���/#�|�����K�[�-��o�|���������KuԿwwz^�v߶�m�������-XY
±"$�ЉB#�H= �(A�| �C��t#�C�"C���|"�Ht:á�����>
�)�R�a8�P�"HV���_������N��?������[i{~������m��mo�y~��ڶ�Ko�߷��oKm�������o�_m�a���?�������~o��L�'��s� �rfr }��;��;��o��f�4�쓑�?�0ܙ�g�X �X�Ń�A`�` ���Q`��!  �( J ``�`T08C�`�c�X��*#F� *4Ph��A� F� �D�D �!����d8T.( ��, ��E��PȠp�*?��������{��&L�d�������?���;��?�����9��2I�g#&r6I8-��3��7���� ���ܙ�xϟ����<����o�t���m����/��/��y{m��~����ݷ��-���ח�k��텑""8|"C��q!�@�!B!�H)>�����t9�C��y�C��:�����h>
����!BqC��q���HX�������g��������'���%Ի���_�o����k�~��/�����ۺ[������-���mv������[~ٿo{���{���\�rޙ{��r�ӧ{���{���7���;��-�;�杼�F E�, Łqq`Xd`�"��b,�P��X�X�������]�ǎ� ��.64 ��H�064��� �
�$2A�!B(b���qX�
E@Ȩ�P:*('�������������g����g����{���{����r��2巧O�t���{7��x�{Ǜ���n^9Kӹ{�r����w�ߥ���m��^[]�����~ז������Mޖ�����o��_m~[�aP�t>!��|:B�"C��B��Јd>����|:��y!��t<�á��@4A�!B�B(F�Ht>�!��t>������
P��O��'~�}�/��v�Ko��������/寷}.�~���[��~�-��_/��k�����{��������qsf9�2c���;̗����~?�vl������2w���G����0&��a��j,4Z,4Xb�b��c1 C@�,�h� �� A`,  %5P � ��0�D�1�h#C�P0 �; �C#C"A� C"Bh�dP1@ȬT2*��dT����f*
�y���=����{�3�sy���g�'�����������{�����Ly�L�y��f�G�=���ߏ�=������9$�9��c�����R��w�ﻥ�m��m�����v��_�K�wt�7zn���[m��]�/���_��4�
Ð�|8p�#�C��z8F!Ѐ�@p�8P>C�Ã��N �8'�� ���C�"��!�Ђ� !�:�ap��t8�Æ_,�������q?����'��wK��/ޗ����_���������_��~���]��m���k/����������{߶
4��;�)ޝ�ӹr�7��{����{O��.sN��� �10&����``Z8�Łaq�`a 1�,�H,C`�,&,��� ����Q�"�@��hdC0�P��H�D���T
�@��T
�P0+A�PăB��~o�?6y������_����?��{7��߷����z|�霖ޝ>o�o{����{�(�ޝ�ܽ�ޝ����K�_�m��Y{]��k��t�/K��Sw��
>_����_��lC��Ð�t9�C�Ќ#!Њ�D�G8PA�tA�lA�tA�t���DhEB$>!��#á��t8�C��>8&A�����������������������~��H �y^_����o��/��ޖ
H�|�_���� �����(�����3&@�rfO�g�`��������������`�I���&I��`�0@L"�G � �  �<4A�L4�h ��&04`��ᣋ S �I$�xw
�"�C"����dL2$&: � �������XT2* �&4Ā�X"������������d�&y�y�g�`����� ���療��Iəə���{��_�����9?�Lɐ?�d瓞N}������������{�w���������ޛ���ۿ��^_���_�l��P�|>�!��EáЉ�0�r ��;PH2A�r �A�8�Pq����$ H���8�B0�"�C�D�C��8�����`�������?�
P�����{���_�~������߿~ח��}�w�����-�����^_+���������~��
@os��2�)ܹN�������{��~�G�>i�{y����`d\p$ G�����. 0�4�PX� H�h ��� <I� =`=`?�hT ��2-�HhH��Hd �����*��@��A�h���hX�,o������f
>s��f|��L�2_������ٽ��{ܷ��˔���������{�������r��ӽ�^���o�}�,����w��y^W����^��7�`��y/��x8��lC�BD>�!�t"�C���"B0�����L2
A�A��z��P��R ���H��$�0�C���D�C�q���$8X&A�y3����������������������v
8_����/��[��_��黿��[_��_+����ח���{�����?/��o�rO��~�d��?=������������g�=Ϧ|�@Lp@&@&aa��q���A`��4 �t����^F�� d �����䜐 ��C"�! �C �!�Mt�A0TLA0��E #Dƀ�h�� �. ���`�����������ɟ�|����2d�&��?=�����������g)2I~c�&<����?���{�~{��Ǜ��̑�Ǔ���&I�o��߻��������_�+�~���߿~���������-���o��+��:A�l<T=����|8�!��: `���A�a�|A���|����v�`v�@P:!���È|>!���|A�w�����9��)��?�������O~���t�l����}���wM�t�z_��(��]�^_�������`��R�4���r���m��������6
L��9�����0���@LB�����ぁ��`d4 �� ���� 0j H,,8�� ?0�
F�0� �$2�dt���&�a��``N("�`lh #@��T���`a` � ��y���g��l�����g�&,ϓ$������߿�o{�������K~nrR��o{ٽ����7��K���ӹm��9-����o�R����|�+�߿~��7M߻���I������@4 �4�HxВ�����|>A��F F��D�0F ��)�Q= ���#PEPF�$�C�|>�����H�� A�:AAQ?����Y���
8������O}�n���t��������򼯿k����t�wwm����m�������^W�������?�����7�<�"ə�ȹ�O�/���������?��������L����$� ��` p&����qh 8�
��,�Q�dThdT�<4,
��4 ��c��@��`�LTA1!0�1 ��^Qh= E�
ED���QA!�cAQ��@
���T( ��B�q3��7��o��������>7���I�fb�����?������'�<s?���d�$���x����?���??����y�$�y3��7�}�w��K������߾_+�����ޛ���n�����/�����DJ$C�A�t�� C�JBp��E�H&A($�PN ��J A(% ��
AH@�84�PJ A2 � �($A(&�D"*BD' �= C�tD�I�������O��̟����~���n����,��������+��t�z_�����������y~�l���~������g�O���2������{{߿��߿��{����i������0 `> Ȳ8H�41HCc@P4�@��hh ��j��q�U�p��d2C 4' �И�@P�(�4<p"B�@СB��25���� ��`�1Q@x�S3���y�����O3��������^��g�����������ߛy>��{=�������{����K�N������M����`��������^WoM�w�������Q���~W�Ȕ*�B�U C�P���(< ���pI�I�� � A2 A�a(AD!��PM�j ���D ����d BP�= C��@LDhT�H�*D�|�/��N򙙙���'����7������n�k����~�~W��߻�����Km�������~������������/{����$�7)2I{����=�����������37̿0�`0��x���(���� 4hq�L�  4h���CC@�����h��h�� �4 ��bbaq0 "��������b�
�4 x&
��
��>&
�� �����������s�����d�I�>�{�����=����f�=��7�3|������{�����o��L~�y�=�o�Km�������|��^U7Mޛ��������`��}���-�Q"%
¨U ���4$BB��6 �`�:
B$8� ���l����!A��N ����x���PR�`�6 �HHT$��J
��
ĢHT�B�/������9���������'���~�����������߿�߿z_�������������������������O�����im�rR�����߿����������K�s ��F��p�`&20�@�@�iY@��D�� 8�0�!�<�@�0"�>(*(���EEA�ƀ�(�2� �(4���(&����@R)�����������;?�yg���L���g��~���r����-�io����������i���L��m��o�M���K��������|�+��n������w����������D�h�*�(V�`� �aXV�°�*�°�+
�P����`�(&
�`�<hx��aXV#
��+�aXV�aa���aX�I
�(Z% �|�?����������2��O�����}.����G ��寯����M�����m����������0Q�
?�����$��<���񿓜�
_����
��@G�)��9����`Ph �4 ���4 ����@����,PX 0
�������`� ,B-������+$.E`� X�dT.*&4 �C�"Ap��X2C"A��Ȑd��!0�0�� �"A� �����'��O�I���y�G����O�Q�|����<��9�����[���Lx�����d�cNf~~���o���m��[����~ח��~ޗ������Km���-�߅�x]ahZ��Y !h�J$C��� �R
AHD��y ��EDaR#�Q�"MBHE ���h0!��$J% B�,AR��h+ ��/����`�������K�����m������_��k�}�n�wo���m��m�����Z�߷���������7������O�w�r���~߿{�������r��{�{���p���� ��CPЈl4 ,40` #Ł���q`*,�#���Gmv� l�,T���*���V("�F��h� �"���1P�DN&"a�q0�1���f����0T��_���{����`�F���r�9�7��{��{������{��oN�;��o����`�����/��^_�������n�H k���k�x] �� !hZ��h�&��$$Bd(*"�|��(AH9�aD�HE�F
 �AB �@�HLhPXM !"�Ȁ�$- Bд- U �� �����
������/����,-��_k��ߥ�/�n���m�����^Z�{�?������ߛ�y�y������9�~?������������|�L� ��0�c�,004C����`� �@8 a��`�qŎ18 �qc�j8��5$�Q�$(4���Q��EF�p40( �@9E"��@
���0,& ���0TLTL,�=���Ty��y��{�������������g�zL�g#ߏ�����{����<�������M&9�勵������m��������-y~��t��������m���������a �T��,��V��4&��(JBHPT@�D"F"�!1ÇB0���B0�8hLh�"1B!B��D&BP�% �� �p��+ab
��!x`�������������ߥ��������m����k���wK�����`�������^Z��7������ޗ���O�巧{ٿ��f��{�
4os��N�i�a���#�G88��E��q`l\4 ��p4L`$�Dx�uG������r��085��ti ���Hlh BdL ��جPb�T
� &) �������:?�����o����~�����ܹ�����4�~ٿ~���o{���{�t��;y�N������R�������~����������)C_��o�ax*��V
¢�)
Bp�&��"��8J"B!�D"�F!TF!�D"�B �!A�(N��$' ��'
B��)
���V
�R�����`������}��w�.�������_��/��w���������m�������������?��������s'y�<��������?���x�����?����>x�?��X,X �8� `���b�E����`T` 0`h �4 ��E�E� Q�h�4qc����h�Q�cEF�Q� ��
��� B�a�aa0
��QAPȠTT2* ��`*&*
�����
����N��3��$���$������?�������8������������������O�������g'?������-���������������������n���m�k����P�$�B�Q
")
Bp�(��8M �p�&�b@��"�D"�B!��!DF!8N��N�R�!H�!B""!�?�����`��?�������_��������o����������K��-��k��_�������o�6
Hooޗ�g�O���߿~ٿٿ`�K�{���,pj��@���px�8- E��(��������8 �A%A&�MZ��h$cA!��f4
���؜Pbq0%�(���T
�@��FƃEI*)����o0R�g������ٿ���߰R#������o�f��7�7����;~��zt�������K(o����������M�/��R�������ED�X��Q DR�Ф&�!4&��8N�b1�DbB 8Hp���F"D�F��8N!2��R!HR �"(T�b$+�E������0R�����������o��K�+���������݀�������������{���s�?g2�)<�&�\����������/�{�������.,08��P8�q�d`��1(��рxh�<4q��h F�qa�� �����D� %"b�x�*&L&
���L"�b�&&*4TP��h��Ѣ�@N4Lh0T@���������?��y������������������M���7������������~n}����'��������������W�����K��鿦��n���k����-�D��bB��D�H�B��)
B�� �HN *#�����t:�C�И����b�p� ˆR�!HR"$*��XV"�F#"|�������(���������_������n���o������_�.����m��m����o����������(��o������N�������߰Q�s������$��LYA!��c��!��C��CŁ�h�%�Q��+ ���E�)K�� p$��`pTq0����N(��L�@HR* "����Lj4 �E@�������6y���<�?�����~��o�g�f�H������������~�F��~��r��4���K��X)9����������������-���DQ�B#�D�E!TFB��(Bp���C���t8����C���|<����NB��(DaR"���!��"�"C�����
6S32`������������RB��������w�/��)!������������>x�fL��<�_����/����/��g�8�f''���� A*8���E80q���pX� x`,
� 0X�q��2�&r{�'�X���A��Q11Q0��TT.(�P.( �  0h��A�6*
���P.`��
<`�FI&y����/����_����_������2y��y�;���������������g9�����݀��������w�7���0/��k���=�
��b1B!
"�)
DaX�BhH`>�D�P�|%��HH���(|>�CA�|$("A
�aHR!�B�B!"1�@Xt<�?�����<I���?����o��L�+���������L�/������������{����ϹK���Kf���7�{����������x� �Q�58"<`"-���E���$h�.028� I\ p5`n`\T("c�f
��b���P"���h"64F�cI��@�.x_����y��3?����~������������~����������������7��������m����������W�����o���[m��������=�C��1�E�D"��D"��(FC�!0�&B���!HR!HM
BA���#��A�"�A�D"���bá��y�����8?����������S�����_��������m�������������=����|��ɗ�I��M�����������6o|������ ����c��qh��G E��z00@�a0Q�x�����w�X��*(
�<E#�⠨�`PE�P0*���F�q��A��!p ��@� ������
byy��������������������9I������������������{���M��/���G�k��+�������������݀������ʄ��|=��#��E"(� D"����R�!p�H��"��I BHJC�!B
B!���B ��"��D��b(�!��H������s,L���?�%7�M�������o����_�V������`�������������=��&��?����=�=����)a���� �0 �`
����&��b��!q`��h��L�#�b0 � ��e�����q��@!"`D&�B�#EDh��$)�b���4I��@�\`\ � �����������&���������(Ӗ�����������{*{��nޗ����������������������)[��_���$>!�Db1F#�! �0�!B$ �HB(Bp���2��x��"�EB�#���"�#��H�F"(t9��D%�������`�O���O��������݀��������������SF���������������{�3�3��37�?������������������`�H �������*8X�M  ,q` ��(F����*���x�x��y0V� �L ���� ����z:1`*4TTT0*"�B�EF�+ �!p�\ ��`@0�������?���$���=������������3�=���?�����?�������3���3s'���v
j���������7�������� C��|>��$*��H�+���C�F�F�P�8�a<P' ��' �8x���"B#�!F�D��aX�E�H�C�|>!/��`�e?��2`����������R�����������6
�W�k�+��6
|���O����������)���ܥ��Y�b @b  x�0=�ph��%Ad �@�����F1F\�/#A��F(E�����#hhh�� ��cI�� � � `��`��a y������������F��'�=�7��~�L���K�������G���y��)�����P ��_���������P ��\&BP�=�����
�aXV# ��C���F�C���t:��!2B���t:�C�F�C���+
�aX�C���y BP��?�`�333&
>������
x���������m�m��?�W��`������l������^�y������y����`����@ �X���,p` p` �Xp�,Xc��T��h��Q�$"��  �<b0�`0*8���� ��P.(E��$ �(� m�Q�2**@�Ш\p��`h`@02"!����=�����`����L����?�(��{&^�?�����������7����M���w��)#w�������_����?�����_��
H��Bp� !(J���V"8|>!��y�C�z�C���HP)
BC���t:!�t:�C��t>��GC���J��M �����*A��������`��������Q���X(�_�_���������J_���o�3���~��o���{��zv
8m���Z `�, ��0 ���4 G��@��
@��05 `aE�q��\d`@��`��qH���TP % D�H� "�4Ɓ���� Cd0��ba��7���* <��L�����Rg�Rd����{�{���o�(ѧK������K��(�n���+���/���~����������(���p�% !2��J��F�����|>�Ð�|>C���t: �C���|<�����q�����|>�DG��(I BhH��8O?����343'�����O��#~�IJ�����������)k���+�+�

148
Assets/ScriptableRenderPipeline/HDRenderPipeline/RenderPipelineResources/DefaultSkybox.exr.meta


fileFormatVersion: 2
guid: a615f6de0224d55408b4e74da3b0bac0
timeCreated: 1502446591
licenseType: Pro
TextureImporter:
fileIDToRecycleName:
8900000: generatedCubemap
externalObjects: {}
serializedVersion: 4
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 5
cubemapConvolution: 1
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 2
aniso: -1
mipBias: -1
wrapU: -1
wrapV: -1
wrapW: -1
nPOTScale: 1
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaUsage: 0
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 2
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
platformSettings:
- buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
- buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
- buildTarget: iPhone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
- buildTarget: tvOS
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
- buildTarget: PSP2
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
- buildTarget: PS4
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
- buildTarget: WiiU
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
- buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:

9
Assets/ScriptableRenderPipeline/OnTileDeferredPipeline.meta


fileFormatVersion: 2
guid: f3fc0327e8ac441a89bebf2193a37f38
folderAsset: yes
timeCreated: 1490047261
licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

203
Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smooth0_0.mat


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: Mat_Coat_smooth0_0
m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3}
m_ShaderKeywords: _MATID_CLEARCOAT _NORMALMAP_TANGENT_SPACE
m_LightmapFlags: 1
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses:
- DistortionVectors
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _AnisotropyMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BaseColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DiffuseLightingMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DistortionVectorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissiveColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _HeightMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MaskMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _NormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _NormalMapOS:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecularColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecularOcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SubSurfaceRadiusMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SubsurfaceRadiusMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _TangentMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _TangentMapOS:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ThicknessMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _AlphaCutoff: 0.5
- _AlphaCutoffEnable: 0
- _Anisotropy: 0
- _BlendMode: 0
- _BumpScale: 1
- _CoatCoverage: 1
- _CoatIOR: 0.5
- _CullMode: 2
- _Cutoff: 0.5
- _DepthOffsetEnable: 0
- _DetailAlbedoScale: 1
- _DetailNormalMapScale: 1
- _DetailNormalScale: 1
- _DetailSmoothnessScale: 1
- _DistortionDepthTest: 0
- _DistortionEnable: 0
- _DistortionOnly: 0
- _DoubleSidedEnable: 0
- _DoubleSidedMirrorEnable: 1
- _DoubleSidedMode: 0
- _DoubleSidedNormalMode: 1
- _Drag: 1
- _DstBlend: 0
- _EmissiveColorMode: 1
- _EmissiveIntensity: 0
- _EnablePerPixelDisplacement: 0
- _EnableWind: 0
- _GlossMapScale: 1
- _Glossiness: 0
- _GlossyReflections: 1
- _HeightAmplitude: 0.01
- _HeightBias: 0
- _HeightCenter: 0.5
- _HeightMapMode: 0
- _HeightScale: 1
- _HorizonFade: 1
- _InitialBend: 1
- _MaterialID: 2
- _Metalic: 1
- _Metallic: 1
- _Mode: 0
- _NormalMapSpace: 0
- _NormalScale: 1
- _OcclusionStrength: 1
- _PPDLodThreshold: 5
- _PPDMaxSamples: 15
- _PPDMinSamples: 5
- _Parallax: 0.02
- _ShiverDirectionality: 0.5
- _ShiverDrag: 0.2
- _Smoothness: 0
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _StencilRef: 2
- _Stiffness: 1
- _SubSurfaceRadius: 0
- _SubsurfaceProfile: 0
- _SubsurfaceRadius: 1
- _SurfaceType: 0
- _TexWorldScale: 1
- _Thickness: 0.5
- _UVBase: 0
- _UVDetail: 0
- _UVMappingPlanar: 0
- _UVSec: 0
- _ZTestMode: 8
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _EmissiveColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecularColor: {r: 1, g: 1, b: 1, a: 1}
- _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0}
- _UVMappingMask: {r: 1, g: 0, b: 0, a: 0}

8
Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smooth0_0.mat.meta


fileFormatVersion: 2
guid: e2e42696f2e31d547ab4f28dd7cfb2f4
timeCreated: 1448039538
licenseType: Pro
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:

203
Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smooth0_1.mat


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: Mat_Coat_smooth0_1
m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3}
m_ShaderKeywords: _MATID_CLEARCOAT _NORMALMAP_TANGENT_SPACE
m_LightmapFlags: 1
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses:
- DistortionVectors
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _AnisotropyMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BaseColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DiffuseLightingMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DistortionVectorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissiveColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _HeightMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MaskMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _NormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _NormalMapOS:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecularColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecularOcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SubSurfaceRadiusMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SubsurfaceRadiusMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _TangentMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _TangentMapOS:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ThicknessMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _AlphaCutoff: 0.5
- _AlphaCutoffEnable: 0
- _Anisotropy: 0
- _BlendMode: 0
- _BumpScale: 1
- _CoatCoverage: 1
- _CoatIOR: 0.5
- _CullMode: 2
- _Cutoff: 0.5
- _DepthOffsetEnable: 0
- _DetailAlbedoScale: 1
- _DetailNormalMapScale: 1
- _DetailNormalScale: 1
- _DetailSmoothnessScale: 1
- _DistortionDepthTest: 0
- _DistortionEnable: 0
- _DistortionOnly: 0
- _DoubleSidedEnable: 0
- _DoubleSidedMirrorEnable: 1
- _DoubleSidedMode: 0
- _DoubleSidedNormalMode: 1
- _Drag: 1
- _DstBlend: 0
- _EmissiveColorMode: 1
- _EmissiveIntensity: 0
- _EnablePerPixelDisplacement: 0
- _EnableWind: 0
- _GlossMapScale: 1
- _Glossiness: 0.1
- _GlossyReflections: 1
- _HeightAmplitude: 0.01
- _HeightBias: 0
- _HeightCenter: 0.5
- _HeightMapMode: 0
- _HeightScale: 1
- _HorizonFade: 1
- _InitialBend: 1
- _MaterialID: 2
- _Metalic: 1
- _Metallic: 1
- _Mode: 0
- _NormalMapSpace: 0
- _NormalScale: 1
- _OcclusionStrength: 1
- _PPDLodThreshold: 5
- _PPDMaxSamples: 15
- _PPDMinSamples: 5
- _Parallax: 0.02
- _ShiverDirectionality: 0.5
- _ShiverDrag: 0.2
- _Smoothness: 0.1
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _StencilRef: 2
- _Stiffness: 1
- _SubSurfaceRadius: 0
- _SubsurfaceProfile: 0
- _SubsurfaceRadius: 1
- _SurfaceType: 0
- _TexWorldScale: 1
- _Thickness: 0.5
- _UVBase: 0
- _UVDetail: 0
- _UVMappingPlanar: 0
- _UVSec: 0
- _ZTestMode: 8
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _EmissiveColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecularColor: {r: 1, g: 1, b: 1, a: 1}
- _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0}
- _UVMappingMask: {r: 1, g: 0, b: 0, a: 0}

8
Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smooth0_1.mat.meta


fileFormatVersion: 2
guid: b45676e6a29be9f4aa5de4a46e59b83b
timeCreated: 1448039530
licenseType: Pro
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:

203
Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smooth0_2.mat


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: Mat_Coat_smooth0_2
m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3}
m_ShaderKeywords: _MATID_CLEARCOAT _NORMALMAP_TANGENT_SPACE
m_LightmapFlags: 1
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses:
- DistortionVectors
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _AnisotropyMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BaseColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DiffuseLightingMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DistortionVectorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissiveColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _HeightMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MaskMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _NormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _NormalMapOS:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecularColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecularOcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SubSurfaceRadiusMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SubsurfaceRadiusMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _TangentMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _TangentMapOS:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ThicknessMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _AlphaCutoff: 0.5
- _AlphaCutoffEnable: 0
- _Anisotropy: 0
- _BlendMode: 0
- _BumpScale: 1
- _CoatCoverage: 1
- _CoatIOR: 0.5
- _CullMode: 2
- _Cutoff: 0.5
- _DepthOffsetEnable: 0
- _DetailAlbedoScale: 1
- _DetailNormalMapScale: 1
- _DetailNormalScale: 1
- _DetailSmoothnessScale: 1
- _DistortionDepthTest: 0
- _DistortionEnable: 0
- _DistortionOnly: 0
- _DoubleSidedEnable: 0
- _DoubleSidedMirrorEnable: 1
- _DoubleSidedMode: 0
- _DoubleSidedNormalMode: 1
- _Drag: 1
- _DstBlend: 0
- _EmissiveColorMode: 1
- _EmissiveIntensity: 0
- _EnablePerPixelDisplacement: 0
- _EnableWind: 0
- _GlossMapScale: 1
- _Glossiness: 0.2
- _GlossyReflections: 1
- _HeightAmplitude: 0.01
- _HeightBias: 0
- _HeightCenter: 0.5
- _HeightMapMode: 0
- _HeightScale: 1
- _HorizonFade: 1
- _InitialBend: 1
- _MaterialID: 2
- _Metalic: 1
- _Metallic: 1
- _Mode: 0
- _NormalMapSpace: 0
- _NormalScale: 1
- _OcclusionStrength: 1
- _PPDLodThreshold: 5
- _PPDMaxSamples: 15
- _PPDMinSamples: 5
- _Parallax: 0.02
- _ShiverDirectionality: 0.5
- _ShiverDrag: 0.2
- _Smoothness: 0.2
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _StencilRef: 2
- _Stiffness: 1
- _SubSurfaceRadius: 0
- _SubsurfaceProfile: 0
- _SubsurfaceRadius: 1
- _SurfaceType: 0
- _TexWorldScale: 1
- _Thickness: 0.5
- _UVBase: 0
- _UVDetail: 0
- _UVMappingPlanar: 0
- _UVSec: 0
- _ZTestMode: 8
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _EmissiveColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecularColor: {r: 1, g: 1, b: 1, a: 1}
- _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0}
- _UVMappingMask: {r: 1, g: 0, b: 0, a: 0}

8
Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smooth0_2.mat.meta


fileFormatVersion: 2
guid: 3767b656300590342a9554dccb9a7edf
timeCreated: 1448039530
licenseType: Pro
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:

203
Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smooth0_3.mat


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: Mat_Coat_smooth0_3
m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3}
m_ShaderKeywords: _MATID_CLEARCOAT _NORMALMAP_TANGENT_SPACE
m_LightmapFlags: 1
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses:
- DistortionVectors
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _AnisotropyMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BaseColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DiffuseLightingMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DistortionVectorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissiveColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _HeightMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MaskMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _NormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _NormalMapOS:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecularColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecularOcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SubSurfaceRadiusMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SubsurfaceRadiusMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _TangentMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _TangentMapOS:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ThicknessMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _AlphaCutoff: 0.5
- _AlphaCutoffEnable: 0
- _Anisotropy: 0
- _BlendMode: 0
- _BumpScale: 1
- _CoatCoverage: 1
- _CoatIOR: 0.5
- _CullMode: 2
- _Cutoff: 0.5
- _DepthOffsetEnable: 0
- _DetailAlbedoScale: 1
- _DetailNormalMapScale: 1
- _DetailNormalScale: 1
- _DetailSmoothnessScale: 1
- _DistortionDepthTest: 0
- _DistortionEnable: 0
- _DistortionOnly: 0
- _DoubleSidedEnable: 0
- _DoubleSidedMirrorEnable: 1
- _DoubleSidedMode: 0
- _DoubleSidedNormalMode: 1
- _Drag: 1
- _DstBlend: 0
- _EmissiveColorMode: 1
- _EmissiveIntensity: 0
- _EnablePerPixelDisplacement: 0
- _EnableWind: 0
- _GlossMapScale: 1
- _Glossiness: 0.3
- _GlossyReflections: 1
- _HeightAmplitude: 0.01
- _HeightBias: 0
- _HeightCenter: 0.5
- _HeightMapMode: 0
- _HeightScale: 1
- _HorizonFade: 1
- _InitialBend: 1
- _MaterialID: 2
- _Metalic: 1
- _Metallic: 1
- _Mode: 0
- _NormalMapSpace: 0
- _NormalScale: 1
- _OcclusionStrength: 1
- _PPDLodThreshold: 5
- _PPDMaxSamples: 15
- _PPDMinSamples: 5
- _Parallax: 0.02
- _ShiverDirectionality: 0.5
- _ShiverDrag: 0.2
- _Smoothness: 0.3
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _StencilRef: 2
- _Stiffness: 1
- _SubSurfaceRadius: 0
- _SubsurfaceProfile: 0
- _SubsurfaceRadius: 1
- _SurfaceType: 0
- _TexWorldScale: 1
- _Thickness: 0.5
- _UVBase: 0
- _UVDetail: 0
- _UVMappingPlanar: 0
- _UVSec: 0
- _ZTestMode: 8
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _EmissiveColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecularColor: {r: 1, g: 1, b: 1, a: 1}
- _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0}
- _UVMappingMask: {r: 1, g: 0, b: 0, a: 0}

8
Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smooth0_3.mat.meta


fileFormatVersion: 2
guid: f79111ae752a5fd4180cae1bc70ade85
timeCreated: 1448039508
licenseType: Pro
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:

203
Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smooth0_4.mat


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: Mat_Coat_smooth0_4
m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3}
m_ShaderKeywords: _MATID_CLEARCOAT _NORMALMAP_TANGENT_SPACE
m_LightmapFlags: 1
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses:
- DistortionVectors
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _AnisotropyMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BaseColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DiffuseLightingMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DistortionVectorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissiveColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _HeightMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MaskMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _NormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _NormalMapOS:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecularColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecularOcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SubSurfaceRadiusMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SubsurfaceRadiusMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _TangentMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _TangentMapOS:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ThicknessMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _AlphaCutoff: 0.5
- _AlphaCutoffEnable: 0
- _Anisotropy: 0
- _BlendMode: 0
- _BumpScale: 1
- _CoatCoverage: 1
- _CoatIOR: 0.5
- _CullMode: 2
- _Cutoff: 0.5
- _DepthOffsetEnable: 0
- _DetailAlbedoScale: 1
- _DetailNormalMapScale: 1
- _DetailNormalScale: 1
- _DetailSmoothnessScale: 1
- _DistortionDepthTest: 0
- _DistortionEnable: 0
- _DistortionOnly: 0
- _DoubleSidedEnable: 0
- _DoubleSidedMirrorEnable: 1
- _DoubleSidedMode: 0
- _DoubleSidedNormalMode: 1
- _Drag: 1
- _DstBlend: 0
- _EmissiveColorMode: 1
- _EmissiveIntensity: 0
- _EnablePerPixelDisplacement: 0
- _EnableWind: 0
- _GlossMapScale: 1
- _Glossiness: 0.4
- _GlossyReflections: 1
- _HeightAmplitude: 0.01
- _HeightBias: 0
- _HeightCenter: 0.5
- _HeightMapMode: 0
- _HeightScale: 1
- _HorizonFade: 1
- _InitialBend: 1
- _MaterialID: 2
- _Metalic: 1
- _Metallic: 1
- _Mode: 0
- _NormalMapSpace: 0
- _NormalScale: 1
- _OcclusionStrength: 1
- _PPDLodThreshold: 5
- _PPDMaxSamples: 15
- _PPDMinSamples: 5
- _Parallax: 0.02
- _ShiverDirectionality: 0.5
- _ShiverDrag: 0.2
- _Smoothness: 0.4
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _StencilRef: 2
- _Stiffness: 1
- _SubSurfaceRadius: 0
- _SubsurfaceProfile: 0
- _SubsurfaceRadius: 1
- _SurfaceType: 0
- _TexWorldScale: 1
- _Thickness: 0.5
- _UVBase: 0
- _UVDetail: 0
- _UVMappingPlanar: 0
- _UVSec: 0
- _ZTestMode: 8
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _EmissiveColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecularColor: {r: 1, g: 1, b: 1, a: 1}
- _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0}
- _UVMappingMask: {r: 1, g: 0, b: 0, a: 0}

8
Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smooth0_4.mat.meta


fileFormatVersion: 2
guid: b5fcf448a7a4c6c448a408a8a8fb8b64
timeCreated: 1448039507
licenseType: Pro
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:

203
Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smooth0_5.mat


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: Mat_Coat_smooth0_5
m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3}
m_ShaderKeywords: _MATID_CLEARCOAT _NORMALMAP_TANGENT_SPACE
m_LightmapFlags: 1
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses:
- DistortionVectors
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _AnisotropyMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BaseColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DiffuseLightingMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DistortionVectorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissiveColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _HeightMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MaskMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _NormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _NormalMapOS:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecularColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecularOcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SubSurfaceRadiusMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SubsurfaceRadiusMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _TangentMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _TangentMapOS:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ThicknessMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _AlphaCutoff: 0.5
- _AlphaCutoffEnable: 0
- _Anisotropy: 0
- _BlendMode: 0
- _BumpScale: 1
- _CoatCoverage: 1
- _CoatIOR: 0.5
- _CullMode: 2
- _Cutoff: 0.5
- _DepthOffsetEnable: 0
- _DetailAlbedoScale: 1
- _DetailNormalMapScale: 1
- _DetailNormalScale: 1
- _DetailSmoothnessScale: 1
- _DistortionDepthTest: 0
- _DistortionEnable: 0
- _DistortionOnly: 0
- _DoubleSidedEnable: 0
- _DoubleSidedMirrorEnable: 1
- _DoubleSidedMode: 0
- _DoubleSidedNormalMode: 1
- _Drag: 1
- _DstBlend: 0
- _EmissiveColorMode: 1
- _EmissiveIntensity: 0
- _EnablePerPixelDisplacement: 0
- _EnableWind: 0
- _GlossMapScale: 1
- _Glossiness: 0.5
- _GlossyReflections: 1
- _HeightAmplitude: 0.01
- _HeightBias: 0
- _HeightCenter: 0.5
- _HeightMapMode: 0
- _HeightScale: 1
- _HorizonFade: 1
- _InitialBend: 1
- _MaterialID: 2
- _Metalic: 1
- _Metallic: 1
- _Mode: 0
- _NormalMapSpace: 0
- _NormalScale: 1
- _OcclusionStrength: 1
- _PPDLodThreshold: 5
- _PPDMaxSamples: 15
- _PPDMinSamples: 5
- _Parallax: 0.02
- _ShiverDirectionality: 0.5
- _ShiverDrag: 0.2
- _Smoothness: 0.5
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _StencilRef: 2
- _Stiffness: 1
- _SubSurfaceRadius: 0
- _SubsurfaceProfile: 0
- _SubsurfaceRadius: 1
- _SurfaceType: 0
- _TexWorldScale: 1
- _Thickness: 0.5
- _UVBase: 0
- _UVDetail: 0
- _UVMappingPlanar: 0
- _UVSec: 0
- _ZTestMode: 8
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _EmissiveColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecularColor: {r: 1, g: 1, b: 1, a: 1}
- _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0}
- _UVMappingMask: {r: 1, g: 0, b: 0, a: 0}

8
Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smooth0_5.mat.meta


fileFormatVersion: 2
guid: 127f2c7811374ad4fad53f18801edb4f
timeCreated: 1448039507
licenseType: Pro
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:

203
Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smooth0_6.mat


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: Mat_Coat_smooth0_6
m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3}
m_ShaderKeywords: _MATID_CLEARCOAT _NORMALMAP_TANGENT_SPACE
m_LightmapFlags: 1
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses:
- DistortionVectors
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _AnisotropyMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BaseColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DiffuseLightingMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DistortionVectorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissiveColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _HeightMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MaskMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _NormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _NormalMapOS:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecularColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecularOcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SubSurfaceRadiusMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SubsurfaceRadiusMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _TangentMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _TangentMapOS:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ThicknessMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _AlphaCutoff: 0.5
- _AlphaCutoffEnable: 0
- _Anisotropy: 0
- _BlendMode: 0
- _BumpScale: 1
- _CoatCoverage: 1
- _CoatIOR: 0.5
- _CullMode: 2
- _Cutoff: 0.5
- _DepthOffsetEnable: 0
- _DetailAlbedoScale: 1
- _DetailNormalMapScale: 1
- _DetailNormalScale: 1
- _DetailSmoothnessScale: 1
- _DistortionDepthTest: 0
- _DistortionEnable: 0
- _DistortionOnly: 0
- _DoubleSidedEnable: 0
- _DoubleSidedMirrorEnable: 1
- _DoubleSidedMode: 0
- _DoubleSidedNormalMode: 1
- _Drag: 1
- _DstBlend: 0
- _EmissiveColorMode: 1
- _EmissiveIntensity: 0
- _EnablePerPixelDisplacement: 0
- _EnableWind: 0
- _GlossMapScale: 1
- _Glossiness: 0.6
- _GlossyReflections: 1
- _HeightAmplitude: 0.01
- _HeightBias: 0
- _HeightCenter: 0.5
- _HeightMapMode: 0
- _HeightScale: 1
- _HorizonFade: 1
- _InitialBend: 1
- _MaterialID: 2
- _Metalic: 1
- _Metallic: 1
- _Mode: 0
- _NormalMapSpace: 0
- _NormalScale: 1
- _OcclusionStrength: 1
- _PPDLodThreshold: 5
- _PPDMaxSamples: 15
- _PPDMinSamples: 5
- _Parallax: 0.02
- _ShiverDirectionality: 0.5
- _ShiverDrag: 0.2
- _Smoothness: 0.6
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _StencilRef: 2
- _Stiffness: 1
- _SubSurfaceRadius: 0
- _SubsurfaceProfile: 0
- _SubsurfaceRadius: 1
- _SurfaceType: 0
- _TexWorldScale: 1
- _Thickness: 0.5
- _UVBase: 0
- _UVDetail: 0
- _UVMappingPlanar: 0
- _UVSec: 0
- _ZTestMode: 8
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _EmissiveColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecularColor: {r: 1, g: 1, b: 1, a: 1}
- _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0}
- _UVMappingMask: {r: 1, g: 0, b: 0, a: 0}

8
Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smooth0_6.mat.meta


fileFormatVersion: 2
guid: 9a3f90a8aa2b172419e90af1e74e1dac
timeCreated: 1448039507
licenseType: Pro
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:

203
Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smooth0_7.mat


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: Mat_Coat_smooth0_7
m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3}
m_ShaderKeywords: _MATID_CLEARCOAT _NORMALMAP_TANGENT_SPACE
m_LightmapFlags: 1
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses:
- DistortionVectors
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _AnisotropyMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BaseColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DiffuseLightingMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DistortionVectorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissiveColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _HeightMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MaskMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _NormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _NormalMapOS:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecularColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecularOcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SubSurfaceRadiusMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SubsurfaceRadiusMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _TangentMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _TangentMapOS:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ThicknessMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _AlphaCutoff: 0.5
- _AlphaCutoffEnable: 0
- _Anisotropy: 0
- _BlendMode: 0
- _BumpScale: 1
- _CoatCoverage: 1
- _CoatIOR: 0.5
- _CullMode: 2
- _Cutoff: 0.5
- _DepthOffsetEnable: 0
- _DetailAlbedoScale: 1
- _DetailNormalMapScale: 1
- _DetailNormalScale: 1
- _DetailSmoothnessScale: 1
- _DistortionDepthTest: 0
- _DistortionEnable: 0
- _DistortionOnly: 0
- _DoubleSidedEnable: 0
- _DoubleSidedMirrorEnable: 1
- _DoubleSidedMode: 0
- _DoubleSidedNormalMode: 1
- _Drag: 1
- _DstBlend: 0
- _EmissiveColorMode: 1
- _EmissiveIntensity: 0
- _EnablePerPixelDisplacement: 0
- _EnableWind: 0
- _GlossMapScale: 1
- _Glossiness: 0.7
- _GlossyReflections: 1
- _HeightAmplitude: 0.01
- _HeightBias: 0
- _HeightCenter: 0.5
- _HeightMapMode: 0
- _HeightScale: 1
- _HorizonFade: 1
- _InitialBend: 1
- _MaterialID: 2
- _Metalic: 1
- _Metallic: 1
- _Mode: 0
- _NormalMapSpace: 0
- _NormalScale: 1
- _OcclusionStrength: 1
- _PPDLodThreshold: 5
- _PPDMaxSamples: 15
- _PPDMinSamples: 5
- _Parallax: 0.02
- _ShiverDirectionality: 0.5
- _ShiverDrag: 0.2
- _Smoothness: 0.7
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _StencilRef: 2
- _Stiffness: 1
- _SubSurfaceRadius: 0
- _SubsurfaceProfile: 0
- _SubsurfaceRadius: 1
- _SurfaceType: 0
- _TexWorldScale: 1
- _Thickness: 0.5
- _UVBase: 0
- _UVDetail: 0
- _UVMappingPlanar: 0
- _UVSec: 0
- _ZTestMode: 8
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _EmissiveColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecularColor: {r: 1, g: 1, b: 1, a: 1}
- _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0}
- _UVMappingMask: {r: 1, g: 0, b: 0, a: 0}

8
Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smooth0_7.mat.meta


fileFormatVersion: 2
guid: b2057fa34ee25c14dae970a3d294d7c7
timeCreated: 1448039507
licenseType: Pro
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:

203
Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smooth0_8.mat


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: Mat_Coat_smooth0_8
m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3}
m_ShaderKeywords: _MATID_CLEARCOAT _NORMALMAP_TANGENT_SPACE
m_LightmapFlags: 1
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses:
- DistortionVectors
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _AnisotropyMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BaseColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DiffuseLightingMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DistortionVectorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissiveColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _HeightMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MaskMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _NormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _NormalMapOS:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecularColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecularOcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SubSurfaceRadiusMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SubsurfaceRadiusMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _TangentMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _TangentMapOS:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ThicknessMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _AlphaCutoff: 0.5
- _AlphaCutoffEnable: 0
- _Anisotropy: 0
- _BlendMode: 0
- _BumpScale: 1
- _CoatCoverage: 1
- _CoatIOR: 0.5
- _CullMode: 2
- _Cutoff: 0.5
- _DepthOffsetEnable: 0
- _DetailAlbedoScale: 1
- _DetailNormalMapScale: 1
- _DetailNormalScale: 1
- _DetailSmoothnessScale: 1
- _DistortionDepthTest: 0
- _DistortionEnable: 0
- _DistortionOnly: 0
- _DoubleSidedEnable: 0
- _DoubleSidedMirrorEnable: 1
- _DoubleSidedMode: 0
- _DoubleSidedNormalMode: 1
- _Drag: 1
- _DstBlend: 0
- _EmissiveColorMode: 1
- _EmissiveIntensity: 0
- _EnablePerPixelDisplacement: 0
- _EnableWind: 0
- _GlossMapScale: 1
- _Glossiness: 0.8
- _GlossyReflections: 1
- _HeightAmplitude: 0.01
- _HeightBias: 0
- _HeightCenter: 0.5
- _HeightMapMode: 0
- _HeightScale: 1
- _HorizonFade: 1
- _InitialBend: 1
- _MaterialID: 2
- _Metalic: 1
- _Metallic: 1
- _Mode: 0
- _NormalMapSpace: 0
- _NormalScale: 1
- _OcclusionStrength: 1
- _PPDLodThreshold: 5
- _PPDMaxSamples: 15
- _PPDMinSamples: 5
- _Parallax: 0.02
- _ShiverDirectionality: 0.5
- _ShiverDrag: 0.2
- _Smoothness: 0.8
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _StencilRef: 2
- _Stiffness: 1
- _SubSurfaceRadius: 0
- _SubsurfaceProfile: 0
- _SubsurfaceRadius: 1
- _SurfaceType: 0
- _TexWorldScale: 1
- _Thickness: 0.5
- _UVBase: 0
- _UVDetail: 0
- _UVMappingPlanar: 0
- _UVSec: 0
- _ZTestMode: 8
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _EmissiveColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecularColor: {r: 1, g: 1, b: 1, a: 1}
- _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0}
- _UVMappingMask: {r: 1, g: 0, b: 0, a: 0}

8
Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smooth0_8.mat.meta


fileFormatVersion: 2
guid: f897d9840e59e174fba126e1c4e09489
timeCreated: 1448039506
licenseType: Pro
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:

203
Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smooth0_9.mat


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: Mat_Coat_smooth0_9
m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3}
m_ShaderKeywords: _MATID_CLEARCOAT _NORMALMAP_TANGENT_SPACE
m_LightmapFlags: 1
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses:
- DistortionVectors
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _AnisotropyMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BaseColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DiffuseLightingMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DistortionVectorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissiveColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _HeightMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MaskMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _NormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _NormalMapOS:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecularColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecularOcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SubSurfaceRadiusMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SubsurfaceRadiusMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _TangentMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _TangentMapOS:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ThicknessMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _AlphaCutoff: 0.5
- _AlphaCutoffEnable: 0
- _Anisotropy: 0
- _BlendMode: 0
- _BumpScale: 1
- _CoatCoverage: 1
- _CoatIOR: 0.5
- _CullMode: 2
- _Cutoff: 0.5
- _DepthOffsetEnable: 0
- _DetailAlbedoScale: 1
- _DetailNormalMapScale: 1
- _DetailNormalScale: 1
- _DetailSmoothnessScale: 1
- _DistortionDepthTest: 0
- _DistortionEnable: 0
- _DistortionOnly: 0
- _DoubleSidedEnable: 0
- _DoubleSidedMirrorEnable: 1
- _DoubleSidedMode: 0
- _DoubleSidedNormalMode: 1
- _Drag: 1
- _DstBlend: 0
- _EmissiveColorMode: 1
- _EmissiveIntensity: 0
- _EnablePerPixelDisplacement: 0
- _EnableWind: 0
- _GlossMapScale: 1
- _Glossiness: 0.9
- _GlossyReflections: 1
- _HeightAmplitude: 0.01
- _HeightBias: 0
- _HeightCenter: 0.5
- _HeightMapMode: 0
- _HeightScale: 1
- _HorizonFade: 1
- _InitialBend: 1
- _MaterialID: 2
- _Metalic: 1
- _Metallic: 1
- _Mode: 0
- _NormalMapSpace: 0
- _NormalScale: 1
- _OcclusionStrength: 1
- _PPDLodThreshold: 5
- _PPDMaxSamples: 15
- _PPDMinSamples: 5
- _Parallax: 0.02
- _ShiverDirectionality: 0.5
- _ShiverDrag: 0.2
- _Smoothness: 0.9
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _StencilRef: 2
- _Stiffness: 1
- _SubSurfaceRadius: 0
- _SubsurfaceProfile: 0
- _SubsurfaceRadius: 1
- _SurfaceType: 0
- _TexWorldScale: 1
- _Thickness: 0.5
- _UVBase: 0
- _UVDetail: 0
- _UVMappingPlanar: 0
- _UVSec: 0
- _ZTestMode: 8
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _EmissiveColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecularColor: {r: 1, g: 1, b: 1, a: 1}
- _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0}
- _UVMappingMask: {r: 1, g: 0, b: 0, a: 0}

8
Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smooth0_9.mat.meta


fileFormatVersion: 2
guid: 97a7c6248093f4d489fc79ab797602a0
timeCreated: 1448039483
licenseType: Pro
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:

203
Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smooth1_0.mat


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: Mat_Coat_smooth1_0
m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3}
m_ShaderKeywords: _MATID_CLEARCOAT _NORMALMAP_TANGENT_SPACE
m_LightmapFlags: 1
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses:
- DistortionVectors
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _AnisotropyMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BaseColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DiffuseLightingMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DistortionVectorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissiveColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _HeightMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MaskMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _NormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _NormalMapOS:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecularColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecularOcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SubSurfaceRadiusMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SubsurfaceRadiusMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _TangentMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _TangentMapOS:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ThicknessMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _AlphaCutoff: 0.5
- _AlphaCutoffEnable: 0
- _Anisotropy: 0
- _BlendMode: 0
- _BumpScale: 1
- _CoatCoverage: 1
- _CoatIOR: 0.5
- _CullMode: 2
- _Cutoff: 0.5
- _DepthOffsetEnable: 0
- _DetailAlbedoScale: 1
- _DetailNormalMapScale: 1
- _DetailNormalScale: 1
- _DetailSmoothnessScale: 1
- _DistortionDepthTest: 0
- _DistortionEnable: 0
- _DistortionOnly: 0
- _DoubleSidedEnable: 0
- _DoubleSidedMirrorEnable: 1
- _DoubleSidedMode: 0
- _DoubleSidedNormalMode: 1
- _Drag: 1
- _DstBlend: 0
- _EmissiveColorMode: 1
- _EmissiveIntensity: 0
- _EnablePerPixelDisplacement: 0
- _EnableWind: 0
- _GlossMapScale: 1
- _Glossiness: 1
- _GlossyReflections: 1
- _HeightAmplitude: 0.01
- _HeightBias: 0
- _HeightCenter: 0.5
- _HeightMapMode: 0
- _HeightScale: 1
- _HorizonFade: 1
- _InitialBend: 1
- _MaterialID: 2
- _Metalic: 1
- _Metallic: 1
- _Mode: 0
- _NormalMapSpace: 0
- _NormalScale: 1
- _OcclusionStrength: 1
- _PPDLodThreshold: 5
- _PPDMaxSamples: 15
- _PPDMinSamples: 5
- _Parallax: 0.02
- _ShiverDirectionality: 0.5
- _ShiverDrag: 0.2
- _Smoothness: 1
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _StencilRef: 2
- _Stiffness: 1
- _SubSurfaceRadius: 0
- _SubsurfaceProfile: 0
- _SubsurfaceRadius: 1
- _SurfaceType: 0
- _TexWorldScale: 1
- _Thickness: 0.5
- _UVBase: 0
- _UVDetail: 0
- _UVMappingPlanar: 0
- _UVSec: 0
- _ZTestMode: 8
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _EmissiveColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecularColor: {r: 1, g: 1, b: 1, a: 1}
- _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0}
- _UVMappingMask: {r: 1, g: 0, b: 0, a: 0}

8
Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smooth1_0.mat.meta


fileFormatVersion: 2
guid: ca92b8db52d1f3a4cb5d434ea99e355e
timeCreated: 1453738565
licenseType: Pro
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:

203
Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smoothdielectric0_0.mat


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: Mat_Coat_smoothdielectric0_0
m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3}
m_ShaderKeywords: _MATID_CLEARCOAT _NORMALMAP_TANGENT_SPACE
m_LightmapFlags: 1
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses:
- DistortionVectors
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _AnisotropyMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BaseColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DiffuseLightingMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DistortionVectorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissiveColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _HeightMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MaskMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _NormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _NormalMapOS:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecularColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecularOcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SubSurfaceRadiusMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SubsurfaceRadiusMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _TangentMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _TangentMapOS:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ThicknessMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _AlphaCutoff: 0.5
- _AlphaCutoffEnable: 0
- _Anisotropy: 0
- _BlendMode: 0
- _BumpScale: 1
- _CoatCoverage: 1
- _CoatIOR: 0.5
- _CullMode: 2
- _Cutoff: 0.5
- _DepthOffsetEnable: 0
- _DetailAlbedoScale: 1
- _DetailNormalMapScale: 1
- _DetailNormalScale: 1
- _DetailSmoothnessScale: 1
- _DistortionDepthTest: 0
- _DistortionEnable: 0
- _DistortionOnly: 0
- _DoubleSidedEnable: 0
- _DoubleSidedMirrorEnable: 1
- _DoubleSidedMode: 0
- _DoubleSidedNormalMode: 1
- _Drag: 1
- _DstBlend: 0
- _EmissiveColorMode: 1
- _EmissiveIntensity: 0
- _EnablePerPixelDisplacement: 0
- _EnableWind: 0
- _GlossMapScale: 1
- _Glossiness: 0
- _GlossyReflections: 1
- _HeightAmplitude: 0.01
- _HeightBias: 0
- _HeightCenter: 0.5
- _HeightMapMode: 0
- _HeightScale: 1
- _HorizonFade: 1
- _InitialBend: 1
- _MaterialID: 2
- _Metalic: 0
- _Metallic: 0
- _Mode: 0
- _NormalMapSpace: 0
- _NormalScale: 1
- _OcclusionStrength: 1
- _PPDLodThreshold: 5
- _PPDMaxSamples: 15
- _PPDMinSamples: 5
- _Parallax: 0.02
- _ShiverDirectionality: 0.5
- _ShiverDrag: 0.2
- _Smoothness: 0
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _StencilRef: 2
- _Stiffness: 1
- _SubSurfaceRadius: 0
- _SubsurfaceProfile: 0
- _SubsurfaceRadius: 1
- _SurfaceType: 0
- _TexWorldScale: 1
- _Thickness: 0.5
- _UVBase: 0
- _UVDetail: 0
- _UVMappingPlanar: 0
- _UVSec: 0
- _ZTestMode: 8
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 0.7176471, g: 0.7176471, b: 0.7176471, a: 1}
- _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _EmissiveColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecularColor: {r: 1, g: 1, b: 1, a: 1}
- _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0}
- _UVMappingMask: {r: 1, g: 0, b: 0, a: 0}

8
Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smoothdielectric0_0.mat.meta


fileFormatVersion: 2
guid: bbfc67d465c3bb449844859a31dbbf92
timeCreated: 1453738565
licenseType: Pro
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:

203
Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smoothdielectric0_1.mat


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: Mat_Coat_smoothdielectric0_1
m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3}
m_ShaderKeywords: _MATID_CLEARCOAT _NORMALMAP_TANGENT_SPACE
m_LightmapFlags: 1
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses:
- DistortionVectors
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _AnisotropyMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BaseColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DiffuseLightingMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DistortionVectorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissiveColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _HeightMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MaskMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _NormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _NormalMapOS:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecularColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecularOcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SubSurfaceRadiusMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SubsurfaceRadiusMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _TangentMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _TangentMapOS:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ThicknessMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _AlphaCutoff: 0.5
- _AlphaCutoffEnable: 0
- _Anisotropy: 0
- _BlendMode: 0
- _BumpScale: 1
- _CoatCoverage: 1
- _CoatIOR: 0.5
- _CullMode: 2
- _Cutoff: 0.5
- _DepthOffsetEnable: 0
- _DetailAlbedoScale: 1
- _DetailNormalMapScale: 1
- _DetailNormalScale: 1
- _DetailSmoothnessScale: 1
- _DistortionDepthTest: 0
- _DistortionEnable: 0
- _DistortionOnly: 0
- _DoubleSidedEnable: 0
- _DoubleSidedMirrorEnable: 1
- _DoubleSidedMode: 0
- _DoubleSidedNormalMode: 1
- _Drag: 1
- _DstBlend: 0
- _EmissiveColorMode: 1
- _EmissiveIntensity: 0
- _EnablePerPixelDisplacement: 0
- _EnableWind: 0
- _GlossMapScale: 1
- _Glossiness: 0.1
- _GlossyReflections: 1
- _HeightAmplitude: 0.01
- _HeightBias: 0
- _HeightCenter: 0.5
- _HeightMapMode: 0
- _HeightScale: 1
- _HorizonFade: 1
- _InitialBend: 1
- _MaterialID: 2
- _Metalic: 0
- _Metallic: 0
- _Mode: 0
- _NormalMapSpace: 0
- _NormalScale: 1
- _OcclusionStrength: 1
- _PPDLodThreshold: 5
- _PPDMaxSamples: 15
- _PPDMinSamples: 5
- _Parallax: 0.02
- _ShiverDirectionality: 0.5
- _ShiverDrag: 0.2
- _Smoothness: 0.1
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _StencilRef: 2
- _Stiffness: 1
- _SubSurfaceRadius: 0
- _SubsurfaceProfile: 0
- _SubsurfaceRadius: 1
- _SurfaceType: 0
- _TexWorldScale: 1
- _Thickness: 0.5
- _UVBase: 0
- _UVDetail: 0
- _UVMappingPlanar: 0
- _UVSec: 0
- _ZTestMode: 8
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 0.7176471, g: 0.7176471, b: 0.7176471, a: 1}
- _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _EmissiveColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecularColor: {r: 1, g: 1, b: 1, a: 1}
- _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0}
- _UVMappingMask: {r: 1, g: 0, b: 0, a: 0}

8
Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smoothdielectric0_1.mat.meta


fileFormatVersion: 2
guid: f72b22016ecb9ec4cb9c566aebf48bf8
timeCreated: 1453738566
licenseType: Pro
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:

203
Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smoothdielectric0_2.mat


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: Mat_Coat_smoothdielectric0_2
m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3}
m_ShaderKeywords: _MATID_CLEARCOAT _NORMALMAP_TANGENT_SPACE
m_LightmapFlags: 1
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses:
- DistortionVectors
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _AnisotropyMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BaseColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DiffuseLightingMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DistortionVectorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissiveColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _HeightMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MaskMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _NormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _NormalMapOS:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecularColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecularOcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SubSurfaceRadiusMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SubsurfaceRadiusMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _TangentMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _TangentMapOS:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ThicknessMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _AlphaCutoff: 0.5
- _AlphaCutoffEnable: 0
- _Anisotropy: 0
- _BlendMode: 0
- _BumpScale: 1
- _CoatCoverage: 1
- _CoatIOR: 0.5
- _CullMode: 2
- _Cutoff: 0.5
- _DepthOffsetEnable: 0
- _DetailAlbedoScale: 1
- _DetailNormalMapScale: 1
- _DetailNormalScale: 1
- _DetailSmoothnessScale: 1
- _DistortionDepthTest: 0
- _DistortionEnable: 0
- _DistortionOnly: 0
- _DoubleSidedEnable: 0
- _DoubleSidedMirrorEnable: 1
- _DoubleSidedMode: 0
- _DoubleSidedNormalMode: 1
- _Drag: 1
- _DstBlend: 0
- _EmissiveColorMode: 1
- _EmissiveIntensity: 0
- _EnablePerPixelDisplacement: 0
- _EnableWind: 0
- _GlossMapScale: 1
- _Glossiness: 0.2
- _GlossyReflections: 1
- _HeightAmplitude: 0.01
- _HeightBias: 0
- _HeightCenter: 0.5
- _HeightMapMode: 0
- _HeightScale: 1
- _HorizonFade: 1
- _InitialBend: 1
- _MaterialID: 2
- _Metalic: 0
- _Metallic: 0
- _Mode: 0
- _NormalMapSpace: 0
- _NormalScale: 1
- _OcclusionStrength: 1
- _PPDLodThreshold: 5
- _PPDMaxSamples: 15
- _PPDMinSamples: 5
- _Parallax: 0.02
- _ShiverDirectionality: 0.5
- _ShiverDrag: 0.2
- _Smoothness: 0.2
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _StencilRef: 2
- _Stiffness: 1
- _SubSurfaceRadius: 0
- _SubsurfaceProfile: 0
- _SubsurfaceRadius: 1
- _SurfaceType: 0
- _TexWorldScale: 1
- _Thickness: 0.5
- _UVBase: 0
- _UVDetail: 0
- _UVMappingPlanar: 0
- _UVSec: 0
- _ZTestMode: 8
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 0.7176471, g: 0.7176471, b: 0.7176471, a: 1}
- _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _EmissiveColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecularColor: {r: 1, g: 1, b: 1, a: 1}
- _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0}
- _UVMappingMask: {r: 1, g: 0, b: 0, a: 0}

8
Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smoothdielectric0_2.mat.meta


fileFormatVersion: 2
guid: 6b034fd42e0a0d54db21e39da2c990a1
timeCreated: 1453738565
licenseType: Pro
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:

203
Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smoothdielectric0_3.mat


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: Mat_Coat_smoothdielectric0_3
m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3}
m_ShaderKeywords: _MATID_CLEARCOAT _NORMALMAP_TANGENT_SPACE
m_LightmapFlags: 1
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses:
- DistortionVectors
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _AnisotropyMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BaseColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DiffuseLightingMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DistortionVectorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissiveColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _HeightMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MaskMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _NormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _NormalMapOS:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecularColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecularOcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SubSurfaceRadiusMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SubsurfaceRadiusMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _TangentMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _TangentMapOS:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ThicknessMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _AlphaCutoff: 0.5
- _AlphaCutoffEnable: 0
- _Anisotropy: 0
- _BlendMode: 0
- _BumpScale: 1
- _CoatCoverage: 1
- _CoatIOR: 0.5
- _CullMode: 2
- _Cutoff: 0.5
- _DepthOffsetEnable: 0
- _DetailAlbedoScale: 1
- _DetailNormalMapScale: 1
- _DetailNormalScale: 1
- _DetailSmoothnessScale: 1
- _DistortionDepthTest: 0
- _DistortionEnable: 0
- _DistortionOnly: 0
- _DoubleSidedEnable: 0
- _DoubleSidedMirrorEnable: 1
- _DoubleSidedMode: 0
- _DoubleSidedNormalMode: 1
- _Drag: 1
- _DstBlend: 0
- _EmissiveColorMode: 1
- _EmissiveIntensity: 0
- _EnablePerPixelDisplacement: 0
- _EnableWind: 0
- _GlossMapScale: 1
- _Glossiness: 0.3
- _GlossyReflections: 1
- _HeightAmplitude: 0.01
- _HeightBias: 0
- _HeightCenter: 0.5
- _HeightMapMode: 0
- _HeightScale: 1
- _HorizonFade: 1
- _InitialBend: 1
- _MaterialID: 2
- _Metalic: 0
- _Metallic: 0
- _Mode: 0
- _NormalMapSpace: 0
- _NormalScale: 1
- _OcclusionStrength: 1
- _PPDLodThreshold: 5
- _PPDMaxSamples: 15
- _PPDMinSamples: 5
- _Parallax: 0.02
- _ShiverDirectionality: 0.5
- _ShiverDrag: 0.2
- _Smoothness: 0.3
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _StencilRef: 2
- _Stiffness: 1
- _SubSurfaceRadius: 0
- _SubsurfaceProfile: 0
- _SubsurfaceRadius: 1
- _SurfaceType: 0
- _TexWorldScale: 1
- _Thickness: 0.5
- _UVBase: 0
- _UVDetail: 0
- _UVMappingPlanar: 0
- _UVSec: 0
- _ZTestMode: 8
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 0.7176471, g: 0.7176471, b: 0.7176471, a: 1}
- _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _EmissiveColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecularColor: {r: 1, g: 1, b: 1, a: 1}
- _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0}
- _UVMappingMask: {r: 1, g: 0, b: 0, a: 0}

8
Assets/TestScenes/HDTest/GraphicTest/Common/Material/Mat_Coat_smoothdielectric0_3.mat.meta


fileFormatVersion: 2
guid: 0d9feb391f0632046ab9d4ad07140a4d
timeCreated: 1453738566
licenseType: Pro
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:

部分文件因为文件数量过多而无法显示

正在加载...
取消
保存