Copy disabled (too large)
Download .txt
Showing preview only (18,709K chars total). Download the full file to get everything.
Repository: kitasenjudesign/UnityGpuInstancing
Branch: master
Commit: 928a3e8441fe
Files: 323
Total size: 17.8 MB
Directory structure:
gitextract_04xoxgig/
├── Readme.md
└── boids/
├── .gitignore
├── Assets/
│ ├── AnimationBaker/
│ │ ├── Editor/
│ │ │ ├── Tex2dToPng.cs
│ │ │ └── Tex2dToPng.cs.meta
│ │ ├── Editor.meta
│ │ ├── Scenes/
│ │ │ ├── uma.unity
│ │ │ └── uma.unity.meta
│ │ ├── Scenes.meta
│ │ ├── Scripts/
│ │ │ ├── AnimationTextureBaker.cs
│ │ │ ├── AnimationTextureBaker.cs.meta
│ │ │ ├── RenderTextureToTexture2D.cs
│ │ │ └── RenderTextureToTexture2D.cs.meta
│ │ ├── Scripts.meta
│ │ ├── Shaders/
│ │ │ ├── MeshInfoTextureGen.compute
│ │ │ ├── MeshInfoTextureGen.compute.meta
│ │ │ ├── TextureAnimPlayer.shader
│ │ │ ├── TextureAnimPlayer.shader.meta
│ │ │ ├── TextureAnimPlayerI.shader
│ │ │ ├── TextureAnimPlayerI.shader.meta
│ │ │ ├── TextureAnimPlayerNone.shader
│ │ │ └── TextureAnimPlayerNone.shader.meta
│ │ └── Shaders.meta
│ ├── AnimationBaker.meta
│ ├── BakedAnimationTex/
│ │ ├── Horse/
│ │ │ ├── Horse.Horse_Idle.animTex.asset
│ │ │ ├── Horse.Horse_Idle.animTex.asset.meta
│ │ │ ├── Horse.Horse_Idle.normTex.asset
│ │ │ ├── Horse.Horse_Idle.normTex.asset.meta
│ │ │ ├── Horse.Horse_Idle.posTex.asset
│ │ │ ├── Horse.Horse_Idle.posTex.asset.meta
│ │ │ ├── Horse.Horse_Run.animTex.asset
│ │ │ ├── Horse.Horse_Run.animTex.asset.meta
│ │ │ ├── Horse.Horse_Run.normTex.asset
│ │ │ ├── Horse.Horse_Run.normTex.asset.meta
│ │ │ ├── Horse.Horse_Run.posTex.asset
│ │ │ ├── Horse.Horse_Run.posTex.asset.meta
│ │ │ ├── Horse.Horse_Walk.animTex.asset
│ │ │ ├── Horse.Horse_Walk.animTex.asset.meta
│ │ │ ├── Horse.Horse_Walk.normTex.asset
│ │ │ ├── Horse.Horse_Walk.normTex.asset.meta
│ │ │ ├── Horse.Horse_Walk.posTex.asset
│ │ │ └── Horse.Horse_Walk.posTex.asset.meta
│ │ ├── Horse.Horse_Idle.prefab
│ │ ├── Horse.Horse_Idle.prefab.meta
│ │ ├── Horse.Horse_Run.prefab
│ │ ├── Horse.Horse_Run.prefab.meta
│ │ ├── Horse.Horse_Walk.prefab
│ │ ├── Horse.Horse_Walk.prefab.meta
│ │ ├── Horse.meta
│ │ ├── MazeManWalk/
│ │ │ ├── MazeManWalk.mixamo.com.animTex.asset
│ │ │ ├── MazeManWalk.mixamo.com.animTex.asset.meta
│ │ │ ├── MazeManWalk.mixamo.com.normTex.asset
│ │ │ ├── MazeManWalk.mixamo.com.normTex.asset.meta
│ │ │ ├── MazeManWalk.mixamo.com.posTex.asset
│ │ │ └── MazeManWalk.mixamo.com.posTex.asset.meta
│ │ ├── MazeManWalk.meta
│ │ ├── MazeManWalk.mixamo.com.prefab
│ │ ├── MazeManWalk.mixamo.com.prefab.meta
│ │ ├── waker3/
│ │ │ ├── waker3.mixamo.com.animTex.asset
│ │ │ ├── waker3.mixamo.com.animTex.asset.meta
│ │ │ ├── waker3.mixamo.com.normTex.asset
│ │ │ ├── waker3.mixamo.com.normTex.asset.meta
│ │ │ ├── waker3.mixamo.com.posTex.asset
│ │ │ └── waker3.mixamo.com.posTex.asset.meta
│ │ ├── waker3.meta
│ │ ├── waker3.mixamo.com.prefab
│ │ └── waker3.mixamo.com.prefab.meta
│ ├── BakedAnimationTex.meta
│ ├── BoidsSimulationOnGPU/
│ │ ├── BoidsSimulationOnGPU.unity
│ │ ├── BoidsSimulationOnGPU.unity.meta
│ │ ├── ComputeShaders/
│ │ │ ├── Boids.compute
│ │ │ └── Boids.compute.meta
│ │ ├── ComputeShaders.meta
│ │ ├── Materials/
│ │ │ ├── BoidsRender.mat
│ │ │ ├── BoidsRender.mat.meta
│ │ │ ├── MazeLowMan.mat
│ │ │ └── MazeLowMan.mat.meta
│ │ ├── Materials.meta
│ │ ├── MazeLowMan.fbx
│ │ ├── MazeLowMan.fbx.meta
│ │ ├── Scripts/
│ │ │ ├── BoidsRender.cs
│ │ │ ├── BoidsRender.cs.meta
│ │ │ ├── GPUBoids.cs
│ │ │ └── GPUBoids.cs.meta
│ │ ├── Scripts.meta
│ │ ├── Shaders/
│ │ │ ├── BoidsRender.shader
│ │ │ ├── BoidsRender.shader.meta
│ │ │ ├── BoidsRender2.shader
│ │ │ └── BoidsRender2.shader.meta
│ │ └── Shaders.meta
│ ├── BoidsSimulationOnGPU.meta
│ ├── GPUMarchingCubes/
│ │ ├── Materials/
│ │ │ ├── GPUMarchingCubesStandardMesh.mat
│ │ │ └── GPUMarchingCubesStandardMesh.mat.meta
│ │ ├── Materials.meta
│ │ ├── Sample.unity
│ │ ├── Sample.unity.meta
│ │ ├── Scripts/
│ │ │ ├── GPUMarchingCubesDrawMesh.cs
│ │ │ ├── GPUMarchingCubesDrawMesh.cs.meta
│ │ │ ├── MarchingCubesDefines.cs
│ │ │ └── MarchingCubesDefines.cs.meta
│ │ ├── Scripts.meta
│ │ ├── Shaders/
│ │ │ ├── GPUMarchingCubesRenderStandardMesh.shader
│ │ │ ├── GPUMarchingCubesRenderStandardMesh.shader.meta
│ │ │ ├── Libs/
│ │ │ │ ├── Primitives.cginc
│ │ │ │ ├── Primitives.cginc.meta
│ │ │ │ ├── Utils.cginc
│ │ │ │ └── Utils.cginc.meta
│ │ │ └── Libs.meta
│ │ └── Shaders.meta
│ ├── GPUMarchingCubes.meta
│ ├── MCMC3d/
│ │ ├── Demo/
│ │ │ ├── DemoMetropolis3d.cs
│ │ │ ├── DemoMetropolis3d.cs.meta
│ │ │ ├── DemoRejection3d.cs
│ │ │ ├── DemoRejection3d.cs.meta
│ │ │ ├── ManagerDemoMetropolis3d.prefab
│ │ │ ├── ManagerDemoMetropolis3d.prefab.meta
│ │ │ ├── ManagerDemoRejection3d.prefab
│ │ │ ├── ManagerDemoRejection3d.prefab.meta
│ │ │ ├── scene.unity
│ │ │ └── scene.unity.meta
│ │ ├── Demo.meta
│ │ ├── Math/
│ │ │ ├── GaussianDistribution3d.cs
│ │ │ ├── GaussianDistribution3d.cs.meta
│ │ │ ├── Metroplis3d.cs
│ │ │ ├── Metroplis3d.cs.meta
│ │ │ ├── RandomGenerator.cs
│ │ │ ├── RandomGenerator.cs.meta
│ │ │ ├── Rejection3d.cs
│ │ │ ├── Rejection3d.cs.meta
│ │ │ ├── SimplexNoiseGenerator.cs
│ │ │ └── SimplexNoiseGenerator.cs.meta
│ │ ├── Math.meta
│ │ ├── Resource/
│ │ │ ├── cube1.prefab
│ │ │ ├── cube1.prefab.meta
│ │ │ ├── cube2.prefab
│ │ │ ├── cube2.prefab.meta
│ │ │ ├── cube3.prefab
│ │ │ ├── cube3.prefab.meta
│ │ │ ├── cube4.prefab
│ │ │ ├── cube4.prefab.meta
│ │ │ ├── cube5.prefab
│ │ │ ├── cube5.prefab.meta
│ │ │ ├── cube6.prefab
│ │ │ ├── cube6.prefab.meta
│ │ │ ├── cube7.prefab
│ │ │ ├── cube7.prefab.meta
│ │ │ ├── cube8.prefab
│ │ │ ├── cube8.prefab.meta
│ │ │ ├── cube9.prefab
│ │ │ ├── cube9.prefab.meta
│ │ │ ├── mat1.mat
│ │ │ ├── mat1.mat.meta
│ │ │ ├── mat2.mat
│ │ │ ├── mat2.mat.meta
│ │ │ ├── mat3.mat
│ │ │ ├── mat3.mat.meta
│ │ │ ├── mat4.mat
│ │ │ ├── mat4.mat.meta
│ │ │ ├── mat5.mat
│ │ │ ├── mat5.mat.meta
│ │ │ ├── mat6.mat
│ │ │ ├── mat6.mat.meta
│ │ │ ├── mat7.mat
│ │ │ ├── mat7.mat.meta
│ │ │ ├── mat8.mat
│ │ │ ├── mat8.mat.meta
│ │ │ ├── mat9.mat
│ │ │ └── mat9.mat.meta
│ │ └── Resource.meta
│ ├── MCMC3d.meta
│ ├── Plugins/
│ │ ├── Editor/
│ │ │ └── JetBrains.meta
│ │ └── Editor.meta
│ ├── Plugins.meta
│ ├── ProceduralModeling/
│ │ ├── Resources/
│ │ │ ├── Materials/
│ │ │ │ ├── Normal.mat
│ │ │ │ ├── Normal.mat.meta
│ │ │ │ ├── ProceduralTreeNormal.mat
│ │ │ │ ├── ProceduralTreeNormal.mat.meta
│ │ │ │ ├── ProceduralTreeStandard.mat
│ │ │ │ ├── ProceduralTreeStandard.mat.meta
│ │ │ │ ├── ProceduralTreeUV.mat
│ │ │ │ ├── ProceduralTreeUV.mat.meta
│ │ │ │ ├── Standard.mat
│ │ │ │ ├── Standard.mat.meta
│ │ │ │ ├── UV.mat
│ │ │ │ └── UV.mat.meta
│ │ │ └── Materials.meta
│ │ ├── Resources.meta
│ │ ├── Scenes/
│ │ │ ├── Cylinder.unity
│ │ │ ├── Cylinder.unity.meta
│ │ │ ├── LSystem.unity
│ │ │ ├── LSystem.unity.meta
│ │ │ ├── ParametricPlane.unity
│ │ │ ├── ParametricPlane.unity.meta
│ │ │ ├── Plane.unity
│ │ │ ├── Plane.unity.meta
│ │ │ ├── ProceduralTree.unity
│ │ │ ├── ProceduralTree.unity.meta
│ │ │ ├── Quad.unity
│ │ │ ├── Quad.unity.meta
│ │ │ ├── Tubular.unity
│ │ │ └── Tubular.unity.meta
│ │ ├── Scenes.meta
│ │ ├── Scripts/
│ │ │ ├── BadCylinder.cs
│ │ │ ├── BadCylinder.cs.meta
│ │ │ ├── Curve/
│ │ │ │ ├── CatmullRomCurve.cs
│ │ │ │ ├── CatmullRomCurve.cs.meta
│ │ │ │ ├── CurveBase.cs
│ │ │ │ ├── CurveBase.cs.meta
│ │ │ │ ├── FrenetFrame.cs
│ │ │ │ └── FrenetFrame.cs.meta
│ │ │ ├── Curve.meta
│ │ │ ├── Cylinder.cs
│ │ │ ├── Cylinder.cs.meta
│ │ │ ├── Editor.meta
│ │ │ ├── LSystem.cs
│ │ │ ├── LSystem.cs.meta
│ │ │ ├── Plane.cs
│ │ │ ├── Plane.cs.meta
│ │ │ ├── ProceduralModelingBase.cs
│ │ │ ├── ProceduralModelingBase.cs.meta
│ │ │ ├── ProceduralTree.cs
│ │ │ ├── ProceduralTree.cs.meta
│ │ │ ├── Quad.cs
│ │ │ ├── Quad.cs.meta
│ │ │ ├── Tubular.cs
│ │ │ └── Tubular.cs.meta
│ │ └── Scripts.meta
│ ├── ProceduralModeling.meta
│ ├── SimpleComputeShader/
│ │ ├── SampleScene_Array/
│ │ │ ├── SimpleComputeShader_Array.compute
│ │ │ ├── SimpleComputeShader_Array.compute.meta
│ │ │ ├── SimpleComputeShader_Array.cs
│ │ │ ├── SimpleComputeShader_Array.cs.meta
│ │ │ ├── SimpleComputeShader_Array.unity
│ │ │ └── SimpleComputeShader_Array.unity.meta
│ │ ├── SampleScene_Array.meta
│ │ ├── SampleScene_Texture/
│ │ │ ├── SimpleComputeShader_Texture.compute
│ │ │ ├── SimpleComputeShader_Texture.compute.meta
│ │ │ ├── SimpleComputeShader_Texture.cs
│ │ │ ├── SimpleComputeShader_Texture.cs.meta
│ │ │ ├── SimpleComputeShader_Texture.unity
│ │ │ ├── SimpleComputeShader_Texture.unity.meta
│ │ │ ├── UnlitMaterial.mat
│ │ │ └── UnlitMaterial.mat.meta
│ │ └── SampleScene_Texture.meta
│ ├── SimpleComputeShader.meta
│ ├── Test/
│ │ ├── Materials.meta
│ │ ├── Model/
│ │ │ ├── Materials/
│ │ │ │ ├── MazeLowMan.mat
│ │ │ │ ├── MazeLowMan.mat.meta
│ │ │ │ ├── body_color_map.mat
│ │ │ │ ├── body_color_map.mat.meta
│ │ │ │ ├── eyes_color_map.mat
│ │ │ │ ├── eyes_color_map.mat.meta
│ │ │ │ ├── face_color_map.mat
│ │ │ │ └── face_color_map.mat.meta
│ │ │ ├── Materials.meta
│ │ │ ├── MazeLowMan.fbx
│ │ │ ├── MazeLowMan.fbx.meta
│ │ │ ├── MazeManWalk.fbx
│ │ │ ├── MazeManWalk.fbx.meta
│ │ │ ├── Walking (1).fbm/
│ │ │ │ ├── body normal.png.meta
│ │ │ │ ├── body_color_map.png.meta
│ │ │ │ ├── body_specular_map.png.meta
│ │ │ │ ├── eyes_color_map.png.meta
│ │ │ │ ├── eyes_specular_map.png.meta
│ │ │ │ ├── face normal.png.meta
│ │ │ │ └── face_color_map.png.meta
│ │ │ ├── Walking (1).fbm.meta
│ │ │ ├── Walking (1).fbx
│ │ │ ├── Walking (1).fbx.meta
│ │ │ ├── Walking.fbx
│ │ │ ├── Walking.fbx.meta
│ │ │ ├── waker3.fbm/
│ │ │ │ ├── body normal.png.meta
│ │ │ │ ├── body_color_map.png.meta
│ │ │ │ ├── body_specular_map.png.meta
│ │ │ │ ├── eyes_color_map.png.meta
│ │ │ │ ├── eyes_specular_map.png.meta
│ │ │ │ ├── face normal.png.meta
│ │ │ │ └── face_color_map.png.meta
│ │ │ ├── waker3.fbm.meta
│ │ │ ├── waker3.fbx
│ │ │ └── waker3.fbx.meta
│ │ ├── Model.meta
│ │ ├── Scene/
│ │ │ ├── fukusei.unity
│ │ │ ├── fukusei.unity.meta
│ │ │ ├── fukusei_plane.unity
│ │ │ ├── fukusei_plane.unity.meta
│ │ │ ├── walker_gen.unity
│ │ │ └── walker_gen.unity.meta
│ │ ├── Scene.meta
│ │ ├── Scripts/
│ │ │ ├── Cam.cs
│ │ │ ├── Cam.cs.meta
│ │ │ ├── Fukusei.cs
│ │ │ ├── Fukusei.cs.meta
│ │ │ ├── Fukusei2.cs
│ │ │ ├── Fukusei2.cs.meta
│ │ │ ├── Fukusei3.cs
│ │ │ ├── Fukusei3.cs.meta
│ │ │ ├── Fukusei3Main.cs
│ │ │ ├── Fukusei3Main.cs.meta
│ │ │ ├── ImgPos.cs
│ │ │ └── ImgPos.cs.meta
│ │ ├── Scripts.meta
│ │ ├── Shader/
│ │ │ ├── NewSurfaceShader.shader
│ │ │ └── NewSurfaceShader.shader.meta
│ │ ├── Shader.meta
│ │ └── au.png.meta
│ └── Test.meta
├── ProjectSettings/
│ ├── AudioManager.asset
│ ├── ClusterInputManager.asset
│ ├── DynamicsManager.asset
│ ├── EditorBuildSettings.asset
│ ├── EditorSettings.asset
│ ├── GraphicsSettings.asset
│ ├── InputManager.asset
│ ├── NavMeshAreas.asset
│ ├── NetworkManager.asset
│ ├── Physics2DSettings.asset
│ ├── ProjectSettings.asset
│ ├── ProjectVersion.txt
│ ├── QualitySettings.asset
│ ├── TagManager.asset
│ ├── TimeManager.asset
│ └── UnityConnectSettings.asset
└── UnityPackageManager/
└── manifest.json
================================================
FILE CONTENTS
================================================
================================================
FILE: Readme.md
================================================
# GPU Instancing + Boids + Animation Texture Baker
https://vimeo.com/249752376

# Reference
* GPU Instancing + Compute Shader + Boids
https://github.com/IndieVisualLab/UnityGraphicsProgramming/tree/master/Assets/BoidsSimulationOnGPU
* Animation Texture Baker
https://github.com/sugi-cho/Animation-Texture-Baker
================================================
FILE: boids/.gitignore
================================================
/[Ll]ibrary/
/[Tt]emp/
/[Oo]bj/
/[Bb]uild/
/[Bb]uilds/
/Assets/AssetStoreTools*
# Visual Studio 2015 cache directory
/.vs/
# Autogenerated VS/MD/Consulo solution and project files
ExportedObj/
.consulo/
*.csproj
*.unityproj
*.sln
*.suo
*.tmp
*.user
*.userprefs
*.pidb
*.booproj
*.svd
*.pdb
# Unity3D generated meta files
*.pidb.meta
# Unity3D Generated File On Crash Reports
sysinfo.txt
# Builds
*.apk
*.unitypackage
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode
## Directory-based project format
.idea/
## File-based project format
*.ipr
*.iws
*.iml
## Additional for IntelliJ
out/
# generated by mpeltonen/sbt-idea plugin
.idea_modules/
# generated by JIRA plugin
atlassian-ide-plugin.xml
# generated by Crashlytics plugin (for Android Studio and Intellij)
com_crashlytics_export_strings.xml
### https://raw.github.com/github/gitignore/fcce3b8de0e4b7a1c525ad4867f4ce8af4990854/Global/OSX.gitignore
.DS_Store
.AppleDouble
.LSOverride
# Icon must ends with two \r.
Icon
# Thumbnails
._*
# Files that might appear on external disk
.Spotlight-V100
.Trashes
### https://raw.github.com/github/gitignore/fcce3b8de0e4b7a1c525ad4867f4ce8af4990854/Global/Windows.gitignore
# Windows image file caches
Thumbs.db
ehthumbs.db
# Folder config file
Desktop.ini
# Recycle Bin used on file shares
$RECYCLE.BIN/
# Windows Installer files
*.cab
*.msi
*.msm
*.msp
/*.pdb
/*.exe
# vscode
/.vscode/
/Assets/VSCode/
================================================
FILE: boids/Assets/AnimationBaker/Editor/Tex2dToPng.cs
================================================
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
public class Tex2dToPng
{
[MenuItem("Custom/tex2png")]
public static void SaveSelection()
{
var tex = (Texture2D)Selection.activeObject;
if (tex == null)
return;
var pngData = tex.EncodeToPNG();
System.IO.File.WriteAllBytes(Application.dataPath + "/tex.png", pngData);
}
}
================================================
FILE: boids/Assets/AnimationBaker/Editor/Tex2dToPng.cs.meta
================================================
fileFormatVersion: 2
guid: e537ed6da3d702b4dbcf8cdb878c38bb
timeCreated: 1496251456
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: boids/Assets/AnimationBaker/Editor.meta
================================================
fileFormatVersion: 2
guid: 27fcf8f87e682b641914a2cc74211c02
folderAsset: yes
timeCreated: 1496251442
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: boids/Assets/AnimationBaker/Scenes/uma.unity
================================================
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
OcclusionCullingSettings:
m_ObjectHideFlags: 0
serializedVersion: 2
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: 0.25
backfaceThreshold: 100
m_SceneGUID: 00000000000000000000000000000000
m_OcclusionCullingData: {fileID: 0}
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 8
m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 0
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
m_HaloStrength: 0.5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 11
m_GIWorkflowMode: 0
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_TemporalCoherenceThreshold: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 1
m_LightmapEditorSettings:
serializedVersion: 9
m_Resolution: 2
m_BakeResolution: 40
m_TextureWidth: 1024
m_TextureHeight: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 256
m_ReflectionCompression: 2
m_MixedBakeMode: 2
m_BakeBackend: 0
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 500
m_PVRBounces: 2
m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0
m_PVRFilteringMode: 1
m_PVRCulling: 1
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 5
m_PVRFilteringGaussRadiusAO: 2
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
m_LightingDataAsset: {fileID: 0}
m_UseShadowmask: 1
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 2
agentTypeID: 0
agentRadius: 0.5
agentHeight: 2
agentSlope: 45
agentClimb: 0.4
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
minRegionArea: 2
manualCellSize: 0
cellSize: 0.16666667
manualTileSize: 0
tileSize: 256
accuratePlacement: 0
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &145230002
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 100000, guid: a85d92b72304a79449904f3b49e3d5ea, type: 3}
m_PrefabInternal: {fileID: 382461441}
serializedVersion: 5
m_Component:
- component: {fileID: 145230004}
- component: {fileID: 145230003}
m_Layer: 0
m_Name: Missing Prefab (Dummy)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!114 &145230003
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 145230002}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1e6f548afb5cc444a83b1255089d8530, type: 3}
m_Name:
m_EditorClassIdentifier:
infoTexGen: {fileID: 7200000, guid: c6bbf99e5edb32d41b103202a8f10653, type: 3}
playShader: {fileID: 4800000, guid: c6e38db4bb1289d4d888dbc1d121a69e, type: 3}
--- !u!4 &145230004
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 382461441}
m_GameObject: {fileID: 145230002}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 949217185}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1001 &382461441
Prefab:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 11100000, guid: a85d92b72304a79449904f3b49e3d5ea, type: 3}
propertyPath: m_Animations.Array.size
value: 3
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: a85d92b72304a79449904f3b49e3d5ea, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: a85d92b72304a79449904f3b49e3d5ea, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: a85d92b72304a79449904f3b49e3d5ea, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: a85d92b72304a79449904f3b49e3d5ea, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: a85d92b72304a79449904f3b49e3d5ea, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: a85d92b72304a79449904f3b49e3d5ea, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: a85d92b72304a79449904f3b49e3d5ea, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: a85d92b72304a79449904f3b49e3d5ea, type: 3}
propertyPath: m_RootOrder
value: 1
objectReference: {fileID: 0}
- target: {fileID: 11100000, guid: a85d92b72304a79449904f3b49e3d5ea, type: 3}
propertyPath: m_Animation
value:
objectReference: {fileID: 7400000, guid: f93e0aef0e51f7240b6df07faa08500d, type: 3}
- target: {fileID: 11100000, guid: a85d92b72304a79449904f3b49e3d5ea, type: 3}
propertyPath: m_Animations.Array.data[0]
value:
objectReference: {fileID: 7400000, guid: f93e0aef0e51f7240b6df07faa08500d, type: 3}
- target: {fileID: 100000, guid: a85d92b72304a79449904f3b49e3d5ea, type: 3}
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
- target: {fileID: 100000, guid: a85d92b72304a79449904f3b49e3d5ea, type: 3}
propertyPath: m_Name
value: Horse
objectReference: {fileID: 0}
- target: {fileID: 11100000, guid: a85d92b72304a79449904f3b49e3d5ea, type: 3}
propertyPath: m_Animations.Array.data[1]
value:
objectReference: {fileID: 7400000, guid: 739a527acf30e794999333672821df88, type: 3}
- target: {fileID: 11100000, guid: a85d92b72304a79449904f3b49e3d5ea, type: 3}
propertyPath: m_Animations.Array.data[2]
value:
objectReference: {fileID: 7400000, guid: a748dee4242461842b2f083a18157d1f, type: 3}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: a85d92b72304a79449904f3b49e3d5ea, type: 3}
m_RootGameObject: {fileID: 949217184}
m_IsPrefabParent: 0
--- !u!1 &496317774
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 496317779}
- component: {fileID: 496317778}
- component: {fileID: 496317777}
- component: {fileID: 496317776}
- component: {fileID: 496317775}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!81 &496317775
AudioListener:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 496317774}
m_Enabled: 1
--- !u!124 &496317776
Behaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 496317774}
m_Enabled: 1
--- !u!92 &496317777
Behaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 496317774}
m_Enabled: 1
--- !u!20 &496317778
Camera:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 496317774}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 1
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic size: 5
m_Depth: -1
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 1
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!4 &496317779
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 496317774}
m_LocalRotation: {x: 0, y: -0.5, z: 0, w: 0.8660254}
m_LocalPosition: {x: 2, y: 1, z: -1}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: -60, z: 0}
--- !u!1 &651599808
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 795253825}
serializedVersion: 5
m_Component:
- component: {fileID: 651599809}
m_Layer: 0
m_Name: Missing Prefab
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &651599809
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 795253825}
m_GameObject: {fileID: 651599808}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1001 &795253825
Prefab:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 4446073943424300, guid: 3515a695430c9d64db398dfeb0e7414d, type: 2}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4446073943424300, guid: 3515a695430c9d64db398dfeb0e7414d, type: 2}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4446073943424300, guid: 3515a695430c9d64db398dfeb0e7414d, type: 2}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4446073943424300, guid: 3515a695430c9d64db398dfeb0e7414d, type: 2}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4446073943424300, guid: 3515a695430c9d64db398dfeb0e7414d, type: 2}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4446073943424300, guid: 3515a695430c9d64db398dfeb0e7414d, type: 2}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4446073943424300, guid: 3515a695430c9d64db398dfeb0e7414d, type: 2}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4446073943424300, guid: 3515a695430c9d64db398dfeb0e7414d, type: 2}
propertyPath: m_RootOrder
value: 2
objectReference: {fileID: 0}
- target: {fileID: 1920960657845932, guid: 3515a695430c9d64db398dfeb0e7414d, type: 2}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: 3515a695430c9d64db398dfeb0e7414d, type: 2}
m_RootGameObject: {fileID: 651599808}
m_IsPrefabParent: 0
--- !u!1 &949217184
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 382461441}
serializedVersion: 5
m_Component:
- component: {fileID: 949217185}
m_Layer: 0
m_Name: Missing Prefab
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &949217185
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 382461441}
m_GameObject: {fileID: 949217184}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 145230004}
m_Father: {fileID: 0}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
================================================
FILE: boids/Assets/AnimationBaker/Scenes/uma.unity.meta
================================================
fileFormatVersion: 2
guid: 7921a3e6819060147b54d111accd7a14
timeCreated: 1496040504
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: boids/Assets/AnimationBaker/Scenes.meta
================================================
fileFormatVersion: 2
guid: fde3828f74b238c4f8d72eb36b96ec0a
folderAsset: yes
timeCreated: 1462439752
licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: boids/Assets/AnimationBaker/Scripts/AnimationTextureBaker.cs
================================================
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
#if UNITY_EDITOR
using UnityEditor;
using System.IO;
#endif
public class AnimationTextureBaker : MonoBehaviour
{
public ComputeShader infoTexGen;
public Shader playShader;
public struct VertInfo
{
public Vector3 position;
public Vector3 normal;
}
// Use this for initialization
void Start()
{
var animation = GetComponent<Animation>();
var skin = GetComponentInChildren<SkinnedMeshRenderer>();
var vCount = skin.sharedMesh.vertexCount;
var texWidth = Mathf.NextPowerOfTwo(vCount);
var mesh = new Mesh();
foreach (AnimationState state in animation)
{
animation.Play(state.name);
var frames = Mathf.NextPowerOfTwo((int)(state.length / 0.05f));
var dt = state.length / frames;
var time = 0f;
var infoList = new List<VertInfo>();
var pRt = new RenderTexture(texWidth, frames, 0, RenderTextureFormat.ARGBHalf);
pRt.name = string.Format("{0}.{1}.posTex", name, state.name);
var nRt = new RenderTexture(texWidth, frames, 0, RenderTextureFormat.ARGBHalf);
nRt.name = string.Format("{0}.{1}.normTex", name, state.name);
foreach (var rt in new[] { pRt, nRt })
{
rt.enableRandomWrite = true;
rt.Create();
RenderTexture.active = rt;
GL.Clear(true, true, Color.clear);
}
for (var i = 0; i < frames; i++)
{
state.time = time;
animation.Sample();
skin.BakeMesh(mesh);
infoList.AddRange(Enumerable.Range(0, vCount)
.Select(idx => new VertInfo()
{
position = mesh.vertices[idx],
normal = mesh.normals[idx]
})
);
time += dt;
}
var buffer = new ComputeBuffer(infoList.Count, System.Runtime.InteropServices.Marshal.SizeOf(typeof(VertInfo)));
buffer.SetData(infoList.ToArray());
var kernel = infoTexGen.FindKernel("CSMain");
uint x, y, z;
infoTexGen.GetKernelThreadGroupSizes(kernel, out x, out y, out z);
infoTexGen.SetInt("VertCount", vCount);
infoTexGen.SetBuffer(kernel, "Info", buffer);
infoTexGen.SetTexture(kernel, "OutPosition", pRt);
infoTexGen.SetTexture(kernel, "OutNormal", nRt);
infoTexGen.Dispatch(kernel, vCount / (int)x + 1, frames / (int)y + 1, 1);
buffer.Release();
#if UNITY_EDITOR
var folderName = "BakedAnimationTex";
var folderPath = Path.Combine("Assets", folderName);
if (!AssetDatabase.IsValidFolder(folderPath))
AssetDatabase.CreateFolder("Assets", folderName);
var subFolder = name;
var subFolderPath = Path.Combine(folderPath, subFolder);
if (!AssetDatabase.IsValidFolder(subFolderPath))
AssetDatabase.CreateFolder(folderPath, subFolder);
var posTex = RenderTextureToTexture2D.Convert(pRt);
var normTex = RenderTextureToTexture2D.Convert(nRt);
Graphics.CopyTexture(pRt, posTex);
Graphics.CopyTexture(nRt, normTex);
var mat = new Material(playShader);
mat.SetTexture("_MainTex", skin.sharedMaterial.mainTexture);
mat.SetTexture("_PosTex", posTex);
mat.SetTexture("_NmlTex", normTex);
mat.SetFloat("_Length", state.length);
if (state.wrapMode == WrapMode.Loop) {
mat.SetFloat("_Loop", 1f);
mat.EnableKeyword("ANIM_LOOP");
}
var go = new GameObject(name + "." + state.name);
go.AddComponent<MeshRenderer>().sharedMaterial = mat;
go.AddComponent<MeshFilter>().sharedMesh = skin.sharedMesh;
AssetDatabase.CreateAsset(posTex, Path.Combine(subFolderPath, pRt.name + ".asset"));
AssetDatabase.CreateAsset(normTex, Path.Combine(subFolderPath, nRt.name + ".asset"));
AssetDatabase.CreateAsset(mat, Path.Combine(subFolderPath, string.Format("{0}.{1}.animTex.asset", name, state.name)));
PrefabUtility.CreatePrefab(Path.Combine(folderPath, go.name + ".prefab").Replace("\\", "/"), go);
AssetDatabase.SaveAssets();
AssetDatabase.Refresh();
#endif
}
}
}
================================================
FILE: boids/Assets/AnimationBaker/Scripts/AnimationTextureBaker.cs.meta
================================================
fileFormatVersion: 2
guid: 1e6f548afb5cc444a83b1255089d8530
timeCreated: 1496167716
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences:
- infoTexGen: {fileID: 7200000, guid: c6bbf99e5edb32d41b103202a8f10653, type: 3}
- playShader: {fileID: 4800000, guid: c6e38db4bb1289d4d888dbc1d121a69e, type: 3}
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: boids/Assets/AnimationBaker/Scripts/RenderTextureToTexture2D.cs
================================================
using UnityEngine;
public class RenderTextureToTexture2D : MonoBehaviour
{
public static Texture2D Convert(RenderTexture rt)
{
TextureFormat format;
switch (rt.format)
{
case RenderTextureFormat.ARGBFloat:
format = TextureFormat.RGBAFloat;
break;
case RenderTextureFormat.ARGBHalf:
format = TextureFormat.RGBAHalf;
break;
case RenderTextureFormat.ARGBInt:
format = TextureFormat.RGBA32;
break;
case RenderTextureFormat.ARGB32:
format = TextureFormat.ARGB32;
break;
default:
format = TextureFormat.ARGB32;
Debug.LogWarning("Unsuported RenderTextureFormat.");
break;
}
return Convert(rt, format);
}
static Texture2D Convert(RenderTexture rt, TextureFormat format)
{
var tex2d = new Texture2D(rt.width, rt.height, format, false);
var rect = Rect.MinMaxRect(0f, 0f, tex2d.width, tex2d.height);
RenderTexture.active = rt;
tex2d.ReadPixels(rect, 0, 0);
RenderTexture.active = null;
return tex2d;
}
}
================================================
FILE: boids/Assets/AnimationBaker/Scripts/RenderTextureToTexture2D.cs.meta
================================================
fileFormatVersion: 2
guid: 270c133f7d489c94e885de62e34f0fd1
timeCreated: 1462510710
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: boids/Assets/AnimationBaker/Scripts.meta
================================================
fileFormatVersion: 2
guid: f01a7aa50eb4a4c42a685e5a0a414b16
folderAsset: yes
timeCreated: 1462439739
licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: boids/Assets/AnimationBaker/Shaders/MeshInfoTextureGen.compute
================================================
// Each #kernel tells which function to compile; you can have many kernels
#pragma kernel CSMain
struct MeshInfo{
float3 position;
float3 normal;
};
// Create a RenderTexture with enableRandomWrite flag and set it
// with cs.SetTexture
RWTexture2D<float4> OutPosition;
RWTexture2D<float4> OutNormal;
StructuredBuffer<MeshInfo> Info;
int VertCount;
[numthreads(8,8,1)]
void CSMain (uint3 id : SV_DispatchThreadID)
{
int index = id.y * VertCount + id.x;
MeshInfo info = Info[index];
OutPosition[id.xy] = float4(info.position, 1.0);
OutNormal[id.xy] = float4(info.normal, 1.0);
}
================================================
FILE: boids/Assets/AnimationBaker/Shaders/MeshInfoTextureGen.compute.meta
================================================
fileFormatVersion: 2
guid: c6bbf99e5edb32d41b103202a8f10653
timeCreated: 1496080002
licenseType: Free
ComputeShaderImporter:
currentAPIMask: 4
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: boids/Assets/AnimationBaker/Shaders/TextureAnimPlayer.shader
================================================
Shader "Unlit/TextureAnimPlayer"
{
Properties
{
_MainTex ("Texture", 2D) = "white" {}
_PosTex("position texture", 2D) = "black"{}
_NmlTex("normal texture", 2D) = "white"{}
_DT ("delta time", float) = 0
_Col ("col", Color) = (1.0,0,0,1.0)
_Length ("animation length", Float) = 1
[Toggle(ANIM_LOOP)] _Loop("loop", Float) = 0
}
SubShader
{
LOD 100 Cull Off
Pass
{
Tags { "RenderType"="Opaque" }
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma multi_compile ___ ANIM_LOOP
#pragma target 3.5
#include "UnityCG.cginc"
#define ts _PosTex_TexelSize
struct appdata
{
float2 uv : TEXCOORD0;
};
struct v2f
{
float2 uv : TEXCOORD0;
float3 normal : TEXCOORD1;
float4 vertex : SV_POSITION;
};
sampler2D _MainTex, _PosTex, _NmlTex;
float4 _PosTex_TexelSize;
float _Length, _DT;
float4 _Col;
v2f vert (appdata v, uint vid : SV_VertexID)
{
float t = (_Time.y - _DT) / _Length;
#if ANIM_LOOP
t = fmod(t, 1.0);
#else
t = saturate(t);
#endif
float x = (vid + 0.5) * ts.x;
float y = t;
float4 pos = tex2Dlod(_PosTex, float4(x, y, 0, 0));
float3 normal = tex2Dlod(_NmlTex, float4(x, y, 0, 0));
v2f o;
o.vertex = UnityObjectToClipPos(pos);
o.normal = UnityObjectToWorldNormal(normal);
o.uv = v.uv;
return o;
}
half4 frag (v2f i) : SV_Target
{
half diff = dot(i.normal, float3(0,1,0))*0.5 + 0.5;
half4 col = tex2D(_MainTex, i.uv);
return diff * col * _Col;
}
ENDCG
}
/////////////////
Pass
{
Tags { "LightMode" = "ShadowCaster" }
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma multi_compile ___ ANIM_LOOP
#pragma target 3.5
#include "UnityCG.cginc"
#define ts _PosTex_TexelSize
struct appdata
{
float2 uv : TEXCOORD0;
};
struct v2f
{
float2 uv : TEXCOORD0;
float3 normal : TEXCOORD1;
float4 vertex : SV_POSITION;
};
sampler2D _MainTex, _PosTex, _NmlTex;
float4 _PosTex_TexelSize;
float _Length, _DT;
float4 _Col;
v2f vert (appdata v, uint vid : SV_VertexID)
{
float t = (_Time.y - _DT) / _Length;
#if ANIM_LOOP
t = fmod(t, 1.0);
#else
t = saturate(t);
#endif
float x = (vid + 0.5) * ts.x;
float y = t;
float4 pos = tex2Dlod(_PosTex, float4(x, y, 0, 0));
float3 normal = tex2Dlod(_NmlTex, float4(x, y, 0, 0));
v2f o;
o.vertex = UnityObjectToClipPos(pos);
o.normal = UnityObjectToWorldNormal(normal);
o.uv = v.uv;
return o;
}
half4 frag (v2f i) : SV_Target
{
//half diff = dot(i.normal, float3(0,1,0))*0.5 + 0.5;
//half4 col = tex2D(_MainTex, i.uv);
return _Col;
}
ENDCG
}
// shadow caster rendering pass, implemented manually
// using macros from UnityCG.cginc
/*
Pass
{
Tags{ "LightMode" = "ShadowCaster" }
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma multi_compile_shadowcaster
#include "UnityCG.cginc"
struct v2f {
V2F_SHADOW_CASTER;
};
v2f vert(appdata_base v)
{
v2f o;
TRANSFER_SHADOW_CASTER_NORMALOFFSET(o)
return o;
}
float4 frag(v2f i) : SV_Target
{
SHADOW_CASTER_FRAGMENT(i)
}
ENDCG
}*/
}
}
================================================
FILE: boids/Assets/AnimationBaker/Shaders/TextureAnimPlayer.shader.meta
================================================
fileFormatVersion: 2
guid: c6e38db4bb1289d4d888dbc1d121a69e
timeCreated: 1462530735
licenseType: Pro
ShaderImporter:
defaultTextures: []
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: boids/Assets/AnimationBaker/Shaders/TextureAnimPlayerI.shader
================================================
// Upgrade NOTE: replaced 'UNITY_INSTANCE_ID' with 'UNITY_VERTEX_INPUT_INSTANCE_ID'
Shader "Unlit/TextureAnimPlayerI"
{
Properties
{
_MainTex ("Texture", 2D) = "white" {}
_PosTex("position texture", 2D) = "black"{}
_NmlTex("normal texture", 2D) = "white"{}
_DT ("delta time", float) = 0
_Col ("col", Color) = (1.0,0,0,1.0)
_Length ("animation length", Float) = 1
[Toggle(ANIM_LOOP)] _Loop("loop", Float) = 0
}
SubShader
{
LOD 100 Cull Off
Pass
{
Tags { "RenderType"="Opaque" }
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma target es3.0
#pragma multi_compile_instancing
#pragma multi_compile ___ ANIM_LOOP
#include "UnityCG.cginc"
#define ts _PosTex_TexelSize
struct appdata
{
float2 uv : TEXCOORD0;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct v2f
{
float2 uv : TEXCOORD0;
float3 normal : TEXCOORD1;
float4 vertex : SV_POSITION;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
sampler2D _MainTex, _PosTex, _NmlTex;
float4 _PosTex_TexelSize;
float _Length;
UNITY_INSTANCING_CBUFFER_START (MyProperties)
UNITY_DEFINE_INSTANCED_PROP (float4, _Col)
UNITY_DEFINE_INSTANCED_PROP (float, _DT)
UNITY_INSTANCING_CBUFFER_END
v2f vert (appdata v, uint vid : SV_VertexID)
{
v2f o;
UNITY_SETUP_INSTANCE_ID (v);
UNITY_TRANSFER_INSTANCE_ID (v, o);
float t = (_Time.y - UNITY_ACCESS_INSTANCED_PROP(_DT)) / _Length;
#if ANIM_LOOP
t = fmod(t, 1.0);
#else
t = saturate(t);
#endif
float x = (vid + 0.5) * ts.x;
float y = t;
float4 pos = tex2Dlod(_PosTex, float4(x, y, 0, 0));
float3 normal = tex2Dlod(_NmlTex, float4(x, y, 0, 0));
o.vertex = UnityObjectToClipPos(pos);
o.normal = UnityObjectToWorldNormal(normal);
o.uv = v.uv;
return o;
}
half4 frag (v2f i) : SV_Target
{
UNITY_SETUP_INSTANCE_ID (i);
half diff = dot(i.normal, float3(0,1,0))*0.5 + 0.5;
half4 col = tex2D(_MainTex, i.uv);
return diff * col * UNITY_ACCESS_INSTANCED_PROP (_Col);
}
ENDCG
}
/////////////////
Pass
{
Tags { "LightMode" = "ShadowCaster" }
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma multi_compile_instancing
#pragma multi_compile ___ ANIM_LOOP
#include "UnityCG.cginc"
#define ts _PosTex_TexelSize
struct appdata
{
float2 uv : TEXCOORD0;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct v2f
{
float2 uv : TEXCOORD0;
float3 normal : TEXCOORD1;
float4 vertex : SV_POSITION;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
sampler2D _MainTex, _PosTex, _NmlTex;
float4 _PosTex_TexelSize;
float _Length;
UNITY_INSTANCING_CBUFFER_START (MyProperties)
UNITY_DEFINE_INSTANCED_PROP (float4, _Col)
UNITY_DEFINE_INSTANCED_PROP (float, _DT)
UNITY_INSTANCING_CBUFFER_END
v2f vert (appdata v, uint vid : SV_VertexID)
{
v2f o;
UNITY_SETUP_INSTANCE_ID (v);
UNITY_TRANSFER_INSTANCE_ID (v, o);
float t = (_Time.y - UNITY_ACCESS_INSTANCED_PROP(_DT)) / _Length;
#if ANIM_LOOP
t = fmod(t, 1.0);
#else
t = saturate(t);
#endif
float x = (vid + 0.5) * ts.x;
float y = t;
float4 pos = tex2Dlod(_PosTex, float4(x, y, 0, 0));
float3 normal = tex2Dlod(_NmlTex, float4(x, y, 0, 0));
o.vertex = UnityObjectToClipPos(pos);
o.normal = UnityObjectToWorldNormal(normal);
o.uv = v.uv;
return o;
}
half4 frag (v2f i) : SV_Target
{
//half diff = dot(i.normal, float3(0,1,0))*0.5 + 0.5;
//half4 col = tex2D(_MainTex, i.uv);
return _Col;
}
ENDCG
}
}
}
================================================
FILE: boids/Assets/AnimationBaker/Shaders/TextureAnimPlayerI.shader.meta
================================================
fileFormatVersion: 2
guid: a63f3a1bb9ad48f68fb732d67bdb6231
timeCreated: 1513769876
================================================
FILE: boids/Assets/AnimationBaker/Shaders/TextureAnimPlayerNone.shader
================================================
// Upgrade NOTE: replaced 'UNITY_INSTANCE_ID' with 'UNITY_VERTEX_INPUT_INSTANCE_ID'
Shader "Unlit/TextureAnimPlayerI"
{
Properties
{
_MainTex ("Texture", 2D) = "white" {}
_PosTex("position texture", 2D) = "black"{}
_NmlTex("normal texture", 2D) = "white"{}
_DT ("delta time", float) = 0
_Col ("col", Color) = (1.0,0,0,1.0)
_Length ("animation length", Float) = 1
[Toggle(ANIM_LOOP)] _Loop("loop", Float) = 0
}
SubShader
{
LOD 100 Cull Off
Pass
{
Tags { "RenderType"="Opaque" }
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma multi_compile_instancing
#pragma multi_compile ___ ANIM_LOOP
#include "UnityCG.cginc"
#define ts _PosTex_TexelSize
struct appdata
{
float2 uv : TEXCOORD0;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct v2f
{
float2 uv : TEXCOORD0;
float3 normal : TEXCOORD1;
float4 vertex : SV_POSITION;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
sampler2D _MainTex, _PosTex, _NmlTex;
float4 _PosTex_TexelSize;
float _Length;
UNITY_INSTANCING_CBUFFER_START (MyProperties)
UNITY_DEFINE_INSTANCED_PROP (float4, _Col)
UNITY_DEFINE_INSTANCED_PROP (float, _DT)
UNITY_INSTANCING_CBUFFER_END
v2f vert (appdata v, uint vid : SV_VertexID)
{
v2f o;
UNITY_SETUP_INSTANCE_ID (v);
UNITY_TRANSFER_INSTANCE_ID (v, o);
float t = (_Time.y - UNITY_ACCESS_INSTANCED_PROP(_DT)) / _Length;
#if ANIM_LOOP
t = fmod(t, 1.0);
#else
t = saturate(t);
#endif
float x = (vid + 0.5) * ts.x;
float y = t;
float4 pos = tex2Dlod(_PosTex, float4(x, y, 0, 0));
float3 normal = tex2Dlod(_NmlTex, float4(x, y, 0, 0));
o.vertex = UnityObjectToClipPos(pos);
o.normal = UnityObjectToWorldNormal(normal);
o.uv = v.uv;
return o;
}
half4 frag (v2f i) : SV_Target
{
UNITY_SETUP_INSTANCE_ID (i);
half diff = dot(i.normal, float3(0,1,0))*0.5 + 0.5;
half4 col = tex2D(_MainTex, i.uv);
return diff * col * UNITY_ACCESS_INSTANCED_PROP (_Col);
}
ENDCG
}
}
}
================================================
FILE: boids/Assets/AnimationBaker/Shaders/TextureAnimPlayerNone.shader.meta
================================================
fileFormatVersion: 2
guid: f815386ec96942438c6b53b68a27274d
timeCreated: 1514189006
================================================
FILE: boids/Assets/AnimationBaker/Shaders.meta
================================================
fileFormatVersion: 2
guid: 0a9b146a0330b394da7fa6c646d5fe63
folderAsset: yes
timeCreated: 1462439746
licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: boids/Assets/AnimationBaker.meta
================================================
fileFormatVersion: 2
guid: c4b4bc4b6d4d3934996efa3bdb47ceb2
folderAsset: yes
timeCreated: 1514430106
licenseType: Free
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: boids/Assets/BakedAnimationTex/Horse/Horse.Horse_Idle.animTex.asset
================================================
%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: Horse.Horse_Idle.animTex
m_Shader: {fileID: 4800000, guid: c6e38db4bb1289d4d888dbc1d121a69e, type: 3}
m_ShaderKeywords: ANIM_LOOP
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _MainTex:
m_Texture: {fileID: 2800000, guid: 7aea49abeff5c054692741636b01ce82, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _NmlTex:
m_Texture: {fileID: 2800000, guid: f56d91d0e1d089d48ac97ab4f164c42e, type: 2}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _PosTex:
m_Texture: {fileID: 2800000, guid: 123a699558d682e4c87c6ff3aa8cdd48, type: 2}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _DT: 0
- _Length: 4
- _Loop: 1
m_Colors: []
================================================
FILE: boids/Assets/BakedAnimationTex/Horse/Horse.Horse_Idle.animTex.asset.meta
================================================
fileFormatVersion: 2
guid: c6d90fd6d7359d840a751b64ba8759bc
timeCreated: 1496169661
licenseType: Free
NativeFormatImporter:
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: boids/Assets/BakedAnimationTex/Horse/Horse.Horse_Idle.normTex.asset
================================================
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!28 &2800000
Texture2D:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: Horse.Horse_Idle.normTex
m_ImageContentsHash:
serializedVersion: 2
Hash: 00000000000000000000000000000000
serializedVersion: 2
m_Width: 2048
m_Height: 128
m_CompleteImageSize: 2097152
m_TextureFormat: 17
m_MipCount: 1
m_IsReadable: 1
m_AlphaIsTransparency: 0
m_ImageCount: 1
m_TextureDimension: 2
m_TextureSettings:
serializedVersion: 2
m_FilterMode: 1
m_Aniso: 1
m_MipBias: 0
m_WrapU: 0
m_WrapV: 0
m_WrapW: 0
m_LightmapFormat: 0
m_ColorSpace: 1
image data: 2097152
_typelessdata: 963bb9aec934003c7d3ac7b25c38003c363bdfa4e736003c813baeb3f433003cd93a772a1c38003c0c3a16b11339003cec3b6ea92230003caa3bddae3e34003c463b87a6a336003c7a3aed2da238003c833bfbb19934003c963bceb46b2e003cf83b3aada324003cfd3b0da71e29003cde387028553a003cf43801b73639003cb4386232453a003c4634e2344f3b003cfe391334e438003cd63a61b40f37003c62349035243b003cfb3b592cb01d003cd83b3f2db5b1003cf83b142c58ab003cb0386838ba38003c663b1336c122003cda3b7d3126ad003cda3b4d3058b0003cba343b38533a003c1c39ec385c37003c3d3b30356834003c11398a363f39003c9a393eb36a39003cc2205936573b003cd6206737173b003cae207335853b003cd33b99328f23003cd23ba72d1fb2003c2536ca34fc3a003c7e395d338339003c7e3a97308738003c933b5e212435003ce53b48b0912d003ca8203a358f3b003cec3adfb7e92d003c6d3bb8b54e2e003cd73bb3b1a9ad003cd03b6eb02fb1003cb33b17afe4b3003c6d3ba4a4edb5003cec3ae82ed3b7003c6f3b0a3157b5003c07387eb931b8003c03371abb7db0003cb438d7b67db9003ce038beb4e1b9003cde3869b133ba003cdc3aedad0bb8003c63ab92ba8ab8003c501e37bbe8b6003cd42f01b929ba003c113611b82fba003c4c391ab56cb9003c4b3be1ae56b6003c833b4bb5002e003c2638c0ba60b0003c7a3b7ab4f9b2003c9b3951b875b7003c4f3467ba47b8003c4535b4b9f3b8003cd3a0f4b957b9003cd5a0e9b963b9003c73a019bb5eb7003cbea059baddb8003c03a0a3bbbeb4003c1f9fe8bbcbb0003c7c199cbbed34003cc5398ab90aa1003c203b38b737aa003cf838f7b7d638003c473af5b5ec37003ccc3aceb4eb36003c612838b90e3a003cf73bd4ac712a003c6c3b80357db0003ceb399438a7b5003cf63a1c34b7b6003ccb3bf02f00b2003ccb3bf02f00b2003cb83be133bdad003cf83bc3a1342d003cb53b423380b0003c293acd38d1b2003c6737f93aecb0003ce638563894b8003c23aaf63bd1a4003cdb31d93b6e26003cf3258c3bd734003c5d32d639f638003ce01b3939f439003c3535d338b539003cbc20f937ab3a003cac20ce392339003c2b20a23bc534003c1d1ff23b592f003ccf37d23af0b1003c1f1cf23b20af003c958c933b24b5003c6038423ac2b4003c8b3a3f3806b3003ce13af33647b4003ca038d339dfb5003c899e583b53b6003c663b223577b2003c8c3b0f353bae003cb73bbb2b1934003c393a38b3b038003c2b39f3b49439003cca372db6443a003c1f2a4fb71a3b003c843aab3738b5003cc72f0db5863b003c65343bb3773b003c6b39f2add639003cd8292ab58f3b003c563bd32f0a36003c693bf5359129003cd032fab1a03b003c36a403b4b63b003cae27a3b4a33b003cb43481b5113b003c582c8cb56b3b003ce92168b64a3b003c6338cf1e9f3a003ca5390eb08239003cde38a3b70939003c213414b9c739003ce6288ab9a239003c603954b60139003ca1aef6b94439003c1437d7b0123b003c1fb53eb35c3b003c4b3ba2b4a634003cc63bd0b0d131003c2d1fe2bbae30003c2bb71dbb652b003c18a2f8bb6ba5003c053bbc32a336003c293bda306036003cd43b9a2a0f31003cd53b85a941b1003cee3a96373930003c163b3a374f24003c433b3335c2b3003c643bca34e7b2003c703bbb2694b5003cb23b7d21f3b3003c4a3b6db0eeb5003c58397db6eeb8003cb03a48b8a1ae003c81364dbb1ca8003c63b365bba2b4003ce93b1ab0cfa6003ca33b633425a8003ca33b5a34702e003c713b7935dcac003c073a40390ea4003ce83962394425003c433af938de1b003c323a0d395526003c923a89388bab003c163b2e376caf003cfc39c038b9b4003cb2a5273b28b7003c24a7d23a2cb8003ce939243966b2003c5439e0391ab0003cc9a18f3b3bb5003c389faf3b6fb4003cd438533a55ae003c573ae038b1a5003c433af7387ca7003c6838933aa0b0003c0138c53abfb1003cd436243b8cb0003c5a36563b00a8003c531fc53b8db3003cd91ef93b00ad003cfd9ca03bd2b4003c1f9c8f3b3bb5003cc31a9d3be8b4003cc036353b632e003cd4396b39212e003c963b91342730003ca23baeb4fb29003c6239e1b900ad003c163587bb62af003c6d9dffbbe61c003cc09ce4bbe930003c63b365bba2b4003c18a2f8bb6ba5003c2bb71dbb652b003c3fa0f3bbf6ae003cb93253bb72b5003c3e1c69bb01b6003c913841bae7b3003c893b36b546ac003c7c3b34352c30003cbf3964397a31003c8237ea3ab931003c7b9edf3bab31003ca015f83b7f2d003c3a2f3fbb7fb6003c812543bbadb6003ccc3860ba9c29003cac3b0cb4da2f003c9e3918391035003ccf36d63abc34003ca8a0cd3b0f33003c08358cbaa537003cf3b1d3bb7e2c003cfc39a8b74f37003c803bd2b25f34003c273b8ab58634003cf53b3bae119c003cc13bd6b34920003c27a0f8bbfa2a003c0abac6b8ec33003c2ca0bfbb7732003c5a3b369142b6003c4b3bccac70b6003c2839062712ba003c4d3962a1f9b9003cd02d562cefbb003c742d29a7f5bb003c0bb65fab62bb003c4ab829b37bba003c99294cb64abb003c14bb00b644b4003c2ca0bfbb7732003c0abac6b8ec33003c43a8f22feabb003ce12ad6a1f4bb003cfb34d33354bb003c4c397c348bb9003c123b8f336db6003ccb3b693285ae003cad3b7130cc33003c6c3bed34af32003c9239d83362b9003c753a2c386734003c733aa7388bae003c9239bc3871b6003c0938d038efb8003c7a361f3b8e32003c2136583bd4ad003ca935103be5b4003c53358d3a74b7003cbc35613abdb7003cd9353d381bba003c3d37bc393cb8003cae98f23b5b2e003cd622ec3b5cb0003c1f25c03bdab3003c71268d3b43b5003c8326883b5cb5003c1828253b2cb7003c342a083934ba003c613a92360fb7003c0c3b72b2da36003c16288dba94b8003c053b6632f7b6003ce73a7bac0038003c46aba0b7043b003c16288dba94b8003c38abeab2cc3b003ca72a153592bb003ce43af1a70e38003c263b462d0db7003ca638b0ab7e3a003c6a2b8e31ddbb003cc63ad3a43f38003cfe3a612cb1b7003ca4ab47afef3b003cc52b0e2df5bb003cb03a3aae5038003c433bb62f6cb6003cd2aa59b4af3b003c602b9031ddbb003ce13af8b32037003c2b3b1e3269b6003c923839b77b39003c2c3832354fba003cc83a7db67335003ccd3be52d71b2003c00a518ba2d39003ce2284238c3ba003c14273fbafc38003cd0a429ba1739003cf53b45a35aae003cf13b3f9f80af003c62a687b9c639003cee3b3da027b0003ccb3bf02f00b2003cb33bea274d34003cd23a0032cc37003cf53bbbac962c003c30396534ad39003cfc343a35233b003caf208335823b003c403b7fb40bb5003cf338a1b656b9003c83341eb87aba003ce7a096b88dba003c2539f5b3cbb9003c403302b397bb003c88a01cb4bbbb003ca63457b84dba003c023aebb6fab7003ced3b56a82c30003c403b7fb40bb5003c403a8d339f38003caa3bef959634003ce0a01eb8dbba003cec38f734cc39003c2039a5b9d7b4003cf63a5bb3f836003c213425bbe5b5003c3da068bb08b6003cf63a5bb3f836003c0c31bebb47b2003c9537d2ba08b3003c439fe0bb9fb1003ce0304ebb0836003c87389eb9e636003c0d9a89bb5e35003c112f6fb8993a003c8d3700b1f03a003c329effbbf2a6003cc7350333403b003cf63a5bb3f836003c87389eb9e636003c2839b0b7c1b8003c403b7fb40bb5003cf43bfaac602c003c2a3997b7c9b8003ceb3b82b0aa25003cab3834b8f3b8003c9f3b9db4dd2d003c3baf1db8ccba003c40b55bb82cba003c2839b0b7c1b8003c4facaab700bb003c14b101b57dbb003cc63bb1286a33003cee3abf323e37003c0c392435a539003c7f34b235213b003cae207435853b003cfe3b4a29851f003cd03a27359b36003ccb3b33b39320003c4038ec35183a003c67318935623b003caa2050358b3b003c3b3459328c3b003c942a0f32d83b003c65202132d93b003c9d384a31663a003cf63bd92c03ac003c983ae135e036003c8f3b2cb5ca29003c923aedab8838003cbe3a20b3d537003c893124afd43b003cb62962acf93b003c7f1ff4a9fd3b003c97366eb1293b003c5e3942b2b739003ce53a08b1b437003c653ac3b19638003c63390eb92036003c63390eb92036003ce23a01b41937003c8f3b92b0b6b4003c983b01b56523003c5c2c8bbb36b5003c23395db7e638003c833aceb65036003cc4395eb98031003cbb361bbad6b7003cf5a638b722bb003c22393db64739003c083a1ab88d36003c2c3b47b31136003cf138622d403a003ce63947366438003c8f3b92b0b6b4003c11b61db14a3b003c0733d231aa3b003c50385b27bb3a003cc43881b5cd39003c9039d49cbf39003c413794b6533a003c683528b6de3a003cc031e6b54b3b003cd42c3eb5883b003c711d27b5923b003c7731f7b7cd3a003c052decb7ec3a003c5d1b0db8e53a003c91358cb77b3a003c4538e7b77d39003c6e3167b8893a003c172c76b89e3a003c181a84b89a3a003cb03427b86b3a003c2339edb55e39003c513093b8783a003c272c81b8973a003ceb1993b88f3a003c393444b86d3a003c88373eb70e3a003c9c3044b8ab3a003c792b59b8b23a003c1d1a82b89b3a003c12344fb86c3a003c153649b8083a003c6b31e9b7d13a003ca92a2cb8d03a003ce01a3bb8c93a003cc534d4b78e3a003c1337aab7103a003c203088b9af39003c6c2782b9cb39003c92166fb9de39003cd43356b9a139003ccd37bdb82039003c5f306fbb7c35003c162e61bbfc35003cba9854bb6936003c613265bb3035003c4e3540bb2e34003c782c44bb98b6003cbd298bbb45b5003c34a073bbd0b5003c302c49bb83b6003c522e1ebb1fb7003c2624c1b86eba003c56292cb917ba003c329effbbf2a6003c4fb063b89aba003c84ae53b8adba003c403b7fb40bb5003c9e3a27323938003c11b61db14a3b003c653ac3b19638003ce53a08b1b437003ce53a08b1b437003c63390eb92036003c63390eb92036003cf3b8c5a7473a003c50385b27bb3a003cf3b8c5a7473a003cf3b8c5a7473a003c63390eb92036003c8f3b92b0b6b4003c8e38e9b9c135003c8e38e9b9c135003ce63947366438003c50385b27bb3a003c50385b27bb3a003c5c2c8bbb36b5003c8e38e9b9c135003c50385b27bb3a003cf3b8c5a7473a003c6a3b0dace835003c6a3b28aea6b5003c003432b194bb003c5aba06b456b8003c553b8aaf1a36003c8832e5adcb3b003c49b82da5c03a003c3d3b26b077b6003ce1ba51b52236003c53bb45ab5a36003c06bb86b046b7003c0a30f0b0d4bb003c3a30c0a5ed3b003c46b9a999033a003ca23ad9a97438003cd6bb92a26732003ce5ba54b0cbb7003cd6bb92a26732003c53bb45ab5a36003c5aba06b456b8003cc62d40aeedbb003c9e3b1fa2deb4003c393259aece3b003c9cb8f9a4883a003ca03a9faf6038003ccebbe328e832003ccebbe328e832003c43bb02aba3b6003cec27b5b1ddbb003cec27b5b1ddbb003c9a3ba4aeaeb4003c3d313facdf3b003cc4b8e69d6c3a003c8e3a33b16438003cd7bb5f234a32003cd7bb5f234a32003c3dbb70aac2b6003c91af3bb3bbbb003c3f3b2ab3bcb5003c91af3bb3bbbb003c3d310c30d23b003c0cb9742e263a003c0e3b872d6837003ceebb0729d82f003ceebb0729d82f003cc7bb742951b3003c3c3b3ba8cdb6003cabb410a7a3bb003c6425222cee3b003c70b98129c939003c933aa4247838003cd9bbb01b3531003cd9bbb01b3531003c6dbb739cb1b5003cabb410a7a3bb003c91af3bb3bbbb003c56ad3eaee2bb003c7c3b16a95db5003c56ad3eaee2bb003c0ea82a2df53b003c29ba4da01339003c453a062bee38003ce9bbd6ad542d003ce9bbd6ad542d003c3abb5cac8bb6003c912921b4aabb003c8b3bd4b095b4003caeadb3349c3b003ce1b909340739003cb3392935fb38003cc5bbb231da30003cc5bbb231da30003c14bb3e2f1cb7003c8f2d12b0dcbb003c863b8330e0b4003c35a66938ab3a003c6bb92637ab38003cca393c372b38003c89bb0d35d12e003c89bb0d35d12e003c4fba7b329bb8003cef2cf531cebb003c3b3bb93394b5003c35b07338903a003cbeb9e7365e38003cb3390e38bf37003cd2bb1732402d003c78ba7caf91b8003c323b28a6f2b6003c1c3afcb84fb1003ccf22feb0dfbb003cc7a91bb7283b003cc9b830b74d39003c3739d1b60339003c13baf4b84532003c4b2fadba4db8003ccf22feb0dfbb003c78ba7caf91b8003cd2bb1732402d003c13baf4b84532003c2ab870ba7fb4003ccf22feb0dfbb003c78ba7caf91b8003ce1ba51b52236003c63b365bba2b4003c58397db6eeb8003c5aba06b456b8003c63b365bba2b4003c9239d83362b9003c8b9e18b8bc3a003c95b892b68c39003c3738e9b76e39003cec3a6bb5d235003cd43b80b29a18003c64bb6fb40834003c633b87afb7b5003cc038c1a456ba003c7eaf4facd1bb003cb0b9b7b247b9003c5fbb99b406b4003c64bb6fb40834003cb7bb1ab2d931003c89bb90b197b4003cc0ba2cb025b8003ca4b332aaa2bb003c1b3908aeffb9003c693b84b157b5003cf23b5dafdea3003cf93a43b22a37003c9d3659b5b83a003ceeae7ab56b3b003cf2b824b4ef39003c64bb6fb40834003cb7bb1ab2d931003c8eaf69b6443b003cafb88eb5db39003c093615b6c13a003cd53a41b41637003cf03bd3ad5cad003ccbbb6cb2922e003c419b34b7eb3a003c29b972b54639003c9f374eb61e3a003cb83a29b47437003cfb3bc5254baa003ceabb93afc02c003c3e3be5300fb6003c1a3b40a65ab7003cb43930a89ab9003c55a968abfabb003c87ba79ac97b8003c99bb0eaec1b4003ccbbb6cb2922e003ceabb93afc02c003caebbd2a964b4003c5dba47a4d5b8003cd028a62cf9bb003c423a072ee1b8003cf9bb33ac2b23003c7dbbb7a38fb5003c3fba1629ebb8003c1129ad32b6bb003c353a6532b8b8003c353b68320ab6003cfb3b9a2b5a21003cb43aceb02738003c4b37adb4a33a003c5aaac8b5543b003c60b929b46639003cf9bb33ac2b23003c8b2825b58d3b003ca4b86fb41a3a003c8330f3b3a83b003cb1b864b3343a003c1b3884b3993a003cd63527b5f93a003cbc3ae8b10d38003c1f3a5eb3cc38003cfa3bb0ac76a3003cfb3bfbabc821003cefbbd0af43a7003cf6bbbeadd627003c613b1b2627b6003ceb3ace2cf0b7003c203abf2e12b9003c6539052fd6b9003c2f17b031dfbb003c28a93d2df7bb003c17bafd2d21b9003cf1b9d09c5ab9003c3bbb8528cfb6003cfaba3da8cdb7003cf6bbbeadd627003cefbbd0af43a7003cf2bba72d7a2c003c4ebbb231dbb5003c2eba3432d6b8003ceebb2f2d7f2e003cf7ba1a3238b7003ce3bbd0aafe30003c38bb0e21d6b6003c64b9173488b9003c59b99397eab9003c9eaea8356cbb003c7f2573a5f1bb003c2496d333c1bb003c503a4431bab8003ca33bec2e6cb4003cf63bfd25f52d003cf43a1aa9dc37003c4339e3aafc39003c983335acb83b003cbfb8e5a9673a003cf2bba72d7a2c003cb8308aa9db3b003c76b8a2a2983a003c7a3131a5dd3b003c6cb896aca03a003c1339fca02a3a003cd738e6a1533a003c353befa2e936003c0b3b0d288137003cf93b78a89f2c003ced3b662d1a2e003ceebb2f2d7f2e003ce3bbd0aafe30003c853bb9aa59b5003c963b043151b4003c9b391cae9eb9003ca53937343ab9003cf13bc12cf22d003c9439c6aea7b9003c312d4cb3bebb003c92b89bb073ba003c67bbd7aecdb5003cbcbb01abf433003c9abbc1310c34003c80bb113349b4003ce6b82135c2b9003cb53028349abb003c28399f34a2b9003ca63b54a1abb4003c483ba534adb4003c803b8835a522003c103b2b310937003cd6385533183a003cdd307d33ae3b003c04b85e30d43a003cbcbb01abf433003c86a05f36563b003cf1b8fb34c639003c3238fa36d839003cb73a9a36a635003c9abbc1310c34003c6c2b0b38e23a003c44b84937b339003c5d37c837f139003c333a47370037003c733bc9357da8003c53bb8e357232003c633bdb320cb5003cbd38903143ba003c0434812ab3bb003c58b69334f2ba003c4cbb09352db4003c53bb8e357232003cd33b3a3281ac003cb2bb6532ed31003c84bb042371b5003c50ba6cb84334003c9db967b914b3003c07b648b235bb003c89b41eba98b8003c243342b7dfba003ce92852bb59b6003cac38b1b408ba003c2b3611ba2fb8003c583bb39f4fb6003c563978b9b0b4003c5f3ad4b8de25003c8a3a4a36b936003c2d3a8fb7cb36003c8a37e537d839003cd637fbb6093a003ca02c0a38e13a003c2b2e46b7153b003c1eb8c536f639003cacb659b7453a003cb2bb6532ed31003c50ba6cb84334003c5aba06b456b8003c53bb45ab5a36003ce1ba51b52236003c4fba7b329bb8003cd2bb1732402d003c8fbb04ae0435003c29bb5da01f37003c70ba7ab27538003c7fbb54b33434003cc8babe2b3638003cfcb9ceb02b39003ce9bbe6a79d30003ca4bb26ae7934003c39bba1a3dc36003c65ba872ebb38003c7ebba1b1d334003c9abba1b4582f003cf9bb7bac4228003cfcbb10a40f2b003cc4b85429683a003ceab8e3b64939003c96b89a32573a003cfcb3ef34573b003ce5b93434fb38003cceba38b44437003c19b4a4352d3b003cf9bb182d4d25003cdbbbfb2d3bb1003cf8bbd32c66a9003c91b87038ce38003c5cbb3c365d27003cd8bbdb312eac003cdabbac30bcaf003c6fb453385a3a003cffb8fe388137003c2cbb5735a334003cf3b8ae365239003c8ab9ffb27e39003cc2205936573b003cd6206737173b003cae207335853b003ccdbbf232cf27003cd5bb632ea5b1003ce0b5dc34083b003c63b99e339939003c68bae430a038003c88bb82255f35003ce5bbd3af872e003ca8203a358f3b003cf5bab5b7c12e003c73bb8cb5362f003cddbb55b1b5ac003cd8bb10b0b5b0003cbdbb5eae6bb3003c79bb7b9fb3b5003cf9ba842f9bb7003c76bb613119b5003c28b871b921b8003c36b70fbb46b0003cd3b8bbb66bb9003cfeb8a0b4ceb9003cfbb82cb11fba003cefba4daddcb7003c0d2993ba8bb8003cf5a536bbe8b6003c89b0ffb824ba003c5ab609b822ba003c6db9fdb451b9003c5fbb2eae05b6003c7cbb1eb5c030003c3eb8b3ba1eb0003c87bb4db484b2003cb6b940b849b7003c96b461ba3fb8003c8db5acb9e8b8003cd3a0f4b957b9003cd5a0e9b963b9003c73a019bb5eb7003cbea059baddb8003c2ebb0db7631b003c8dbaa5b4e737003cf1b9d1b57e38003cd4b978b91428003c7c199cbbed34003c1f9fe8bbcbb0003c03a0a3bbbeb4003c8fb8dbb74539003c612838b90e3a003c67b617b6aa3a003c7eb8d5b4293a003c9cb9efb26f39003c1f2a4fb71a3b003c65bb992cfc35003ce5bb6b101131003c8ebb3e35c39a003cbebb9f33dbac003cb8bb2234cea9003cefbb15acee2e003c6bbbac356daf003ce8b9a63874b5003cfdba463481b6003ccebb5a307cb1003ccebb5a307cb1003c27bae03825b2003c47b7053bb2b0003cebb8653881b8003c962bf73bcaa5003c7ab1e13b7126003ca79f963bc434003cc9b11b3adc38003cc0234d39ee39003cebb4e638bc39003cbc20f937ab3a003cac20ce392339003c2b20a23bc534003c1d1ff23b592f003cbcb7de3a73b1003c1f1cf23b20af003c958c933b24b5003c63b8523a5cb4003c90ba5838b0b1003cf5ba1d37d9b2003cbab8e2394fb5003c899e583b53b6003c80bb503571ae003cbabad43756b3003c24a7d23a2cb8003c1abb5a3735a3003c4fbb25360c30003c00bb3c307137003ccfb876ad5a3a003c92b145b3aa3b003c1ea60db5963b003cd8292ab58f3b003c2cbad3386eb2003cb2a5273b28b7003c02afd4b2c03b003cf82e52b4a43b003cae27a3b4a33b003c5bb19eb61e3b003c912740b6523b003ce92168b64a3b003c64b74da4113b003cc8b830b22b3a003c5cb865b80539003c09b2b6b95b39003ce6288ab9a239003ce7b8ceb7f838003cd930c9ba0d38003c93b5b8b41d3b003c90362bb69c3a003c12bb29b56835003c9bbb50b13034003c2d1fe2bbae30003ccf362dbb94af003c18a2f8bb6ba5003cabbab0320c38003cbdba77301c38003c8fbbd62afa34003cf9bbc5a31721003cc5babe370c33003c05bb6a37ea2f003c70bb7e3532b0003c89bb0e3541af003c76bbb7353928003cd7bb7d2c67b1003cd0bb8b2c68b2003c99bbebad89b4003cddb90bb5c3b8003ccdba16b862ad003cc9b635bb30ac003c57321fbb8fb6003cedbb2aaf9428003ca1bbad34cb26003c9cbb8534352f003cf8b95139379e003cd9b97239f824003c2fba0b39882b003c47baf238d526003c36ba0939351c003cadb62d3b90b0003c2eb65e3b9fa9003ccdb8613a7aab003c63b89f3a4faf003c54b9f03972ac003c19ba1f39bb2d003c88ba9d38ee24003cfbb9373902b0003cefb7d03a58b1003cc9a18f3b3bb5003c389faf3b6fb4003cc31a9d3be8b4003c1f9c8f3b3bb5003cfd9ca03bd2b4003c531fc53b8db3003cd91ef93b00ad003ca015f83b7f2d003cbab63d3b9f2b003cd3b979392a26003c9bbbb834272d003ca4bb85b4252d003c78b9d3b98ea9003c57b580bb35ae003c6d9dffbbe61c003cc09ce4bbe930003c57321fbb8fb6003c18a2f8bb6ba5003ccf362dbb94af003c3fa0f3bbf6ae003c94b255bb75b5003c3e1c69bb01b6003c8cb847bab6b3003c86bb27b52aae003c89bb5c353725003cd3b97239f02c003cadb7f43a992f003c7b9edf3bab31003c123b7db66533003cacac5bbb17b6003c812543bbadb6003cdcb845ba2e2e003cbcbb97b33c2d003c87bb3d35152d003cd2b942391832003c36b7e63a4733003ca8a0cd3b0f33003ccdb5a3b9d538003c7131a0bb7633003c4bba0db6c437003cacbb11b16a33003c53bb5ab4b834003cf0bbceaee3ab003cc0bbe9b36716003c27a0f8bbfa2a003cdf39a7b87635003c2ca0bfbb7732003c11bb5dad5ab7003c09bb3eb2f0b6003c9fb88daf70ba003cd7b85fb226ba003cc7a1f2b1dbbb003c8ea144b4b0bb003c5037adb3d3ba003cbf38deb5b5b9003c99294cb64abb003c2e3b4cb60db2003c2ca0bfbb7732003cdf39a7b87635003c8430b629e2bb003ce12ad6a1f4bb003cf2b2442fb9bb003cb5b894314bba003cb6ba533121b8003cdeb8683312ba003c2ab9673837b8003c4bba8238efb3003ca9bba2313bb3003cd2bb5b31e82f003c9fba59383c30003cd9b67e38a5b9003c57b4e83798ba003cafb6343b8f2e003cc9b54a3bf7b1003cf4b4f33a20b6003ca7b4573a48b8003c4eb4743a32b8003c0bb6bd39aeb8003cae98f23b5b2e003cd622ec3b5cb0003c1f25c03bdab3003c71268d3b43b5003c8326883b5cb5003c1828253b2cb7003ce4b98f364cb8003c342a083934ba003c6dbb4db20935003c16288dba94b8003c98ba273156b8003c51bb00af3736003c46aba0b7043b003c16288dba94b8003c38abeab2cc3b003ca72a153592bb003c53bb6cac5436003cadbac92964b8003c65b990addc39003c6a2b8e31ddbb003c3dbb33abbe36003c79ba2d28b1b8003ca4ab47afef3b003cc52b0e2df5bb003c21bb78b0e736003cd7ba152d18b8003cd2aa59b4af3b003c602b9031ddbb003c26bbbfb46135003cc9ba943013b8003c03b9beb7e238003cfcb6c534caba003ce1ba3cb78733003c91bb022924b5003c00a518ba2d39003ce2284238c3ba003ce1ab40baf638003cd0a429ba1739003cc8bb59ac0eb3003cc1bbc0ab99b3003c62a687b9c639003cbcbbccabe9b3003ccebb5a307cb1003ca9bb65298934003cbeba52320038003cf4bbfaab8d2d003c13b98434c139003cb4b449352c3b003caf208335823b003c50bb54b4d2b4003c12b983b642b9003cceb417b870ba003ce7a096b88dba003c41b9b6b3b6b9003ccbb3ebb290bb003c88a01cb4bbbb003cf0b450b844ba003c1cbac7b6cbb7003ce9bbb6a5a830003c50bb54b4d2b4003c28bad733b738003ca0bbfa20d134003ce0a01eb8dbba003ccdb81435de39003c3ab995b9afb4003cedba08b32e37003c62b41ebbd4b5003c3da068bb08b6003cedba08b32e37003c81b1babb32b2003ccbb7c6baccb2003c439fe0bb9fb1003c08b14bbb1236003c8bb890b90937003c0d9a89bb5e35003caeae6db89c3a003c5eb7d4b0ff3a003c329effbbf2a6003c84b525334b3b003cedba08b32e37003c8bb890b90937003c50bb54b4d2b4003c46b990b7adb8003cf4bb3bac582d003c48b978b7b4b8003cedbb23b0c228003ccab826b8e1b8003ca3bb6fb4cb2e003c052e1fb8d0ba003cf53463b836ba003c46b990b7adb8003c332aacb702bb003c823008b582bb003cbebb242ae333003cdaba11337437003ceeb84135b939003c36b4bf35293b003cae207435853b003cfcbbc82ac425003cbbba5035d036003cd0bbd5b21626003c1fb80536283a003cd2b09035673b003caa2050358b3b003cedb37132943b003c63a81332d93b003c65202132d93b003c80b88131783a003cf5bb972d16aa003c82ba09361337003c95bbffb4a22b003c82bab3aaa238003cb4bacfb20538003c19b104afd93b003cbfa75bacfa3b003c7f1ff4a9fd3b003c67b647b1363b003c4db902b2cc39003cdabab6b0e937003c57ba76b1ae38003c66b9feb84a36003c66b9feb84a36003cdabab0b34f37003c9bbb37b07bb4003c9fbbd3b46727003c61ad89bb32b5003c1bb93fb7fa38003cb6b864b5e039003c7db2e631b13b003c423642b13e3b003cd7b8d72d533a003ccbb96a367b38003c9bbb37b07bb4003c94b8dcb9e535003c35b87928cc3a003c79b9dc1ad539003c26bbf1b24936003c08ba08b8bc36003c17b91fb65b39003c23b77eb6613a003c44b518b6e93a003c72b1ddb5513b003c28ac3bb58a3b003c711d27b5923b003c3db1efb7d23a003c8cace8b7ee3a003c5d1b0db8e53a003c75b57cb7853a003c3bb8cdb78e39003c3db163b88e3a003c67ab74b8a03a003c181a84b89a3a003c97b420b8743a003c16b9cfb57239003c23b090b87c3a003c8bab7fb8993a003ceb1993b88f3a003c20b43db8763a003c6eb728b71d3a003c67b040b8af3a003ca8aa58b8b43a003c1d1a82b89b3a003cf4b349b8743a003cffb540b8133a003c30b1e1b7d73a003cc8a92bb8d13a003ce01a3bb8c93a003ca9b4c6b7973a003cfab695b71e3a003c09b085b9b339003caaa681b9cc39003c92166fb9de39003cbcb350b9a839003cc1b7b2b82f39003c81baa7b68236003cceb94db9da31003cfeb611babcb7003c452039b723bb003c8db06bbb8535003c69ae5ebb0236003cba9854bb6936003c69b538bb4334003c91b260bb3c35003c8dad42bb93b6003ccbab8abb41b5003c34a073bbd0b5003c43ad47bb7fb6003c6baf1cbb19b7003c87a8c0b86dba003cc9ab2bb916ba003c329effbbf2a6003c672f66b89eba003c4c2d55b8b0ba003c88ba76325238003c50bb54b4d2b4003c423642b13e3b003cdabab6b0e937003c57ba76b1ae38003cdabab6b0e937003c66b9feb84a36003c66b9feb84a36003c0a39d2a8343a003c35b87928cc3a003c0a39d2a8343a003c0a39d2a8343a003c66b9feb84a36003c9bbb37b07bb4003c94b8dcb9e535003c35b87928cc3a003ccbb96a367b38003c35b87928cc3a003c94b8dcb9e535003c61ad89bb32b5003c0a39d2a8343a003c35b87928cc3a003c10bb3daf4837003cacbb2aa667b4003c45b5bda786bb003cf5391eb218b9003cfcba68b14e37003c6aae17b4b13b003cfc3885b11a3a003c93bbd6a915b5003c123b7db66533003c9c3b62b06c34003c953adeac80b8003c4cb32d23c9bb003c51a61bb2d93b003ce43984b04a39003c1fba23b00b39003cf53bc3ab5c2d003c683af6abc3b8003cf53bc3ab5c2d003c9c3b62b06c34003cf5391eb218b9003c5fb2c82cd1bb003cd6bbe12a2cb2003ccfad35b4af3b003c49395db1da39003c24ba66b2de38003cf33baaa2ec2e003cf33baaa2ec2e003cd83ae21c23b8003c89b0bd9feabb003c89b0bd9feabb003cd6bbf3a850b2003c74ab70b3c43b003c6e39deb0bf39003c14bac9b3d138003cf73b3fa86c2d003cf73b3fa86c2d003cd03a54212fb8003c6b1e80abfcbb003c92bbaeb09ab4003c6b1e80abfcbb003caea99aa8fa3b003cca3925a87d39003c90baaf249038003cff3b9b1b2924003cff3b9b1b2924003c8b3b522c33b5003c90bbcc2a25b5003cc731f02fcbbb003c70a905a9fc3b003c6f3910acd839003c77ba2fa8b238003ce93b00aa7a30003ce93b00aa7a30003c583b51244bb6003cc731f02fcbbb003c6b1e80abfcbb003cfea50624f6bb003ca9bba7267cb4003cfea50624f6bb003c932bda29f13b003c563a21a8d038003ce9b96e285d39003ce83bcdaecd2a003ce83bcdaecd2a003cd43a12a91ab8003cddb293b2a3bb003cb9bbd7b068b2003c2c319a348d3b003c253af433b038003c51b9e0347439003cd33b1f32862c003cd33b1f32862c003c9a3a7a305fb8003c03b32daec4bb003cbdbb1630f7b2003c3e2d5c38ac3a003cbb3943373c38003c7fb9f536a738003c8b3b4a35ba26003c8b3b4a35ba26003cb939593346b9003c28b2a132acbb003c80bb58332eb4003cff316b387f3a003c053a0a37d437003c71b9d8375b38003cd33b9f323398003c133af0ad21b9003c79bb8ea8acb5003c52bac73860b0003ce2af4ab0ddbb003c6729c03a4738003c9936a43aff35003c59b68d3aa036003ca539a739c82a003c2ab4ca28b7bb003ce2af4ab0ddbb003c133af0ad21b9003cd33b9f323398003ca539a739c82a003c7d3a12342db8003ce2af4ab0ddbb003c133af0ad21b9003c57321fbb8fb6003cddb90bb5c3b8003c57321fbb8fb6003cf5391eb218b9003cdeb8683312ba003c52aa1fb7213b003c383873b6f239003c94b853b6bb39003c1ebb68b4cf35003cd3bb8bb28ea6003c3c3bffb49834003c35bbc3b07bb6003c5ab88dada5ba003ca23110b0c7bb003cf53929b302b9003c6c3ba7b466b3003c3c3bffb49834003c993b2eb47d31003c983b6cb081b4003cea3a1cabfeb7003c9934bf29a4bb003cccb8a5a463ba003c4fbbafac60b6003cf3bbd5ac0ead003c2bbb0eb4d335003c5db77db7083a003c422b32b8cb3a003c9b3880b6a739003c3c3bffb49834003c993b2eb47d31003c392cd1b85c3a003c573836b83c39003ccdb667b8bf39003c0bbb1cb59b35003ceabb5ba881b0003cb43b0eb4d42d003c1fab4db6563b003cce38beb5b639003c37b8c5b5283a003cf5ba8eb3ec36003cf1bb342928af003cda3b0ab1d52e003c09bb5f311eb7003cedba282fcbb7003c72b9f030bab9003c7d2d7b31dabb003cb63a742857b8003cad3b5cab63b4003cb43b0eb4d42d003cda3b0ab1d52e003cc53b58a978b3003c973a702a84b8003c81227933c7bb003cfcb94d3210b9003cf23b9eacd02d003ca93bdcac72b4003c943ad9ac83b8003c1628d79dfebb003cd4b9062a76b9003cf4ba3b2ec2b7003cf6bbd62a04ad003cfeba44a9bc37003c22b81eafca3a003cf5a41eb1e53b003cf9387fb02a3a003cf23b9eacd02d003c08afc2aaf03b003c2538ebaad33a003ce0b26525ce3b003c31382498cf3a003c9cb8809d893a003cedb6d9ac2f3b003c09bb36aa9037003c7dba3baca638003cf3bba8ad6bac003cf8bb81ac1caa003cec3b2caf422d003cea3b11ac2a30003c1fbb51ae1db7003c96ba1ead7eb8003cb6b9adad8eb9003cecb810af3eba003cd52ce0aeeebb003c852f70b2c7bb003c793a28ada7b8003c563ad8b1a7b8003c7a3bb6ac91b5003c413b05b140b6003cea3b11ac2a30003cec3b2caf422d003ce43b742f6d2f003c853b2c2d4cb5003c8c3ab02697b8003c012d05a9f8bb003cecb917a560b9003c70bbc922dfb5003cfebb81285b21003c37bb022dc936003caab910308e39003cd2b45231823b003c4c381631a03a003ce43b742f6d2f003ca4b1102ad63b003c4138ae2cbb3a003c33b172add73b003c7e3839af8a3a003c03b9deac2f3a003c00b90a29333a003c2fbb2dabf336003c28bb3c2c0037003cf7bb14ab6b2c003cf5bbae2def28003ce23b9f2e5030003ce43b18a9fd30003c79bbcdac8eb5003c76bb072e90b5003c75b9d6b0b3b9003c46b9d12df8b9003cb72041afeabb003c9531cb2dd8bb003c6b395497dab9003ccc39722c7bb9003c413b3825afb6003c2f3bd02de0b6003ce43b18a9fd30003ce23b9f2e5030003cc83b3bab3133003c5f3b2aaa26b6003c8138d9ab94ba003c81ad1eb1d9bb003c9db9a2aca8b9003cacbb6ca081b4003cf0bb25294f2f003c06bbd52d8137003cc1b81530583a003c6ab0d42fdb3b003c2138c52ad53a003cc83b3bab3133003cf2249c34a83b003c0139b633ef39003c27b858354b3a003cbbba8e359f36003c90bb1535552c003c9b3b95311334003c91aa6536523b003c4d382036023a003c49b724366c3a003c36ba18360338003c86bb6c352625003c493b8d352233003c77bb043389b4003c60bbb834fcb3003c4ab9503560b9003c1fb1093578bb003cc6383b369ab9003c6a3b5b3422b4003c9b3b95311334003c493b8d352233003c333bc735cbb3003c1836b735d2ba003c32b4802fa9bb003cd8b805331eba003caf3b81320e32003c783b622c9bb5003cc538e9390235003c163a1e39caae003cfa350db058bb003c90362c254bbb003c20b32eb629bb003c06b3f03910b9003cb2b8bab32eba003c6bb85536ddb9003c65bb212016b6003cbeb930390bb4003cdfbb9e3107a8003c9cb9a239042f003c8aba2035a637003c0fb83a3ae635003c78b74436573a003c8bb4593a4d38003c32ac6136513b003c4da94e3ae838003c2a388b353d3a003c5e34253aa138003caf3b81320e32003cc538e9390235003cf5391eb218b9003c123b7db66533003c9c3b62b06c34003cb939593346b9003cd33b9f323398003c52bac73860b0003c59b68d3aa036003c51a4ff3b9821003c2ab4ca28b7bb003ca539a739c82a003c7d3a12342db8003c6729c03a4738003c9936a43aff35003c6bb85536ddb9003c89a8ef3bc72f003c06b3f03910b9003cbeb930390bb4003c163a1e39caae003c90362c254bbb003c54a2f43bb02e003c9cb9a239042f003cc538e9390235003c5e34253aa138003c4da94e3ae838003c8bb4593a4d38003c0fb83a3ae635003c8ab9ffb27e39003cf3b8ae365239003ce5b3dcb0a43b003ca9bb8f347929003c8838a4b7d938003ccbba00b8a22c003cf3bb1bae3c2b003ca3ba20b82d30003cb831efb9ca38003c512fc6b8543a003c8eb83e29903a003c4e2bdab96439003ccebb5a307cb1003c29bb9bb6ceb0003c28302eba3938003ca9bb30b47629003ce43814b8e237003c7fb4dcba882c003c81357bba5a33003c3cbb5bb5e931003cdc31f0ba0831003c7fb4dcba882c003c7039b0b72d37003ca5b2e2ba6631003c9d38db39a30a003c9a308bba8235003ca9bb7d9f2734003c0b34d7babb30003c532782ba0436003c8aa7fab9eb37003c61ad87bad235003ce139aab61437003c30bb6d9e5136003c4ab77434fe39003c04ade035853a003cea36b52e683a003ce5b3dcb0a43b003cf3b8ae365239003cc0234d39ee39003c25399e38f237003cc63add37432a003c8838a4b7d938003c962bf73bcaa5003c6c37aa3a65b4003cebb8653881b8003c75b52a394fb9003ccebb5a307cb1003c29bb9bb6ceb0003c3235cf3ab4b2003c98b5693a20b5003ca9bb30b47629003cc83887393632003ce43814b8e237003c5433f83a3e2a003ce9b4cf3a4fac003c3cbb5bb5e931003c9d38db39a30a003c3734d83af8af003c18b3e43ad6b0003ca9bb7d9f2734003cef33c63a30b2003c8c3928394c26003c7039b0b72d37003c0eb59a3aaab2003c30bb6d9e5136003c04ade035853a003c4ab77434fe39003ce139aab61437003cea36b52e683a003cf3bb1bae3c2b003c8eb83e29903a003c8ab9ffb27e39003ca3ba20b82d30003cf3bb1bae3c2b003ce139aab61437003c8c3928394c26003cea36b52e683a003c1c3afcb84fb1003c3739d1b60339003c5b10ffbb4b98003c4b2fadba4db8003c13baf4b84532003c2ab870ba7fb4003cc7a91bb7283b003cc9b830b74d39003c2b3611ba2fb8003cb4a1febbe6a1003ce92852bb59b6003c563978b9b0b4003c9db967b914b3003c89b41eba98b8003c3422ffbbe021003c5f3ad4b8de25003c50ba6cb84334003cacb659b7453a003c2b2e46b7153b003cd637fbb6093a003c2d3a8fb7cb36003c9a393eb36a39003c2634ffb09b3b003c11398a363f39003cb03b61344a27003c81b883b7ef38003cc23a19b86e2c003cf23bd9ae4829003c9b3a36b82c30003cb2b1d8b91039003cfdaec2b85b3a003ca93861287e3a003c16abd9b96439003ccb3bf02f00b2003c1a3bc4b642b1003c31b032ba2538003ca33b5cb4eb25003ce1b807b80338003c5a34e2ba3a2c003c99b573ba8033003c393b87b57631003c1cb2ecba1f31003c5a34e2ba3a2c003c6db995b75237003c6732e8ba3a31003c8bb8e8399921003cbeb089ba8235003cb03beda4d733003c2bb4d2bacb30003c27a884bafa35003c3927feb9df37003c1e2d8cbac135003cddb98eb63c37003c3b3ba9a41936003c86375134f139003c152ece35863a003cb3b6d02e773a003c2634ffb09b3b003ce01b3939f439003c11398a363f39003c07b9a7380f38003cb9ba0938fa2a003c81b883b7ef38003c23aaf63bd1a4003c55b7b43a37b4003ce638563894b8003c6a35203960b9003ccb3bf02f00b2003c1a3bc4b642b1003c17b5d83aadb3003ca935533adfb5003ca33b5cb4eb25003cb1b895398432003ce1b807b80338003cfab2fd3aad2a003c0d35c73a9cac003c393b87b57631003c8bb8e8399921003c15b4df3a93af003c5833df3ae1b0003cb03beda4d733003cb5b3cd3afbb1003c7cb93839c528003c6db995b75237003c2835933abcb2003c3b3ba9a41936003c152ece35863a003c86375134f139003cddb98eb63c37003cb3b6d02e773a003cf23bd9ae4829003c9a393eb36a39003ca93861287e3a003c9b3a36b82c30003cf23bd9ae4829003cddb98eb63c37003cb3b6d02e773a003c7cb93839c528003cd139b734b938003c5f388933e639003cbd368534993a003c393ac5344038003c41233b365d3b003cdf203137253b003c9d374e36aa39003c74391b344539003cd1252339203a003cd83312393039003cd02d8038ea39003c03248c3b4835003cf118943b6596003cf0b1733b3031003cefb6333b8129003c0633c33b65ae003c0238d63a45b0003c83368c3aeeb5003c093a3639edac003c1d20fc3b67ab003c9b3a5b389bb0003cba349f3b06ac003cdb3b282d61b1003c483a3c381eb5003cbb36893a4db6003cbf3be332e7af003c173bab366cb2003c3138ea39c2b6003cc53b8b336726003c281ffe3bf828003c35a18d3b43b5003c01a5293b1fb7003c9a3af9373bb4003c6f391239eab5003c20a6db3a1cb8003cd239a938c7b5003c7e3af037eeb4003c90a4c93a3bb8003c7538d736fb38003c93349837d139003c2a1778368b3a003c79394d37d937003ca5243c390a3a003cf222e3396939003c2635f838c138003c84384f37f338003cd9225b3b4436003caa2a173a3638003ced2415395539003c2fac7f3b36ac003cd1b3883b35a9003c4db6213b0da8003c2d32bd3bd4b0003cad37c63a1eb3003c8e34ab3a66b6003cc73934396cb3003c342be53bcfb0003c683a5e38acb3003cd430df3b62ac003c8f3b5f2ef8b4003c66391f39ddb5003ce232483ba7b5003cc53a773718b4003c623a6738dcb3003c1835c53ad4b6003c733a773833b2003ca1b1d73bcd2d003ce724a43bb3b4003ca7b1163bddb6003cc639153963b4003c51394b398db5003c5da6073ba0b7003c1e39a039f3b4003c2e39b6393ab4003c73a51a3b59b7003c73a51a3b59b7003cb7b90435cd38003c61b60536b03a003c2db8dd34f839003c1fba10355738003c41233b365d3b003cdf203137253b003c33b74737a339003c57b951345d39003cd1252339203a003ca9b252392739003ce0aac338d539003c03248c3b4835003c901ca23b83a6003c77327a3b7930003c1f37283b3e24003cc8b2c83bdbad003ce8b7e33abfaf003c73b6963ae5b5003cfcb94839b2ab003c7612fc3b50ab003ca0ba6f38fbac003c9db4a73b16a9003cf1bbe82d91ac003c76ba4f38a5b3003c2db7933a9db5003cc9bb423370a5003c2fbbd7366dae003c79b8f739c8b5003cacbbeb335e30003c281ffe3bf828003c35a18d3b43b5003c01a5293b1fb7003cc2ba113850b1003cabb92339a9b4003c20a6db3a1cb8003c07babc3893b4003caeba0c38ddb2003c90a4c93a3bb8003c52b88437f038003c6027a2375c3a003c31b459389e39003c55b920389e37003ca5243c390a3a003cf222e3396939003ccfb44c399738003c57b8f537f638003cd9225b3b4436003c53a6363a1f38003c922152393039003c6c2c843b8bad003cfd33603b4c15003c6536483bccae003ce4b1c23bc2b0003c93b7d23ae7b2003c88b4b03a62b6003cbeb9453912b3003c1eaae63bc2b0003c6aba7138e4b2003c8bb0e63b4fac003c9dbb142f8db4003c78b92f395ab5003c0bb34d3b80b5003cd3baa037bdb2003c6fba7a3855b2003c57b5cd3a82b6003c7bba8b3890b0003c1632d23b5f2d003c4fa5a53bb0b4003c2831123b06b7003c3dbabe3867b2003c8ab95b3948b4003c5da6073ba0b7003cdab90b391eb4003c91ba3e38bdb2003c73a51a3b59b7003c73a51a3b59b7003c953bc1aecb34003c7c3ac8b25e38003c363bf3a4ea36003c813bb2b3fb33003cd93a722a1d38003c0b3a16b11539003c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000953bc1aecb34003c7c3ac8b25e38003c363bf3a4ea36003c813bb2b3fb33003cd93a722a1d38003c0b3a16b11539003cec3b86a92730003ca93be7ae4134003c463b9da6a636003c793aec2da338003c833bffb19c34003c953bd1b47a2e003cf83b48add224003cfd3b45a73329003cdd387c28563a003cf23800b73839003cb3386532453a003c4434e6344f3b003cfe391334e438003cd53a62b41237003c61349335243b003cfb3b4a2c3d1e003cd83b2d2db1b1003cf83b052c46ab003cb1386938ba38003c663b1036d322003cdb3b753120ad003cda3b453054b0003cba343c38533a003c1d39ec385b37003c3d3b2e356934003c11398b363f39003c99393cb36b39003ca6205d36563b003cc4206b37163b003c89207735843b003cd43b9232bf23003cd23b962d1bb2003c2436cd34fc3a003c7e395f338439003c7d3a96308838003c923b1f212635003ce53b4eb09e2d003c82203f358e3b003ceb3ae1b7fb2d003c6d3bbbb55f2e003cd63bbbb19cad003cd03b77b029b1003cb33b2aafdeb3003c6e3bf7a4ebb5003ced3ad22ed2b7003c6f3b013156b5003c063880b92fb8003c00371bbb73b0003cb438ddb67bb9003ce138c4b4dfb9003cdf3874b132ba003cdc3a02ae0ab8003c70ab93ba88b8003cc31d38bbe4b6003cd22f03b927ba003c113614b82dba003c4c391eb56bb9003c4b3bf0ae54b6003c823b51b5ea2d003c2538c1ba55b0003c7a3b7fb4f2b2003c9a3954b870b7003c4d3469ba45b8003c4435b6b9f0b8003cf4a0f6b955b9003cf5a0eab962b9003cb5a01abb5ab7003ceaa05bbadbb8003c5ba0a4bbbab4003cef9fe9bbc2b0003c7c169fbbd934003cc3398bb9e8a2003c203b3ab77baa003cf63804b8d138003c453a04b6e537003ccb3ad8b4e836003c3c2841b9063a003cf73be9ac782a003c6d3b7d3577b0003cec399238a8b5003cf73a1734b6b6003ccb3bde2ffdb1003ccb3bde2ffdb1003cb83bdd33a0ad003cf83b6da23e2d003cb63b413370b0003c2b3acc38c8b2003c6a37f83af0b0003ce838543895b8003c06aaf63b1ca5003ce231d83b4426003c1e268c3bd334003c5f32d739f538003c101c3b39f239003c3535d438b439003cb320fd37aa3a003ccd20cf392139003c8220a33bc234003cf51ff23b572f003cd337d13ae4b1003c1f1df33b0daf003c8212943b1bb5003c6238433ab6b4003c8d3a4038edb2003ce23af6363ab4003ca238d739cdb5003c629d5d3b3eb6003c673b233562b2003c8c3b0e3515ae003cb73b6d2b1d34003c373a5ab3af38003c2a3904b59139003cc7373eb6413a003cff2960b7163b003c853ab0372ab5003cb82f1cb5843b003c623457b3763b003c6a392eaed639003cbc2938b58d3b003c563bae2f0f36003c6a3bf135d629003ccb3201b29f3b003c63a409b4b53b003c7d27a8b4a33b003cb23482b5113b003c4f2c8db56b3b003c962168b64a3b003c6238831ea03a003ca53910b08239003cde38a4b70939003c203414b9c739003cdc288ab9a239003c603955b60139003ca3aef7b94339003c1437d9b0123b003c1fb53fb35b3b003c4b3ba2b4a634003cc63bd2b0d131003c0c1fe2bbad30003c2bb71dbb5f2b003c28a2f8bb6ea5003c053bb832a536003c293bd7306136003cd43b902a1131003cd53b8ca940b1003cee3a94374030003c163b38377224003c433b3235beb3003c653bc834e2b2003c703bb02693b5003cb23b6621f2b3003c4a3b6fb0edb5003c58397eb6eeb8003cb03a48b8a4ae003c80364ebb23a8003c64b365bba3b4003ce93b1db0cca6003ca33b62341ca8003ca43b58346f2e003c713b7735d4ac003c073a3f3906a4003ce83962394825003c443af838061d003c333a0c39ca26003c933a883841ab003c173b2d373daf003cfd39c238a9b4003c68a52c3b13b7003cd8a6d83a21b8003ceb3925394fb2003c5539e03908b0003c48a1913b2cb5003c579eb13b65b4003cd538523a44ae003c573adf387da5003c443af6385ca7003c6938923a9ab0003c0238c53abeb1003cd636243b8cb0003c5b36553bfda7003cad1fc53b8db3003c2d1ff93b00ad003c3d9ca13bceb4003ce79a8f3b38b5003ca81b9d3be8b4003cc136353b612e003cd5396a391e2e003c963b90342530003ca23baeb4ec29003c6239e2b906ad003c163587bb65af003c8f9dffbbe21c003cd09ce4bbe930003c64b365bba3b4003c28a2f8bb6ea5003c2bb71dbb5f2b003c57a0f3bbf6ae003cb63253bb72b5003cdf1b69bb01b6003c903841bae9b3003c893b36b54cac003c7c3b34352930003cc03963397831003c8337ea3ab731003c439edf3bab31003ca216f83b7f2d003c362f3fbb7fb6003c6c2543bbadb6003ccc3861ba9929003cac3b0db4d52f003c9f3918390f35003cd036d63abb34003c89a0cd3b0f33003c08358cbaa537003cf4b1d3bb812c003cfc39a9b74f37003c803bd3b25f34003c273b8ab58634003cf53b3dae419c003cc03bd8b33d20003c37a0f8bbf82a003c0abac6b8ed33003c3da0c0bb7732003c593bc69243b6003c4b3bd0ac70b6003c2839f92613ba003c4d3982a1fab9003ccd2d532cefbb003c722d37a7f5bb003c0cb662ab62bb003c4ab82ab37bba003c90294cb64abb003c14bb00b643b4003c3da0c0bb7732003c0abac6b8ed33003c4da8f12feabb003cd62ad1a1f4bb003cfb34d13355bb003c4b397b348cb9003c123b8d336eb6003ccb3b68328aae003cad3b7030ca33003c6c3bec34ac32003c9139d73363b9003c753a2c386534003c733aa73890ae003c9239bc3873b6003c0938d038f0b8003c7b361e3b8d32003c2236583bd7ad003ca9350f3be5b4003c53358d3a74b7003cbc35613abeb7003cd8353d381cba003c3d37bc393cb8003c5198f23b5b2e003cdf22ec3b5cb0003c1f25c03bdab3003c6f268d3b43b5003c8126883b5cb5003c1528253b2cb7003c2b2a083934ba003c613a923610b7003c0c3b73b2d836003c0a288dba95b8003c053b6532f9b6003ce83a7eacfe37003c3baba0b7043b003c0a288dba95b8003c2aabe9b2cc3b003c9a2a153592bb003ce43a00a80d38003c263b412d0fb7003ca638b5ab7d3a003c5c2b8d31ddbb003cc73ae3a43f38003cfd3a5c2cb3b7003c96ab45afef3b003cb62b0d2df5bb003cb13a37ae5038003c423bb42f6eb6003cc1aa58b4b03b003c512b9031ddbb003ce13af4b31e37003c2a3b20326bb6003c933838b77b39003c2b38323550ba003cc93a7bb67235003ccc3beb2d76b2003cd7a418ba2d39003ccd284238c4ba003c3c273ebafc38003ca8a429ba1839003cf53b14a362ae003cf13be09e88af003c3ba687b9c639003cee3b0fa02bb0003ccb3bde2ffdb1003cb33bc5275034003cd23aff31ce37003cf43bc8aca12c003c2f396634ad39003cfb343d35223b003c8c208835813b003c403b84b407b5003cf438a6b654b9003c843420b878ba003ce8a097b88cba003c253900b4c9b9003c43330cb396bb003c57a021b4babb003ca6345ab84cba003c023af1b6f6b7003ced3b6ea83230003c403b84b407b5003c403a8d339f38003ca93b0c989834003cd7a020b8daba003ceb38f834cc39003c1f39a7b9d2b4003cf53a5db3fc36003c1e3426bbe0b5003c8ba069bb03b6003cf53a5db3fc36003c0631bebb3db2003c9237d3bafeb2003c06a0e0bb96b1003cd8304ebb0d36003c86389eb9eb36003c199c88bb6235003c012f6db89a3a003c8b37fcb0f13a003c179fffbba7a6003cc6350933403b003cf53a5db3fc36003c86389eb9eb36003c2839b5b7bfb8003c403b84b407b5003cf43b07ad6c2c003c2a399cb7c7b8003cea3b89b0dd25003caa3837b8f1b8003c9f3ba0b4ed2d003c3aaf1fb8cbba003c40b55cb82bba003c2839b5b7bfb8003c4eacadb7ffba003c12b105b57dbb003cc63b9d286f33003ced3abd324037003c0c392535a539003c7e34b535203b003c89207935843b003cfe3b2d290d20003cd03a26359c36003cca3b3ab30421003c3f38ed35183a003c64318c35613b003c852055358a3b003c39345f328c3b003c862a1832d73b003c2b202b32d93b003c9c384e31663a003cf63bc92cf5ab003c993ae035e136003c8f3b30b5ea29003c913aefab8938003cbd3a21b3d837003c833114afd43b003ca02950acf93b003cd31ecfa9fd3b003c943669b12a3b003c5d3940b2b939003ce43a0ab1b737003c633ac3b19738003c62390eb92536003c62390eb92536003ce13a02b41c37003c8f3b9cb0b3b4003c983b04b5e123003c512c8cbb32b5003c21395db7e838003c823acfb65436003cc3395fb98a31003cba361dbad2b7003ceca63cb721bb003c21393db64939003c073a1bb89136003c2b3b4ab31436003cf038682d413a003ce63947366438003c8f3b9cb0b3b4003c14b612b14a3b003c0333da31aa3b003c4f387b27bc3a003cc3387fb5cf39003c8f399f9cc039003c3e3792b6543a003c643526b6e03a003cb931e2b54c3b003cc52c3ab5893b003c8c1c23b5933b003c6f31f4b7ce3a003cf52ce8b7ed3a003c58190bb8e73a003c8d358ab77c3a003c4338e5b77f39003c663166b88b3a003c062c74b8a03a003c041882b89b3a003cac3426b86d3a003c2139edb55f39003c493092b87a3a003c162c7fb8983a003cab1791b8903a003c353442b86f3a003c84373db7103a003c943042b8ac3a003c582b57b8b33a003c091880b89c3a003c0e344eb86d3a003c113648b8093a003c6331e6b7d33a003c882a2ab8d13a003cd51839b8ca3a003cc134d2b78f3a003c0f37a8b7123a003c173087b9b039003c272780b9cd39003c73106eb9df39003ccc3354b9a239003cc937bdb82239003c56306ebb8135003c052e60bb0136003ce99a53bb6d36003c593265bb3535003c4a3540bb3334003c6f2c45bb94b6003ca8298cbb40b5003c83a074bbccb5003c262c4abb7fb6003c492e1fbb1bb7003c2324c3b86dba003c52292eb916ba003c179fffbba7a6003c4fb064b899ba003c83ae55b8acba003c403b84b407b5003c9d3a26323938003c14b612b14a3b003c633ac3b19738003ce43a0ab1b737003ce43a0ab1b737003c62390eb92536003c62390eb92536003cf4b866a7473a003c4f387b27bc3a003cf4b866a7473a003cf4b866a7473a003c62390eb92536003c8f3b9cb0b3b4003c8c38eab9c635003c8c38eab9c635003ce63947366438003c4f387b27bc3a003c4f387b27bc3a003c512c8cbb32b5003c8c38eab9c635003c4f387b27bc3a003cf4b866a7473a003c6a3b10ace835003c6a3b29aea5b5003c003431b194bb003c5aba05b456b8003c553b8daf1a36003c8732e9adcb3b003c49b835a5c03a003c3d3b26b077b6003ce2ba51b52236003c53bb45ab5a36003c06bb85b046b7003c0a30eeb0d4bb003c3a30cfa5ed3b003c46b9db99033a003ca23adfa97438003cd6bb8ba26732003ce5ba53b0cbb7003cd6bb8ba26732003c53bb45ab5a36003c5aba05b456b8003cc62d3daeedbb003c9e3b23a2deb4003c39325daece3b003c9cb801a5883a003ca03aa2af6038003ccebbe528e832003ccebbe528e832003c43bbfcaaa3b6003ceb27b4b1ddbb003ceb27b4b1ddbb003c9a3ba4aeafb4003c3d3142acdf3b003cc4b8039e6c3a003c8e3a35b16438003cd7bb66234a32003cd7bb66234a32003c3dbb6aaac2b6003c92af3ab3bbbb003c3f3b2ab3bdb5003c92af3ab3bbbb003c3d310a30d23b003c0cb9722e263a003c0e3b842d6837003ceebb0929d82f003ceebb0929d82f003cc7bb792951b3003c3c3b3ba8cdb6003cabb403a7a3bb003c6525242cee3b003c70b98229c939003c933aa4247838003cd9bbaa1b3531003cd9bbaa1b3531003c6dbb759cb1b5003cabb403a7a3bb003c92af3ab3bbbb003c56ad3eaee2bb003c7c3b16a95db5003c56ad3eaee2bb003c0ea82f2df53b003c29ba3da01339003c453a0f2bee38003ce9bbd7ad542d003ce9bbd7ad542d003c3abb5eac8bb6003c912921b4aabb003c8b3bd4b095b4003caeadb5349c3b003ce1b90a340739003cb3392b35fb38003cc5bbb231da30003cc5bbb231da30003c14bb3b2f1cb7003c8e2d14b0dcbb003c863b8330e0b4003c38a66938ab3a003c6cb92637aa38003cca393d372b38003c89bb0d35cf2e003c89bb0d35cf2e003c4fba79329bb8003cef2cf231cebb003c3b3bb83394b5003c36b074388f3a003cbeb9e8365e38003cb3390f38bf37003cd2bb16323f2d003c78ba80af91b8003c323b2ca6f2b6003c1c3afcb84eb1003ccf2200b1dfbb003cc6a91ab7283b003cc9b82fb74e39003c3739d0b60439003c13baf4b84732003c4c2fadba4cb8003ccf2200b1dfbb003c78ba80af91b8003cd2bb16323f2d003c13baf4b84732003c29b871ba7eb4003ccf2200b1dfbb003c78ba80af91b8003ce2ba51b52236003c64b365bba3b4003c58397eb6eeb8003c5aba05b456b8003c64b365bba3b4003c9139d73363b9003c929e18b8bc3a003c95b892b68c39003c3738e9b76e39003cec3a6cb5d235003cd43b81b28a18003c64bb6fb40834003c633b8aafb7b5003cc038c9a456ba003c7faf4facd1bb003cb0b9b6b247b9003c5fbb99b406b4003c64bb6fb40834003cb7bb1ab2d931003c89bb8fb197b4003cc0ba2ab025b8003ca4b32baaa2bb003c1a3908aeffb9003c693b84b158b5003cf23b5eafe7a3003cf93a45b22a37003c9d3659b5b83a003ceeae7bb56b3b003cf2b824b4ef39003c64bb6fb40834003cb7bb1ab2d931003c8eaf69b6443b003cafb88eb5db39003c093617b6c03a003cd53a42b41637003cf03bd4ad5dad003ccbbb6cb2912e003c4b9b35b7eb3a003c29b973b54639003c9f374fb61d3a003cb83a2ab47437003cfb3bbf254caa003ceabb92afc02c003c3e3be5300fb6003c1a3b3fa65ab7003cb4392ca89ab9003c56a95fabfabb003c87ba75ac97b8003c99bb0baec1b4003ccbbb6cb2912e003ceabb92afc02c003caebbcca964b4003c5dba37a4d5b8003ccf28aa2cf9bb003c423a082ee1b8003cf9bb31ac2d23003c7dbb9ea38fb5003c3fba1d29ebb8003c1029af32b6bb003c353a6632b8b8003c353b68320ab6003cfb3b972b5721003cb43ad0b02738003c4b37aeb4a23a003c5baac9b5543b003c60b929b46639003cf9bb31ac2d23003c8b2826b58c3b003ca4b86fb41a3a003c8330f5b3a83b003cb1b865b3343a003c1b3886b3993a003cd63528b5f93a003cbc3aeab10c38003c1f3a60b3cc38003cfa3bb2ac7da3003cfb3bfeabc121003cefbbceaf43a7003cf6bbbcadd727003c613b1a2627b6003ceb3acf2cf0b7003c203ac02e12b9003c6539072fd6b9003c1e17b231dfbb003c29a9412df6bb003c17ba012e21b9003cf2b98e9c5ab9003c3bbb8b28cfb6003cfaba36a8cdb7003cf6bbbcadd727003cefbbceaf43a7003cf2bba92d7b2c003c4ebbb431dbb5003c2eba3632d6b8003ceebb302d802e003cf7ba1c3237b7003ce3bbceaafe30003c38bb2921d6b6003c64b9183488b9003c59b98296eab9003c9eaea9356cbb003c7c2563a5f1bb003c2d96d533c1bb003c503a4531bab8003ca33beb2e6cb4003cf63bf425f42d003cf43a21a9dc37003c4339ebaafc39003c99333aacb83b003cbfb8e9a9673a003cf2bba92d7b2c003cb93093a9db3b003c76b8b5a2983a003c7a3143a5dd3b003c6cb899aca03a003c13391fa12a3a003cd83809a2533a003c353b0ba3e836003c0b3b06288137003cf93b7ca89e2c003ced3b642d1a2e003ceebb302d802e003ce3bbceaafe30003c853bb9aa59b5003c963b033151b4003c9b391bae9eb9003ca53938343ab9003cf13bbf2cf22d003c9439c4aea7b9003c302d4ab3bebb003c92b899b073ba003c67bbd4aecdb5003cbcbbffaaf533003c9abbc2310d34003c80bb123349b4003ce6b82235c2b9003cb53029349abb003c2839a034a2b9003ca63b58a1abb4003c483ba534adb4003c813b8735ac22003c103b2a310937003cd7385333193a003cde307a33ae3b003c04b85c30d43a003cbcbbffaaf533003c7ca05e36563b003cf1b8fa34c639003c3338f936d839003cb73a9936a635003c9abbc2310d34003c6f2b0b38e33a003c44b84837b339003c5d37c737f139003c343a46370137003c733bc8357ba8003c53bb8f357332003c633bdb320cb5003cbd38913143ba003c0434882ab3bb003c58b69434f2ba003c4cbb0a352db4003c53bb8f357332003cd33b393281ac003cb2bb6632ed31003c84bb1d2370b5003c50ba6cb84234003c9db967b915b3003c07b646b235bb003c89b41dba98b8003c233342b7dfba003ce52852bb5ab6003cac38b0b408ba003c2a3611ba2fb8003c583bb49f4fb6003c563978b9b1b4003c5f3ad4b8d225003c8a3a4a36ba36003c2d3a90b7cb36003c8b37e437d939003cd637fcb6093a003ca12c0a38e13a003c2b2e47b7153b003c1eb8c436f639003cacb65ab7453a003cb2bb6632ed31003c50ba6cb84234003c5aba05b456b8003c53bb45ab5a36003ce2ba51b52236003c4fba79329bb8003cd2bb16323f2d003c8fbbf0ad0235003c2abb639f1d37003c71ba6fb27538003c80bb4bb33334003cc8baeb2b3538003cfdb9c3b02a39003ce9bba1a79830003ca4bb13ae7734003c3abbf7a2d936003c66ba9e2eba38003c7fbb98b1d234003c9abb9db4532f003cfabb6cac3128003cfcbba4a3fc2a003cc5b88329673a003cebb8deb64a39003c97b8a632563a003cffb3f434563b003ce5b93934f938003ccfba33b44337003c1ab4a9352b3b003cf8bb272d1f25003cdabb062e41b1003cf8bbe12c7da9003c90b87338cc38003c5bbb40361a27003cd8bbe2313cac003cdabbb230c9af003c6fb45638583a003cffb800397c37003c2cbb5c359f34003cf3b8b3365139003c8bb9f3b27e39003ca6205d36563b003cc4206b37163b003c89207735843b003ccdbbf9329727003cd5bb6e2eabb1003ce1b5e134073b003c63b9aa339739003c69baf0309f38003c88bbd3255c35003ce6bbc3af802e003c82203f358e3b003cf6bab1b7c12e003c73bb88b5332f003cddbb4eb1bcac003cd8bb0bb0b9b0003cbdbb55ae6fb3003c79bb089fb5b5003cf8ba8a2f9db7003c75bb66311cb5003c28b872b921b8003c39b70ebb40b0003cd3b8bcb66ab9003cfeb8a2b4ceb9003cfab82fb120ba003cefba48addeb7003c002994ba89b8003c18a637bbe3b6003c89b001b923ba003c5ab609b821ba003c6db9fcb452b9003c5ebb23ae07b6003c7dbb1eb5ab30003c40b8b3ba19b0003c88bb4bb486b2003cb6b940b848b7003c98b461ba3db8003c8fb5adb9e7b8003cf4a0f6b955b9003cf5a0eab962b9003cb5a01abb5ab7003ceaa05bbadbb8003c2fbb09b7540e003c8ebaabb4e037003cf2b9dcb57938003cd5b977b90327003c7c169fbbd934003cef9fe9bbc2b0003c5ba0a4bbbab4003c90b8e8b73e39003c3c2841b9063a003c6bb626b6a63a003c80b8e6b4243a003c9db90bb36b39003cff2960b7163b003c65bb832cfb35003ce5bb6d110b31003c8ebb41355e98003cbebbaa33d0ac003cb7bb2634d0a9003cf0bb10acdd2e003c6abbb03573af003ce6b9a63879b5003cfcba473485b6003ccdbb603082b1003ccdbb603082b1003c25bae23825b2003c43b7053bbbb0003ce9b8653883b8003cb42bf73b11a6003c73b1e13b3426003cf99e973bc034003cc7b11d3ada38003cd2234f39ec39003cebb4e838ba39003cb320fd37aa3a003ccd20cf392139003c8220a33bc234003cf51ff23b572f003cb8b7df3a6fb1003c1f1df33b0daf003c8212943b1bb5003c62b8543a57b4003c8fba5a38acb1003cf4ba2537c9b2003cb8b8e7393fb5003c629d5d3b3eb6003c7fbb56355bae003cb9badd3743b3003cd8a6d83a21b8003c19bb5d3749a2003c4fbb26361330003c00bb31307137003cd1b8aaad583a003c99b160b3a83b003c57a61cb5933b003cbc2938b58d3b003c2abad73856b2003c68a52c3b13b7003c0eafdbb2c03b003ceb2e58b4a33b003c7d27a8b4a33b003c60b19eb61e3b003c692740b6533b003c962168b64a3b003c66b740a4113b003cc8b82fb22b3a003c5cb865b80539003c0cb2b5b95b39003cdc288ab9a239003ce7b8ceb7f838003cd930c9ba0e38003c93b5b7b41e3b003c90362bb69c3a003c12bb29b56835003c9bbb50b13034003c0c1fe2bbad30003ccf362dbb92af003c28a2f8bb6ea5003cabbab2320c38003cbdba79301b38003c8fbbe32af834003cf9bb8aa3d820003cc5bac0370b33003c04bb6b37e22f003c6fbb813536b0003c88bb11354aaf003c76bbb9352928003cd6bb842c6bb1003cd0bb8c2c68b2003c99bbe6ad8ab4003cddb90bb5c4b8003ccdba16b860ad003cc9b635bb2eac003c56321fbb8fb6003cedbb25af9428003ca0bbae34bf26003c9cbb8634352f003cf8b95139479e003cd9b97339f424003c2fba0c39972b003c47baf338e526003c35ba09395e1c003cabb62d3b91b0003c2cb65e3b9ea9003ccbb8623a65ab003c62b8a03a49af003c53b9f1395dac003c18ba2039cc2d003c87ba9e383f25003cfab93939e8af003ceeb7d13a59b1003c48a1913b2cb5003c579eb13b65b4003ca81b9d3be8b4003ce79a8f3b38b5003c3d9ca13bceb4003cad1fc53b8db3003c2d1ff93b00ad003ca216f83b7f2d003cb9b63e3ba42b003cd3b97a394126003c9bbbb9342c2d003ca4bb85b42c2d003c78b9d3b983a9003c58b580bb32ae003c8f9dffbbe21c003cd09ce4bbe930003c56321fbb8fb6003c28a2f8bb6ea5003ccf362dbb92af003c57a0f3bbf6ae003c96b255bb75b5003cdf1b69bb01b6003c8cb847bab4b3003c86bb26b524ae003c88bb5c355225003cd2b97339f62c003cacb7f43a9d2f003c439edf3bab31003c123b7db66633003cb1ac5bbb17b6003c6c2543bbadb6003cdcb845ba2f2e003cbcbb96b33f2d003c87bb3d351b2d003cd1b942391b32003c35b7e63a4933003c89a0cd3b0f33003ccdb5a4b9d538003c7131a0bb7433003c4bba0db6c437003cacbb10b16b33003c53bb5ab4b834003cf0bbcbaee1ab003cc0bbe8b34b16003c37a0f8bbf82a003cdf39a7b87635003c3da0c0bb7732003c11bb59ad5ab7003c09bb3cb2f0b6003c9fb888af70ba003cd8b85cb226ba003cd3a1f0b1dbbb003c99a143b4b1bb003c5037acb3d3ba003cbf38deb5b5b9003c90294cb64abb003c2e3b4cb60eb2003c3da0c0bb7732003cdf39a7b87635003c8130b829e2bb003cd62ad1a1f4bb003cf5b2472fb9bb003cb5b895314aba003cb6ba553121b8003cdfb8693311ba003c2ab9673836b8003c4bba8338edb3003caabba33139b3003cd2bb5c31ed2f003c9fba59383f30003cd9b67f38a5b9003c59b4e83798ba003cafb6343b932e003cc9b54a3bf5b1003cf4b4f33a1fb6003ca8b4573a48b8003c4eb4743a32b8003c0cb6bd39aeb8003c5198f23b5b2e003cdf22ec3b5cb0003c1f25c03bdab3003c6f268d3b43b5003c8126883b5cb5003c1528253b2cb7003ce5b990364cb8003c2b2a083934ba003c6dbb4cb20b35003c0a288dba95b8003c99ba293155b8003c51bbfdae3936003c3baba0b7043b003c0a288dba95b8003c2aabe9b2cc3b003c9a2a153592bb003c53bb67ac5536003cadbad12963b8003c65b98caddd39003c5c2b8d31ddbb003c3dbb29abc036003c7aba3428b0b8003c96ab45afef3b003cb62b0d2df5bb003c20bb78b0e936003cd8ba152d17b8003cc1aa58b4b03b003c512b9031ddbb003c25bbc0b46335003ccaba903013b8003c02b9beb7e338003cfeb6c434c9ba003ce1ba3db78b33003c91bbf32822b5003cd7a418ba2d39003ccd284238c4ba003ccdab40baf738003ca8a429ba1839003cc8bb60ac0ab3003cc1bbceab95b3003c3ba687b9c639003cbcbbdaabe5b3003ccdbb603082b1003caabb8b298734003cbeba5c32fe37003cf4bbd9ab842d003c13b98a34c039003cb5b44e352b3b003c8c208835813b003c50bb52b4d3b4003c12b984b642b9003cceb418b870ba003ce8a097b88cba003c41b9b8b3b7b9003cc8b3f2b290bb003c57a021b4babb003cf0b451b843ba003c1cbac7b6cab7003ce9bb71a5a330003c50bb52b4d3b4003c28bae233b538003ca1bb9721cf34003cd7a020b8daba003cceb81a35dd39003c3bb995b9adb4003ceebafdb22d37003c65b41ebbd1b5003c8ba069bb03b6003ceebafdb22d37003c87b1babb2ab2003ccdb7c6bac7b2003c06a0e0bb96b1003c11b14abb1636003c8cb88eb90b37003c199c88bb6235003cbeae6ab89d3a003c61b7c8b0ff3a003c179fffbba7a6003c85b530334a3b003ceebafdb22d37003c8cb88eb90b37003c50bb52b4d3b4003c46b991b7acb8003cf4bb2bac4f2d003c48b978b7b4b8003cedbb1cb0b328003ccab826b8e0b8003ca4bb6bb4c72e003c062e22b8ceba003cf53465b834ba003c46b991b7acb8003c372ab1b701bb003c84300db581bb003cbebb4a2ade33003cdaba1c337137003cefb84735b739003c37b4c435283b003c89207935843b003cfcbbe62a9825003cbbba5535cc36003cd0bbceb2fe25003c1fb80a36273a003cd4b09535663b003c852055358a3b003cf1b37c32943b003c71a81c32d93b003c2b202b32d93b003c80b88d31763a003cf5bba52d2daa003c82ba0e360f37003c96bbfbb49a2b003c82ba86aaa138003cb5bac4b20438003c1fb1efaed93b003ceba748acfa3b003cd31ecfa9fd3b003c69b63cb1363b003c4eb9f7b1cc39003cdbbaabb0e837003c58ba6bb1ae38003c68b9fcb84b36003c68b9fcb84b36003cdbbaa5b34e37003c9bbb33b07db4003ca0bbd0b45727003c6cad89bb2db5003c1cb939b7fb38003cb7b85fb5e039003c81b2f131b03b003c3f363cb13f3b003cd7b8ef2d523a003ccbb970367938003c9bbb33b07db4003c96b8dab9e735003c36b8a928cb3a003c7ab9e91cd439003c27bbe7b24736003c09ba06b8bc36003c18b919b65b39003c27b779b6613a003c48b513b6e93a003c79b1d9b5513b003c36ac36b58b3b003c8c1c23b5933b003c45b1ebb7d33a003c9cace4b7ef3a003c58190bb8e73a003c79b577b7863a003c3db8c8b78e39003c45b161b88f3a003c88ab72b8a23a003c041882b89b3a003c9bb41eb8753a003c18b9c9b57239003c2bb08eb87e3a003cacab7db89a3a003cab1791b8903a003c24b43bb8773a003c72b723b71d3a003c6fb03eb8b03a003cc8aa56b8b53a003c091880b89c3a003cfcb347b8753a003c03b63db8143a003c38b1ddb7d73a003ce8a929b8d23a003cd51839b8ca3a003cadb4c1b7983a003cfeb690b71e3a003c12b083b9b439003cefa680b9ce39003c73106eb9df39003cc4b34eb9a939003cc5b7afb83039003c82baa2b68236003cd0b94bb9dd31003c00b711bab9b7003c59203db722bb003c96b06abb8935003c7aae5dbb0636003ce99a53bb6d36003c6db537bb4634003c9ab25fbb4035003c96ad43bb8fb6003cdfab8abb3db5003c83a074bbccb5003c4dad48bb7bb6003c73af1cbb15b7003c88a8c2b86cba003cccab2cb914ba003c179fffbba7a6003c672f68b89cba003c4d2d57b8afba003c89ba81325138003c50bb52b4d3b4003c3f363cb13f3b003cdbbaabb0e837003c58ba6bb1ae38003cdbbaabb0e837003c68b9fcb84b36003c68b9fcb84b36003c0939c7a8353a003c36b8a928cb3a003c0939c7a8353a003c0939c7a8353a003c68b9fcb84b36003c9bbb33b07db4003c96b8dab9e735003c36b8a928cb3a003ccbb970367938003c36b8a928cb3a003c96b8dab9e735003c6cad89bb2db5003c0939c7a8353a003c36b8a928cb3a003c10bb3caf4837003cacbb25a667b4003c45b5c0a786bb003cf5391fb218b9003cfcba67b14e37003c6aae16b4b13b003cfc3885b11a3a003c93bbd6a915b5003c123b7db66633003c9c3b62b06c34003c953ae0ac80b8003c4cb31f23c9bb003c51a61ab2d93b003ce43984b04a39003c1fba22b00b39003cf53bc4ab5b2d003c683afaabc3b8003cf53bc4ab5b2d003c9c3b62b06c34003cf5391fb218b9003c5fb2c62cd1bb003cd6bbe22a2cb2003ccfad34b4af3b003c49395db1da39003c24ba65b2de38003cf33bafa2ec2e003cf33bafa2ec2e003cd83ac61c23b8003c89b0dc9feabb003c89b0dc9feabb003cd6bbf2a850b2003c74ab6fb3c43b003c6e39ddb0bf39003c14bac8b3d138003cf73b41a86c2d003cf73b41a86c2d003cd03a46212fb8003c671e84abfcbb003c92bbaeb09ab4003c671e84abfcbb003cada996a8fa3b003cca3923a87d39003c90bab6249038003cff3b811b2924003cff3b811b2924003c8b3b502c33b5003c90bbcd2a25b5003cc731ee2fcbbb003c70a901a9fc3b003c6f390facd839003c77ba2ba8b238003ce93b02aa7a30003ce93b02aa7a30003c583b4c244bb6003cc731ee2fcbbb003c671e84abfcbb003cffa50524f6bb003ca9bba8267cb4003cffa50524f6bb003c932bd829f13b003c563a22a8d038003ce9b96a285d39003ce83bcdaecd2a003ce83bcdaecd2a003cd43a10a91ab8003cddb291b2a3bb003cb9bbd7b068b2003c2c3199348d3b003c253af333b038003c51b9df347539003cd33b1f32872c003cd33b1f32872c003c9a3a7b305fb8003c03b32aaec4bb003cbdbb1730f7b2003c3e2d5c38ac3a003cbb3942373d38003c7fb9f536a838003c8b3b4a35be26003c8b3b4a35be26003cb9395a3346b9003c28b2a332acbb003c80bb59332db4003cff316b387f3a003c053a0a37d537003c71b9d8375b38003cd33b9f321d98003c133aeead21b9003c79bb8da8acb5003c52bac7385fb0003ce2af48b0ddbb003c6729bf3a4838003c9936a43aff35003c59b68d3aa036003ca539a739cc2a003c2ab4d028b7bb003ce2af48b0ddbb003c133aeead21b9003cd33b9f321d98003ca539a739cc2a003c7d3a13342db8003ce2af48b0ddbb003c133aeead21b9003c56321fbb8fb6003cddb90bb5c4b8003c56321fbb8fb6003cf5391fb218b9003cdfb8693311ba003c52aa20b7203b003c383874b6f239003c94b853b6bb39003c1ebb67b4cf35003cd3bb8ab28da6003c3c3bffb49834003c35bbc1b07bb6003c5ab88aada5ba003ca2310fb0c7bb003cf5392ab302b9003c6c3ba8b466b3003c3c3bffb49834003c993b2fb47d31003c983b6db082b4003cea3a20abfeb7003c9834bd29a4bb003cccb8a2a463ba003c4fbbadac60b6003cf3bbd3ac0ead003c2bbb0db4d435003c5db77cb7083a003c412b32b8cb3a003c9b3881b6a639003c3c3bffb49834003c993b2fb47d31003c382cd1b85c3a003c573836b83c39003cceb667b8bf39003c0bbb1bb59b35003ceabb57a881b0003cb43b0eb4d42d003c20ab4db6563b003cce38beb5b639003c37b8c5b5283a003cf5ba8db3ec36003cf1bb382928af003cda3b0bb1d52e003c09bb60311eb7003cedba292fcbb7003c72b9f030bab9003c7d2d7a31dabb003cb63a6f2857b8003cad3b61ab63b4003cb43b0eb4d42d003cda3b0bb1d52e003cc53b5da978b3003c973a6c2a84b8003c81227833c7bb003cfcb94d3210b9003cf23ba0acd02d003ca93bdeac73b4003c943adbac83b8003c1528e89dfebb003cd4b9072a76b9003cf4ba3c2ec2b7003cf6bbda2a04ad003cfeba3fa9bc37003c22b81cafca3a003cf4a41eb1e53b003cf9387fb02a3a003cf23ba0acd02d003c08afbfaaf03b003c2638ecaad33a003ce0b26b25ce3b003c31382f98cf3a003c9bb85e9d893a003cedb6d7ac2f3b003c09bb31aa9037003c7dba38aca638003cf3bba6ad6bac003cf8bb7fac1aaa003cec3b2eaf412d003cea3b13ac2a30003c1fbb4fae1db7003c96ba1dad7eb8003cb6b9adad8eb9003cecb810af3eba003cd52ce1aeeebb003c842f71b2c7bb003c793a2bada7b8003c563adab1a7b8003c793bb8ac91b5003c413b06b140b6003cea3b13ac2a30003cec3b2eaf412d003ce43b712f6c2f003c853b2a2d4cb5003c8c3aa72697b8003c002d07a9f8bb003cecb913a560b9003c70bbd622dfb5003cfebb85285f21003c37bb042dc936003ca9b911308e39003cd2b45231823b003c4c381631a03a003ce43b712f6c2f003ca4b1132ad63b003c4238ad2cbb3a003c33b171add73b003c7e383aaf8a3a003c03b9dbac2f3a003c00b90e29333a003c2fbb29abf336003c28bb3e2c0037003cf7bb0fab6b2c003cf5bbb12df028003ce23b9d2e5030003ce43b1ca9fc30003c79bbcbac8eb5003c76bb082e90b5003c75b9d5b0b3b9003c46b9d22df8b9003cb02042afeabb003c9431ca2dd8bb003c6b39e297dab9003ccc39702c7bb9003c413b2e25afb6003c2f3bcd2de0b6003ce43b1ca9fc30003ce23b9d2e5030003cc83b3fab3033003c5f3b2faa26b6003c8138deab94ba003c82ad1eb1d9bb003c9db9a2aca8b9003cacbb5da081b4003cf0bb29294f2f003c06bbd72d8137003cc1b81630583a003c6ab0d52fdb3b003c2138c52ad53a003cc83b3fab3033003cf7249c34a83b003c0139b533ef39003c27b858354b3a003cbbba8e359f36003c90bb1535562c003c9b3b94311334003c8eaa6536523b003c4d382036023a003c49b724366c3a003c36ba18360338003c86bb6d352725003c493b8d352233003c77bb053389b4003c60bbb834fcb3003c4ab9503560b9003c1fb1083578bb003cc6383b369ab9003c6a3b5a3422b4003c9b3b94311334003c493b8d352233003c333bc635cbb3003c1836b635d2ba003c32b47f2fa9bb003cd8b805331eba003caf3b80320e32003c783b5f2c9bb5003cc638e9390235003c163a1e39cbae003cfa350eb058bb003c8f3625254bbb003c21b32eb629bb003c05b3f03910b9003cb2b8bab32eba003c6bb85536ddb9003c65bb2f2016b6003cbeb930390bb4003cdfbb9f3106a8003c9bb9a239042f003c8aba2135a637003c0fb83a3ae635003c78b74536573a003c8bb4593a4d38003c31ac6136513b003c49a94e3ae838003c2a388b353d3a003c5e34253aa138003caf3b80320e32003cc638e9390235003cf5391fb218b9003c123b7db66633003c9c3b62b06c34003cb9395a3346b9003cd33b9f321d98003c52bac7385fb0003c59b68d3aa036003c52a4ff3bb121003c2ab4d028b7bb003ca539a739cc2a003c7d3a13342db8003c6729bf3a4838003c9936a43aff35003c6bb85536ddb9003c84a8ef3bc62f003c05b3f03910b9003cbeb930390bb4003c163a1e39cbae003c8f3625254bbb003c42a2f43baf2e003c9bb9a239042f003cc638e9390235003c5e34253aa138003c49a94e3ae838003c8bb4593a4d38003c0fb83a3ae635003c8bb9f3b27e39003cf3b8b3365139003cebb3d2b0a43b003ca8bb93345b29003c8738a3b7db38003cccbafeb7a32c003cf3bb0cae2b2b003ca4ba1eb82d30003cb031eeb9cc38003c402fc5b8563a003c8fb86d29903a003c2b2bd8b96639003ccdbb603082b1003c2abb99b6cfb0003c20302dba3b38003ca9bb2cb46c29003ce33814b8e637003c82b4dbba952c003c7d357bba6333003c3cbb57b5e731003cd531f0ba1131003c82b4dbba952c003c6e39b1b73137003cacb2e1ba6d31003c9e38d939908c003c93308aba8635003ca9bb4f9e2534003c0834d7bac430003c142781ba0736003ccaa7f9b9ef37003c70ad86bad535003ce039abb61837003c30bb249d4f36003c4bb77934fc39003c07ade435843a003ce836be2e693a003cebb3d2b0a43b003cf3b8b3365139003cd2234f39ec39003c25399e38f137003cc73adb37412a003c8738a3b7db38003cb42bf73b11a6003c6f37a93a68b4003ce9b8653883b8003c71b5293951b9003ccdbb603082b1003c2abb99b6cfb0003c3635ce3abab2003c94b5693a25b5003ca9bb2cb46c29003cc93887393332003ce33814b8e637003c5a33f83a222a003ce5b4cf3a62ac003c3cbb57b5e731003c9e38d939908c003c3a34d83a02b0003c11b3e43adfb0003ca9bb4f9e2534003cf633c53a36b2003c8d3927393826003c6e39b1b73137003c0ab59a3ab3b2003c30bb249d4f36003c07ade435843a003c4bb77934fc39003ce039abb61837003ce836be2e693a003cf3bb0cae2b2b003c8fb86d29903a003c8bb9f3b27e39003ca4ba1eb82d30003cf3bb0cae2b2b003ce039abb61837003c8d3927393826003ce836be2e693a003c1c3afcb84eb1003c3739d0b60439003c2c11ffbb1c97003c4c2fadba4cb8003c13baf4b84732003c29b871ba7eb4003cc6a91ab7283b003cc9b82fb74e39003c2a3611ba2fb8003cc2a1febb07a2003ce52852bb5ab6003c563978b9b1b4003c9db967b915b3003c89b41dba98b8003c2622ffbbbf21003c5f3ad4b8d225003c50ba6cb84234003cacb65ab7453a003c2b2e47b7153b003cd637fcb6093a003c2d3a90b7cb36003c99393cb36b39003c2334f8b09b3b003c11398b363f39003cb13b5d345d27003c82b87eb7ef38003cc03a1bb8802c003cf23be7ae6029003c9a3a38b83530003cbab1d6b91239003c0eafc0b85c3a003ca8386e287f3a003c39abd7b96639003ccb3bde2ffdb1003c1a3bc8b639b1003c39b030ba2638003ca33b5fb42626003ce3b804b80338003c5734e3ba4d2c003c9db572ba8533003c383b8ab57d31003c23b2ebba2631003c5734e3ba4d2c003c6fb991b75237003c6032e8ba4331003c8ab8e939fb20003cc5b088ba8635003cb03b13a5dc33003c2eb4d1bad230003c46a883bafe35003cf926fdb9e237003c0f2d8bbac535003cdeb989b63c37003c3b3bc1a41b36003c85375334f139003c122ed135853a003cb4b6e52e763a003c2334f8b09b3b003c101c3b39f239003c11398b363f39003c07b9aa380d38003cb8ba0a38d62a003c82b87eb7ef38003c06aaf63b1ca5003c51b7b43a3cb4003ce838543895b8003c6e351e3961b9003ccb3bde2ffdb1003c1a3bc8b639b1003c14b5d83ab7b3003cad35523ae1b5003ca33b5fb42626003cb0b897397a32003ce3b804b80338003cf4b2fe3a882a003c1035c73aa9ac003c383b8ab57d31003c8ab8e939fb20003c12b4df3aa6af003c5f33de3ae8b0003cb03b13a5dc33003caeb3cd3a04b2003c7bb939399f28003c6fb991b75237003c2c35923ac2b2003c3b3bc1a41b36003c122ed135853a003c85375334f139003cdeb989b63c37003cb4b6e52e763a003cf23be7ae6029003c99393cb36b39003ca8386e287f3a003c9a3a38b83530003cf23be7ae6029003cdeb989b63c37003cb4b6e52e763a003c7bb939399f28003cd139b734b938003c5e388b33e639003cbc368834993a003c383ac5344038003c23233d365d3b003ccb203537243b003c9d374f36aa39003c74391b344539003cd8252139213a003cda3311393239003cd02d8038eb39003c2e248b3b4f35003cb31a943b5c95003ceab1743b3f31003cecb6343ba929003c0e33c23b5bae003c0338d53a45b0003c87368b3af1b5003c0a3a3539ebac003c9920fc3b3eab003c9c3a5b3887b0003cbe349f3b99ab003cdb3b262d59b1003c493a3d3812b5003cbf368c3a3db6003cbf3be132cbaf003c183bac3653b2003c3338ee39aeb6003cc53b8233ec26003c0920fd3b6129003ca5a0903b32b5003cb6a42e3b09b7003c9b3afc372db4003c70391439dcb5003cd9a5e03a14b8003cd439aa38beb5003c7f3af437e2b4003c53a4cb3a37b8003c7538d836fb38003c93349a37d039003c93167a368b3a003c79394d37d937003cac243c390b3a003c1123e3396939003c2735f938c138003c84384f37f338003c26235b3b4736003cb62a173a3738003cf72415395639003c20ac803b32ac003ccab3893bdaa8003c4ab6223bc9a7003c3432bc3bdbb0003cb137c53a23b3003c9234aa3a69b6003cc93932396eb3003c542be53bd2b0003c693a5d38a2b3003cdc30df3b41ac003c903b562ef6b4003c67392139d0b5003ceb324a3b99b5003cc63a79370cb4003c633a6838bdb3003c1c35c93abfb6003c753a783815b2003c9ab1d73bf12d003c2e25a63ba6b4003c9eb11b3bc8b6003cc739163955b4003c52394d397bb5003c12a60d3b8bb7003c2039a139e5b4003c2f39b8392db4003c2ca51f3b47b7003c2ca51f3b47b7003cb7b90935cb38003c62b60736af3a003c2db8de34f839003c1fba15355638003c23233d365d3b003ccb203537243b003c33b74737a439003c57b956345c39003cd8252139213a003ca7b251392939003cddaac238d639003c2e248b3b4f35003c781da23b41a6003c7e32793b8b30003c2237283bb524003cc1b2c93bd8ad003ce4b7e33accaf003c6fb6963ae9b5003cfbb94939d3ab003c1917fc3b2cab003c9fba7138e4ac003c9ab4a73bbaa8003cf1bbfc2d95ac003c74ba533894b3003c29b7973a8eb5003cc9bb4a3347a5003c2ebbdd364dae003c77b8fd39b7b5003cacbbeb336530003c0920fd3b6129003ca5a0903b32b5003cb6a42e3b09b7003cc1ba143841b1003caab927399eb4003cd9a5e03a14b8003c05babf388bb4003cadba0f38ceb2003c53a4cb3a37b8003c52b88837ef38003c5c27a0375d3a003c31b459389f39003c54b921389d37003cac243c390b3a003c1123e3396939003cceb44d399738003c57b8f737f638003c26235b3b4736003c3aa6363a2038003cac2151393239003c7b2c853b7dad003c0234603be117003c6936473bc6ae003cdcb1c23bcbb0003c8fb7d33af1b2003c84b4b03a65b6003cbdb946391cb3003cfea9e63bc7b0003c68ba7338e2b2003c83b0e63b31ac003c9dbb262f8fb4003c76b9333951b5003c02b3503b73b5003cd2baa837aeb2003c6eba7e383fb2003c53b5d23a6fb6003c7aba8e387ab0003c1d32d23b872d003c09a5a73ba2b4003c3131163bf1b6003c3bbac13855b2003c88b960393ab4003c12a60d3b8bb7003cd9b90e3917b4003c90ba4038b2b2003c2ca51f3b47b7003c2ca51f3b47b7003c953bc8aece34003c7a3ac8b25f38003c353b02a5ec36003c803bb7b30134003cd83a6f2a1e38003c0a3a14b11639003c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000953bc8aece34003c7a3ac8b25f38003c353b02a5ec36003c803bb7b30134003cd83a6f2a1e38003c0a3a14b11639003cec3b9da92d30003ca93befae4434003c453bada6a836003c793aed2da338003c823b03b2a034003c953bd4b48a2e003cf83b56ad0125003cfd3b7ba74829003cdc388d28563a003cf138ffb63a39003cb2386a32453a003c4334ea344e3b003cfd391434e438003cd43a63b41637003c60349735233b003cfb3b3c2cc51e003cd83b1b2dadb1003cf83beb2b35ab003cb1386938b938003c673b0d36da22003cdb3b6d3119ad003cdb3b3c3051b0003cba343e38513a003c1e39ec385937003c3d3b2d356a34003c11398d363f39003c98393ab36d39003c8c206236553b003cb3207037153b003c66207c35833b003cd43b8b32e923003cd23b832d17b2003c2336d034fc3a003c7d3961338439003c7d3a97308838003c923bea202935003ce53b55b0ab2d003c5d2044358d3b003cea3ae4b70e2e003c6c3bbeb5702e003cd63bc3b18ead003cd03b80b022b1003cb33b3dafd8b3003c6e3b4da5e9b5003cee3abb2ed0b7003c703bf63054b5003c063882b92db8003cfd361cbb67b0003cb438e3b67ab9003ce138cab4deb9003ce03881b130ba003cdd3a18ae09b8003c7cab94ba86b8003c351d39bbdfb6003cd12f06b925ba003c113616b82bba003c4c3923b569b9003c4c3b00af51b6003c813b56b5d32d003c2338c2ba49b0003c7a3b83b4eab2003c9a3956b86cb7003c4b346bba43b8003c4335b8b9eeb8003c16a1f8b953b9003c16a1ecb960b9003cf8a01cbb55b7003c16a15cbad9b8003cb2a0a5bbb5b4003c5ea0e9bbb8b0003c1710a2bbc534003cc2398cb965a4003c1f3b3cb7c1aa003cf4380db8cc38003c443a13b6dd37003cca3ae3b4e536003c18284ab9fe39003cf73bfdac7f2a003c6e3b7a3571b0003cee399038a9b5003cf83a1234b6b6003ccc3bcc2ff9b1003ccc3bcc2ff9b1003cb93bda3384ad003cf83b16a3472d003cb63b403360b0003c2c3acb38bfb2003c6e37f73af6b0003cea38513895b8003ce8a9f63b75a5003ce931d83b0d26003c49268d3bcf34003c6232d839f338003c321c3d39f039003c3635d538b339003cab200038a83a003cee20d1391f39003cda20a33bbe34003c6520f23b522f003cd637d13adab1003c1c1ef33bfbae003c9d17963b14b5003c6338443aabb4003c8e3a4038d5b2003ce33af9362db4003ca438da39bab5003c3d9c623b28b6003c683b24354eb2003c8d3b0d35eead003cb73b1f2b2134003c363a7bb3ad38003c283914b58f39003cc3374fb63d3a003cdf2972b7113b003c863ab5371db5003caa2f2cb5813b003c5f3473b3743b003c69396baed639003c9f2946b58b3b003c563b892f1336003c6b3bed351b2a003cc73207b29f3b003c90a40fb4b43b003c4c27adb4a23b003cb13482b5113b003c472c8db56b3b003c432168b64a3b003c6138381ea03a003ca53912b08339003cde38a5b70839003c1f3415b9c739003cd3288ab9a239003c603956b60139003ca4aef7b94339003c1337dbb0123b003c1fb541b35b3b003c4b3ba3b4a634003cc63bd3b0d131003cec1ee2bbad30003c2cb71dbb592b003c37a2f8bb71a5003c053bb432a736003c293bd4306236003cd43b872a1331003cd53b93a93eb1003cee3a91374730003c173b36379424003c443b3035bab3003c653bc634deb2003c703ba42692b5003cb23b4f21f0b3003c4a3b71b0ecb5003c58397eb6eeb8003caf3a48b8a8ae003c7f364ebb29a8003c65b365bba3b4003ce93b1fb0caa6003ca33b603414a8003ca43b57346e2e003c723b7535ccac003c083a3f39fba3003ce93961394d25003c453af7381d1e003c343a0b393f27003c943a8738f6aa003c183b2c370daf003cff39c43899b4003c1fa5313bfdb6003c8ea6df3a17b8003cec39253939b2003c5639df39efaf003cc9a0943b1db5003c779db23b5ab4003cd638523a32ae003c583ade3848a5003c443af6383ca7003c6a38923a94b0003c0338c43abdb1003cd736233b8bb0003c5d36553bfaa7003c0220c53b8db3003c801ff93b00ad003cfe9aa23bc9b4003c9499903b35b5003c451c9d3be8b4003cc236343b5f2e003cd5396a391b2e003c973b8f342230003ca23bafb4dd29003c6139e2b90bad003c153587bb68af003caf9dffbbdd1c003ce09ce4bbe930003c65b365bba3b4003c37a2f8bb71a5003c2cb71dbb592b003c6fa0f3bbf6ae003cb43253bb73b5003c441b69bb01b6003c903841baebb3003c893b37b552ac003c7d3b33352530003cc03963397531003c8437ea3ab631003c0c9edf3bac31003ca117f83b7f2d003c312f3fbb7fb6003c582543bbadb6003ccb3861ba9629003cac3b0db4d12f003c9f3917390e35003cd136d63abb34003c6ba0cd3b0f33003c08358bbaa537003cf5b1d3bb842c003cfc39a9b74e37003c803bd4b25e34003c273b8ab58634003cf53b40ae719c003cc03bd9b33120003c47a0f8bbf62a003c0bbac5b8ed33003c4ea0c0bb7632003c593b299444b6003c4b3bd4ac71b6003c2839ec2613ba003c4c39a2a1fab9003cca2d502cefbb003c6f2d44a7f5bb003c0db664ab61bb003c4bb82ab37aba003c87294cb64abb003c14bbffb543b4003c4ea0c0bb7632003c0bbac5b8ed33003c57a8f02feabb003ccb2acda1f5bb003cfa34d03355bb003c4b397a348cb9003c123b8c336fb6003ccb3b67328eae003cae3b6f30c833003c6d3bec34a932003c9139d63364b9003c753a2c386434003c733aa73895ae003c9239bc3874b6003c0838cf38f0b8003c7c361e3b8b32003c2236583bdaad003ca9350f3be6b4003c53358c3a75b7003cbb35613abfb7003cd7353d381cba003c3c37bc393db8003cec97f23b5b2e003ce722ec3b5cb0003c2025c03bdab3003c6d268d3b43b5003c7e26883b5cb5003c1228253b2cb7003c222a083934ba003c613a913612b7003c0c3b74b2d636003cfc278dba95b8003c043b6332fab6003ce83a82acfd37003c2faba0b7043b003cfc278dba95b8003c1dabe9b2cc3b003c8d2a153592bb003ce53a0fa80c38003c253b372d11b7003ca738bcab7d3a003c502b8c31ddbb003cc73a01a53e38003cfd3a512cb5b7003c89ab42afef3b003ca82b092df5bb003cb13a2dae4f38003c423bb22f70b6003cabaa56b4b03b003c422b8d31ddbb003ce33ae8b31d37003c293b28326eb6003c953832b77b39003c2938323551ba003ccb3a75b67135003ccc3bff2d7bb2003c7aa417ba2e39003ca5284038c4ba003c98273dbafe38003c4ca428ba1939003cf53b69a26bae003cf13b919d91af003ce7a586b9c739003cee3bdd9e2fb0003ccc3bcc2ff9b1003cb23ba5275234003cd13afe31cf37003cf43bd5acad2c003c2f396834ad39003cfa344135223b003c69208d35803b003c3f3b89b404b5003cf438acb652b9003c843423b876ba003ceaa09ab88bba003c263906b4c8b9003c463318b395bb003c29a026b4b9bb003ca6345cb84aba003c023af6b6f2b7003cec3b85a83730003c3f3b89b404b5003c3f3a8d339f38003ca93bff989a34003ccfa022b8d9ba003ceb38fa34cb39003c1e39a9b9ccb4003cf43a5fb3ff36003c1c3427bbdab5003cd9a06abbfeb5003cf43a5fb3ff36003c0031bfbb31b2003c8f37d5baf2b2003c6ba0e0bb8bb1003ccf304dbb1236003c84389eb9f036003c2a9d87bb6835003cf02e6bb89c3a003c8837f5b0f23a003cfc9fffbb50a6003cc43510333f3b003cf43a5fb3ff36003c84389eb9f036003c2839bab7bdb8003c3f3b89b404b5003cf43b14ad782c003c2a39a2b7c4b8003cea3b90b01126003caa3839b8efb8003c9e3ba3b4fc2d003c39af21b8caba003c40b55eb82aba003c2839bab7bdb8003c4cacb2b7feba003c10b10ab57cbb003cc63b8b287333003ced3abb324137003c0c392635a539003c7d34b935203b003c67207e35833b003cfe3b10295520003cd03a25359c36003cca3b41b37921003c3f38f035173a003c62319135603b003c60205a35893b003c383468328c3b003c782a2232d73b003ce81f3532d93b003c9b385231663a003cf63bb92ce4ab003c993ae035e136003c8e3b33b50b2a003c903aeeab8b38003cbc3a22b3dc37003c7e3101afd53b003c8a293bacf93b003c291ea3a9fd3b003c913662b12b3b003c5c393db2ba39003ce33a0bb1ba37003c623ac2b19838003c60390eb92a36003c60390eb92a36003ce03a02b42037003c8f3ba6b0b0b4003c973b08b53224003c472c8dbb2cb5003c20395cb7ea38003c813ad0b65836003cc13960b99531003cb8361fbaccb7003ce3a641b720bb003c1f393bb64b39003c053a1bb89636003c2b3b4cb31836003cef38702d413a003ce63948366438003c8f3ba6b0b0b4003c17b605b14a3b003c0033e331aa3b003c4e38a627bc3a003cc1387db5d139003c8e39439cc139003c3a378fb6563a003c603522b6e13a003cb231deb54e3b003cb72c35b58a3b003c551b1db5943b003c6731f0b7d03a003ce52ce3b7ee3a003cb41608b8e83a003c8a3586b77e3a003c4138e4b78139003c5e3164b88c3a003cec2b72b8a13a003cdb137fb89d3a003ca93424b86f3a003c2039ebb56139003c413090b87b3a003c062c7db89a3a003c19138fb8923a003c313440b8713a003c81373ab7123a003c8c3040b8ae3a003c372b55b8b53a003cf0137eb89e3a003c0a344cb86f3a003c0d3646b80b3a003c5b31e2b7d43a003c682a28b8d23a003ca21537b8cc3a003cbd34ceb7913a003c0c37a6b7143a003c0f3085b9b239003ce2267eb9cf39003c24906cb9e139003cc33353b9a539003cc537bcb82439003c4e306ebb8635003cf32d5fbb0636003c8a9c52bb7236003c513264bb3a35003c463540bb3934003c662c46bb8fb6003c93298dbb3bb5003cd3a075bbc7b5003c1d2c4cbb7ab6003c412e21bb16b7003c2124c5b86bba003c4f2930b914ba003cfc9fffbb50a6003c4eb066b897ba003c83ae57b8abba003c3f3b89b404b5003c9d3a26323a38003c17b605b14a3b003c623ac2b19838003ce33a0bb1ba37003ce33a0bb1ba37003c60390eb92a36003c60390eb92a36003cf5b8fda6463a003c4e38a627bc3a003cf5b8fda6463a003cf5b8fda6463a003c60390eb92a36003c8f3ba6b0b0b4003c8a38eab9cc35003c8a38eab9cc35003ce63948366438003c4e38a627bc3a003c4e38a627bc3a003c472c8dbb2cb5003c8a38eab9cc35003c4e38a627bc3a003cf5b8fda6463a003c6a3b13ace835003c6a3b2baea5b5003c003431b194bb003c5aba04b456b8003c553b90af1a36003c8732edadcb3b003c49b83ea5c03a003c3d3b26b077b6003ce2ba51b52236003c53bb45ab5a36003c06bb83b046b7003c0a30edb0d4bb003c3a30dda5ed3b003c46b90c9a033a003ca23ae6a97438003cd6bb83a26732003ce5ba51b0cbb7003cd6bb83a26732003c53bb45ab5a36003c5aba04b456b8003cc62d3aaeedbb003c9e3b27a2deb4003c383260aece3b003c9cb809a5883a003ca03aa5af6038003ccebbe628e832003ccebbe628e832003c43bbf6aaa3b6003cea27b2b1ddbb003cea27b2b1ddbb003c9a3ba5aeafb4003c3d3146acdf3b003cc4b8209e6c3a003c8e3a37b16438003cd7bb6d234a32003cd7bb6d234a32003c3dbb64aac2b6003c92af38b3bcbb003c3f3b2ab3bdb5003c92af38b3bcbb003c3d310830d23b003c0cb9702e263a003c0e3b812d6837003ceebb0b29d92f003ceebb0b29d92f003cc7bb7e2951b3003c3c3b3ba8cdb6003cabb4f5a6a3bb003c6625272cee3b003c70b98329c939003c933aa4247838003cd9bba41b3531003cd9bba41b3531003c6dbb779cb1b5003cabb4f5a6a3bb003c92af38b3bcbb003c56ad3daee2bb003c7c3b16a95db5003c56ad3daee2bb003c0ea8342df43b003c29ba2da01339003c453a182bee38003ce9bbd8ad552d003ce9bbd8ad552d003c3abb60ac8bb6003c902922b4aabb003c8b3bd4b095b4003caeadb6349c3b003ce1b90a340739003cb3392c35fa38003cc5bbb231da30003cc5bbb231da30003c14bb382f1cb7003c8e2d15b0dcbb003c863b8330e1b4003c3ba66a38ab3a003c6cb92737aa38003cca393e372a38003c89bb0c35ce2e003c89bb0c35ce2e003c4fba78329bb8003cee2cf031cebb003c3b3bb83395b5003c36b074388f3a003cbeb9e8365d38003cb3390f38be37003cd2bb15323f2d003c78ba84af91b8003c323b30a6f2b6003c1c3afcb84cb1003cce2202b1dfbb003cc4a918b7293b003cc9b82fb74e39003c3839ceb60439003c13baf4b84932003c4d2faeba4cb8003cce2202b1dfbb003c78ba84af91b8003cd2bb15323f2d003c13baf4b84932003c29b871ba7db4003cce2202b1dfbb003c78ba84af91b8003ce2ba51b52236003c65b365bba3b4003c58397eb6eeb8003c5aba04b456b8003c65b365bba3b4003c9139d63364b9003c999e18b8bc3a003c95b892b68c39003c3638eab76e39003cec3a6cb5d235003cd43b82b27918003c64bb6fb40834003c633b8dafb7b5003cc038d2a456ba003c81af50acd1bb003cb0b9b5b247b9003c5fbb98b406b4003c64bb6fb40834003cb7bb19b2d931003c89bb8db197b4003cc0ba29b025b8003ca5b324aaa2bb003c1a3907aeffb9003c693b84b158b5003cf23b60afefa3003cf93a46b22a37003c9d365ab5b83a003ceeae7cb56b3b003cf2b825b4ef39003c64bb6fb40834003cb7bb19b2d931003c8eaf6ab6443b003cafb88fb5db39003c093618b6c03a003cd53a43b41637003cf03bd6ad5ead003ccbbb6bb2912e003c549b36b7ea3a003c29b973b54639003c9f3750b61d3a003cb83a2bb47337003cfb3bb9254daa003ceabb90afc02c003c3e3be5300fb6003c1a3b3ea65bb7003cb43929a89ab9003c58a957abfabb003c87ba72ac97b8003c99bb08aec1b4003ccbbb6bb2912e003ceabb90afc02c003caebbc7a964b4003c5dba27a4d5b8003cce28ae2cf9bb003c423a092ee1b8003cf9bb30ac3023003c7dbb85a38eb5003c3fba2529ebb8003c0f29b132b6bb003c353a6632b8b8003c353b68320ab6003cfb3b932b5421003cb43ad1b02738003c4b37afb4a23a003c5baacab5543b003c60b92ab46639003cf9bb30ac3023003c8b2827b58c3b003ca4b870b41a3a003c8330f7b3a83b003cb1b866b3333a003c1b3888b3993a003cd63529b5f93a003cbc3aebb10c38003c1f3a62b3cc38003cfa3bb4ac84a3003cfb3b01acba21003cefbbccaf42a7003cf6bbbbadd827003c613b1a2627b6003ceb3acf2cf0b7003c203ac22e12b9003c6539092fd6b9003c0d17b431dfbb003c2aa9452df6bb003c17ba052e21b9003cf2b94d9c5ab9003c3bbb9228cfb6003cfaba2fa8cdb7003cf6bbbbadd827003cefbbccaf42a7003cf2bbaa2d7c2c003c4ebbb531dbb5003c2eba3832d5b8003ceebb312d812e003cf7ba1d3237b7003ce3bbccaaff30003c38bb4421d6b6003c64b9193488b9003c59b97695e9b9003c9eaeaa356cbb003c7a2553a5f1bb003c3696d733c1bb003c503a4531bab8003ca33beb2e6cb4003cf63bec25f42d003cf43a28a9dc37003c4339f4aafc39003c99333eacb83b003cbfb8eea9673a003cf2bbaa2d7c2c003cb9309ba9db3b003c76b8c7a2983a003c7a3154a5dd3b003c6cb89baca03a003c133941a12a3a003cd8382ba2533a003c353b26a3e836003c0b3bfe278137003cf93b80a89d2c003ced3b622d1a2e003ceebb312d812e003ce3bbccaaff30003c853bbaaa5ab5003c963b033151b4003c9b3919ae9eb9003ca53938343ab9003cf13bbd2cf22d003c9439c2aea7b9003c2f2d48b3bebb003c92b897b074ba003c67bbd1aecdb5003cbcbbfeaaf533003c9abbc2310d34003c80bb143348b4003ce6b82335c2b9003cb5302a349abb003c2839a034a2b9003ca63b5ca1abb4003c483ba534adb4003c813b8735b322003c103b28310937003cd7385133193a003cde307833ae3b003c04b85b30d43a003cbcbbfeaaf533003c72a05d36563b003cf1b8fa34c739003c3338f836d939003cb73a9936a735003c9abbc2310d34003c722b0a38e33a003c44b84837b439003c5d37c637f139003c343a45370137003c733bc83579a8003c53bb8f357432003c633bdb320cb5003cbd38923142ba003c03348f2ab3bb003c58b69534f2ba003c4cbb0a352cb4003c53bb8f357432003cd33b393281ac003cb2bb6632ee31003c84bb352370b5003c50ba6cb84234003c9db967b916b3003c08b644b235bb003c8ab41dba98b8003c233341b7e0ba003ce12852bb5bb6003cac38b0b408ba003c2a3610ba30b8003c583bb59f4fb6003c563978b9b2b4003c5f3ad5b8c725003c8a3a4936ba36003c2d3a91b7ca36003c8b37e337d939003cd637fdb6093a003ca22c0938e13a003c2b2e47b7143b003c1eb8c436f739003cacb65bb7453a003cb2bb6632ee31003c50ba6cb84234003c5aba04b456b8003c53bb45ab5a36003ce2ba51b52236003c4fba78329bb8003cd2bb15323f2d003c90bbdbad0035003c2abbf69d1b37003c73ba63b27438003c80bb41b33234003cc9ba0d2c3438003cfeb9b6b02a39003ceabb5ba79430003ca5bbffad7534003c3bbb42a2d736003c67bab62eb838003c80bb8db1d034003c9bbb99b4502f003cfabb5cac2028003cfcbb26a3e92a003cc6b8b829663a003cedb8d8b64a39003c97b8b232553a003c00b4fa34553b003ce5b93f34f738003cd0ba2db44337003c1bb4af352a3b003cf8bb362df024003cdabb112e47b1003cf7bbef2c94a9003c90b87538ca38003c5bbb4336d326003cd8bbe83149ac003cdabbb730d6af003c6fb45838563a003cfeb802397737003c2bbb60359b34003cf3b8b9364f39003c8db9e7b27e39003c8c206236553b003cb3207037153b003c66207c35833b003ccdbb01335d27003cd4bb782eb1b1003ce2b5e734053b003c64b9b6339639003c69bafc309d38003c89bb27265a35003ce6bbb2af782e003c5d2044358d3b003cf7baaeb7c32e003c74bb84b5322f003cdebb48b1c2ac003cd9bb05b0bcb0003cbdbb4cae73b3003c78bba99eb8b5003cf8ba8e2fa0b7003c74bb6a311fb5003c29b872b91fb8003c3cb70ebb39b0003cd3b8bdb66ab9003cfdb8a3b4ceb9003cf9b833b120ba003ceeba43ade0b7003cf32896ba87b8003c3ca638bbdeb6003c8ab002b921ba003c5ab60bb820ba003c6db9fbb452b9003c5ebb19ae09b6003c7ebb1eb59630003c41b8b2ba13b0003c88bb49b488b2003cb7b940b847b7003c99b462ba3bb8003c90b5aeb9e5b8003c16a1f8b953b9003c16a1ecb960b9003cf8a01cbb55b7003c16a15cbad9b8003c30bb06b7d099003c8fbab0b4d937003cf4b9e6b57338003cd7b976b9dc25003c1710a2bbc534003c5ea0e9bbb8b0003cb2a0a5bbb5b4003c92b8f6b73739003c18284ab9fe39003c6fb636b6a13a003c81b8f6b4203a003c9eb926b36739003cdf2972b7113b003c66bb6c2cfa35003ce6bb65120631003c8dbb4535c993003cbdbbb533c4ac003cb7bb2934d3a9003cf0bb0baccc2e003c6abbb33578af003ce5b9a7387eb5003cfbba483488b6003ccdbb653089b1003ccdbb653089b1003c24bae33826b2003c40b7063bc6b0003ce7b8653885b8003cd12bf73b66a6003c6cb1e13bea25003c4b9e973bbb34003cc4b11f3ad838003ce4235139ea39003ceab4eb38b839003cab200038a83a003cee20d1391f39003cda20a33bbe34003c6520f23b522f003cb5b7e03a6cb1003c1c1ef33bfbae003c9d17963b14b5003c60b8563a52b4003c8eba5c38a7b1003cf2ba2e37b8b2003cb6b8ec392fb5003c3d9c623b28b6003c7ebb5c3544ae003cb8bae6372fb3003c8ea6df3a17b8003c18bb60375aa1003c4ebb27361a30003c00bb25307137003cd2b8dfad573a003c9fb17bb3a63b003c90a62bb5913b003c9f2946b58b3b003c29badb383db2003c1fa5313bfdb6003c19afe1b2bf3b003cdf2e5fb4a23b003c4c27adb4a23b003c64b19eb61e3b003c422740b6533b003c432168b64a3b003c67b733a4103b003cc9b82db22b3a003c5db865b80539003c0eb2b5b95b39003cd3288ab9a239003ce7b8cdb7f838003cd830c9ba0e38003c93b5b7b41e3b003c90362bb69c3a003c12bb29b56835003c9bbb4fb13034003cec1ee2bbad30003ccf362dbb91af003c37a2f8bb71a5003cacbab4320b38003cbdba7c301a38003c90bbf02af734003cf9bb50a39920003cc5bac1370a33003c04bb6d37da2f003c6fbb83353bb0003c88bb133554af003c75bbbb351928003cd6bb8b2c6fb1003cd0bb8c2c68b2003c99bbe0ad8bb4003cddb90ab5c4b8003cceba16b85ead003cc9b635bb2bac003c56321fbb8eb6003cedbb21af9328003ca0bbb034b326003c9cbb8734362f003cf7b95239579e003cd8b97339f124003c2eba0d39a72b003c46baf338f526003c35ba0a39881c003caab62e3b91b0003c2bb65f3b9da9003ccab8633a50ab003c61b8a13a43af003c52b9f23947ac003c17ba2139dd2d003c86ba9f389225003cf9b93b39caaf003cecb7d13a59b1003cc9a0943b1db5003c779db23b5ab4003c451c9d3be8b4003c9499903b35b5003cfe9aa23bc9b4003c0220c53b8db3003c801ff93b00ad003ca117f83b7f2d003cb8b63e3ba92b003cd3b97a395926003c9bbbba34312d003ca4bb84b4342d003c78b9d3b979a9003c58b580bb30ae003caf9dffbbdd1c003ce09ce4bbe930003c56321fbb8eb6003c37a2f8bb71a5003ccf362dbb91af003c6fa0f3bbf6ae003c98b255bb74b5003c441b69bb01b6003c8cb847bab2b3003c86bb26b51eae003c88bb5d356e25003cd2b97339fc2c003cabb7f43aa12f003c0c9edf3bac31003c123b7eb66633003cb5ac5bbb17b6003c582543bbadb6003cdcb845ba302e003cbdbb95b3432d003c87bb3e35202d003cd1b942391e32003c34b7e73a4b33003c6ba0cd3b0f33003ccdb5a4b9d538003c7031a0bb7333003c4bba0db6c437003cacbb10b16c33003c53bb59b4b834003cf0bbc9aedfab003cc0bbe7b32f16003c47a0f8bbf62a003cde39a8b87535003c4ea0c0bb7632003c11bb56ad59b7003c09bb3ab2f1b6003c9fb884af70ba003cd8b85ab226ba003cdfa1edb1dbbb003ca4a142b4b1bb003c4f37abb3d4ba003cbf38ddb5b5b9003c87294cb64abb003c2e3b4db60fb2003c4ea0c0bb7632003cde39a8b87535003c7e30bb29e2bb003ccb2acda1f5bb003cf7b24a2fb9bb003cb5b897314aba003cb6ba563120b8003cdfb8693311ba003c2bb9673836b8003c4bba8338eab3003caabba53136b3003cd2bb5d31f22f003c9eba5a384230003cdab67f38a4b9003c5ab4e83798ba003caeb6343b972e003cc9b54a3bf4b1003cf4b4f33a1eb6003ca8b4573a47b8003c4fb4743a31b8003c0db6bd39adb8003cec97f23b5b2e003ce722ec3b5cb0003c2025c03bdab3003c6d268d3b43b5003c7e26883b5cb5003c1228253b2cb7003ce5b990364bb8003c222a083934ba003c6cbb4bb20d35003cfc278dba95b8003c99ba2b3154b8003c50bbf8ae3b36003c2faba0b7043b003cfc278dba95b8003c1dabe9b2cc3b003c8d2a153592bb003c53bb5cac5736003caebadf2963b8003c64b982adde39003c502b8c31ddbb003c3cbb13abc136003c7aba4328afb8003c89ab42afef3b003ca82b092df5bb003c20bb79b0eb36003cd8ba122d16b8003cabaa56b4b03b003c422b8d31ddbb003c24bbc4b46635003ccbba833012b8003c00b9c0b7e538003c02b7be34c9ba003cdfba41b79233003c92bbbf2820b5003c7aa417ba2e39003ca5284038c4ba003c9fab3fbaf838003c4ca428ba1939003cc8bb79ac05b3003cc1bb00ac90b3003ce7a586b9c739003cbcbb05ace1b3003ccdbb653089b1003caabbb4298434003cbeba6832fb37003cf4bbb9ab7c2d003c14b99034be39003cb6b454352a3b003c69208d35803b003c50bb50b4d4b4003c12b985b642b9003cceb41ab86fba003ceaa09ab88bba003c40b9bbb3b7b9003cc4b3fbb28fbb003c29a026b4b9bb003cf0b453b842ba003c1cbac7b6cab7003ceabb2ba59e30003c50bb50b4d4b4003c28baee33b338003ca1bb3b22cc34003ccfa022b8d9ba003cceb82035db39003c3bb994b9abb4003cefbaf2b22c37003c67b41fbbcdb5003cd9a06abbfeb5003cefbaf2b22c37003c8db1babb20b2003cd0b7c6bac0b2003c6ba0e0bb8bb1003c1ab148bb1a36003c8eb88cb90e37003c2a9d87bb6835003cceae68b89f3a003c64b7bbb0fe3a003cfc9fffbb50a6003c87b53d33493b003cefbaf2b22c37003c8eb88cb90e37003c50bb50b4d4b4003c46b992b7acb8003cf4bb1bac472d003c48b979b7b3b8003cedbb14b0a528003ccbb827b8dfb8003ca4bb67b4c32e003c072e24b8cdba003cf53468b833ba003c46b992b7acb8003c3a2ab6b7ffba003c863013b580bb003cbebb712ad833003cdbba27336e37003cefb84d35b539003c38b4ca35273b003c67207e35833b003cfcbb042b6b25003cbbba5a35c836003cd0bbc7b2ea25003c1fb81036253a003cd6b09b35643b003c60205a35893b003cf4b38832933b003c7fa82732d83b003ce81f3532d93b003c81b89a31753a003cf5bbb22d45aa003c82ba13360b37003c96bbf7b4952b003c83ba55aaa038003cb6bab9b20438003c25b1d7aed93b003c0ba831acfa3b003c291ea3a9fd3b003c6cb62fb1363b003c4fb9eab1cc39003cdbba9fb0e737003c59ba5fb1ad38003c69b9f9b84d36003c69b9f9b84d36003cdcba9ab34d37003c9bbb2fb07eb4003ca0bbccb44b27003c76ad8abb28b5003c1eb934b7fb38003cb9b858b5e039003c84b2fd31b03b003c3c3635b1403b003cd8b8092e513a003ccbb975367738003c9bbb2fb07eb4003c97b8d8b9e935003c37b8dd28ca3a003c7bb9891ed339003c27bbdcb24636003c0bba03b8bd36003c1ab913b65c39003c2ab773b6623a003c4bb50db6ea3a003c80b1d3b5523b003c44ac31b58c3b003c551b1db5943b003c4cb1e5b7d43a003cacacdfb7f03a003cb41608b8e83a003c7db571b7873a003c3fb8c2b78f39003c4db15fb8913a003ca9ab70b8a33a003cdb137fb89d3a003c9fb41bb8763a003c1ab9c3b57239003c33b08cb87f3a003ccdab7bb89b3a003c19138fb8923a003c28b438b8783a003c75b71db71e3a003c77b03cb8b13a003ce9aa54b8b63a003cf0137eb89e3a003c02b444b8763a003c07b63ab8153a003c3fb1d7b7d93a003c08aa26b8d43a003ca21537b8cc3a003cb1b4bcb7993a003c02b78ab71f3a003c1bb081b9b639003c34a77db9d039003c24906cb9e139003ccdb34bb9ab39003cc9b7adb83139003c84ba9db68236003cd1b949b9e131003c01b712bab6b7003c6b2042b720bb003c9eb069bb8e35003c8cae5cbb0b36003c8a9c52bb7236003c71b535bb4a34003ca2b25ebb4535003c9fad44bb8bb6003cf4ab8bbb38b5003cd3a075bbc7b5003c56ad49bb76b6003c7caf1dbb10b7003c89a8c4b86aba003cd0ab2eb913ba003cfc9fffbb50a6003c672f6ab89aba003c4d2d5ab8adba003c89ba8d324f38003c50bb50b4d4b4003c3c3635b1403b003cdbba9fb0e737003c59ba5fb1ad38003cdbba9fb0e737003c69b9f9b84d36003c69b9f9b84d36003c0839b7a8363a003c37b8dd28ca3a003c0839b7a8363a003c0839b7a8363a003c69b9f9b84d36003c9bbb2fb07eb4003c97b8d8b9e935003c37b8dd28ca3a003ccbb975367738003c37b8dd28ca3a003c97b8d8b9e935003c76ad8abb28b5003c0839b7a8363a003c37b8dd28ca3a003c10bb3aaf4837003cacbb21a667b4003c45b5c3a786bb003cf53920b217b9003cfcba67b14e37003c6aae16b4b13b003cfc3884b11a3a003c93bbd5a915b5003c123b7eb66633003c9c3b62b06c34003c953ae2ac80b8003c4cb31023c9bb003c51a619b2d93b003ce43984b04a39003c1fba21b00b39003cf53bc5ab5b2d003c683afeabc3b8003cf53bc5ab5b2d003c9c3b62b06c34003cf53920b217b9003c60b2c42cd1bb003cd6bbe32a2cb2003ccfad34b4af3b003c49395cb1da39003c24ba64b2de38003cf33bb4a2eb2e003cf33bb4a2eb2e003cd83aa91c23b8003c89b0f99feabb003c89b0f99feabb003cd6bbf2a850b2003c74ab6eb3c43b003c6e39ddb0bf39003c14bac7b3d138003cf73b42a86c2d003cf73b42a86c2d003cd03a37212fb8003c631e89abfcbb003c92bbaeb09ab4003c631e89abfcbb003cada993a8fa3b003cca3922a87d39003c90babc249038003cff3b671b2824003cff3b671b2824003c8b3b4f2c33b5003c90bbcd2a25b5003cc731ec2fcbbb003c70a9fda8fc3b003c6f390facd839003c77ba28a8b238003ce93b03aa7a30003ce93b03aa7a30003c583b47244bb6003cc731ec2fcbbb003c631e89abfcbb003cffa50424f6bb003ca9bba9267cb4003cffa50424f6bb003c932bd529f13b003c563a24a8d038003ce9b966285d39003ce83bcdaecd2a003ce83bcdaecd2a003cd43a0ea91ab8003cddb290b2a3bb003cb9bbd7b068b2003c2b3198348d3b003c253af333b038003c51b9df347539003cd33b1f32872c003cd33b1f32872c003c9a3a7c305fb8003c03b327aec4bb003cbdbb1730f7b2003c3e2d5c38ac3a003cbb3942373d38003c7fb9f436a838003c8b3b4a35c326003c8b3b4a35c326003cb9395b3346b9003c28b2a432acbb003c80bb59332db4003cff316b387f3a003c053a0a37d537003c71b9d8375b38003cd33ba0320798003c133aecad21b9003c79bb8ba8acb5003c52bac7385eb0003ce2af47b0ddbb003c6629bf3a4838003c9936a43a0036003c59b68d3aa136003ca539a739d12a003c2ab4d628b7bb003ce2af47b0ddbb003c133aecad21b9003cd33ba0320798003ca539a739d12a003c7d3a13342cb8003ce2af47b0ddbb003c133aecad21b9003c56321fbb8eb6003cddb90ab5c4b8003c56321fbb8eb6003cf53920b217b9003cdfb8693311ba003c53aa21b7203b003c383875b6f239003c95b854b6bb39003c1ebb67b4cf35003cd3bb89b28da6003c3c3b00b59834003c35bbc0b07bb6003c5ab888ada5ba003ca2310fb0c7bb003cf5392ab302b9003c6c3ba8b467b3003c3c3b00b59834003c993b2fb47c31003c983b6eb082b4003ce93a25abfeb7003c9834bb29a5bb003cccb89ea463ba003c4fbbabac60b6003cf3bbd1ac0dad003c2bbb0cb4d435003c5db77cb7093a003c3f2b31b8cb3a003c9b3881b6a639003c3c3b00b59834003c993b2fb47c31003c372cd1b85d3a003c563836b83c39003cceb666b8bf39003c0bbb1bb59b35003ceabb53a881b0003cb43b0fb4d42d003c21ab4db6573b003cce38beb5b639003c37b8c4b5283a003cf5ba8cb3ec36003cf1bb3c2927af003cda3b0cb1d52e003c09bb61311eb7003cedba2b2fcbb7003c72b9f030bab9003c7d2d7931dabb003cb63a6a2857b8003cad3b66ab63b4003cb43b0fb4d42d003cda3b0cb1d52e003cc53b62a978b3003c973a672a84b8003c81227833c7bb003cfcb94e3210b9003cf23ba2accf2d003ca83be0ac73b4003c933adeac83b8003c1428f99dfebb003cd4b9092a76b9003cf4ba3e2ec1b7003cf6bbdf2a03ad003cfeba3aa9bc37003c22b81aafca3a003cf3a41db1e53b003cf9387fb02a3a003cf23ba2accf2d003c07afbdaaf03b003c2638ecaad33a003cdfb27125ce3b003c32383998cf3a003c9bb83e9d893a003cedb6d5ac2f3b003c09bb2caa9137003c7dba36aca638003cf3bba4ad6aac003cf8bb7dac19aa003cec3b30af412d003cea3b15ac2930003c1fbb4eae1db7003c96ba1cad7eb8003cb6b9acad8eb9003cecb80faf3eba003cd42ce2aeeebb003c832f71b2c7bb003c793a2dada7b8003c563adbb1a7b8003c793bbbac91b5003c413b08b140b6003cea3b15ac2930003cec3b30af412d003ce43b6f2f6c2f003c853b282d4cb5003c8c3a9d2697b8003c002d0aa9f8bb003cecb90fa560b9003c70bbe322dfb5003cfebb89286321003c37bb072dc936003ca9b912308e39003cd2b45331823b003c4c381531a03a003ce43b6f2f6c2f003ca4b1162ad63b003c4238ad2cba3a003c32b170add73b003c7e383aaf8a3a003c03b9d9ac2f3a003c00b91229333a003c2fbb24abf336003c28bb412c0037003cf7bb0bab6c2c003cf5bbb32df128003ce23b9b2e4f30003ce43b20a9fc30003c79bbc9ac8eb5003c75bb0a2e90b5003c76b9d5b0b3b9003c46b9d32df8b9003caa2043afeabb003c9431c82dd8bb003c6b393798dab9003ccc396e2c7bb9003c413b2425afb6003c2f3bcb2de0b6003ce43b20a9fc30003ce23b9b2e4f30003cc83b43ab3033003c5f3b34aa26b6003c8138e2ab94ba003c83ad1fb1d9bb003c9db9a1aca8b9003cacbb4fa081b4003cf0bb2e29502f003c06bbda2d8137003cc1b81730583a003c69b0d62fdb3b003c2138c42ad53a003cc83b43ab3033003cfc249d34a83b003c0139b533ef39003c27b859354b3a003cbbba8f359f36003c90bb1635562c003c9c3b94311234003c8baa6536523b003c4d382036013a003c49b725366c3a003c36ba19360338003c86bb6e352825003c493b8c352133003c77bb063389b4003c60bbb934fcb3003c4ab9503560b9003c1fb1083578bb003cc6383a369ab9003c6a3b5a3422b4003c9c3b94311234003c493b8c352133003c333bc635ccb3003c1836b635d2ba003c32b47f2fa9bb003cd8b805331eba003caf3b7f320e32003c783b5d2c9cb5003cc638e8390135003c163a1e39ccae003cfa350fb058bb003c8f361e254bbb003c21b32eb629bb003c05b3f03910b9003cb2b8bab32eba003c6bb85536ddb9003c65bb3c2016b6003cbeb930390bb4003cdfbba03106a8003c9bb9a339042f003c8aba2135a637003c0fb83b3ae635003c78b74536573a003c8ab4593a4d38003c2fac6236513b003c45a94e3ae838003c2b388b353d3a003c5f34253aa138003caf3b7f320e32003cc638e8390135003cf53920b217b9003c123b7eb66633003c9c3b62b06c34003cb9395b3346b9003cd33ba0320798003c52bac7385eb0003c59b68d3aa136003c53a4ff3bca21003c2ab4d628b7bb003ca539a739d12a003c7d3a13342cb8003c6629bf3a4838003c9936a43a0036003c6bb85536ddb9003c80a8ef3bc52f003c05b3f03910b9003cbeb930390bb4003c163a1e39ccae003c8f361e254bbb003c30a2f43bae2e003c9bb9a339042f003cc638e8390135003c5f34253aa138003c45a94e3ae838003c8ab4593a4d38003c0fb83b3ae635003c8db9e7b27e39003cf3b8b9364f39003cf1b3c5b0a53b003ca8bb97343c29003c8538a2b7dd38003ccdbafab7a62c003cf3bbfcad1b2b003ca5ba1cb82f30003ca731edb9ce38003c2f2fc3b8573a003c90b8a2298f3a003c082bd6b96839003ccdbb653089b1003c2abb96b6cfb0003c17302cba3d38003caabb28b46529003ce13814b8ea37003c86b4dabaa52c003c7a357bba6e33003c3dbb53b5e731003cce31f0ba1b31003c86b4dabaa52c003c6d39b1b73637003cb4b2e1ba7631003c9f38d8397593003c8b308aba8b35003ca9bb149d2234003c0434d7bacf30003cd62680ba0c36003c04a8f7b9f337003c80ad85bada35003cde39abb61c37003c31bb909b4d36003c4cb77f34fb39003c0aade935833a003ce736c92e693a003cf1b3c5b0a53b003cf3b8b9364f39003ce4235139ea39003c26399e38ef37003cc83ad8373d2a003c8538a2b7dd38003cd12bf73b66a6003c7337a73a6bb4003ce7b8653885b8003c6db5283953b9003ccdbb653089b1003c2abb96b6cfb0003c3935cd3ac2b2003c91b5683a2ab5003caabb28b46529003cca3886392e32003ce13814b8ea37003c6033f73a002a003ce2b4d03a78ac003c3dbb53b5e731003c9f38d8397593003c3e34d73a0ab0003c0ab3e43ae9b0003ca9bb149d2234003cfd33c43a3fb2003c8e3925391a26003c6d39b1b73637003c07b59a3abeb2003c31bb909b4d36003c0aade935833a003c4cb77f34fb39003cde39abb61c37003ce736c92e693a003cf3bbfcad1b2b003c90b8a2298f3a003c8db9e7b27e39003ca5ba1cb82f30003cf3bbfcad1b2b003cde39abb61c37003c8e3925391a26003ce736c92e693a003c1c3afcb84cb1003c3839ceb60439003cfa11ffbba895003c4d2faeba4cb8003c13baf4b84932003c29b871ba7db4003cc4a918b7293b003cc9b82fb74e39003c2a3610ba30b8003cd1a1febb27a2003ce12852bb5bb6003c563978b9b2b4003c9db967b916b3003c8ab41dba98b8003c1722ffbb9f21003c5f3ad5b8c725003c50ba6cb84234003cacb65bb7453a003c2b2e47b7143b003cd637fdb6093a003c2d3a91b7ca36003c98393ab36d39003c2034f0b09c3b003c11398d363f39003cb13b5a346b27003c84b879b7f038003cbf3a1cb8942c003cf13bf5ae7929003c993a39b83f30003cc3b1d4b91439003c1eafbeb85d3a003ca7388128803a003c5cabd5b96839003ccc3bcc2ff9b1003c193bccb630b1003c41b02fba2838003ca23b62b46426003ce4b802b80438003c5334e3ba622c003ca0b571ba8d33003c373b8cb58631003c2ab2eaba2f31003c5334e3ba622c003c70b98cb75337003c5932e8ba4d31003c88b8ea394c20003ccdb087ba8a35003caf3b35a5e133003c32b4d0bada30003c65a882ba0236003cb926fcb9e737003cff2c8abaca35003ce0b984b63c37003c3a3bd4a41e36003c84375534f139003c0f2ed635843a003cb6b6fd2e753a003c2034f0b09c3b003c321c3d39f039003c11398d363f39003c06b9ac380a38003cb7ba0c38af2a003c84b879b7f038003ce8a9f63b75a5003c4db7b43a42b4003cea38513895b8003c72351b3962b9003ccc3bcc2ff9b1003c193bccb630b1003c10b5d83ac2b3003cb135503ae5b5003ca23b62b46426003cafb899397032003ce4b802b80438003ceeb2fe3a5d2a003c1335c63ab9ac003c373b8cb58631003c88b8ea394c20003c0fb4e03abcaf003c6633de3af0b0003caf3b35a5e133003ca7b3cd3a0fb2003c79b93b397528003c70b98cb75337003c2f35913acab2003c3a3bd4a41e36003c0f2ed635843a003c84375534f139003ce0b984b63c37003cb6b6fd2e753a003cf13bf5ae7929003c98393ab36d39003ca7388128803a003c993a39b83f30003cf13bf5ae7929003ce0b984b63c37003cb6b6fd2e753a003c79b93b397528003cd039b834b938003c5e388f33e639003cbb368b34993a003c383ac5344038003c07233f365c3b003cb9203a37233b003c9d375036aa39003c74391b344539003cde252039233a003cdb3310393439003cd12d7f38ec39003c58248a3b5635003c391c953bea94003ce4b1743b4c31003ce8b6343bce29003c1633c23b54ae003c0538d43a47b0003c8b36893af4b5003c0b3a3339ebac003c1421fc3b19ab003c9d3a5a3872b0003cc2349f3b26ab003cdc3b242d51b1003c4b3a3f3805b5003cc3368f3a2cb6003cc03bdf32afaf003c193bae363ab2003c3538f2399bb6003cc63b79337127003c7e20fd3bc829003c17a0933b21b5003c6ca4343bf4b6003c9d3aff3720b4003c72391639cfb5003c93a5e53a0cb8003cd539ab38b5b5003c803af737d6b4003c16a4ce3a33b8003c7538d936fb38003c93349d37d039003c02167d368b3a003c79394d37d837003cb4243c390b3a003c3123e4396839003c2735f938c038003c84384f37f438003c73235b3b4836003cc22a173a3838003c022515395639003c12ac803b31ac003cc3b38a3b81a8003c46b6233b7da7003c3c32bc3be3b0003cb537c43a29b3003c9634a93a6cb6003cca39303972b3003c742be43bd6b0003c6b3a5c3898b3003ce330df3b21ac003c903b4d2ef3b4003c69392239c4b5003cf4324c3b8bb5003cc83a7c3700b4003c653a69389eb3003c2135ce3aaab6003c763a7938f6b1003c93b1d73b152e003c7425a83b99b4003c95b1203bb4b6003cc939173948b4003c543950396ab5003cc7a5133b75b7003c2139a339d8b4003c3139b93921b4003ce6a4233b35b7003ce6a4233b35b7003cb7b90f35ca38003c63b60a36ae3a003c2eb8de34f839003c1fba1b355438003c07233f365c3b003cb9203a37233b003c33b74837a439003c57b95c345a39003cde252039233a003ca6b250392c39003cdbaac138d839003c58248a3b5635003c5e1ea33b08a6003c8432793b9d30003c2537273b2525003cb9b2c93bd8ad003ce1b7e43addaf003c6bb6963aefb5003cfab94b39f8ab003c7819fc3b0bab003c9eba7338ceac003c96b4a83b5fa8003cf1bb0f2e98ac003c73ba573882b3003c25b79b3a7fb5003cc8bb52331da5003c2dbbe3362dae003c75b8023aa7b5003cabbbec336c30003c7e20fd3bc829003c17a0933b21b5003c6ca4343bf4b6003cbfba173831b1003ca8b92b3992b4003c93a5e53a0cb8003c04bac33883b4003cacba1338bfb2003c16a4ce3a33b8003c52b88c37ee38003c58279f375f3a003c30b45a389f39003c54b923389d37003cb4243c390b3a003c3123e4396839003ccdb44e399738003c57b8fa37f538003c73235b3b4836003c21a6363a2238003cc62151393339003c8a2c863b72ad003c0534603bf318003c6c36463bc2ae003cd4b1c23bd6b0003c8bb7d33afcb2003c80b4b03a69b6003cbcb9473927b3003cdea9e63bccb0003c67ba7538e1b2003c7cb0e73b15ac003c9cbb382f91b4003c75b9373948b5003cfab2533b66b5003cd1baaf379eb2003c6dba823828b2003c4eb5d73a5cb6003c79ba913863b0003c2432d13bae2d003cc3a4a93b96b4003c3a311b3bdcb6003c3abac43843b2003c86b964392cb4003cc7a5133b75b7003cd8b911390fb4003c8fba4338a8b2003ce6a4233b35b7003ce6a4233b35b7003c943bceaed134003c793ac7b26138003c353b09a5ee36003c7f3bbab30534003cd83a712a1f38003c093a12b11739003c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000943bceaed134003c793ac7b26138003c353b09a5ee36003c7f3bbab30534003cd83a712a1f38003c093a12b11739003cec3bb3a93230003ca83bf6ae4734003c443bb7a6aa36003c783af02da438003c813b06b2a334003c943bd7b49b2e003cf83b64ad3025003cfd3bb1a75d29003cdb38a428573a003cef38fdb63c39003cb2386f32463a003c4234ef344e3b003cfd391534e438003cd33a63b41a37003c5f349c35223b003cfb3b2e2c461f003cd93b092da9b1003cf93bcb2b24ab003cb1386a38b838003c683b0a36d522003cdc3b653114ad003cdb3b34304eb0003cba344038503a003c1e39ec385737003c3d3b2b356a34003c11398e363e39003c963936b36e39003c72206836543b003ca4207537133b003c44208235823b003cd43b84320624003cd33b702d13b2003c2236d434fb3a003c7d3965338439003c7d3a98308938003c923bbe202b35003ce43b5bb0b82d003c39204a358c3b003ce93ae6b7232e003c6b3bc1b5822e003cd63bcbb180ad003cd03b89b01cb1003cb43b51afd1b3003c6f3ba8a5e6b5003cee3aa22eceb7003c713bec3053b5003c053885b92ab8003cfb361dbb59b0003cb438e9b677b9003ce138d1b4dcb9003ce0388fb12fba003cdd3a30ae08b8003c89ab96ba83b8003ca91c3abbd9b6003ccf2f08b923ba003c113619b829ba003c4d3928b568b9003c4c3b11af4fb6003c803b5cb5bd2d003c2238c4ba3cb0003c7a3b88b4e2b2003c9a3959b867b7003c4a346dba40b8003c4235bbb9ebb8003c38a1fab951b9003c37a1eeb95db9003c3ba11dbb4fb7003c42a15ebad6b8003c0aa1a6bbafb4003cc5a0e9bbadb0003ca990a5bbb234003cc1398db954a5003c1e3b3eb706ab003cf23815b8c638003c433a22b6d637003cc93aedb4e336003ce72753b9f639003cf63b11ad852a003c6f3b77356bb0003cef398d38abb5003cf93a0c34b5b6003ccc3bb92ff6b1003ccc3bb92ff6b1003cb93bd63368ad003cf83bbda3512d003cb73b3f3350b0003c2d3aca38b8b2003c7137f63afeb0003ceb384e3896b8003ccba9f63bdaa5003cf031d83bca25003c73268e3bc934003c6432da39f138003c551c3f39ee39003c3635d738b139003ca4200338a73a003c1021d3391d39003c3121a43bb934003ccf20f23b4a2f003cda37d03ad1b1003c171ff33becae003cf519973b0cb5003c6538443aa0b4003c8f3a4138bcb2003ce43afc3621b4003ca538dd39a7b5003c399a663b13b6003c693b263539b2003c8e3b0b35c8ad003cb63bd22a2534003c353a9db3ab38003c273925b58c39003cc03760b63a3a003cbf2983b70d3b003c883aba370fb5003c9c2f3bb57f3b003c5c348eb3733b003c6739a6aed639003c832954b5883b003c553b652f1736003c6b3be9355f2a003cc2320eb29f3b003cbda415b4b33b003c1c27b2b4a13b003caf3483b5113b003c3f2c8eb56b3b003cf22068b64a3b003c6138ee1da03a003ca43914b08339003cdd38a6b70839003c1e3415b9c639003cca288ab9a239003c603956b60139003ca5aef7b94339003c1337ddb0123b003c1fb542b35b3b003c4b3ba4b4a634003cc63bd4b0d131003ccc1ee2bbac30003c2cb71dbb532b003c47a2f8bb74a5003c043bb032a936003c293bd1306436003cd33b7d2a1531003cd53b9aa93cb1003cef3a8f374e30003c173b3537b724003c443b2e35b6b3003c663bc534dab2003c703b992691b5003cb23b3821efb3003c4a3b73b0ecb5003c58397eb6eeb8003caf3a49b8aaae003c7f364ebb2fa8003c67b365bba4b4003ce83b21b0c8a6003ca43b5f340ca8003ca43b56346d2e003c723b7335c4ac003c083a3e39eba3003ce93960395225003c453af638321f003c353a0a39b227003c953a8638adaa003c193b2c37deae003c003ac63889b4003cd6a4363be8b6003c44a6e53a0cb8003ced39253922b2003c5739df39ccaf003c4ba0963b0eb5003c9b9cb43b50b4003cd738513a20ae003c593add3814a5003c453af5381ca7003c6b38913a8eb0003c0438c43abcb1003cd936233b8ab0003c5e36553bf6a7003c2e20c53b8db3003cd21ff93bffac003c8699a23bc5b4003c4598903b33b5003cb51c9d3be8b4003cc236343b5e2e003cd5396a39182e003c973b8e342030003ca23bafb4ce29003c6139e2b910ad003c143587bb6aaf003cd09dffbbd91c003cef9ce4bbe930003c67b365bba4b4003c47a2f8bb74a5003c2cb71dbb532b003c86a0f3bbf7ae003cb23254bb73b5003caa1a69bb01b6003c8f3842baedb3003c893b38b558ac003c7d3b33352230003cc03963397231003c8537ea3ab431003cd69ddf3bac31003c4e18f83b802d003c2c2f3fbb80b6003c442543bbadb6003ccb3861ba9429003cac3b0eb4cd2f003ca03917390d35003cd236d63aba34003c4ea0cd3b1033003c08358bbaa537003cf6b1d3bb862c003cfc39a9b74e37003c803bd4b25d34003c273b8bb58534003cf53b42aea09c003cc03bdab32520003c57a0f8bbf42a003c0bbac5b8ee33003c5fa0c0bb7632003c593bec9444b6003c4b3bd7ac71b6003c2739df2613ba003c4c39c2a1fab9003cc72d4e2cf0bb003c6c2d51a7f5bb003c0db666ab61bb003c4bb82ab37aba003c7e294cb64abb003c15bbffb542b4003c5fa0c0bb7632003c0bbac5b8ee33003c60a8ef2feabb003cc02ac9a1f5bb003cf934cf3355bb003c4b3979348cb9003c123b8b3370b6003ccb3b663293ae003cae3b6e30c533003c6d3beb34a632003c9039d53364b9003c763a2b386334003c733aa63899ae003c9239bb3875b6003c0838cf38f1b8003c7c361e3b8a32003c2236583bddad003ca9350f3be7b4003c52358c3a76b7003cbb35613abfb7003cd6353c381cba003c3b37bc393db8003c3897f23b5c2e003cef22ec3b5cb0003c2125c03bdab3003c6b268d3b43b5003c7c26883b5cb5003c0f28253b2cb7003c192a083934ba003c603a913613b7003c0d3b75b2d536003ce4278dba95b8003c043b6132fcb6003ce83a88acfb37003c24aba0b7043b003ce4278dba95b8003c12abe8b2cc3b003c822a153593bb003ce53a26a80b38003c253b272d12b7003ca838c7ab7c3a003c462b8931ddbb003cc83a2da53d38003cfc3a402cb7b7003c7dab3bafef3b003c9b2b032df6bb003cb23a1bae4e38003c423baf2f72b6003c90aa53b4b03b003c332b8831ddbb003ce43ad3b31c37003c283b353271b6003c983829b77b39003c2738333552ba003ccd3a6cb67135003ccb3b1f2e81b2003ce1a315ba3039003c6c283e38c6ba003c10283cba0039003c88a326ba1b39003cf53b53a175ae003cf13be09a9aaf003c6ca584b9c939003cee3bd09c34b0003ccc3bb92ff6b1003cb23b89275434003cd13afe31d037003cf43be2acb82c003c2f396a34ad39003cf9344535213b003c482093357f3b003c3f3b8eb400b5003cf438b3b650b9003c843426b874ba003ceca09cb889ba003c26390db4c6b9003c493326b394bb003cf79f2cb4b9bb003ca6345fb848ba003c013afcb6edb7003cec3b9ba83c30003c3f3b8eb400b5003c3f3a8f339f38003ca83bce999d34003cc8a025b8d7ba003ceb38fc34cb39003c1d39abb9c6b4003cf33a60b30337003c1a3429bbd4b5003c26a16bbbf8b5003cf33a60b30337003cfa30c0bb24b2003c8d37d6bae5b2003ccfa0e1bb7fb1003cc7304cbb1936003c82389db9f636003c389e86bb6d35003ce02e69b89e3a003c8537eeb0f33a003c6fa0ffbbeaa5003cc33519333f3b003cf33a60b30337003c82389db9f636003c2839c1b7bbb8003c3f3b8eb400b5003cf43b21ad832c003c2a39a8b7c2b8003cea3b97b04626003caa383cb8ecb8003c9e3ba6b40d2e003c39af23b8c9ba003c40b55fb829ba003c2839c1b7bbb8003c4aacb7b7fcba003c0db10fb57bbb003cc63b7b287833003ced3abb324137003c0b392835a539003c7c34be351f3b003c45208435823b003cfe3bf4289c20003cd03a25359c36003cca3b48b3f421003c3f38f335173a003c603196355f3b003c3d206035883b003c363472328c3b003c6a2a2e32d63b003c7c1f4232d83b003c9b385831673a003cf63ba92cd4ab003c993ae035e036003c8d3b36b52e2a003c903ae9ab8c38003cbb3a22b3df37003c7831eaaed53b003c742922acf93b003c831d70a9fe3b003c8e3659b12c3b003c5b3939b2bc39003ce33a0bb1bd37003c613ac1b19a38003c5e390eb93036003c5e390eb93036003cdf3a03b42437003c8f3bb0b0adb4003c973b0bb57724003c3c2c8ebb26b5003c1e395ab7ed38003c803ad1b65d36003cc03961b9a131003cb73621bac7b7003cdaa647b71fbb003c1e393ab64d39003c043a1bb89b36003c2a3b4eb31b36003cef387b2d423a003ce63949366438003c8f3bb0b0adb4003c1ab6f7b04a3b003cfc32ed31aa3b003c4d38dc27bd3a003cc0387bb5d239003c8d397d9bc239003c37378cb6583a003c5d351eb6e33a003cab31d9b54f3b003ca92c30b58b3b003c9a1917b5953b003c6031ebb7d13a003cd62cdeb7f03a003c901106b8ea3a003c863582b7803a003c3f38e1b78339003c563162b88e3a003ccc2b6fb8a33a003ccd817db89f3a003ca53422b8713a003c1e39e9b56339003c39308db87d3a003cec2b7ab89c3a003c0d888db8943a003c2d343eb8733a003c7d3737b7143a003c84303eb8b03a003c172b53b8b73a003c1b817bb8a03a003c06344ab8713a003c093644b80d3a003c5331ddb7d63a003c482a25b8d43a003ca70e34b8ce3a003cb934cab7933a003c0837a2b7163a003c063083b9b539003c9e267cb9d139003c4d9669b9e339003cbb3351b9a739003cc237bbb82739003c46306dbb8d35003ce32d5ebb0c36003c9b9d50bb7836003c483264bb4135003c423540bb4034003c5d2c48bb89b6003c7f298ebb35b5003c22a176bbc1b5003c142c4dbb74b6003c382e22bb10b7003c1e24c8b869ba003c4b2932b912ba003c6fa0ffbbeaa5003c4eb069b896ba003c83ae5ab8a9ba003c3f3b8eb400b5003c9d3a27323a38003c1ab6f7b04a3b003c613ac1b19a38003ce33a0bb1bd37003ce33a0bb1bd37003c5e390eb93036003c5e390eb93036003cf6b889a6453a003c4d38dc27bd3a003cf6b889a6453a003cf6b889a6453a003c5e390eb93036003c8f3bb0b0adb4003c8838e9b9d235003c8838e9b9d235003ce63949366438003c4d38dc27bd3a003c4d38dc27bd3a003c3c2c8ebb26b5003c8838e9b9d235003c4d38dc27bd3a003cf6b889a6453a003c6a3b16ace835003c6a3b2caea5b5003c003430b194bb003c5aba03b456b8003c553b92af1a36003c8732f1adcb3b003c49b846a5c03a003c3d3b26b078b6003ce2ba51b52136003c53bb44ab5a36003c06bb82b046b7003c0930ebb0d4bb003c3a30eca5ed3b003c46b93d9a033a003ca23aeda97438003cd6bb7ca26732003ce5ba50b0cbb7003cd6bb7ca26732003c53bb44ab5a36003c5aba03b456b8003cc62d37aeedbb003c9e3b2ba2deb4003c383264aece3b003c9cb810a5883a003ca03aa8af6038003ccebbe828e832003ccebbe828e832003c43bbf1aaa3b6003ce927b0b1ddbb003ce927b0b1ddbb003c9a3ba5aeafb4003c3d314aacdf3b003cc4b83d9e6c3a003c8e3a38b16438003cd7bb75234a32003cd7bb75234a32003c3dbb5eaac2b6003c92af36b3bcbb003c3f3b2ab3bdb5003c92af36b3bcbb003c3d310730d23b003c0cb96f2e263a003c0e3b7e2d6837003ceebb0e29d92f003ceebb0e29d92f003cc7bb822951b3003c3c3b3ba8cdb6003cabb4e8a6a3bb003c6625292cee3b003c70b98529c939003c933aa4247838003cd9bb9f1b3531003cd9bb9f1b3531003c6dbb799cb1b5003cabb4e8a6a3bb003c92af36b3bcbb003c57ad3daee2bb003c7c3b16a95eb5003c57ad3daee2bb003c0ea8392df43b003c29ba1da01339003c453a212bee38003ce9bbd9ad562d003ce9bbd9ad562d003c3abb61ac8bb6003c902922b4aabb003c8b3bd4b095b4003caeadb7349c3b003ce1b90b340739003cb3392d35fa38003cc5bbb131d930003cc5bbb131d930003c14bb352f1cb7003c8e2d17b0dcbb003c863b8330e1b4003c3ea66a38aa3a003c6cb92737aa38003cca393f372a38003c89bb0c35cc2e003c89bb0c35cc2e003c4fba76329bb8003cee2cee31cebb003c3b3bb83395b5003c36b075388e3a003cbeb9e9365d38003cb3391038bd37003cd2bb15323e2d003c78ba87af90b8003c323b33a6f2b6003c1c3afcb84ab1003cce2204b1dfbb003cc2a917b7293b003cc9b82eb74e39003c3839cdb60439003c13baf4b84b32003c4e2faeba4bb8003cce2204b1dfbb003c78ba87af90b8003cd2bb15323e2d003c13baf4b84b32003c29b871ba7cb4003cce2204b1dfbb003c78ba87af90b8003ce2ba51b52136003c67b365bba4b4003c58397eb6eeb8003c5aba03b456b8003c67b365bba4b4003c9039d53364b9003ca09e19b8bc3a003c95b892b68c39003c3638eab76e39003cec3a6cb5d235003cd43b83b26918003c64bb6fb40834003c633b90afb8b5003cc038daa456ba003c82af50acd1bb003cb0b9b3b247b9003c5fbb97b406b4003c64bb6fb40834003cb7bb19b2d931003c89bb8cb197b4003cc0ba27b025b8003ca5b31daaa2bb003c1a3907aeffb9003c693b84b158b5003cf23b62aff8a3003cf93a48b22937003c9d365bb5b83a003ceeae7cb56b3b003cf2b825b4ef39003c64bb6fb40834003cb7bb19b2d931003c8eaf6bb6443b003cafb88fb5db39003c093619b6c03a003cd53a44b41537003cf03bd7ad5fad003ccbbb6ab2912e003c5e9b36b7ea3a003c29b973b54639003c9f3751b61d3a003cb83a2cb47337003cfb3bb2254eaa003ceabb8fafc02c003c3e3be4300fb6003c1a3b3da65bb7003cb43926a89ab9003c59a94fabfabb003c87ba6eac97b8003c99bb06aec1b4003ccbbb6ab2912e003ceabb8fafc02c003caebbc1a964b4003c5eba18a4d5b8003ccd28b12cf9bb003c423a0a2ee1b8003cf9bb2eac3323003c7dbb6da38eb5003c3fba2d29ebb8003c0f29b332b5bb003c353a6732b8b8003c353b68320ab6003cfb3b8f2b5121003cb43ad3b02738003c4b37b0b4a23a003c5baacbb5543b003c60b92ab46639003cf9bb2eac3323003c8b2828b58c3b003ca4b870b41a3a003c8330f9b3a83b003cb1b867b3333a003c1b388ab3993a003cd6352ab5f93a003cbc3aedb10c38003c1f3a64b3cc38003cfa3bb6ac8ba3003cfb3b03acb421003cefbbcaaf42a7003cf6bbb9add927003c613b192627b6003ceb3ad02cf0b7003c203ac32e12b9003c65390b2fd6b9003cfc16b631dfbb003c2ba9492df6bb003c17ba092e21b9003cf2b90d9c5ab9003c3bbb9928ceb6003cfaba28a8cdb7003cf6bbb9add927003cefbbcaaf42a7003cf2bbac2d7d2c003c4ebbb731dab5003c2eba3a32d5b8003cedbb332d822e003cf7ba1f3237b7003ce3bbcaaaff30003c38bb5e21d6b6003c64b91a3488b9003c59b96e94e9b9003c9daeab356cbb003c772544a5f1bb003c3e96d933c1bb003c503a4631bab8003ca33bea2e6cb4003cf63be325f32d003cf43a2fa9dc37003c4339fcaafc39003c993342acb83b003cbeb8f2a9673a003cf2bbac2d7d2c003cb930a4a9db3b003c76b8d9a2983a003c7b3165a5dd3b003c6cb89daca03a003c133962a12a3a003cd8384da2533a003c353b40a3e836003c0b3bf0278137003cf93b85a89d2c003ced3b602d1a2e003cedbb332d822e003ce3bbcaaaff30003c853bbbaa5ab5003c963b033151b4003c9b3917ae9eb9003ca53938343ab9003cf13bbb2cf22d003c9439c1aea7b9003c2e2d46b3bebb003c92b894b074ba003c67bbceaeccb5003cbcbbfcaaf533003c9abbc2310d34003c80bb153348b4003ce6b82435c2b9003cb5302a349abb003c2839a134a2b9003ca63b61a1abb4003c483ba534adb4003c813b8735b922003c113b26310937003cd7384f33193a003cdf307633ae3b003c04b85a30d43a003cbcbbfcaaf533003c68a05c36573b003cf0b8fa34c739003c3338f736d939003cb73a9836a735003c9abbc2310d34003c752b0a38e33a003c44b84837b439003c5e37c537f139003c343a44370137003c733bc83578a8003c53bb8f357532003c633bda320cb5003cbd38933142ba003c0334952ab3bb003c58b69634f1ba003c4cbb0b352cb4003c53bb8f357532003cd33b383281ac003cb2bb6732ef31003c84bb4d2370b5003c50ba6cb84134003c9db966b917b3003c08b642b235bb003c8ab41dba99b8003c223340b7e0ba003cdd2852bb5cb6003cac38afb409ba003c293610ba30b8003c583bb79f4fb6003c563978b9b3b4003c5f3ad5b8bb25003c8a3a4836ba36003c2d3a91b7ca36003c8b37e237d939003cd637feb6083a003ca42c0938e23a003c2a2e48b7143b003c1eb8c336f739003cacb65bb7453a003cb2bb6732ef31003c50ba6cb84134003c5aba03b456b8003c53bb44ab5a36003ce2ba51b52136003c4fba76329bb8003cd2bb15323e2d003c90bbc6adfe34003c2bbb739c1937003c74ba56b27438003c81bb37b33134003cc9ba262c3338003cffb9a8b02939003ceabb14a78f30003ca5bbeaad7434003c3bbb83a1d536003c67bad12eb738003c81bb83b1cf34003c9cbb95b44e2f003cfabb4dac1028003cfcbba8a2d62a003cc7b8f229653a003cefb8d2b64b39003c98b8c132533a003c01b40135543b003ce5b94634f638003cd1ba27b44237003c1cb4b535293b003cf8bb452dc124003cdabb1b2e4db1003cf7bbfc2caca9003c90b87838c838003c5abb47368726003cd7bbee3158ac003cd9bbbd30e3af003c6fb45b38543a003cfdb805397237003c2bbb65359634003cf3b8bf364c39003c8eb9d9b27e39003c72206836543b003ca4207537133b003c44208235823b003cccbb08332027003cd4bb822eb7b1003ce3b5ee34043b003c64b9c4339439003c6aba09319c38003c89bb7f265835003ce6bba2af722e003c39204a358c3b003cf8baaab7c72e003c75bb80b5312f003cdebb42b1c7ac003cd9bb00b0c0b0003cbdbb44ae76b3003c78bb619ebab5003cf7ba912fa3b7003c74bb6d3122b5003c29b873b91eb8003c3fb70ebb30b0003cd3b8c0b669b9003cfdb8a6b4ceb9003cf9b838b120ba003ceeba41ade2b7003ce72898ba84b8003c5fa63abbd9b6003c8bb004b920ba003c5ab60cb81fba003c6cb9fbb453b9003c5ebb11ae0bb6003c7ebb1db58230003c42b8b1ba0bb0003c88bb47b489b2003cb7b940b845b7003c9bb463ba39b8003c91b5afb9e3b8003c38a1fab951b9003c37a1eeb95db9003c3ba11dbb4fb7003c42a15ebad6b8003c30bb02b72d9e003c91bab5b4d237003cf5b9f0b56e38003cd8b975b9b824003ca990a5bbb234003cc5a0e9bbadb0003c0aa1a6bbafb4003c94b802b83039003ce72753b9f639003c72b645b69d3a003c83b807b51b3a003ca0b942b36439003cbf2983b70d3b003c66bb562cfa35003ce6bb60130131003c8cbb4835680b003cbdbbc033b8ac003cb6bb2d34d7a9003cf0bb07acbb2e003c69bbb7357faf003ce3b9a73883b5003cfaba49348cb6003cccbb6a308fb1003cccbb6a308fb1003c22bae53827b2003c3cb7063bd3b0003ce6b8643887b8003cee2bf73bc8a6003c65b1e23b9425003c9f9d983bb534003cc2b1213ad538003cf7235339e839003ceab4ee38b539003ca4200338a73a003c1021d3391d39003c3121a43bb934003ccf20f23b4a2f003cb1b7e13a69b1003c171ff33becae003cf519973b0cb5003c5eb8583a4eb4003c8dba5e38a3b1003cf1ba3637a7b2003cb4b8f1391fb5003c399a663b13b6003c7ebb62352eae003cb7baef371cb3003c44a6e53a0cb8003c18bb64376ea0003c4ebb27362030003c01bb19307137003cd3b813ae553a003ca6b196b3a43b003cc9a63bb58e3b003c832954b5883b003c28badf3824b2003cd6a4363be8b6003c24afe8b2bf3b003cd42e65b4a23b003c1c27b2b4a13b003c69b19db61e3b003c1b2740b6533b003cf22068b64a3b003c69b727a4103b003ccab82bb22a3a003c5db864b80539003c11b2b5b95b39003cca288ab9a239003ce8b8cdb7f838003cd830c9ba0e38003c93b5b6b41e3b003c90362ab69c3a003c12bb28b56935003c9bbb4eb13034003ccc1ee2bbac30003ccf362dbb8faf003c47a2f8bb74a5003cacbab6320a38003cbeba7f301a38003c90bbfc2af534003cf9bb16a35b20003cc4bac2370933003c03bb6f37d22f003c6ebb85353fb0003c87bb15355daf003c75bbbd350928003cd6bb932c72b1003cd0bb8d2c68b2003c99bbdbad8cb4003cddb90ab5c4b8003cceba16b85bad003ccab635bb29ac003c55321fbb8eb6003cedbb1caf9228003ca0bbb134a726003c9cbb8834362f003cf7b95239679e003cd8b97439ed24003c2dba0d39b72b003c46baf4380527003c34ba0b39b21c003ca9b62e3b91b0003c2ab65f3b9ca9003cc9b8643a3bab003c60b8a13a3daf003c50b9f43932ac003c17ba2139ee2d003c85baa038e425003cf7b93d39acaf003cebb7d13a5ab1003c4ba0963b0eb5003c9b9cb43b50b4003cb51c9d3be8b4003c4598903b33b5003c8699a23bc5b4003c2e20c53b8db3003cd21ff93bffac003c4e18f83b802d003cb8b63e3bad2b003cd3b97a397026003c9bbbbb34352d003ca4bb84b43b2d003c79b9d2b96fa9003c59b57fbb2eae003cd09dffbbd91c003cef9ce4bbe930003c55321fbb8eb6003c47a2f8bb74a5003ccf362dbb8faf003c86a0f3bbf7ae003c9bb255bb74b5003caa1a69bb01b6003c8db847bab1b3003c87bb25b518ae003c88bb5d358925003cd2b97339022d003cabb7f43aa52f003cd69ddf3bac31003c123b7eb66633003cbaac5bbb17b6003c442543bbadb6003cddb845ba312e003cbdbb94b3472d003c87bb3e35262d003cd1b942392132003c33b7e73a4d33003c4ea0cd3b1033003ccdb5a4b9d538003c6f31a1bb7133003c4bba0db6c437003cacbb0fb16c33003c53bb59b4b834003cf0bbc6aeddab003cc0bbe5b31416003c57a0f8bbf42a003cde39a8b87535003c5fa0c0bb7632003c11bb52ad59b7003c09bb38b2f1b6003ca0b880af70ba003cd8b858b226ba003ceaa1ebb1dbbb003cafa141b4b1bb003c4e37a9b3d4ba003cbf38ddb5b6b9003c7e294cb64abb003c2e3b4db60fb2003c5fa0c0bb7632003cde39a8b87535003c7b30bd29e2bb003cc02ac9a1f5bb003cf9b24c2fb9bb003cb6b8993149ba003cb6ba583120b8003ce0b86a3310ba003c2bb9673835b8003c4bba8338e7b3003caabba63134b3003cd2bb5e31f62f003c9eba5a384530003cdbb67f38a4b9003c5bb4e93798ba003cadb6353b9a2e003cc9b54a3bf2b1003cf5b4f33a1eb6003ca9b4573a47b8003c4fb4743a31b8003c0db6bd39adb8003c3897f23b5c2e003cef22ec3b5cb0003c2125c03bdab3003c6b268d3b43b5003c7c26883b5cb5003c0f28253b2cb7003ce6b991364ab8003c192a083934ba003c6cbb4ab20e35003ce4278dba95b8003c9aba2d3153b8003c50bbf1ae3d36003c24aba0b7043b003ce4278dba95b8003c12abe8b2cc3b003c822a153593bb003c52bb4cac5936003caebaf42962b8003c64b974addf39003c462b8931ddbb003c3cbbf1aac336003c7bba5828aeb8003c7dab3bafef3b003c9b2b032df6bb003c1fbb7cb0ee36003cd9ba0b2d15b8003c90aa53b4b03b003c332b8831ddbb003c22bbcbb46a35003cccba6d3011b8003cfdb8c3b7e738003c07b7b634caba003cddba48b79b33003c93bb6a281eb5003ce1a315ba3039003c6c283e38c6ba003c5bab3ebafa38003c88a326ba1b39003cc8bba2acffb2003cc1bb28ac8bb3003c6ca584b9c939003cbcbb2cacdbb3003cccbb6a308fb1003caabbdd298134003cbfba7432f837003cf4bb98ab742d003c14b99734bc39003cb7b45b35283b003c482093357f3b003c50bb4fb4d5b4003c12b987b641b9003cceb41cb86dba003ceca09cb889ba003c40b9c0b3b7b9003cc1b305b38fbb003cf79f2cb4b9bb003cf1b455b841ba003c1cbac7b6c9b7003ceabbe3a49930003c50bb4fb4d5b4003c29bafb33b238003ca1bbe622ca34003cc8a025b8d7ba003cceb82735da39003c3cb994b9a8b4003cf0bae6b22b37003c69b420bbc8b5003c26a16bbbf8b5003cf0bae6b22b37003c93b1babb15b2003cd2b7c5bab7b2003ccfa0e1bb7fb1003c22b147bb2036003c90b889b91137003c389e86bb6d35003cdeae65b8a03a003c67b7adb0fe3a003c6fa0ffbbeaa5003c88b54b33483b003cf0bae6b22b37003c90b889b91137003c50bb4fb4d5b4003c46b993b7abb8003cf5bb0bac3f2d003c48b97ab7b3b8003ceebb0cb09828003ccbb828b8dfb8003ca5bb63b4c12e003c082e27b8cbba003cf5346bb830ba003c46b993b7abb8003c3e2abbb7feba003c893019b57fbb003cbebb992ad333003cdbba33336a37003cefb85435b439003c39b4d135253b003c45208435823b003cfcbb222b3f25003cbbba6035c436003cd1bbbfb2d925003c20b81736233a003cd8b0a135633b003c3d206035883b003cf7b39632923b003c8da83432d73b003c7c1f4232d83b003c82b8a831743a003cf5bbbf2d5daa003c81ba19360737003c97bbf4b4932b003c84ba20aa9f38003cb7baacb20338003c2ab1bcaed93b003c20a818acfa3b003c831d70a9fe3b003c6fb621b1363b003c50b9dcb1cb39003cdcba93b0e537003c5aba52b1ad38003c6bb9f7b85036003c6bb9f7b85036003cddba8eb34c37003c9bbb2cb080b4003ca1bbc9b44427003c81ad8bbb23b5003c1fb92db7fc38003cbab852b5e039003c88b20b32af3b003c39362db1413b003cd9b8262e503a003ccbb97c367538003c9bbb2cb080b4003c99b8d5b9ed35003c38b81829c93a003c7cb92720d239003c28bbd1b24636003c0cba01b8bf36003c1bb90db65c39003c2eb76cb6623a003c4fb506b6eb3a003c87b1ccb5533b003c52ac2bb58d3b003c9a1917b5953b003c54b1dfb7d53a003cbbacd9b7f23a003c901106b8ea3a003c80b56ab7883a003c40b8bcb79039003c55b15cb8923a003cc9ab6db8a53a003ccd817db89f3a003ca3b418b8783a003c1bb9bdb57239003c3cb089b8813a003cedab78b89d3a003c0d888db8943a003c2cb435b8793a003c79b716b71f3a003c7fb039b8b33a003c09ab51b8b83a003c1b817bb8a03a003c05b441b8773a003c0bb637b8163a003c47b1d1b7da3a003c28aa23b8d53a003ca70e34b8ce3a003cb4b4b5b79a3a003c05b784b7203a003c23b07fb9b839003c78a77bb9d239003c4d9669b9e339003cd5b349b9ad39003cccb7aab83239003c85ba98b68336003cd3b948b9e531003c03b712bab2b7003c7c2048b71fbb003ca6b068bb9335003c9dae5bbb1136003c9b9d50bb7836003c75b534bb4f34003caab25dbb4a35003ca8ad45bb85b6003c04ac8cbb32b5003c22a176bbc1b5003c5fad4abb70b6003c84af1fbb0bb7003c8ba8c7b869ba003cd4ab31b911ba003c6fa0ffbbeaa5003c682f6db899ba003c4d2d5db8acba003c89ba9a324e38003c50bb4fb4d5b4003c39362db1413b003cdcba93b0e537003c5aba52b1ad38003cdcba93b0e537003c6bb9f7b85036003c6bb9f7b85036003c0739a2a8363a003c38b81829c93a003c0739a2a8363a003c0739a2a8363a003c6bb9f7b85036003c9bbb2cb080b4003c99b8d5b9ed35003c38b81829c93a003ccbb97c367538003c38b81829c93a003c99b8d5b9ed35003c81ad8bbb23b5003c0739a2a8363a003c38b81829c93a003c10bb38af4837003cacbb1da667b4003c45b5c6a786bb003cf53921b217b9003cfcba66b14e37003c6aae15b4b13b003cfc3884b11a3a003c93bbd5a914b5003c123b7eb66633003c9c3b62b06c34003c953ae4ac80b8003c4cb30223c9bb003c51a618b2d93b003ce43983b04a39003c1fba20b00b39003cf53bc7ab5b2d003c683a01acc3b8003cf53bc7ab5b2d003c9c3b62b06c34003cf53921b217b9003c60b2c22cd1bb003cd6bbe32a2cb2003ccfad33b4af3b003c49395cb1da39003c24ba63b2de38003cf33bb9a2eb2e003cf33bb9a2eb2e003cd83a8d1c23b8003c89b00ba0eabb003c89b00ba0eabb003cd6bbf1a850b2003c74ab6db3c43b003c6e39dcb0bf39003c14bac6b3d138003cf73b44a86b2d003cf73b44a86b2d003cd03a29212fb8003c5f1e8dabfcbb003c92bbaeb09ab4003c5f1e8dabfcbb003cada98fa8fa3b003cca3921a87d39003c90bac3249038003cff3b4c1b2724003cff3b4c1b2724003c8b3b4d2c33b5003c90bbcd2a25b5003cc731ea2fcbbb003c6fa9f9a8fc3b003c6f390eacd839003c77ba24a8b238003ce93b04aa7a30003ce93b04aa7a30003c583b41244bb6003cc731ea2fcbbb003c5f1e8dabfcbb003cffa50324f6bb003ca9bbaa267cb4003cffa50324f6bb003c932bd329f13b003c563a25a8d038003ce9b962285d39003ce83bcdaecc2a003ce83bcdaecc2a003cd43a0ca91ab8003cddb28eb2a3bb003cb9bbd6b068b2003c2b3198348d3b003c253af233b038003c51b9de347539003cd33b1f32882c003cd33b1f32882c003c9a3a7d305fb8003c03b324aec4bb003cbdbb1730f7b2003c3d2d5b38ad3a003cbb3942373d38003c7fb9f436a838003c8b3b4a35c726003c8b3b4a35c726003cb9395c3346b9003c28b2a532acbb003c80bb59332db4003cff316a387f3a003c053a0937d537003c71b9d7375c38003cd33ba032e397003c133aeaad21b9003c79bb89a8acb5003c52bac7385db0003ce2af45b0ddbb003c6629bf3a4838003c9936a43a0136003c59b68d3aa236003ca439a739d52a003c2ab4dc28b7bb003ce2af45b0ddbb003c133aeaad21b9003cd33ba032e397003ca439a739d52a003c7d3a13342cb8003ce2af45b0ddbb003c133aeaad21b9003c55321fbb8eb6003cddb90ab5c4b8003c55321fbb8eb6003cf53921b217b9003ce0b86a3310ba003c54aa21b7203b003c383876b6f239003c95b854b6bb39003c1ebb67b4cf35003cd3bb88b28ca6003c3c3b00b59834003c35bbbfb07bb6003c5ab885ada5ba003ca1310fb0c7bb003cf5392bb302b9003c6c3ba9b467b3003c3c3b00b59834003c993b30b47c31003c983b6fb082b4003ce93a2aabfeb7003c9834b829a5bb003cccb89ba463ba003c4fbbaaac60b6003cf3bbceac0cad003c2bbb0cb4d435003c5db77cb7093a003c3e2b31b8cc3a003c9a3882b6a639003c3c3b00b59834003c993b30b47c31003c362cd1b85d3a003c563836b83c39003cceb666b8bf39003c0bbb1ab59b35003ceabb4fa880b0003cb43b0fb4d32d003c22ab4cb6573b003cce38beb5b639003c37b8c4b5283a003cf5ba8bb3ec36003cf1bb402927af003cda3b0db1d42e003c09bb61311eb7003cedba2c2fcbb7003c72b9f130bab9003c7d2d7931dabb003cb63a652857b8003cad3b6aab63b4003cb43b0fb4d32d003cda3b0db1d42e003cc53b66a978b3003c973a622a84b8003c81227733c7bb003cfcb94e3210b9003cf23ba4accf2d003ca83be3ac73b4003c933ae0ac83b8003c1328099efebb003cd4b90b2a76b9003cf4ba3f2ec1b7003cf6bbe32a03ad003cfeba36a9bc37003c22b818afca3a003cf3a41db1e53b003cf93880b02a3a003cf23ba4accf2d003c07afbaaaf03b003c2638edaad33a003cdfb27625ce3b003c32384298cf3a003c9bb81d9d893a003cedb6d3ac2f3b003c09bb28aa9137003c7dba34aca638003cf3bba2ad6aac003cf8bb7bac18aa003cec3b32af402d003cea3b17ac2930003c1fbb4cae1db7003c96ba1aad7eb8003cb6b9abad8eb9003cecb80eaf3eba003cd32ce3aeeebb003c822f72b2c7bb003c793a2fada7b8003c563adcb1a7b8003c793bbdac91b5003c413b09b140b6003cea3b17ac2930003cec3b32af402d003ce43b6d2f6b2f003c853b252d4db5003c8c3a942697b8003cff2c0ca9f8bb003cecb90ba560b9003c70bbf122dfb5003cfebb8e286721003c37bb092dca36003ca9b913308e39003cd2b45431823b003c4c381531a03a003ce43b6d2f6b2f003ca3b1182ad63b003c4238ad2cba3a003c32b16eadd73b003c7e383aaf8a3a003c03b9d7ac2f3a003c00b91729333a003c2ebb1fabf336003c28bb432c0137003cf7bb06ab6c2c003cf5bbb52df228003ce23b992e4f30003ce43b24a9fc30003c79bbc8ac8db5003c75bb0c2e90b5003c76b9d4b0b3b9003c46b9d32df8b9003ca42044afeabb003c9431c72dd8bb003c6b397d98dab9003ccc396c2c7bb9003c413b1b25afb6003c2f3bc82de0b6003ce43b24a9fc30003ce23b992e4f30003cc83b47ab3033003c5f3b38aa27b6003c8138e6ab94ba003c84ad1fb1d9bb003c9db9a0aca8b9003cacbb40a080b4003cf0bb3229502f003c06bbdc2d8137003cc1b81830583a003c69b0d82fdb3b003c2138c42ad53a003cc83b47ab3033003c00259d34a83b003c0139b533ef39003c26b859354b3a003cbbba8f359f36003c90bb1635562c003c9c3b93311234003c89aa6536523b003c4e381f36013a003c48b725366c3a003c36ba19360338003c85bb6e352825003c493b8c352133003c77bb073389b4003c60bbb934fcb3003c4ab9513560b9003c1fb1083578bb003cc6383a369ab9003c6a3b593422b4003c9c3b93311234003c493b8c352133003c333bc535ccb3003c1936b535d2ba003c32b47e2fa9bb003cd8b805331eba003caf3b7f320d32003c783b5b2c9cb5003cc638e8390135003c163a1e39cdae003cf9350fb058bb003c8f3616254bbb003c22b32eb628bb003c04b3f03910b9003cb2b8b9b32eba003c6bb85536ddb9003c65bb492016b6003cbdb930390bb4003cdfbba13105a8003c9bb9a339042f003c8aba2235a637003c0eb83b3ae635003c77b74636573a003c8ab4593a4d38003c2eac6236513b003c41a94f3ae838003c2b388b353d3a003c5f34253aa138003caf3b7f320d32003cc638e8390135003cf53921b217b9003c123b7eb66633003c9c3b62b06c34003cb9395c3346b9003cd33ba032e397003c52bac7385db0003c59b68d3aa236003c55a4ff3be321003c2ab4dc28b7bb003ca439a739d52a003c7d3a13342cb8003c6629bf3a4838003c9936a43a0136003c6bb85536ddb9003c7ca8ef3bc42f003c04b3f03910b9003cbdb930390bb4003c163a1e39cdae003c8f3616254bbb003c1fa2f43bad2e003c9bb9a339042f003cc638e8390135003c5f34253aa138003c41a94f3ae838003c8ab4593a4d38003c0eb83b3ae635003c8eb9d9b27e39003cf3b8bf364c39003cf6b3b7b0a53b003ca7bb9b341a29003c8438a0b7df38003ccebaf7b7aa2c003cf4bbecad0d2b003ca7ba1ab83130003c9f31ebb9d038003c1f2fc0b8593a003c91b8dc298e3a003ce62ad4b96a39003cccbb6a308fb1003c2bbb94b6ceb0003c0f302aba4038003caabb25b45f29003ce03814b8ef37003c89b4d9bab82c003c76357bba7a33003c3ebb4eb5e631003cc731f0ba2731003c89b4d9bab82c003c6c39b0b73a37003cbbb2e0ba7f31003ca138d739f396003c833089ba9035003caabb9f9b2034003c0134d7badb30003c98267fba1136003c23a8f6b9f837003c8fad84badf35003cdd39abb62037003c31bbb2984b36003c4db78534fa39003c0cadee35823a003ce536d72e693a003cf6b3b7b0a53b003cf3b8bf364c39003cf7235339e839003c26399e38ed37003cc93ad537342a003c8438a0b7df38003cee2bf73bc8a6003c7737a53a70b4003ce6b8643887b8003c69b5273956b9003cccbb6a308fb1003c2bbb94b6ceb0003c3d35cc3acbb2003c8db5683a30b5003caabb25b45f29003ccb3886392832003ce03814b8ef37003c6633f73ad829003cdfb4d03a90ac003c3ebb4eb5e631003ca138d739f396003c4134d63a14b0003c03b3e43af5b0003caabb9f9b2034003c0234c33a48b2003c90392439f425003c6c39b0b73a37003c03b59a3acab2003c31bbb2984b36003c0cadee35823a003c4db78534fa39003cdd39abb62037003ce536d72e693a003cf4bbecad0d2b003c91b8dc298e3a003c8eb9d9b27e39003ca7ba1ab83130003cf4bbecad0d2b003cdd39abb62037003c90392439f425003ce536d72e693a003c1c3afcb84ab1003c3839cdb60439003cc412ffbb3894003c4e2faeba4bb8003c13baf4b84b32003c29b871ba7cb4003cc2a917b7293b003cc9b82eb74e39003c293610ba30b8003cdfa1febb46a2003cdd2852bb5cb6003c563978b9b3b4003c9db966b917b3003c8ab41dba99b8003c0922ffbb7f21003c5f3ad5b8bb25003c50ba6cb84134003cacb65bb7453a003c2a2e48b7143b003cd637feb6083a003c2d3a91b7ca36003c963936b36e39003c1d34e5b09d3b003c11398e363e39003cb23b57347527003c86b873b7f138003cbe3a1db8a92c003cf13b02af9229003c973a3ab84930003ccbb1d1b91639003c2fafbbb85f3a003ca6389a28803a003c7eabd3b96a39003ccc3bb92ff6b1003c183bd0b627b1003c49b02dba2b38003ca23b66b4a526003ce6b8ffb70538003c5034e3ba7b2c003ca4b56fba9533003c363b8eb58f31003c31b2eaba3931003c5034e3ba7b2c003c71b986b75437003c5232e8ba5931003c87b8eb39131f003cd5b086ba8f35003caf3b53a5e633003c35b4cfbae430003c84a881ba0736003c7b26fab9eb37003cf02c89bacf35003ce1b97eb63d37003c3a3be2a42036003c83375834f139003c0d2eda35833a003cb8b6182f743a003c1d34e5b09d3b003c551c3f39ee39003c11398e363e39003c06b9af380838003cb6ba0e38852a003c86b873b7f138003ccba9f63bdaa5003c49b7b43a48b4003ceb384e3896b8003c7635183964b9003ccc3bb92ff6b1003c183bd0b627b1003c0cb5d83acfb3003cb4354e3ae9b5003ca23b66b4a526003caeb89a396432003ce6b8ffb70538003ce8b2ff3a2c2a003c1735c53acbac003c363b8eb58f31003c87b8eb39131f003c0bb4e03ad4af003c6d33dd3afab0003caf3b53a5e633003ca0b3cd3a1bb2003c78b93c394628003c71b986b75437003c3335903ad3b2003c3a3be2a42036003c0d2eda35833a003c83375834f139003ce1b97eb63d37003cb8b6182f743a003cf13b02af9229003c963936b36e39003ca6389a28803a003c973a3ab84930003cf13b02af9229003ce1b97eb63d37003cb8b6182f743a003c78b93c394628003cd039b934b938003c5d389433e639003cba368e34993a003c383ac5344038003cec2242365c3b003ca7203f37213b003c9c375236aa39003c73391c344539003ce5251e39243a003cdc330f393539003cd22d7f38ec39003c8224883b5d35003c161d953b2495003cdeb1743b5931003ce5b6353bee29003c1d33c23b50ae003c0738d33a4ab0003c8f36873af8b5003c0c3a3239eeac003c8d21fc3bf9aa003c9e3a5a385fb0003cc5349f3bb6aa003cdc3b222d49b1003c4c3a4138f9b4003cc736913a1cb6003cc13bdd3293af003c1a3baf3621b2003c3738f63988b6003cc63b7133f527003cf120fd3b2b2a003c159f963b10b5003c23a4393bdeb6003c9e3a013812b4003c73391839c1b5003c4ea5ea3a04b8003cd639ac38acb5003c813afa37cab4003cb5a3d03a30b8003c7538da36fb38003c9334a037cf39003c781581368a3a003c79394e37d737003cbc243c390b3a003c5123e5396739003c2835fa38c038003c84385037f338003cbf235a3b4936003ccd2a173a3938003c0c2516395739003c03ac813b32ac003cbbb38b3b2ca8003c43b6253b39a7003c4432bb3bedb0003cb837c23a31b3003c9a34a73a70b6003ccb392e3976b3003c942be43bdcb0003c6c3a5b388fb3003ceb30df3b03ac003c913b422ef0b4003c6b392439b8b5003cfc324e3b7eb5003cc93a7e37e8b3003c663a6b387fb3003c2535d23a96b6003c773a7938d7b1003c8cb1d73b362e003cb925aa3b8cb4003c8cb1253ba0b6003cca3918393ab4003c5639533958b5003c7ea5183b60b7003c2339a439cab4003c3239ba3914b4003ca0a4283b22b7003ca0a4283b22b7003cb8b91635c838003c64b60d36ad3a003c2eb8df34f839003c1fba20355238003cec2242365c3b003ca7203f37213b003c34b74937a439003c58b963345939003ce5251e39243a003ca4b24f392e39003cd8aac038da39003c8224883b5d35003c421fa33bd9a5003c8a32793bae30003c2937263b8d25003cb2b2c93bdbad003cddb7e53aefaf003c68b6953af5b5003cf8b94c3910ac003c5d1bfc3bf0aa003c9cba7538b8ac003c92b4a93b08a8003cf0bb232e9bac003c72ba5a3870b3003c21b79f3a70b5003cc8bb5a33f3a4003c2cbbe9360dae003c73b8073a96b5003cabbbed337330003cf120fd3b2b2a003c159f963b10b5003c23a4393bdeb6003cbeba1a3821b1003ca7b92f3987b4003c4ea5ea3a04b8003c03bac6387bb4003cabba1638b0b2003cb5a3d03a30b8003c52b89137ec38003c54279f37603a003c30b45b389f39003c54b924389b37003cbc243c390b3a003c5123e5396739003cccb44f399638003c57b8fd37f438003cbf235a3b4936003c08a6363a2338003ce02151393439003c982c863b69ad003c0834603ba419003c7036463bc1ae003cccb1c23be2b0003c88b7d33a09b3003c7cb4b03a6db6003cbab9483932b3003cbea9e63bd3b0003c66ba7738e0b2003c74b0e83bf6ab003c9cbb482f93b4003c73b93b3940b5003cf1b2563b59b5003cd0bab7378fb2003c6bba863811b2003c4ab5dd3a49b6003c78ba94384db0003c2a32d03bd32d003c7ea4ab3b89b4003c4331203bc7b6003c39bac73832b2003c85b969391db4003c7ea5183b60b7003cd6b9143908b4003c8eba45389db2003ca0a4283b22b7003ca0a4283b22b7003c943bd3aed434003c783ac5b26338003c343b0aa5f136003c7e3bbdb30934003cd73a772a1f38003c083a0eb11939003c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000943bd3aed434003c783ac5b26338003c343b0aa5f136003c7e3bbdb30934003cd73a772a1f38003c083a0eb11939003cec3bc8a93730003ca83bfbae4a34003c443bbaa6ad36003c783af52da538003c813b09b2a734003c933bdab4ad2e003cf83b71ad6025003cfd3be4a77229003cda38c128583a003cee38fab63e39003cb1387732463a003c4134f4344d3b003cfd391734e438003cd23a63b41e37003c5e34a135213b003cfb3b202cc11f003cd93bf62ca6b1003cf93bac2b15ab003cb1386b38b738003c683b0636c522003cdc3b5d3110ad003cdb3b2b304bb0003cba3442384f3a003c1f39ed385437003c3e3b2a356a34003c113991363d39003c953931b37039003c59206e36533b003c95207c37113b003c24208935813b003cd53b7d321424003cd33b5d2d10b2003c2136d934fa3a003c7c396a338439003c7c3a9b308938003c913b9e202d35003ce43b60b0c52d003c162051358b3b003ce83ae9b7392e003c6a3bc3b5952e003cd63bd3b172ad003cd03b92b015b1003cb43b66afcbb3003c6f3b07a6e4b5003cef3a872ecdb7003c723be13051b5003c053887b927b8003cf8361ebb4bb0003cb438f0b675b9003ce238d8b4dab9003ce1389eb12eba003cde3a49ae06b8003c96ab98ba80b8003c1d1c3cbbd3b6003cce2f0bb921ba003c11361db827ba003c4d392eb566b9003c4c3b23af4cb6003c803b62b5a72d003c2138c5ba2db0003c793b8db4d9b2003c99395cb861b7003c483470ba3db8003c4135beb9e8b8003c5aa1fcb94eb9003c57a1f1b95bb9003c7da11fbb49b7003c6ea160bad3b8003c5fa1a7bba8b4003c2aa1eabb9fb0003ca096a8bb9f34003cc0398eb93ea6003c1d3b40b749ab003cf1381db8c138003c413a31b6cf37003cc83af6b4e036003ca0275cb9ee39003cf63b25ad8b2a003c703b743567b0003cf0398b38adb5003cfa3a0634b5b6003ccd3ba62ff3b1003ccd3ba62ff3b1003cba3bd2334cad003cf83b30a45a2d003cb73b3e3341b0003c2f3ac938b1b2003c7537f43a07b1003ced384b3898b8003cafa9f63b4da6003cf731d83b7925003c9d268f3bc334003c6632dc39ef38003c781c4239ec39003c3635d938af39003c9d200638a53a003c3221d5391a39003c8721a53bb434003c3821f23b3e2f003cdd37d03ac9b1003c0620f43be0ae003c091c983b05b5003c6738453a96b4003c903a4138a4b2003ce63aff3614b4003ca738e03994b5003c01986a3bfeb5003c6a3b273525b2003c8f3b0a35a3ad003cb63b872a2934003c343abdb3aa38003c253935b58a39003cbc3771b6373a003c9f2995b7083b003c893abe3701b5003c8e2f4ab57c3b003c5934a9b3723b003c6639e1aed639003c672961b5863b003c553b412f1b36003c6c3be635a12a003cbe3214b29f3b003ce9a41bb4b23b003ced26b7b4a03b003cae3484b5113b003c362c8eb56b3b003ca22068b64a3b003c6038a51da13a003ca43916b08339003cdd38a7b70839003c1d3415b9c639003cc0288ab9a239003c603957b60139003ca6aef8b94239003c1337dfb0123b003c1fb543b35b3b003c4b3ba4b4a534003cc53bd5b0d131003cad1ee2bbab30003c2db71cbb4d2b003c56a2f8bb76a5003c043bab32aa36003c283bce306536003cd33b742a1731003cd53ba2a93bb1003cef3a8c375530003c173b3337d824003c453b2d35b3b3003c663bc334d6b2003c703b8e2690b5003cb33b2121eeb3003c4a3b75b0ebb5003c58397eb6eeb8003caf3a49b8adae003c7e364ebb35a8003c68b364bba4b4003ce83b24b0c6a6003ca43b5d3404a8003ca43b55346c2e003c723b7235bdac003c093a3e39daa3003cea3960395625003c463af5382020003c363a08391228003c963a853864aa003c1a3b2b37afae003c023ac83879b4003c8fa43b3bd4b6003cfba5eb3a02b8003cee3926390cb2003c5939df39abaf003c9f9f993bffb4003c859bb53b46b4003cd938513a0fae003c593adc38e1a4003c463af438fca6003c6c38913a89b0003c0538c33abbb1003cda36233b8ab0003c5f36553bf3a7003c5920c63b8cb3003c1120f93bffac003c1498a33bc0b4003cf695913b30b5003c231d9d3be8b4003cc336343b5c2e003cd6396939152e003c973b8e341e30003ca23bb0b4c029003c6139e2b916ad003c143587bb6daf003cf09dffbbd51c003cfe9ce4bbe930003c68b364bba4b4003c56a2f8bb76a5003c2db71cbb4d2b003c9da0f3bbf7ae003cb03254bb73b5003c121a69bb02b6003c8f3842baefb3003c883b38b55eac003c7d3b32351f30003cc13963397031003c8637ea3ab231003ca09ddf3bac31003cca18f83b802d003c282f3fbb80b6003c302543bbadb6003ccb3861ba9129003cac3b0eb4c92f003ca03917390c35003cd336d63ab934003c30a0cd3b1033003c08358bbaa637003cf7b1d3bb892c003cfc39a9b74e37003c803bd5b25d34003c273b8bb58534003cf53b45aecf9c003cc03bdbb31920003c66a0f8bbf22a003c0bbac5b8ef33003c70a0c0bb7632003c593bad9545b6003c4b3bdbac72b6003c2739d32614ba003c4c39e1a1fab9003cc42d4b2cf0bb003c6a2d5ea7f5bb003c0eb669ab61bb003c4cb82ab37aba003c75294cb64abb003c15bbfeb542b4003c70a0c0bb7632003c0bbac5b8ef33003c6aa8ee2feabb003cb52ac5a1f5bb003cf834cd3355bb003c4b3979348db9003c123b893371b6003ccb3b643297ae003cae3b6e30c333003c6d3beb34a332003c9039d53365b9003c763a2b386234003c733aa6389eae003c9239bb3876b6003c0838cf38f1b8003c7d361e3b8832003c2336583be0ad003ca9350f3be8b4003c52358c3a76b7003cbb35613ac0b7003cd5353c381dba003c3b37bc393eb8003c8696f23b5c2e003cf722ec3b5cb0003c2125c03bdab3003c68268d3b42b5003c7a26883b5cb5003c0c28253b2cb7003c112a093934ba003c603a903615b7003c0d3b76b2d336003ccc278dba95b8003c043b5e32feb6003ce93a90acfa37003c18aba0b7043b003ccc278dba95b8003c07abe7b2cc3b003c782a153593bb003ce53a42a80a38003c253b122d14b7003ca838d4ab7c3a003c3e2b8531ddbb003cc83a66a53c38003cfc3a2a2cb8b7003c72ab33afef3b003c8f2bfb2cf6bb003cb33a03ae4d38003c413bab2f75b6003c71aa4eb4b13b003c242b8231debb003ce63ab7b31b37003c263b453275b6003c9b381db77c39003c2438343554ba003cd03a5fb67235003cca3b4a2e87b2003c7da213ba3339003c24283b38c8ba003c692839ba0239003c28a224ba1e39003cf53bc29f7fae003cf13bc890a4af003ccea482b9cb39003ced3b299839b0003ccd3ba62ff3b1003cb23b72275634003cd13aff31d037003cf43beeacc42c003c2e396d34ad39003cf8344b35203b003c282099357e3b003c3f3b94b4fbb4003cf438bab64eb9003c843429b872ba003cefa09fb887ba003c273914b4c4b9003c4c3335b393bb003c9e9f33b4b8bb003ca53463b845ba003c013a02b7e8b7003cec3bafa84130003c3f3b94b4fbb4003c3f3a9233a038003ca83b759a9f34003cc1a028b8d5ba003cea38ff34cb39003c1c39adb9c0b4003cf23a5fb30637003c17342bbbcdb5003c73a16dbbf2b5003cf23a5fb30637003cf430c1bb16b2003c8a37d8bad6b2003c31a1e2bb71b1003cbe304bbb1f36003c80389db9fc36003c419f85bb7435003cd12e66b8a03a003c8337e5b0f43a003cdea0ffbb77a5003cc13524333f3b003cf23a5fb30637003c80389db9fc36003c2739c7b7b8b8003c3f3b94b4fbb4003cf43b2dad8f2c003c2a39aeb7c0b8003ce93b9eb07d26003caa3840b8eab8003c9d3ba8b41f2e003c38af26b8c7ba003c40b562b827ba003c2739c7b7b8b8003c49acbdb7fbba003c0bb115b57abb003cc53b6d287c33003ced3abb324237003c0b392b35a439003c7b34c3351e3b003c24208a35813b003cfe3bd828df20003cd03a25359c36003cc93b4eb37322003c3f38f635163a003c5e319c355e3b003c1b206735873b003c35347e328b3b003c5d2a3c32d63b003c121f5032d73b003c9a386031673a003cf63b992cc5ab003c993ae035e036003c8d3b39b5532a003c8f3adfab8d38003cba3a21b3e337003c7331d0aed63b003c602906acfa3b003ce01c37a9fe3b003c8b364fb12d3b003c5a3934b2bd39003ce23a0ab1c037003c603abeb19c38003c5d390eb93636003c5d390eb93636003cde3a03b42837003c8f3bbbb0a9b4003c963b0eb5c024003c322c8fbb1fb5003c1d3958b7ef38003c7e3ad1b66236003cbe3961b9ae31003cb53624bac0b7003cd2a64db71dbb003c1c3937b64f39003c033a1bb8a136003c293b4fb31f36003cee38892d423a003ce6394a366338003c8f3bbbb0a9b4003c1cb6e7b04a3b003cf932f931a93b003c4c380f28bd3a003cbe3878b5d439003c8c391f9ac339003c343788b65a3a003c5a3519b6e53a003ca431d3b5503b003c9c2c29b58c3b003cd01711b5963b003c5831e5b7d33a003cc62cd8b7f23a003c418c03b8eb3a003c82357eb7823a003c3e38deb78639003c4e315fb8913a003cad2b6cb8a53a003c13947ab8a13a003ca13420b8733a003c1d39e7b56539003c31308bb8803a003ccc2b77b89e3a003c7c948ab8963a003c2a343cb8753a003c7a3733b7163a003c7c303bb8b23a003cf82a50b8b93a003c089478b8a23a003c023448b8733a003c063642b8103a003c4c31d7b7d83a003c292a22b8d63a003c769031b8cf3a003cb634c5b7953a003c05379eb7183a003cfc2f81b9b739003c5b267ab9d339003c3a9967b9e639003cb3334fb9aa39003cbe37b9b82a39003c3d306cbb9435003cd22d5dbb1336003ca89e4fbb7f36003c403263bb4835003c3f353fbb4734003c542c49bb82b6003c6a298fbb2eb5003c70a178bbbab5003c0b2c4ebb6db6003c302e24bb09b7003c1b24cab867ba003c472935b90fba003cdea0ffbb77a5003c4eb06bb894ba003c82ae5cb8a7ba003c3f3b94b4fbb4003c9c3a29323a38003c1cb6e7b04a3b003c603abeb19c38003ce23a0ab1c037003ce23a0ab1c037003c5d390eb93636003c5d390eb93636003cf7b80ca6453a003c4c380f28bd3a003cf7b80ca6453a003cf7b80ca6453a003c5d390eb93636003c8f3bbbb0a9b4003c8638e9b9d835003c8638e9b9d835003ce6394a366338003c4c380f28bd3a003c4c380f28bd3a003c322c8fbb1fb5003c8638e9b9d835003c4c380f28bd3a003cf7b80ca6453a003c6a3b18ace835003c6a3b2daea4b5003c00342fb194bb003c5aba03b456b8003c553b95af1a36003c8732f4adcb3b003c49b84ea5c03a003c3d3b26b078b6003ce2ba51b52136003c53bb44ab5a36003c06bb80b046b7003c0930eab0d4bb003c3a30faa5ed3b003c46b96c9a033a003ca23af3a97438003cd6bb75a26732003ce6ba4eb0cbb7003cd6bb75a26732003c53bb44ab5a36003c5aba03b456b8003cc62d33aeedbb003c9e3b2fa2deb4003c383268aece3b003c9cb817a5883a003ca03aacaf6038003ccebbea28e832003ccebbea28e832003c43bbebaaa3b6003ce827afb1ddbb003ce827afb1ddbb003c9a3ba6aeafb4003c3d314dacdf3b003cc4b8599e6c3a003c8e3a3ab16438003cd7bb7c234a32003cd7bb7c234a32003c3dbb58aac2b6003c93af35b3bcbb003c3f3b2ab3bdb5003c93af35b3bcbb003c3d310530d33b003c0cb96d2e263a003c0e3b7b2d6837003ceebb1029d92f003ceebb1029d92f003cc7bb872951b3003c3c3b3ba8cdb6003cabb4dba6a3bb003c67252b2cee3b003c70b98629c939003c933aa4247838003cd9bb9a1b3531003cd9bb9a1b3531003c6dbb7b9cb1b5003cabb4dba6a3bb003c93af35b3bcbb003c57ad3caee2bb003c7c3b16a95eb5003c57ad3caee2bb003c0da83e2df43b003c29ba0da01339003c453a2a2bee38003ce9bbdaad562d003ce9bbdaad562d003c3abb63ac8bb6003c902922b4aabb003c8b3bd4b095b4003cafadb9349b3b003ce1b90b340739003cb2392e35fa38003cc5bbb131d930003cc5bbb131d930003c14bb322f1cb7003c8e2d18b0dcbb003c863b8330e1b4003c41a66b38aa3a003c6cb92837aa38003cc93940372938003c89bb0c35cb2e003c89bb0c35cb2e003c4fba74329bb8003cee2ced31cebb003c3b3bb83396b5003c37b075388e3a003cbeb9e9365d38003cb3391038bc37003cd2bb14323d2d003c78ba8baf90b8003c323b37a6f2b6003c1d3afcb849b1003cce2206b1debb003cc0a916b7293b003cc9b82db74f39003c3839ccb60539003c13baf4b84c32003c4f2faeba4bb8003cce2206b1debb003c78ba8baf90b8003cd2bb14323d2d003c13baf4b84c32003c29b871ba7bb4003cce2206b1debb003c78ba8baf90b8003ce2ba51b52136003c68b364bba4b4003c58397eb6eeb8003c5aba03b456b8003c68b364bba4b4003c9039d53365b9003ca79e19b8bc3a003c95b892b68c39003c3638eab76e39003cec3a6db5d235003cd43b84b25a18003c64bb6eb40834003c633b92afb8b5003cc038e2a456ba003c84af50acd1bb003cb1b9b2b247b9003c60bb97b406b4003c64bb6eb40834003cb7bb18b2d931003c89bb8bb197b4003cc0ba25b025b8003ca5b317aaa2bb003c1a3907aeffb9003c693b84b158b5003cf23b64af00a4003cf93a4ab22937003c9d365cb5b83a003cefae7db56b3b003cf2b826b4ef39003c64bb6eb40834003cb7bb18b2d931003c8eaf6cb6443b003cafb890b5db39003c09361ab6c03a003cd53a45b41537003cf03bd8ad60ad003ccbbb6ab2912e003c679b37b7ea3a003c29b974b54639003c9f3752b61d3a003cb83a2cb47237003cfb3bac254faa003ceabb8dafc02c003c3e3be4300fb6003c193b3ca65bb7003cb43923a89ab9003c5ba947abfabb003c87ba6aac97b8003c99bb03aec1b4003ccbbb6ab2912e003ceabb8dafc02c003caebbbca964b4003c5eba09a4d5b8003ccc28b52cf9bb003c423a0b2ee1b8003cf9bb2cac3623003c7dbb55a38eb5003c3fba3429ebb8003c0e29b532b5bb003c353a6732b8b8003c353b683209b6003cfb3b8c2b4e21003cb43ad5b02738003c4b37b1b4a23a003c5baaccb5543b003c60b92ab46639003cf9bb2cac3623003c8b2829b58c3b003ca4b871b41a3a003c8330fbb3a83b003cb1b868b3333a003c1b388cb3983a003cd6352bb5f83a003cbc3aefb10c38003c1f3a66b3cb38003cfa3bb7ac92a3003cfb3b04acad21003cefbbc8af41a7003cf6bbb7adda27003c613b192627b6003ceb3ad02cf0b7003c203ac42e12b9003c65390c2fd6b9003ceb16b831dfbb003c2ca94d2df6bb003c17ba0d2e20b9003cf2b99e9b59b9003c3bbb9f28ceb6003cfaba21a8ccb7003cf6bbb7adda27003cefbbc8af41a7003cf2bbad2d7e2c003c4ebbb831dab5003c2eba3c32d5b8003cedbb342d832e003cf7ba213237b7003ce3bbc7aaff30003c38bb7821d6b6003c64b91b3487b9003c59b9d792e9b9003c9daeac356cbb003c752534a5f1bb003c4796db33c1bb003c503a4631bab8003ca33be92e6cb4003cf63bdb25f32d003cf43a36a9db37003c433904abfc39003c993346acb83b003cbeb8f6a9673a003cf2bbad2d7e2c003cb930aca9db3b003c76b8eba2993a003c7b3175a5dd3b003c6cb8a0aca03a003c133983a12a3a003cd8386ea2533a003c353b5aa3e836003c0b3be3278137003cf93b89a89c2c003ced3b5d2d192e003cedbb342d832e003ce3bbc7aaff30003c853bbbaa5ab5003c963b023151b4003c9b3916ae9eb9003ca53939343ab9003cf13bb92cf12d003c9439bfaea7b9003c2d2d45b3bebb003c92b892b074ba003c67bbcaaeccb5003cbcbbfbaaf533003c9abbc3310e34003c80bb173348b4003ce6b82535c1b9003cb5302b349abb003c2839a134a2b9003ca63b65a1acb4003c483ba534adb4003c813b8635bf22003c113b25310937003cd7384d33193a003cdf307433ae3b003c04b85930d43a003cbcbbfbaaf533003c5ea05b36573b003cf0b8f934c739003c3338f636d939003cb73a9736a735003c9abbc3310e34003c772b0938e33a003c44b84737b439003c5e37c437f139003c343a44370237003c733bc73576a8003c53bb8f357632003c633bda320cb5003cbd38943142ba003c03349c2ab3bb003c58b69734f1ba003c4cbb0c352bb4003c53bb8f357632003cd33b373281ac003cb2bb6732ef31003c84bb652370b5003c50ba6cb84134003c9db966b918b3003c08b63fb236bb003c8bb41cba99b8003c21333fb7e0ba003cda2852bb5db6003cac38afb409ba003c293610ba30b8003c583bb99f50b6003c563978b9b3b4003c5f3ad5b8b025003c8a3a4736ba36003c2c3a92b7c936003c8c37e137d939003cd637ffb6083a003ca52c0838e23a003c2a2e49b7143b003c1eb8c336f739003cacb65cb7453a003cb2bb6732ef31003c50ba6cb84134003c5aba03b456b8003c53bb44ab5a36003ce2ba51b52136003c4fba74329bb8003cd2bb14323d2d003c91bbafadfc34003c2bbbb8991737003c75ba48b27438003c82bb2db33034003ccaba422c3138003c00ba9ab02939003ceabbcba68b30003ca6bbd5ad7234003c3cbbbaa0d336003c68baed2eb638003c81bb78b1ce34003c9cbb90b44d2f003cfabb3eac0028003cfcbb2ba2c32a003cc8b8312a643a003cf0b8cbb64b39003c98b8d032523a003c02b40835523b003ce6b94d34f438003cd2ba21b44237003c1db4bc35273b003cf8bb532d9124003cd9bb242e53b1003cf7bb092dc3a9003c8fb87b38c538003c59bb4a363726003cd7bbf43166ac003cd9bbc230f1af003c6fb45f38523a003cfdb808396c37003c2bbb6b359234003cf3b8c6364a39003c8fb9cab27d39003c59206e36533b003c95207c37113b003c24208935813b003cccbb0f33e226003cd3bb8b2ebdb1003ce4b5f634023b003c65b9d3339239003c6aba17319a38003c8abbdb265535003ce7bb91af6c2e003c162051358b3b003cf9baa6b7cc2e003c76bb7bb5322f003cdebb3cb1ccac003cd9bbf7afc3b0003cbdbb3dae7ab3003c77bb309ebcb5003cf6ba922fa6b7003c73bb703125b5003c2ab874b91cb8003c42b70dbb25b0003cd3b8c2b669b9003cfdb8a9b4cdb9003cf8b83fb121ba003cedba40ade4b7003cda289aba81b8003c82a63bbbd2b6003c8cb006b91eba003c5ab60eb81eba003c6cb9fbb453b9003c5dbb0aae0db6003c7fbb1db56d30003c44b8b1ba01b0003c88bb45b48ab2003cb8b941b843b7003c9cb465ba37b8003c92b5b1b9e1b8003c5aa1fcb94eb9003c57a1f1b95bb9003c7da11fbb49b7003c6ea160bad3b8003c31bbffb6b0a0003c92babab4cb37003cf7b9fab56938003cd9b974b93523003ca096a8bb9f34003c2aa1eabb9fb0003c5fa1a7bba8b4003c96b808b82a39003ca0275cb9ee39003c76b654b6993a003c85b817b5173a003ca1b95db36039003c9f2995b7083b003c67bb402cf935003ce6bb3514fc30003c8cbb4b35a015003cbcbbca33acac003cb6bb3134dba9003cf0bb02acab2e003c68bbba3586af003ce2b9a73889b5003cf9ba493490b6003cccbb6e3096b1003cccbb6e3096b1003c21bae6382ab2003c39b7063be1b0003ce4b863388ab8003c052cf73b38a7003c5eb1e23b3125003cf59c993bae34003cbfb1243ad238003c05245539e639003ce9b4f138b339003c9d200638a53a003c3221d5391a39003c8721a53bb434003c3821f23b3e2f003caeb7e23a68b1003c0620f43be0ae003c091c983b05b5003c5cb85a3a4ab4003c8bba60389fb1003cf0ba3e3797b2003cb2b8f5390fb5003c01986a3bfeb5003c7dbb673518ae003cb5baf73709b3003cfba5eb3a02b8003c17bb67370d9f003c4dbb28362730003c01bb0e307137003cd4b846ae533a003cacb1b1b3a23b003c02a749b58b3b003c672961b5863b003c26bae2380cb2003c8fa43b3bd4b6003c2fafeeb2be3b003cc82e6bb4a13b003ced26b7b4a03b003c6db19db61e3b003cf42640b6533b003ca22068b64a3b003c6bb71aa40f3b003ccab82ab22a3a003c5db864b80539003c14b2b5b95b39003cc0288ab9a239003ce8b8ccb7f838003cd730c9ba0e38003c93b5b6b41e3b003c90362ab69c3a003c12bb28b56935003c9bbb4eb13034003cad1ee2bbab30003ccf362dbb8daf003c56a2f8bb76a5003cacbab7320938003cbeba81301938003c90bb092bf334003cf9bbdea21e20003cc4bac3370833003c03bb7137ca2f003c6ebb873544b0003c87bb173566af003c75bbbf35f427003cd6bb9a2c76b1003cd0bb8d2c68b2003c98bbd6ad8db4003cddb90ab5c4b8003cceba15b859ad003ccab635bb27ac003c55321fbb8db6003cedbb17af9228003ca0bbb2349b26003c9cbb8934372f003cf6b95339779e003cd7b97439ea24003c2dba0e39c62b003c45baf5381527003c34ba0b39db1c003ca7b62e3b91b0003c29b65f3b9ba9003cc8b8643a27ab003c5fb8a23a37af003c4fb9f5391dac003c16ba2239ff2d003c84baa1383426003cf6b93e398eaf003ce9b7d23a5bb1003c9f9f993bffb4003c859bb53b46b4003c231d9d3be8b4003cf695913b30b5003c1498a33bc0b4003c5920c63b8cb3003c1120f93bffac003cca18f83b802d003cb7b63e3bb22b003cd2b97a398726003c9bbbbb343a2d003ca4bb83b4422d003c79b9d2b965a9003c5ab57fbb2cae003cf09dffbbd51c003cfe9ce4bbe930003c55321fbb8db6003c56a2f8bb76a5003ccf362dbb8daf003c9da0f3bbf7ae003c9db255bb74b5003c121a69bb02b6003c8db846baafb3003c87bb25b513ae003c88bb5e35a425003cd2b97339072d003caab7f43aa82f003ca09ddf3bac31003c123b7eb66733003cbfac5bbb17b6003c302543bbadb6003cddb845ba312e003cbdbb93b34a2d003c87bb3f352b2d003cd0b942392332003c32b7e73a4f33003c30a0cd3b1033003ccdb5a4b9d438003c6e31a1bb7033003c4bba0db6c437003cacbb0fb16d33003c53bb59b4b834003cf0bbc4aedbab003cc0bbe4b3f815003c66a0f8bbf22a003cde39a8b87435003c70a0c0bb7632003c11bb4ead58b7003c09bb36b2f1b6003ca0b87caf70ba003cd8b855b227ba003cf5a1e9b1dbbb003cbaa140b4b1bb003c4e37a8b3d4ba003cbf38ddb5b6b9003c75294cb64abb003c2e3b4eb610b2003c70a0c0bb7632003cde39a8b87435003c7930bf29e3bb003cb52ac5a1f5bb003cfbb24f2fb9bb003cb6b89a3149ba003cb7ba5a311fb8003ce1b86b330fba003c2bb9683835b8003c4bba8338e5b3003caabba73132b3003cd2bb5f31fb2f003c9eba5a384730003cdcb67f38a4b9003c5cb4e93797ba003cadb6353b9e2e003cc8b54a3bf0b1003cf5b4f33a1db6003ca9b4573a47b8003c50b4743a31b8003c0eb6bd39acb8003c8696f23b5c2e003cf722ec3b5cb0003c2125c03bdab3003c68268d3b42b5003c7a26883b5cb5003c0c28253b2cb7003ce6b9913649b8003c112a093934ba003c6cbb49b21035003ccc278dba95b8003c9aba303153b8003c50bbe9ae3f36003c18aba0b7043b003ccc278dba95b8003c07abe7b2cc3b003c782a153593bb003c52bb37ac5b36003caeba0f2a61b8003c63b962addf39003c3e2b8531ddbb003c3cbbc4aac536003c7bba7328adb8003c72ab33afef3b003c8f2bfb2cf6bb003c1ebb7fb0f136003cdaba022d14b8003c71aa4eb4b13b003c242b8231debb003c20bbd3b46e35003ccdba513011b8003cf9b8c6b7e938003c0db7aa34caba003cdaba51b7a633003c93bbf1271cb5003c7da213ba3339003c24283b38c8ba003c02ab3cbafd38003c28a224ba1e39003cc8bbd8acf9b2003cc1bb5eac85b3003ccea482b9cb39003cbcbb61acd5b3003cccbb6e3096b1003cabbb092a7f34003cbfba8232f437003cf5bb77ab6c2d003c14b99e34bb39003cb8b46235273b003c282099357e3b003c50bb4eb4d5b4003c12b989b640b9003cceb41eb86cba003cefa09fb887ba003c3fb9c5b3b7b9003cbeb311b38ebb003c9e9f33b4b8bb003cf1b457b83fba003c1cbac8b6c8b7003ceabb9ba49530003c50bb4eb4d5b4003c29ba0434b038003ca2bb9723c734003cc1a028b8d5ba003ccfb82e35d839003c3db994b9a4b4003cf1badab22b37003c6cb420bbc2b5003c73a16dbbf2b5003cf1badab22b37003c99b1bbbb08b2003cd5b7c5baaeb2003c31a1e2bb71b1003c2ab145bb2636003c92b887b91437003c419f85bb7435003ceeae62b8a23a003c69b79db0fe3a003cdea0ffbb77a5003c8ab55a33463b003cf1badab22b37003c92b887b91437003c50bb4eb4d5b4003c46b995b7aab8003cf5bbf5ab372d003c48b97cb7b2b8003ceebb05b08d28003ccbb829b8ddb8003ca6bb5fb4c02e003c082e2ab8c9ba003cf5346eb82eba003c46b995b7aab8003c412ac2b7fcba003c8b3021b57dbb003cbfbbc32ace33003cdbba40336637003cefb85b35b239003c3ab4d835243b003c24208a35813b003cfcbb402b1225003cbbba6635bf36003cd1bbb8b2cc25003c20b81f36213a003cdab0a935623b003c1b206735873b003cfab3a532913b003c9aa84332d73b003c121f5032d73b003c82b8b831733a003cf4bbcc2d75aa003c81ba1f360237003c98bbf0b4922b003c85bae8a99e38003cb8ba9fb20338003c30b19daed93b003c35a8f5abfa3b003ce01c37a9fe3b003c72b611b1363b003c52b9cdb1cb39003cddba86b0e437003c5bba44b1ac38003c6db9f4b85236003c6db9f4b85236003cdeba81b34c37003c9abb29b081b4003ca1bbc5b44227003c8bad8cbb1cb5003c21b927b7fd38003cbcb84ab5e139003c8bb21a32ae3b003c373622b1423b003cdab8452e4f3a003ccbb982367338003c9abb29b081b4003c9bb8d3b9f035003c39b85829c93a003c7db91d21d139003c29bbc5b24536003c0dbafcb7c036003c1db906b65d39003c31b765b6633a003c52b5ffb5ec3a003c8eb1c5b5543b003c60ac24b58e3b003cd01711b5963b003c5cb1d9b7d73a003ccbacd2b7f33a003c418c03b8eb3a003c84b563b7893a003c42b8b5b79139003c5db158b8943a003ce8ab6ab8a73a003c13947ab8a13a003ca6b414b8793a003c1cb9b5b57339003c43b086b8823a003c06ac75b89f3a003c7c948ab8963a003c30b432b87b3a003c7cb70fb7203a003c86b035b8b53a003c28ab4eb8ba3a003c089478b8a23a003c09b43eb8793a003c0eb634b8183a003c4fb1cbb7dc3a003c47aa20b8d73a003c769031b8cf3a003cb8b4aeb79b3a003c09b77cb7213a003c2bb07cb9ba39003cbba778b9d439003c3a9967b9e639003cddb346b9af39003cd0b7a7b83439003c86ba92b68436003cd4b946b9ec31003c04b713baaeb7003c8d204eb71dbb003cafb066bb9a35003cadae59bb1736003ca89e4fbb7f36003c79b532bb5534003cb2b25bbb5035003cb1ad46bb7fb6003c0fac8dbb2bb5003c70a178bbbab5003c68ad4cbb6ab6003c8daf20bb05b7003c8ca8c9b866ba003cd8ab33b90eba003cdea0ffbb77a5003c682f70b896ba003c4e2d60b8a9ba003c89baa7324c38003c50bb4eb4d5b4003c373622b1423b003cddba86b0e437003c5bba44b1ac38003cddba86b0e437003c6db9f4b85236003c6db9f4b85236003c063987a8373a003c39b85829c93a003c063987a8373a003c063987a8373a003c6db9f4b85236003c9abb29b081b4003c9bb8d3b9f035003c39b85829c93a003ccbb982367338003c39b85829c93a003c9bb8d3b9f035003c8bad8cbb1cb5003c063987a8373a003c39b85829c93a003c10bb36af4837003cacbb18a667b4003c44b5c9a786bb003cf53922b217b9003cfcba65b14e37003c6aae15b4b13b003cfc3883b11a3a003c93bbd5a914b5003c123b7eb66733003c9c3b62b06c34003c953ae5ac80b8003c4cb3f422c9bb003c51a617b2d93b003ce43983b04a39003c1fba1fb00b39003cf53bc8ab5b2d003c683a02acc3b8003cf53bc8ab5b2d003c9c3b62b06c34003cf53922b217b9003c60b2c12cd1bb003cd6bbe42a2bb2003ccfad33b4af3b003c49395bb1da39003c24ba62b2de38003cf33bbea2eb2e003cf33bbea2eb2e003cd83a701c23b8003c89b01aa0eabb003c89b01aa0eabb003cd6bbf0a850b2003c74ab6cb3c43b003c6e39dcb0bf39003c14bac5b3d138003cf73b45a86b2d003cf73b45a86b2d003cd03a1b212fb8003c5b1e91abfcbb003c92bbadb09ab4003c5b1e91abfcbb003caca98ca8fa3b003cca3920a87d39003c90baca249038003cff3b321b2624003cff3b321b2624003c8b3b4c2c33b5003c90bbcd2a25b5003cc731e92fcbbb003c6fa9f5a8fc3b003c6f390dacd839003c77ba20a8b338003ce93b05aa7a30003ce93b05aa7a30003c583b3c244bb6003cc731e92fcbbb003c5b1e91abfcbb003c00a60224f6bb003ca9bbab267cb4003c00a60224f6bb003c932bd129f13b003c563a26a8d038003ce9b95f285d39003ce83bcdaecc2a003ce83bcdaecc2a003cd43a0aa91bb8003cddb28db2a3bb003cb9bbd6b068b2003c2b3197348d3b003c253af133b038003c51b9dd347539003cd33b1f32892c003cd33b1f32892c003c9a3a7e305eb8003c03b321aec4bb003cbdbb1730f7b2003c3d2d5b38ad3a003cbb3941373d38003c7fb9f336a838003c8b3b4a35cb26003c8b3b4a35cb26003cb9395d3346b9003c28b2a732acbb003c80bb5a332db4003cff316a387f3a003c053a0937d637003c71b9d7375c38003cd33ba032b897003c133ae9ad21b9003c79bb88a8acb5003c52bac7385db0003ce2af44b0ddbb003c6529bf3a4938003c9936a33a0136003c59b68d3aa236003ca439a739da2a003c2ab4e128b7bb003ce2af44b0ddbb003c133ae9ad21b9003cd33ba032b897003ca439a739da2a003c7d3a14342cb8003ce2af44b0ddbb003c133ae9ad21b9003c55321fbb8db6003cddb90ab5c4b8003c55321fbb8db6003cf53922b217b9003ce1b86b330fba003c55aa22b7203b003c383877b6f239003c95b855b6bb39003c1ebb67b4cf35003cd4bb86b28ba6003c3c3b01b59734003c35bbbdb07bb6003c5ab883ada5ba003ca1310eb0c7bb003cf4392cb302b9003c6b3ba9b467b3003c3c3b01b59734003c993b30b47c31003c983b70b082b4003ce93a2eabfeb7003c9834b629a5bb003cccb898a463ba003c4fbba8ac60b6003cf3bbccac0cad003c2bbb0bb4d435003c5db77bb7093a003c3d2b31b8cc3a003c9a3882b6a639003c3c3b01b59734003c993b30b47c31003c352cd1b85d3a003c563836b83c39003cceb666b8bf39003c0bbb1ab59b35003ceabb4ba880b0003cb43b10b4d32d003c22ab4cb6573b003cce38beb5b639003c37b8c3b5283a003cf6ba89b3ed36003cf1bb442926af003cda3b0eb1d42e003c09bb62311eb7003cedba2e2fcbb7003c72b9f130bab9003c7d2d7831dabb003cb63a612857b8003cad3b6fab63b4003cb43b10b4d32d003cda3b0eb1d42e003cc53b6ba978b3003c973a5e2a84b8003c80227733c7bb003cfcb94f3210b9003cf23ba7acce2d003ca83be5ac73b4003c933ae2ac83b8003c12281a9efebb003cd4b90d2a76b9003cf4ba402ec1b7003cf6bbe72a02ad003cfeba31a9bd37003c22b816afca3a003cf2a41cb1e53b003cf93880b02a3a003cf23ba7acce2d003c07afb8aaf03b003c2638eeaad33a003cdfb27c25ce3b003c32384c98cf3a003c9bb8fc9c893a003cedb6d1ac2f3b003c09bb23aa9137003c7dba31aca638003cf3bba0ad69ac003cf8bb79ac17aa003cec3b34af402d003cea3b19ac2930003c1fbb4bae1db7003c96ba19ad7eb8003cb6b9aaad8eb9003cecb80eaf3dba003cd22ce5aeeebb003c812f73b2c7bb003c793a32ada7b8003c563addb1a7b8003c793bbfac92b5003c413b0ab140b6003cea3b19ac2930003cec3b34af402d003ce43b6b2f6b2f003c853b232d4db5003c8c3a8b2697b8003cff2c0ea9f8bb003cecb907a560b9003c70bbfe22dfb5003cfebb92286b21003c37bb0b2dca36003ca9b914308e39003cd1b45531823b003c4c3815319f3a003ce43b6b2f6b2f003ca3b11b2ad63b003c4238ac2cba3a003c32b16dadd73b003c7e383baf8a3a003c03b9d5ac2f3a003c00b91b29333a003c2ebb1aabf336003c28bb462c0137003cf7bb02ab6d2c003cf5bbb72df328003ce23b972e4f30003ce43b28a9fc30003c79bbc6ac8db5003c75bb0e2e90b5003c76b9d4b0b3b9003c46b9d42df8b9003c9e2045afeabb003c9431c52dd8bb003c6a39c298dbb9003ccc39692c7bb9003c413b1125afb6003c2f3bc62de0b6003ce43b28a9fc30003ce23b972e4f30003cc83b4aab3033003c5f3b3daa27b6003c8138eaab94ba003c85ad20b1d9bb003c9db99faca8b9003cacbb32a080b4003cf0bb3729512f003c06bbde2d8137003cc1b81930583a003c68b0d92fdb3b003c2138c32ad53a003cc83b4aab3033003c05259d34a83b003c0239b433ee39003c26b85a354a3a003cbaba90359f36003c90bb1735562c003c9c3b92311234003c86aa6636523b003c4e381f36013a003c48b726366c3a003c36ba1a360338003c85bb6f352925003c4a3b8b352033003c77bb073389b4003c60bbb934fcb3003c4ab9513560b9003c1fb1083578bb003cc63839369ab9003c6a3b583423b4003c9c3b92311234003c4a3b8b352033003c333bc535ccb3003c1936b535d2ba003c33b47e2fa9bb003cd8b806331eba003caf3b7e320d32003c783b582c9cb5003cc638e8390135003c173a1e39ceae003cf93510b058bb003c8f360f254bbb003c23b32eb628bb003c03b3f03910b9003cb3b8b9b32dba003c6bb85536ddb9003c65bb562015b6003cbdb930390bb4003cdebba23104a8003c9bb9a339032f003c8aba2235a637003c0eb83b3ae635003c77b74636573a003c89b4593a4d38003c2dac6236513b003c3da94f3ae838003c2b388b353d3a003c6034253aa138003caf3b7e320d32003cc638e8390135003cf53922b217b9003c123b7eb66733003c9c3b62b06c34003cb9395d3346b9003cd33ba032b897003c52bac7385db0003c59b68d3aa236003c56a4ff3bfc21003c2ab4e128b7bb003ca439a739da2a003c7d3a14342cb8003c6529bf3a4938003c9936a33a0136003c6bb85536ddb9003c77a8ef3bc32f003c03b3f03910b9003cbdb930390bb4003c173a1e39ceae003c8f360f254bbb003c0da2f43bac2e003c9bb9a339032f003cc638e8390135003c6034253aa138003c3da94f3ae838003c89b4593a4d38003c0eb83b3ae635003c8fb9cab27d39003cf3b8c6364a39003cfcb3a8b0a53b003ca7bb9e34f728003c82389eb7e238003ccfbaf3b7b02c003cf4bbdcadff2a003ca8ba18b83530003c9731eab9d338003c0f2fbeb85c3a003c92b81b2a8d3a003cc42ad2b96d39003cccbb6e3096b1003c2bbb92b6ccb0003c073029ba4338003cabbb21b45c29003cde3813b8f437003c8cb4d9bace2c003c73357bba8733003c3fbb4ab5e731003cc031f0ba3431003c8cb4d9bace2c003c6a39afb73f37003cc1b2dfba8b31003ca238d6396a99003c7c3088ba9735003caabbff981e34003cfb33d7bae930003c5c267eba1736003c42a8f4b9fd37003c9ead82bae435003cdc39aab62537003c32bbc1924936003c4eb78c34f839003c0fadf435813a003ce436e82e693a003cfcb3a8b0a53b003cf3b8c6364a39003c05245539e639003c27399f38eb37003cc93ad237282a003c82389eb7e238003c052cf73b38a7003c7a37a43a74b4003ce4b863388ab8003c65b5253958b9003cccbb6e3096b1003c2bbb92b6ccb0003c4135ca3ad6b2003c89b5673a36b5003cabbb21b45c29003ccc3885392132003cde3813b8f437003c6c33f73aaa29003cdcb4d03aacac003c3fbb4ab5e731003ca238d6396a99003c4534d53a1fb0003cfcb2e43a03b1003caabbff981e34003c0534c23a53b2003c91392339c525003c6a39afb73f37003c00b5993ad7b2003c32bbc1924936003c0fadf435813a003c4eb78c34f839003cdc39aab62537003ce436e82e693a003cf4bbdcadff2a003c92b81b2a8d3a003c8fb9cab27d39003ca8ba18b83530003cf4bbdcadff2a003cdc39aab62537003c91392339c525003ce436e82e693a003c1d3afcb849b1003c3839ccb60539003c8c13ffbb9e91003c4f2faeba4bb8003c13baf4b84c32003c29b871ba7bb4003cc0a916b7293b003cc9b82db74f39003c293610ba30b8003ceda1febb65a2003cda2852bb5db6003c563978b9b3b4003c9db966b918b3003c8bb41cba99b8003cfb21ffbb6021003c5f3ad5b8b025003c50ba6cb84134003cacb65cb7453a003c2a2e49b7143b003cd637ffb6083a003c2c3a92b7c936003c953931b37039003c1b34d9b09e3b003c113991363d39003cb23b53347b27003c87b86cb7f238003cbd3a1fb8c02c003cf13b0fafab29003c963a3bb85530003cd3b1cfb91839003c3fafb8b8613a003ca538b828813a003ca0abd0b96c39003ccd3ba62ff3b1003c183bd5b61cb1003c51b02bba2d38003ca13b69b4ea26003ce7b8f9b70638003c4d34e3ba962c003ca7b56eba9f33003c363b90b59831003c38b2e9ba4431003c4d34e3ba962c003c73b981b75637003c4b32e7ba6731003c86b8ec39671d003cdcb084ba9435003caf3b6da5eb33003c39b4cebaef30003ca2a87fba0d36003c3e26f9b9f137003ce12c88bad535003ce2b978b63e37003c393be8a42236003c83375c34f139003c0a2ee035823a003cb9b6352f733a003c1b34d9b09e3b003c781c4239ec39003c113991363d39003c06b9b2380538003cb5ba0f38582a003c87b86cb7f238003cafa9f63b4da6003c46b7b43a4fb4003ced384b3898b8003c7a35153966b9003ccd3ba62ff3b1003c183bd5b61cb1003c09b5d83adcb3003cb8354c3aeeb5003ca13b69b4ea26003cadb89c395732003ce7b8f9b70638003ce2b2003bf629003c1a35c43ae0ac003c363b90b59831003c86b8ec39671d003c08b4e03aefaf003c7433dc3a05b1003caf3b6da5eb33003c99b3cc3a28b2003c77b93d391328003c73b981b75637003c36358e3addb2003c393be8a42236003c0a2ee035823a003c83375c34f139003ce2b978b63e37003cb9b6352f733a003cf13b0fafab29003c953931b37039003ca538b828813a003c963a3bb85530003cf13b0fafab29003ce2b978b63e37003cb9b6352f733a003c77b93d391328003cd039ba34b938003c5d389b33e639003cb9369334983a003c383ac6344038003cd12246365b3b003c962046371f3b003c9c375436aa39003c73391e344639003ceb251d39253a003cde330f393639003cd32d8038ed39003cab24873b6335003cf01d953b1f96003cd8b1753b6531003ce2b6363b0a2a003c2533c23b4eae003c0838d23a4eb0003c9336853afdb5003c0e3a3039f2ac003c0422fc3bdfaa003c9f3a59384cb0003cc9349f3b4caa003cdc3b202d42b1003c4e3a4238edb4003ccb36943a0cb6003cc13bdb3278af003c1b3bb03608b2003c3938fa3975b6003cc73b68333b28003c6121fd3b882a003c019e993b00b5003cb7a33e3bc9b6003c9f3a023804b4003c75391a39b4b5003c0aa5ef3af8b7003cd839ad38a3b5003c823afd37beb4003c3fa3d23a2cb8003c7538dc36fa38003c9334a337ce39003cf2148536893a003c79394f37d537003cc4243c390b3a003c7123e6396639003c2935fc38bf38003c84385137f338003c04245a3b4936003cd92a173a3a38003c172517395639003cebab813b37ac003cb4b38d3bb6a7003c40b6263b00a7003c4b32ba3bf9b0003cbc37c13a3bb3003c9e34a53a75b6003ccd392c397cb3003cb32be43be3b0003c6d3a5a3887b3003cf230df3bd2ab003c913b372e
gitextract_04xoxgig/
├── Readme.md
└── boids/
├── .gitignore
├── Assets/
│ ├── AnimationBaker/
│ │ ├── Editor/
│ │ │ ├── Tex2dToPng.cs
│ │ │ └── Tex2dToPng.cs.meta
│ │ ├── Editor.meta
│ │ ├── Scenes/
│ │ │ ├── uma.unity
│ │ │ └── uma.unity.meta
│ │ ├── Scenes.meta
│ │ ├── Scripts/
│ │ │ ├── AnimationTextureBaker.cs
│ │ │ ├── AnimationTextureBaker.cs.meta
│ │ │ ├── RenderTextureToTexture2D.cs
│ │ │ └── RenderTextureToTexture2D.cs.meta
│ │ ├── Scripts.meta
│ │ ├── Shaders/
│ │ │ ├── MeshInfoTextureGen.compute
│ │ │ ├── MeshInfoTextureGen.compute.meta
│ │ │ ├── TextureAnimPlayer.shader
│ │ │ ├── TextureAnimPlayer.shader.meta
│ │ │ ├── TextureAnimPlayerI.shader
│ │ │ ├── TextureAnimPlayerI.shader.meta
│ │ │ ├── TextureAnimPlayerNone.shader
│ │ │ └── TextureAnimPlayerNone.shader.meta
│ │ └── Shaders.meta
│ ├── AnimationBaker.meta
│ ├── BakedAnimationTex/
│ │ ├── Horse/
│ │ │ ├── Horse.Horse_Idle.animTex.asset
│ │ │ ├── Horse.Horse_Idle.animTex.asset.meta
│ │ │ ├── Horse.Horse_Idle.normTex.asset
│ │ │ ├── Horse.Horse_Idle.normTex.asset.meta
│ │ │ ├── Horse.Horse_Idle.posTex.asset
│ │ │ ├── Horse.Horse_Idle.posTex.asset.meta
│ │ │ ├── Horse.Horse_Run.animTex.asset
│ │ │ ├── Horse.Horse_Run.animTex.asset.meta
│ │ │ ├── Horse.Horse_Run.normTex.asset
│ │ │ ├── Horse.Horse_Run.normTex.asset.meta
│ │ │ ├── Horse.Horse_Run.posTex.asset
│ │ │ ├── Horse.Horse_Run.posTex.asset.meta
│ │ │ ├── Horse.Horse_Walk.animTex.asset
│ │ │ ├── Horse.Horse_Walk.animTex.asset.meta
│ │ │ ├── Horse.Horse_Walk.normTex.asset
│ │ │ ├── Horse.Horse_Walk.normTex.asset.meta
│ │ │ ├── Horse.Horse_Walk.posTex.asset
│ │ │ └── Horse.Horse_Walk.posTex.asset.meta
│ │ ├── Horse.Horse_Idle.prefab
│ │ ├── Horse.Horse_Idle.prefab.meta
│ │ ├── Horse.Horse_Run.prefab
│ │ ├── Horse.Horse_Run.prefab.meta
│ │ ├── Horse.Horse_Walk.prefab
│ │ ├── Horse.Horse_Walk.prefab.meta
│ │ ├── Horse.meta
│ │ ├── MazeManWalk/
│ │ │ ├── MazeManWalk.mixamo.com.animTex.asset
│ │ │ ├── MazeManWalk.mixamo.com.animTex.asset.meta
│ │ │ ├── MazeManWalk.mixamo.com.normTex.asset
│ │ │ ├── MazeManWalk.mixamo.com.normTex.asset.meta
│ │ │ ├── MazeManWalk.mixamo.com.posTex.asset
│ │ │ └── MazeManWalk.mixamo.com.posTex.asset.meta
│ │ ├── MazeManWalk.meta
│ │ ├── MazeManWalk.mixamo.com.prefab
│ │ ├── MazeManWalk.mixamo.com.prefab.meta
│ │ ├── waker3/
│ │ │ ├── waker3.mixamo.com.animTex.asset
│ │ │ ├── waker3.mixamo.com.animTex.asset.meta
│ │ │ ├── waker3.mixamo.com.normTex.asset
│ │ │ ├── waker3.mixamo.com.normTex.asset.meta
│ │ │ ├── waker3.mixamo.com.posTex.asset
│ │ │ └── waker3.mixamo.com.posTex.asset.meta
│ │ ├── waker3.meta
│ │ ├── waker3.mixamo.com.prefab
│ │ └── waker3.mixamo.com.prefab.meta
│ ├── BakedAnimationTex.meta
│ ├── BoidsSimulationOnGPU/
│ │ ├── BoidsSimulationOnGPU.unity
│ │ ├── BoidsSimulationOnGPU.unity.meta
│ │ ├── ComputeShaders/
│ │ │ ├── Boids.compute
│ │ │ └── Boids.compute.meta
│ │ ├── ComputeShaders.meta
│ │ ├── Materials/
│ │ │ ├── BoidsRender.mat
│ │ │ ├── BoidsRender.mat.meta
│ │ │ ├── MazeLowMan.mat
│ │ │ └── MazeLowMan.mat.meta
│ │ ├── Materials.meta
│ │ ├── MazeLowMan.fbx
│ │ ├── MazeLowMan.fbx.meta
│ │ ├── Scripts/
│ │ │ ├── BoidsRender.cs
│ │ │ ├── BoidsRender.cs.meta
│ │ │ ├── GPUBoids.cs
│ │ │ └── GPUBoids.cs.meta
│ │ ├── Scripts.meta
│ │ ├── Shaders/
│ │ │ ├── BoidsRender.shader
│ │ │ ├── BoidsRender.shader.meta
│ │ │ ├── BoidsRender2.shader
│ │ │ └── BoidsRender2.shader.meta
│ │ └── Shaders.meta
│ ├── BoidsSimulationOnGPU.meta
│ ├── GPUMarchingCubes/
│ │ ├── Materials/
│ │ │ ├── GPUMarchingCubesStandardMesh.mat
│ │ │ └── GPUMarchingCubesStandardMesh.mat.meta
│ │ ├── Materials.meta
│ │ ├── Sample.unity
│ │ ├── Sample.unity.meta
│ │ ├── Scripts/
│ │ │ ├── GPUMarchingCubesDrawMesh.cs
│ │ │ ├── GPUMarchingCubesDrawMesh.cs.meta
│ │ │ ├── MarchingCubesDefines.cs
│ │ │ └── MarchingCubesDefines.cs.meta
│ │ ├── Scripts.meta
│ │ ├── Shaders/
│ │ │ ├── GPUMarchingCubesRenderStandardMesh.shader
│ │ │ ├── GPUMarchingCubesRenderStandardMesh.shader.meta
│ │ │ ├── Libs/
│ │ │ │ ├── Primitives.cginc
│ │ │ │ ├── Primitives.cginc.meta
│ │ │ │ ├── Utils.cginc
│ │ │ │ └── Utils.cginc.meta
│ │ │ └── Libs.meta
│ │ └── Shaders.meta
│ ├── GPUMarchingCubes.meta
│ ├── MCMC3d/
│ │ ├── Demo/
│ │ │ ├── DemoMetropolis3d.cs
│ │ │ ├── DemoMetropolis3d.cs.meta
│ │ │ ├── DemoRejection3d.cs
│ │ │ ├── DemoRejection3d.cs.meta
│ │ │ ├── ManagerDemoMetropolis3d.prefab
│ │ │ ├── ManagerDemoMetropolis3d.prefab.meta
│ │ │ ├── ManagerDemoRejection3d.prefab
│ │ │ ├── ManagerDemoRejection3d.prefab.meta
│ │ │ ├── scene.unity
│ │ │ └── scene.unity.meta
│ │ ├── Demo.meta
│ │ ├── Math/
│ │ │ ├── GaussianDistribution3d.cs
│ │ │ ├── GaussianDistribution3d.cs.meta
│ │ │ ├── Metroplis3d.cs
│ │ │ ├── Metroplis3d.cs.meta
│ │ │ ├── RandomGenerator.cs
│ │ │ ├── RandomGenerator.cs.meta
│ │ │ ├── Rejection3d.cs
│ │ │ ├── Rejection3d.cs.meta
│ │ │ ├── SimplexNoiseGenerator.cs
│ │ │ └── SimplexNoiseGenerator.cs.meta
│ │ ├── Math.meta
│ │ ├── Resource/
│ │ │ ├── cube1.prefab
│ │ │ ├── cube1.prefab.meta
│ │ │ ├── cube2.prefab
│ │ │ ├── cube2.prefab.meta
│ │ │ ├── cube3.prefab
│ │ │ ├── cube3.prefab.meta
│ │ │ ├── cube4.prefab
│ │ │ ├── cube4.prefab.meta
│ │ │ ├── cube5.prefab
│ │ │ ├── cube5.prefab.meta
│ │ │ ├── cube6.prefab
│ │ │ ├── cube6.prefab.meta
│ │ │ ├── cube7.prefab
│ │ │ ├── cube7.prefab.meta
│ │ │ ├── cube8.prefab
│ │ │ ├── cube8.prefab.meta
│ │ │ ├── cube9.prefab
│ │ │ ├── cube9.prefab.meta
│ │ │ ├── mat1.mat
│ │ │ ├── mat1.mat.meta
│ │ │ ├── mat2.mat
│ │ │ ├── mat2.mat.meta
│ │ │ ├── mat3.mat
│ │ │ ├── mat3.mat.meta
│ │ │ ├── mat4.mat
│ │ │ ├── mat4.mat.meta
│ │ │ ├── mat5.mat
│ │ │ ├── mat5.mat.meta
│ │ │ ├── mat6.mat
│ │ │ ├── mat6.mat.meta
│ │ │ ├── mat7.mat
│ │ │ ├── mat7.mat.meta
│ │ │ ├── mat8.mat
│ │ │ ├── mat8.mat.meta
│ │ │ ├── mat9.mat
│ │ │ └── mat9.mat.meta
│ │ └── Resource.meta
│ ├── MCMC3d.meta
│ ├── Plugins/
│ │ ├── Editor/
│ │ │ └── JetBrains.meta
│ │ └── Editor.meta
│ ├── Plugins.meta
│ ├── ProceduralModeling/
│ │ ├── Resources/
│ │ │ ├── Materials/
│ │ │ │ ├── Normal.mat
│ │ │ │ ├── Normal.mat.meta
│ │ │ │ ├── ProceduralTreeNormal.mat
│ │ │ │ ├── ProceduralTreeNormal.mat.meta
│ │ │ │ ├── ProceduralTreeStandard.mat
│ │ │ │ ├── ProceduralTreeStandard.mat.meta
│ │ │ │ ├── ProceduralTreeUV.mat
│ │ │ │ ├── ProceduralTreeUV.mat.meta
│ │ │ │ ├── Standard.mat
│ │ │ │ ├── Standard.mat.meta
│ │ │ │ ├── UV.mat
│ │ │ │ └── UV.mat.meta
│ │ │ └── Materials.meta
│ │ ├── Resources.meta
│ │ ├── Scenes/
│ │ │ ├── Cylinder.unity
│ │ │ ├── Cylinder.unity.meta
│ │ │ ├── LSystem.unity
│ │ │ ├── LSystem.unity.meta
│ │ │ ├── ParametricPlane.unity
│ │ │ ├── ParametricPlane.unity.meta
│ │ │ ├── Plane.unity
│ │ │ ├── Plane.unity.meta
│ │ │ ├── ProceduralTree.unity
│ │ │ ├── ProceduralTree.unity.meta
│ │ │ ├── Quad.unity
│ │ │ ├── Quad.unity.meta
│ │ │ ├── Tubular.unity
│ │ │ └── Tubular.unity.meta
│ │ ├── Scenes.meta
│ │ ├── Scripts/
│ │ │ ├── BadCylinder.cs
│ │ │ ├── BadCylinder.cs.meta
│ │ │ ├── Curve/
│ │ │ │ ├── CatmullRomCurve.cs
│ │ │ │ ├── CatmullRomCurve.cs.meta
│ │ │ │ ├── CurveBase.cs
│ │ │ │ ├── CurveBase.cs.meta
│ │ │ │ ├── FrenetFrame.cs
│ │ │ │ └── FrenetFrame.cs.meta
│ │ │ ├── Curve.meta
│ │ │ ├── Cylinder.cs
│ │ │ ├── Cylinder.cs.meta
│ │ │ ├── Editor.meta
│ │ │ ├── LSystem.cs
│ │ │ ├── LSystem.cs.meta
│ │ │ ├── Plane.cs
│ │ │ ├── Plane.cs.meta
│ │ │ ├── ProceduralModelingBase.cs
│ │ │ ├── ProceduralModelingBase.cs.meta
│ │ │ ├── ProceduralTree.cs
│ │ │ ├── ProceduralTree.cs.meta
│ │ │ ├── Quad.cs
│ │ │ ├── Quad.cs.meta
│ │ │ ├── Tubular.cs
│ │ │ └── Tubular.cs.meta
│ │ └── Scripts.meta
│ ├── ProceduralModeling.meta
│ ├── SimpleComputeShader/
│ │ ├── SampleScene_Array/
│ │ │ ├── SimpleComputeShader_Array.compute
│ │ │ ├── SimpleComputeShader_Array.compute.meta
│ │ │ ├── SimpleComputeShader_Array.cs
│ │ │ ├── SimpleComputeShader_Array.cs.meta
│ │ │ ├── SimpleComputeShader_Array.unity
│ │ │ └── SimpleComputeShader_Array.unity.meta
│ │ ├── SampleScene_Array.meta
│ │ ├── SampleScene_Texture/
│ │ │ ├── SimpleComputeShader_Texture.compute
│ │ │ ├── SimpleComputeShader_Texture.compute.meta
│ │ │ ├── SimpleComputeShader_Texture.cs
│ │ │ ├── SimpleComputeShader_Texture.cs.meta
│ │ │ ├── SimpleComputeShader_Texture.unity
│ │ │ ├── SimpleComputeShader_Texture.unity.meta
│ │ │ ├── UnlitMaterial.mat
│ │ │ └── UnlitMaterial.mat.meta
│ │ └── SampleScene_Texture.meta
│ ├── SimpleComputeShader.meta
│ ├── Test/
│ │ ├── Materials.meta
│ │ ├── Model/
│ │ │ ├── Materials/
│ │ │ │ ├── MazeLowMan.mat
│ │ │ │ ├── MazeLowMan.mat.meta
│ │ │ │ ├── body_color_map.mat
│ │ │ │ ├── body_color_map.mat.meta
│ │ │ │ ├── eyes_color_map.mat
│ │ │ │ ├── eyes_color_map.mat.meta
│ │ │ │ ├── face_color_map.mat
│ │ │ │ └── face_color_map.mat.meta
│ │ │ ├── Materials.meta
│ │ │ ├── MazeLowMan.fbx
│ │ │ ├── MazeLowMan.fbx.meta
│ │ │ ├── MazeManWalk.fbx
│ │ │ ├── MazeManWalk.fbx.meta
│ │ │ ├── Walking (1).fbm/
│ │ │ │ ├── body normal.png.meta
│ │ │ │ ├── body_color_map.png.meta
│ │ │ │ ├── body_specular_map.png.meta
│ │ │ │ ├── eyes_color_map.png.meta
│ │ │ │ ├── eyes_specular_map.png.meta
│ │ │ │ ├── face normal.png.meta
│ │ │ │ └── face_color_map.png.meta
│ │ │ ├── Walking (1).fbm.meta
│ │ │ ├── Walking (1).fbx
│ │ │ ├── Walking (1).fbx.meta
│ │ │ ├── Walking.fbx
│ │ │ ├── Walking.fbx.meta
│ │ │ ├── waker3.fbm/
│ │ │ │ ├── body normal.png.meta
│ │ │ │ ├── body_color_map.png.meta
│ │ │ │ ├── body_specular_map.png.meta
│ │ │ │ ├── eyes_color_map.png.meta
│ │ │ │ ├── eyes_specular_map.png.meta
│ │ │ │ ├── face normal.png.meta
│ │ │ │ └── face_color_map.png.meta
│ │ │ ├── waker3.fbm.meta
│ │ │ ├── waker3.fbx
│ │ │ └── waker3.fbx.meta
│ │ ├── Model.meta
│ │ ├── Scene/
│ │ │ ├── fukusei.unity
│ │ │ ├── fukusei.unity.meta
│ │ │ ├── fukusei_plane.unity
│ │ │ ├── fukusei_plane.unity.meta
│ │ │ ├── walker_gen.unity
│ │ │ └── walker_gen.unity.meta
│ │ ├── Scene.meta
│ │ ├── Scripts/
│ │ │ ├── Cam.cs
│ │ │ ├── Cam.cs.meta
│ │ │ ├── Fukusei.cs
│ │ │ ├── Fukusei.cs.meta
│ │ │ ├── Fukusei2.cs
│ │ │ ├── Fukusei2.cs.meta
│ │ │ ├── Fukusei3.cs
│ │ │ ├── Fukusei3.cs.meta
│ │ │ ├── Fukusei3Main.cs
│ │ │ ├── Fukusei3Main.cs.meta
│ │ │ ├── ImgPos.cs
│ │ │ └── ImgPos.cs.meta
│ │ ├── Scripts.meta
│ │ ├── Shader/
│ │ │ ├── NewSurfaceShader.shader
│ │ │ └── NewSurfaceShader.shader.meta
│ │ ├── Shader.meta
│ │ └── au.png.meta
│ └── Test.meta
├── ProjectSettings/
│ ├── AudioManager.asset
│ ├── ClusterInputManager.asset
│ ├── DynamicsManager.asset
│ ├── EditorBuildSettings.asset
│ ├── EditorSettings.asset
│ ├── GraphicsSettings.asset
│ ├── InputManager.asset
│ ├── NavMeshAreas.asset
│ ├── NetworkManager.asset
│ ├── Physics2DSettings.asset
│ ├── ProjectSettings.asset
│ ├── ProjectVersion.txt
│ ├── QualitySettings.asset
│ ├── TagManager.asset
│ ├── TimeManager.asset
│ └── UnityConnectSettings.asset
└── UnityPackageManager/
└── manifest.json
SYMBOL INDEX (170 symbols across 33 files)
FILE: boids/Assets/AnimationBaker/Editor/Tex2dToPng.cs
class Tex2dToPng (line 6) | public class Tex2dToPng
method SaveSelection (line 8) | [MenuItem("Custom/tex2png")]
FILE: boids/Assets/AnimationBaker/Scripts/AnimationTextureBaker.cs
class AnimationTextureBaker (line 10) | public class AnimationTextureBaker : MonoBehaviour
type VertInfo (line 15) | public struct VertInfo
method Start (line 22) | void Start()
FILE: boids/Assets/AnimationBaker/Scripts/RenderTextureToTexture2D.cs
class RenderTextureToTexture2D (line 3) | public class RenderTextureToTexture2D : MonoBehaviour
method Convert (line 6) | public static Texture2D Convert(RenderTexture rt)
method Convert (line 33) | static Texture2D Convert(RenderTexture rt, TextureFormat format)
FILE: boids/Assets/BoidsSimulationOnGPU/Scripts/BoidsRender.cs
class BoidsRender (line 8) | [RequireComponent(typeof(GPUBoids))]
method Start (line 44) | void Start()
method Update (line 72) | void Update()
method OnDisable (line 78) | void OnDisable()
method RenderInstancedMesh (line 88) | void RenderInstancedMesh()
FILE: boids/Assets/BoidsSimulationOnGPU/Scripts/GPUBoids.cs
class GPUBoids (line 10) | public class GPUBoids : MonoBehaviour
type BoidData (line 13) | [System.Serializable]
method GetBoidDataBuffer (line 71) | public ComputeBuffer GetBoidDataBuffer()
method GetMaxObjectNum (line 77) | public int GetMaxObjectNum()
method GetSimulationAreaCenter (line 83) | public Vector3 GetSimulationAreaCenter()
method GetSimulationAreaSize (line 89) | public Vector3 GetSimulationAreaSize()
method Start (line 96) | void Start()
method Update (line 102) | void Update()
method OnDestroy (line 108) | void OnDestroy()
method OnDrawGizmos (line 114) | void OnDrawGizmos()
method InitBuffer (line 124) | void InitBuffer()
method Simulation (line 158) | void Simulation()
method ReleaseBuffer (line 193) | void ReleaseBuffer()
FILE: boids/Assets/GPUMarchingCubes/Scripts/GPUMarchingCubesDrawMesh.cs
class GPUMarchingCubesDrawMesh (line 7) | public class GPUMarchingCubesDrawMesh : MonoBehaviour {
method Initialize (line 35) | void Initialize()
method CreateMesh (line 50) | void CreateMesh()
method RenderMesh (line 92) | void RenderMesh()
method Start (line 126) | void Start ()
method Update (line 131) | void Update()
method OnDestroy (line 136) | void OnDestroy()
method OnDrawGizmos (line 141) | private void OnDrawGizmos()
FILE: boids/Assets/GPUMarchingCubes/Scripts/MarchingCubesDefines.cs
class MarchingCubesDefines (line 8) | public class MarchingCubesDefines {
method MarchingCubesDefines (line 19) | public MarchingCubesDefines()
method ReleaseBuffer (line 41) | public void ReleaseBuffer()
FILE: boids/Assets/MCMC3d/Demo/DemoMetropolis3d.cs
class DemoMetropolis3d (line 5) | public class DemoMetropolis3d : MonoBehaviour
method Start (line 16) | void Start()
method Prepare (line 24) | void Prepare()
method Generate (line 37) | IEnumerator Generate()
FILE: boids/Assets/MCMC3d/Demo/DemoRejection3d.cs
class DemoRejection3d (line 6) | public class DemoRejection3d : MonoBehaviour {
type DistributionData (line 19) | struct DistributionData
method Start (line 27) | void Start()
method Generate (line 33) | IEnumerator Generate()
FILE: boids/Assets/MCMC3d/Math/GaussianDistribution3d.cs
class GaussianDistribution3d (line 7) | public static class GaussianDistribution3d
method ProbablityStandard (line 9) | public static float ProbablityStandard()
method GenerateRandomPointStandard (line 17) | public static Vector3 GenerateRandomPointStandard()
method GenerateRandomPoint (line 25) | public static Vector3 GenerateRandomPoint(Vector3 arg, Matrix4x4 sigma)
FILE: boids/Assets/MCMC3d/Math/Metroplis3d.cs
class Metropolis3d (line 6) | public class Metropolis3d
method Metropolis3d (line 16) | public Metropolis3d(Vector4[] data, Vector3 scale)
method Reset (line 22) | public void Reset()
method Chain (line 31) | public IEnumerable<Vector3> Chain(int nInitialize, int limit, float th...
method Next (line 45) | void Next(float threshold)
method Density (line 59) | float Density(Vector3 pos)
FILE: boids/Assets/MCMC3d/Math/RandomGenerator.cs
class RandomGenerator (line 5) | public static class RandomGenerator
method exponential_distribution (line 10) | public static float exponential_distribution(float lambda)
method rand_gaussian (line 18) | public static float rand_gaussian(float mu, float sigma)
method rand_cauchy (line 27) | public static float rand_cauchy(float mu, float gamma)
method rand_chi (line 35) | public static float rand_chi(int k)
method rand_lnormal (line 51) | public static float rand_lnormal(float mu, float sigma)
method rand_prepared (line 60) | public static float rand_prepared(float[] arr)
FILE: boids/Assets/MCMC3d/Math/Rejection3d.cs
class Rejection3d (line 7) | public class Rejection3d
method Rejection3d (line 14) | public Rejection3d(Vector3 origin, float scale, float aspect)
method Sequence (line 22) | public IEnumerable<Vector3> Sequence(int limit, float threshold)
FILE: boids/Assets/MCMC3d/Math/SimplexNoiseGenerator.cs
class SimplexNoiseGenerator (line 7) | public class SimplexNoiseGenerator
method SimplexNoiseGenerator (line 16) | public SimplexNoiseGenerator()
method SimplexNoiseGenerator (line 27) | public SimplexNoiseGenerator(string seed)
method SimplexNoiseGenerator (line 47) | public SimplexNoiseGenerator(int[] seed)
method GetSeed (line 52) | public string GetSeed()
method coherentNoise (line 66) | public float coherentNoise(float x, float y, float z, int octaves = 1,...
method getDensity (line 79) | public int getDensity(Vector3 loc)
method getDensityFloat (line 85) | public float getDensityFloat(Vector3 loc)
method noise (line 92) | public float noise(float x, float y, float z)
method kay (line 112) | float kay(int a)
method shuffle (line 139) | int shuffle(int i, int j, int k)
method b (line 144) | int b(int i, int j, int k, int B)
method b (line 149) | int b(int N, int B)
method fastfloor (line 154) | int fastfloor(float n)
FILE: boids/Assets/ProceduralModeling/Scripts/BadCylinder.cs
class BadCylinder (line 7) | public class BadCylinder : ProceduralModelingBase {
method Build (line 16) | protected override Mesh Build() {
method GenerateCap (line 86) | void GenerateCap(int segments, float top, float bottom, float radius, ...
FILE: boids/Assets/ProceduralModeling/Scripts/Curve/CatmullRomCurve.cs
class CubicPoly3D (line 7) | public class CubicPoly3D {
method CubicPoly3D (line 10) | public CubicPoly3D(Vector3 v0, Vector3 v1, Vector3 v2, Vector3 v3, flo...
method Calculate (line 20) | public Vector3 Calculate(float t) {
class CatmullRomCurve (line 27) | [System.Serializable]
method GetPoint (line 30) | protected override Vector3 GetPoint(float t) {
FILE: boids/Assets/ProceduralModeling/Scripts/Curve/CurveBase.cs
class CurveBase (line 9) | [System.Serializable]
method GetPoint (line 20) | protected abstract Vector3 GetPoint(float t);
method GetTangent (line 22) | protected virtual Vector3 GetTangent(float t) {
method GetPointAt (line 36) | public Vector3 GetPointAt(float u) {
method GetTangentAt (line 41) | public Vector3 GetTangentAt(float u) {
method GetLengths (line 46) | float[] GetLengths(int divisions = -1) {
method GetUtoTmapping (line 76) | protected float GetUtoTmapping(float u) {
method ComputeFrenetFrames (line 120) | public List<FrenetFrame> ComputeFrenetFrames (int segments, bool close...
method ComputeFrenetFrames (line 146) | public List<FrenetFrame> ComputeFrenetFrames(int segments, Vector3 nor...
FILE: boids/Assets/ProceduralModeling/Scripts/Curve/FrenetFrame.cs
class FrenetFrame (line 7) | public class FrenetFrame {
method FrenetFrame (line 14) | public FrenetFrame(Vector3 t, Vector3 n, Vector3 bn) {
FILE: boids/Assets/ProceduralModeling/Scripts/Cylinder.cs
class Cylinder (line 7) | public class Cylinder : ProceduralModelingBase {
method Build (line 16) | protected override Mesh Build() {
method GenerateCap (line 92) | void GenerateCap(int segments, float top, float bottom, float radius, ...
FILE: boids/Assets/ProceduralModeling/Scripts/LSystem.cs
class LSystem (line 7) | public class LSystem : MonoBehaviour {
method OnEnable (line 17) | void OnEnable () {
method DrawLSystem (line 25) | void DrawLSystem(int depth, float length = 2f) {
method DrawFractal (line 32) | void DrawFractal(Matrix4x4 current, int depth, float length) {
method OnRenderObject (line 52) | void OnRenderObject () {
FILE: boids/Assets/ProceduralModeling/Scripts/Plane.cs
class Plane (line 7) | public class Plane : ProceduralModelingBase {
method Build (line 15) | protected override Mesh Build() {
FILE: boids/Assets/ProceduralModeling/Scripts/ProceduralModelingBase.cs
type ProceduralModelingMaterial (line 7) | public enum ProceduralModelingMaterial {
class ProceduralModelingBase (line 13) | [RequireComponent (typeof(MeshFilter), typeof(MeshRenderer))]
method Start (line 40) | protected virtual void Start () {
method Rebuild (line 44) | public void Rebuild() {
method LoadMaterial (line 56) | protected virtual Material LoadMaterial(ProceduralModelingMaterial typ...
method Build (line 66) | protected abstract Mesh Build();
FILE: boids/Assets/ProceduralModeling/Scripts/ProceduralTree.cs
class ProceduralTree (line 10) | public class ProceduralTree : ProceduralModelingBase {
method Build (line 27) | public static Mesh Build(TreeData data, int generations, float length,...
method Build (line 110) | protected override Mesh Build ()
method TraverseMaxLength (line 116) | static float TraverseMaxLength(TreeBranch branch) {
method Traverse (line 126) | static void Traverse(TreeBranch from, Action<TreeBranch> action) {
class TreeData (line 137) | [System.Serializable]
method Setup (line 153) | public void Setup() {
method Range (line 157) | public int Range(int a, int b) {
method Range (line 161) | public float Range(float a, float b) {
method GetRandomBranches (line 165) | public int GetRandomBranches() {
method GetRandomGrowthAngle (line 169) | public float GetRandomGrowthAngle() {
method GetRandomBendDegree (line 173) | public float GetRandomBendDegree() {
class TreeBranch (line 179) | public class TreeBranch {
method TreeBranch (line 211) | public TreeBranch(int generations, float length, float radius, TreeDat...
method TreeBranch (line 214) | protected TreeBranch(int generation, int generations, Vector3 from, Ve...
method BuildSegments (line 284) | List<TreeSegment> BuildSegments (TreeData data, float fromRadius, floa...
class TreeSegment (line 311) | public class TreeSegment {
method TreeSegment (line 326) | public TreeSegment(FrenetFrame frame, Vector3 position, float radius) {
class Rand (line 333) | public class Rand {
method Rand (line 342) | public Rand(int seed) {
method Range (line 346) | public int Range(int a, int b) {
method Range (line 351) | public float Range(float a, float b) {
FILE: boids/Assets/ProceduralModeling/Scripts/Quad.cs
class Quad (line 7) | public class Quad : ProceduralModelingBase {
method Build (line 11) | protected override Mesh Build() {
FILE: boids/Assets/ProceduralModeling/Scripts/Tubular.cs
class Tubular (line 11) | public class Tubular : ProceduralModelingBase {
method Build (line 21) | protected override Mesh Build() {
method GenerateSegment (line 69) | void GenerateSegment(
method OnDrawGizmosSelected (line 102) | void OnDrawGizmosSelected () {
method DrawCurve (line 107) | void DrawCurve() {
method DrawFrenetFrames (line 151) | void DrawFrenetFrames() {
FILE: boids/Assets/SimpleComputeShader/SampleScene_Array/SimpleComputeShader_Array.cs
class SimpleComputeShader_Array (line 3) | public class SimpleComputeShader_Array : MonoBehaviour
method Start (line 14) | void Start()
FILE: boids/Assets/SimpleComputeShader/SampleScene_Texture/SimpleComputeShader_Texture.cs
class SimpleComputeShader_Texture (line 3) | public class SimpleComputeShader_Texture : MonoBehaviour
type ThreadSize (line 16) | struct ThreadSize
method ThreadSize (line 22) | public ThreadSize(uint x, uint y, uint z)
method Start (line 33) | void Start()
method Update (line 82) | void Update()
FILE: boids/Assets/Test/Scripts/Cam.cs
class Cam (line 5) | public class Cam : MonoBehaviour {
method Start (line 18) | void Start () {
method Update (line 31) | void Update () {
FILE: boids/Assets/Test/Scripts/Fukusei.cs
class Fukusei (line 5) | public class Fukusei : MonoBehaviour
method Start (line 15) | void Start ()
method Update (line 43) | void Update () {
FILE: boids/Assets/Test/Scripts/Fukusei2.cs
class Fukusei2 (line 6) | public class Fukusei2 : MonoBehaviour {
method Start (line 19) | void Start ()
method Update (line 41) | private void Update()
FILE: boids/Assets/Test/Scripts/Fukusei3.cs
class Fukusei3 (line 7) | public class Fukusei3 : MonoBehaviour {
method Start (line 23) | void Start ()
method ChangeTarget (line 54) | public void ChangeTarget(int type)
method Update (line 90) | private void Update()
FILE: boids/Assets/Test/Scripts/Fukusei3Main.cs
class Fukusei3Main (line 5) | public class Fukusei3Main : MonoBehaviour
method Start (line 13) | void Start()
method Update (line 26) | void Update()
FILE: boids/Assets/Test/Scripts/ImgPos.cs
class ImgPos (line 5) | public class ImgPos : MonoBehaviour
method Start (line 11) | void Start()
method GetRandomPoint (line 36) | public static Vector2 GetRandomPoint()
Copy disabled (too large)
Download .json
Condensed preview — 323 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (18,697K chars).
[
{
"path": "Readme.md",
"chars": 329,
"preview": "# GPU Instancing + Boids + Animation Texture Baker\nhttps://vimeo.com/249752376\n\n\n \n# Reference\n* GPU Instan"
},
{
"path": "boids/.gitignore",
"chars": 1435,
"preview": "/[Ll]ibrary/\n/[Tt]emp/\n/[Oo]bj/\n/[Bb]uild/\n/[Bb]uilds/\n/Assets/AssetStoreTools*\n\n# Visual Studio 2015 cache directory\n/."
},
{
"path": "boids/Assets/AnimationBaker/Editor/Tex2dToPng.cs",
"chars": 433,
"preview": "using System.Collections;\nusing System.Collections.Generic;\nusing UnityEngine;\nusing UnityEditor;\n\npublic class Tex2dTo"
},
{
"path": "boids/Assets/AnimationBaker/Editor/Tex2dToPng.cs.meta",
"chars": 263,
"preview": "fileFormatVersion: 2\nguid: e537ed6da3d702b4dbcf8cdb878c38bb\ntimeCreated: 1496251456\nlicenseType: Free\nMonoImporter:\n se"
},
{
"path": "boids/Assets/AnimationBaker/Editor.meta",
"chars": 192,
"preview": "fileFormatVersion: 2\nguid: 27fcf8f87e682b641914a2cc74211c02\nfolderAsset: yes\ntimeCreated: 1496251442\nlicenseType: Free\nD"
},
{
"path": "boids/Assets/AnimationBaker/Scenes/uma.unity",
"chars": 13144,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!29 &1\nOcclusionCullingSettings:\n m_ObjectHideFlags: 0\n serializedVersi"
},
{
"path": "boids/Assets/AnimationBaker/Scenes/uma.unity.meta",
"chars": 175,
"preview": "fileFormatVersion: 2\nguid: 7921a3e6819060147b54d111accd7a14\ntimeCreated: 1496040504\nlicenseType: Free\nDefaultImporter:\n "
},
{
"path": "boids/Assets/AnimationBaker/Scenes.meta",
"chars": 191,
"preview": "fileFormatVersion: 2\nguid: fde3828f74b238c4f8d72eb36b96ec0a\nfolderAsset: yes\ntimeCreated: 1462439752\nlicenseType: Pro\nDe"
},
{
"path": "boids/Assets/AnimationBaker/Scripts/AnimationTextureBaker.cs",
"chars": 4610,
"preview": "using System.Collections.Generic;\nusing System.Linq;\nusing UnityEngine;\n\n#if UNITY_EDITOR\nusing UnityEditor;\nusing Syst"
},
{
"path": "boids/Assets/AnimationBaker/Scripts/AnimationTextureBaker.cs.meta",
"chars": 426,
"preview": "fileFormatVersion: 2\nguid: 1e6f548afb5cc444a83b1255089d8530\ntimeCreated: 1496167716\nlicenseType: Free\nMonoImporter:\n se"
},
{
"path": "boids/Assets/AnimationBaker/Scripts/RenderTextureToTexture2D.cs",
"chars": 1248,
"preview": "using UnityEngine;\n\npublic class RenderTextureToTexture2D : MonoBehaviour\n{\n\n public static Texture2D Convert(Render"
},
{
"path": "boids/Assets/AnimationBaker/Scripts/RenderTextureToTexture2D.cs.meta",
"chars": 262,
"preview": "fileFormatVersion: 2\nguid: 270c133f7d489c94e885de62e34f0fd1\ntimeCreated: 1462510710\nlicenseType: Pro\nMonoImporter:\n ser"
},
{
"path": "boids/Assets/AnimationBaker/Scripts.meta",
"chars": 191,
"preview": "fileFormatVersion: 2\nguid: f01a7aa50eb4a4c42a685e5a0a414b16\nfolderAsset: yes\ntimeCreated: 1462439739\nlicenseType: Pro\nDe"
},
{
"path": "boids/Assets/AnimationBaker/Shaders/MeshInfoTextureGen.compute",
"chars": 588,
"preview": "// Each #kernel tells which function to compile; you can have many kernels\n#pragma kernel CSMain\n\nstruct MeshInfo{\n\tflo"
},
{
"path": "boids/Assets/AnimationBaker/Shaders/MeshInfoTextureGen.compute.meta",
"chars": 201,
"preview": "fileFormatVersion: 2\nguid: c6bbf99e5edb32d41b103202a8f10653\ntimeCreated: 1496080002\nlicenseType: Free\nComputeShaderImpor"
},
{
"path": "boids/Assets/AnimationBaker/Shaders/TextureAnimPlayer.shader",
"chars": 3555,
"preview": "Shader \"Unlit/TextureAnimPlayer\"\n{\n\tProperties\n\t{\n\t\t_MainTex (\"Texture\", 2D) = \"white\" {}\n\t\t_PosTex(\"position texture\","
},
{
"path": "boids/Assets/AnimationBaker/Shaders/TextureAnimPlayer.shader.meta",
"chars": 195,
"preview": "fileFormatVersion: 2\nguid: c6e38db4bb1289d4d888dbc1d121a69e\ntimeCreated: 1462530735\nlicenseType: Pro\nShaderImporter:\n d"
},
{
"path": "boids/Assets/AnimationBaker/Shaders/TextureAnimPlayerI.shader",
"chars": 3811,
"preview": "// Upgrade NOTE: replaced 'UNITY_INSTANCE_ID' with 'UNITY_VERTEX_INPUT_INSTANCE_ID'\n\nShader \"Unlit/TextureAnimPlayerI\"\n"
},
{
"path": "boids/Assets/AnimationBaker/Shaders/TextureAnimPlayerI.shader.meta",
"chars": 84,
"preview": "fileFormatVersion: 2\nguid: a63f3a1bb9ad48f68fb732d67bdb6231\ntimeCreated: 1513769876"
},
{
"path": "boids/Assets/AnimationBaker/Shaders/TextureAnimPlayerNone.shader",
"chars": 2154,
"preview": "// Upgrade NOTE: replaced 'UNITY_INSTANCE_ID' with 'UNITY_VERTEX_INPUT_INSTANCE_ID'\n\nShader \"Unlit/TextureAnimPlayerI\"\n"
},
{
"path": "boids/Assets/AnimationBaker/Shaders/TextureAnimPlayerNone.shader.meta",
"chars": 84,
"preview": "fileFormatVersion: 2\nguid: f815386ec96942438c6b53b68a27274d\ntimeCreated: 1514189006"
},
{
"path": "boids/Assets/AnimationBaker/Shaders.meta",
"chars": 191,
"preview": "fileFormatVersion: 2\nguid: 0a9b146a0330b394da7fa6c646d5fe63\nfolderAsset: yes\ntimeCreated: 1462439746\nlicenseType: Pro\nDe"
},
{
"path": "boids/Assets/AnimationBaker.meta",
"chars": 214,
"preview": "fileFormatVersion: 2\nguid: c4b4bc4b6d4d3934996efa3bdb47ceb2\nfolderAsset: yes\ntimeCreated: 1514430106\nlicenseType: Free\nD"
},
{
"path": "boids/Assets/BakedAnimationTex/Horse/Horse.Horse_Idle.animTex.asset",
"chars": 1098,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n serializedVersion: 6\n m_ObjectHideFlags: 0\n m_"
},
{
"path": "boids/Assets/BakedAnimationTex/Horse/Horse.Horse_Idle.animTex.asset.meta",
"chars": 208,
"preview": "fileFormatVersion: 2\nguid: c6d90fd6d7359d840a751b64ba8759bc\ntimeCreated: 1496169661\nlicenseType: Free\nNativeFormatImport"
},
{
"path": "boids/Assets/BakedAnimationTex/Horse/Horse.Horse_Idle.normTex.asset",
"chars": 4195079,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!28 &2800000\nTexture2D:\n m_ObjectHideFlags: 0\n m_PrefabParentObject: {f"
},
{
"path": "boids/Assets/BakedAnimationTex/Horse/Horse.Horse_Idle.normTex.asset.meta",
"chars": 208,
"preview": "fileFormatVersion: 2\nguid: f56d91d0e1d089d48ac97ab4f164c42e\ntimeCreated: 1496169661\nlicenseType: Free\nNativeFormatImport"
},
{
"path": "boids/Assets/BakedAnimationTex/Horse/Horse.Horse_Idle.posTex.asset",
"chars": 4195078,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!28 &2800000\nTexture2D:\n m_ObjectHideFlags: 0\n m_PrefabParentObject: {f"
},
{
"path": "boids/Assets/BakedAnimationTex/Horse/Horse.Horse_Idle.posTex.asset.meta",
"chars": 208,
"preview": "fileFormatVersion: 2\nguid: 123a699558d682e4c87c6ff3aa8cdd48\ntimeCreated: 1496169661\nlicenseType: Free\nNativeFormatImport"
},
{
"path": "boids/Assets/BakedAnimationTex/Horse/Horse.Horse_Run.animTex.asset",
"chars": 1139,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n serializedVersion: 6\n m_ObjectHideFlags: 0\n m_"
},
{
"path": "boids/Assets/BakedAnimationTex/Horse/Horse.Horse_Run.animTex.asset.meta",
"chars": 208,
"preview": "fileFormatVersion: 2\nguid: 3d5b7cf0fa6c84047aea3e72ffb4dccb\ntimeCreated: 1496169646\nlicenseType: Free\nNativeFormatImport"
},
{
"path": "boids/Assets/BakedAnimationTex/Horse/Horse.Horse_Run.normTex.asset",
"chars": 525059,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!28 &2800000\nTexture2D:\n m_ObjectHideFlags: 0\n m_PrefabParentObject: {f"
},
{
"path": "boids/Assets/BakedAnimationTex/Horse/Horse.Horse_Run.normTex.asset.meta",
"chars": 208,
"preview": "fileFormatVersion: 2\nguid: f544904041110c94c8ee0a8044cc848f\ntimeCreated: 1496169646\nlicenseType: Free\nNativeFormatImport"
},
{
"path": "boids/Assets/BakedAnimationTex/Horse/Horse.Horse_Run.posTex.asset",
"chars": 525058,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!28 &2800000\nTexture2D:\n m_ObjectHideFlags: 0\n m_PrefabParentObject: {f"
},
{
"path": "boids/Assets/BakedAnimationTex/Horse/Horse.Horse_Run.posTex.asset.meta",
"chars": 208,
"preview": "fileFormatVersion: 2\nguid: e234fa8a797efdf42bd4f14eb6b31cc4\ntimeCreated: 1496169646\nlicenseType: Free\nNativeFormatImport"
},
{
"path": "boids/Assets/BakedAnimationTex/Horse/Horse.Horse_Walk.animTex.asset",
"chars": 1106,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n serializedVersion: 6\n m_ObjectHideFlags: 0\n m_"
},
{
"path": "boids/Assets/BakedAnimationTex/Horse/Horse.Horse_Walk.animTex.asset.meta",
"chars": 208,
"preview": "fileFormatVersion: 2\nguid: f4ae8e617bece7b458fb90b2b56fc873\ntimeCreated: 1496169644\nlicenseType: Free\nNativeFormatImport"
},
{
"path": "boids/Assets/BakedAnimationTex/Horse/Horse.Horse_Walk.normTex.asset",
"chars": 525060,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!28 &2800000\nTexture2D:\n m_ObjectHideFlags: 0\n m_PrefabParentObject: {f"
},
{
"path": "boids/Assets/BakedAnimationTex/Horse/Horse.Horse_Walk.normTex.asset.meta",
"chars": 208,
"preview": "fileFormatVersion: 2\nguid: 1166f6e4419c85245ad92a60e03bcb3c\ntimeCreated: 1496169643\nlicenseType: Free\nNativeFormatImport"
},
{
"path": "boids/Assets/BakedAnimationTex/Horse/Horse.Horse_Walk.posTex.asset",
"chars": 525059,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!28 &2800000\nTexture2D:\n m_ObjectHideFlags: 0\n m_PrefabParentObject: {f"
},
{
"path": "boids/Assets/BakedAnimationTex/Horse/Horse.Horse_Walk.posTex.asset.meta",
"chars": 208,
"preview": "fileFormatVersion: 2\nguid: 56b270b7d297106489aa1a67759464c5\ntimeCreated: 1496169643\nlicenseType: Free\nNativeFormatImport"
},
{
"path": "boids/Assets/BakedAnimationTex/Horse.Horse_Idle.prefab",
"chars": 2351,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!1001 &100100000\nPrefab:\n m_ObjectHideFlags: 1\n serializedVersion: 2\n "
},
{
"path": "boids/Assets/BakedAnimationTex/Horse.Horse_Idle.prefab.meta",
"chars": 210,
"preview": "fileFormatVersion: 2\nguid: 3cba2467e74451c4597cd1b693450d5b\ntimeCreated: 1496169661\nlicenseType: Free\nNativeFormatImport"
},
{
"path": "boids/Assets/BakedAnimationTex/Horse.Horse_Run.prefab",
"chars": 2350,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!1001 &100100000\nPrefab:\n m_ObjectHideFlags: 1\n serializedVersion: 2\n "
},
{
"path": "boids/Assets/BakedAnimationTex/Horse.Horse_Run.prefab.meta",
"chars": 210,
"preview": "fileFormatVersion: 2\nguid: 3515a695430c9d64db398dfeb0e7414d\ntimeCreated: 1496169646\nlicenseType: Free\nNativeFormatImport"
},
{
"path": "boids/Assets/BakedAnimationTex/Horse.Horse_Walk.prefab",
"chars": 2351,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!1001 &100100000\nPrefab:\n m_ObjectHideFlags: 1\n serializedVersion: 2\n "
},
{
"path": "boids/Assets/BakedAnimationTex/Horse.Horse_Walk.prefab.meta",
"chars": 210,
"preview": "fileFormatVersion: 2\nguid: 930a996bf5c1d984bbccbc2bce22e330\ntimeCreated: 1496169644\nlicenseType: Free\nNativeFormatImport"
},
{
"path": "boids/Assets/BakedAnimationTex/Horse.meta",
"chars": 192,
"preview": "fileFormatVersion: 2\nguid: 88c536cc612bd4245969921622b3f60f\nfolderAsset: yes\ntimeCreated: 1496135710\nlicenseType: Free\nD"
},
{
"path": "boids/Assets/BakedAnimationTex/MazeManWalk/MazeManWalk.mixamo.com.animTex.asset",
"chars": 1133,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n serializedVersion: 6\n m_ObjectHideFlags: 0\n m_"
},
{
"path": "boids/Assets/BakedAnimationTex/MazeManWalk/MazeManWalk.mixamo.com.animTex.asset.meta",
"chars": 230,
"preview": "fileFormatVersion: 2\nguid: 509280b9b1d8f49499a21c79c1350e24\ntimeCreated: 1513756564\nlicenseType: Free\nNativeFormatImport"
},
{
"path": "boids/Assets/BakedAnimationTex/MazeManWalk/MazeManWalk.mixamo.com.normTex.asset",
"chars": 1049354,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!28 &2800000\nTexture2D:\n m_ObjectHideFlags: 0\n m_PrefabParentObject: {f"
},
{
"path": "boids/Assets/BakedAnimationTex/MazeManWalk/MazeManWalk.mixamo.com.normTex.asset.meta",
"chars": 230,
"preview": "fileFormatVersion: 2\nguid: a0ae2416bce47674e88333587ac202ab\ntimeCreated: 1513756563\nlicenseType: Free\nNativeFormatImport"
},
{
"path": "boids/Assets/BakedAnimationTex/MazeManWalk/MazeManWalk.mixamo.com.posTex.asset",
"chars": 1049353,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!28 &2800000\nTexture2D:\n m_ObjectHideFlags: 0\n m_PrefabParentObject: {f"
},
{
"path": "boids/Assets/BakedAnimationTex/MazeManWalk/MazeManWalk.mixamo.com.posTex.asset.meta",
"chars": 230,
"preview": "fileFormatVersion: 2\nguid: 5cccc3adc1f87554b845ade1a549b686\ntimeCreated: 1513756563\nlicenseType: Free\nNativeFormatImport"
},
{
"path": "boids/Assets/BakedAnimationTex/MazeManWalk.meta",
"chars": 214,
"preview": "fileFormatVersion: 2\nguid: 4cf71483f98502a40a42c2bf63db0225\nfolderAsset: yes\ntimeCreated: 1513756443\nlicenseType: Free\nD"
},
{
"path": "boids/Assets/BakedAnimationTex/MazeManWalk.mixamo.com.prefab",
"chars": 2357,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!1001 &100100000\nPrefab:\n m_ObjectHideFlags: 1\n serializedVersion: 2\n "
},
{
"path": "boids/Assets/BakedAnimationTex/MazeManWalk.mixamo.com.prefab.meta",
"chars": 232,
"preview": "fileFormatVersion: 2\nguid: 31bbc45d971a20c4da354f34c4354d83\ntimeCreated: 1513756564\nlicenseType: Free\nNativeFormatImport"
},
{
"path": "boids/Assets/BakedAnimationTex/waker3/waker3.mixamo.com.animTex.asset",
"chars": 1141,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n serializedVersion: 6\n m_ObjectHideFlags: 0\n m_"
},
{
"path": "boids/Assets/BakedAnimationTex/waker3/waker3.mixamo.com.animTex.asset.meta",
"chars": 230,
"preview": "fileFormatVersion: 2\nguid: 2d38bda5bb030894482e595914cf45d7\ntimeCreated: 1513755603\nlicenseType: Free\nNativeFormatImport"
},
{
"path": "boids/Assets/BakedAnimationTex/waker3/waker3.mixamo.com.normTex.asset",
"chars": 525061,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!28 &2800000\nTexture2D:\n m_ObjectHideFlags: 0\n m_PrefabParentObject: {f"
},
{
"path": "boids/Assets/BakedAnimationTex/waker3/waker3.mixamo.com.normTex.asset.meta",
"chars": 230,
"preview": "fileFormatVersion: 2\nguid: d68c480997b1d6d4fa314d64be52dbff\ntimeCreated: 1513755602\nlicenseType: Free\nNativeFormatImport"
},
{
"path": "boids/Assets/BakedAnimationTex/waker3/waker3.mixamo.com.posTex.asset",
"chars": 525060,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!28 &2800000\nTexture2D:\n m_ObjectHideFlags: 0\n m_PrefabParentObject: {f"
},
{
"path": "boids/Assets/BakedAnimationTex/waker3/waker3.mixamo.com.posTex.asset.meta",
"chars": 230,
"preview": "fileFormatVersion: 2\nguid: b228505730e9be14997ee6bde4fc97e8\ntimeCreated: 1513755602\nlicenseType: Free\nNativeFormatImport"
},
{
"path": "boids/Assets/BakedAnimationTex/waker3.meta",
"chars": 214,
"preview": "fileFormatVersion: 2\nguid: cbac8967f12d66c44b94c805eec4209a\nfolderAsset: yes\ntimeCreated: 1513755433\nlicenseType: Free\nD"
},
{
"path": "boids/Assets/BakedAnimationTex/waker3.mixamo.com.prefab",
"chars": 2352,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!1001 &100100000\nPrefab:\n m_ObjectHideFlags: 1\n serializedVersion: 2\n "
},
{
"path": "boids/Assets/BakedAnimationTex/waker3.mixamo.com.prefab.meta",
"chars": 232,
"preview": "fileFormatVersion: 2\nguid: 8bcb3f9098a87524bad470ac7ad72cf3\ntimeCreated: 1513755603\nlicenseType: Free\nNativeFormatImport"
},
{
"path": "boids/Assets/BakedAnimationTex.meta",
"chars": 214,
"preview": "fileFormatVersion: 2\nguid: 4457b8e85130e8848979da19c67e10c4\nfolderAsset: yes\ntimeCreated: 1514430212\nlicenseType: Free\nD"
},
{
"path": "boids/Assets/BoidsSimulationOnGPU/BoidsSimulationOnGPU.unity",
"chars": 11395,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!29 &1\nOcclusionCullingSettings:\n m_ObjectHideFlags: 0\n serializedVersi"
},
{
"path": "boids/Assets/BoidsSimulationOnGPU/BoidsSimulationOnGPU.unity.meta",
"chars": 174,
"preview": "fileFormatVersion: 2\nguid: 90cd09b78ebf02a41b70bb555bded046\ntimeCreated: 1505730664\nlicenseType: Pro\nDefaultImporter:\n "
},
{
"path": "boids/Assets/BoidsSimulationOnGPU/ComputeShaders/Boids.compute",
"chars": 6038,
"preview": "// カーネル関数を指定\n#pragma kernel ForceCS // 操舵力を計算\n#pragma kernel IntegrateCS // 速度, 位置を計算\n\n// Boidデータの構造体\nstruct Boid"
},
{
"path": "boids/Assets/BoidsSimulationOnGPU/ComputeShaders/Boids.compute.meta",
"chars": 200,
"preview": "fileFormatVersion: 2\nguid: 47567044d261e474db26e25410628c0a\ntimeCreated: 1505731768\nlicenseType: Pro\nComputeShaderImport"
},
{
"path": "boids/Assets/BoidsSimulationOnGPU/ComputeShaders.meta",
"chars": 191,
"preview": "fileFormatVersion: 2\nguid: 0032263264a507740a31df52d45c578c\nfolderAsset: yes\ntimeCreated: 1505730621\nlicenseType: Pro\nDe"
},
{
"path": "boids/Assets/BoidsSimulationOnGPU/Materials/BoidsRender.mat",
"chars": 2382,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n serializedVersion: 6\n m_ObjectHideFlags: 0\n m_"
},
{
"path": "boids/Assets/BoidsSimulationOnGPU/Materials/BoidsRender.mat.meta",
"chars": 207,
"preview": "fileFormatVersion: 2\nguid: 91dbb6b6149df404a986444779bcb3a3\ntimeCreated: 1505737684\nlicenseType: Pro\nNativeFormatImporte"
},
{
"path": "boids/Assets/BoidsSimulationOnGPU/Materials/MazeLowMan.mat",
"chars": 2000,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n serializedVersion: 6\n m_ObjectHideFlags: 0\n m_"
},
{
"path": "boids/Assets/BoidsSimulationOnGPU/Materials/MazeLowMan.mat.meta",
"chars": 230,
"preview": "fileFormatVersion: 2\nguid: 1ea76f67e17e66846aef5bac6aede955\ntimeCreated: 1514428436\nlicenseType: Free\nNativeFormatImport"
},
{
"path": "boids/Assets/BoidsSimulationOnGPU/Materials.meta",
"chars": 191,
"preview": "fileFormatVersion: 2\nguid: f5ff61eb07d00644fae8d25fb3168c98\nfolderAsset: yes\ntimeCreated: 1505731715\nlicenseType: Pro\nDe"
},
{
"path": "boids/Assets/BoidsSimulationOnGPU/MazeLowMan.fbx.meta",
"chars": 4061,
"preview": "fileFormatVersion: 2\nguid: a9d3c07810444384c9dc37a84db87b2a\ntimeCreated: 1514428436\nlicenseType: Free\nModelImporter:\n s"
},
{
"path": "boids/Assets/BoidsSimulationOnGPU/Scripts/BoidsRender.cs",
"chars": 3769,
"preview": "using System.Collections;\nusing System.Collections.Generic;\nusing UnityEngine;\n\nnamespace BoidsSimulationOnGPU\n{\n //"
},
{
"path": "boids/Assets/BoidsSimulationOnGPU/Scripts/BoidsRender.cs.meta",
"chars": 479,
"preview": "fileFormatVersion: 2\nguid: c1088025d887acd4189b6dc124e0ebc1\ntimeCreated: 1507467374\nlicenseType: Pro\nMonoImporter:\n ser"
},
{
"path": "boids/Assets/BoidsSimulationOnGPU/Scripts/GPUBoids.cs",
"chars": 6449,
"preview": "using UnityEngine;\nusing System.Collections;\nusing System.Collections.Generic;\nusing System.Runtime.InteropServices;\n\n/"
},
{
"path": "boids/Assets/BoidsSimulationOnGPU/Scripts/GPUBoids.cs.meta",
"chars": 339,
"preview": "fileFormatVersion: 2\nguid: 4be9a8d5d645e4545886be6914d2e5e9\ntimeCreated: 1507467386\nlicenseType: Pro\nMonoImporter:\n ser"
},
{
"path": "boids/Assets/BoidsSimulationOnGPU/Scripts.meta",
"chars": 191,
"preview": "fileFormatVersion: 2\nguid: d357b58f29a0c2c4cbec99353e5dcdd1\nfolderAsset: yes\ntimeCreated: 1505730621\nlicenseType: Pro\nDe"
},
{
"path": "boids/Assets/BoidsSimulationOnGPU/Shaders/BoidsRender.shader",
"chars": 4011,
"preview": "Shader \"Hidden/BoidsSimulationOnGPU/BoidsRender\"\n{\n\tProperties\n\t{\n\t\t_Color (\"Color\", Color) = (1,1,1,1)\n\t\t_MainTex (\"Al"
},
{
"path": "boids/Assets/BoidsSimulationOnGPU/Shaders/BoidsRender.shader.meta",
"chars": 195,
"preview": "fileFormatVersion: 2\nguid: f4853a7a0065e734dacad53805b3b7e3\ntimeCreated: 1505738193\nlicenseType: Pro\nShaderImporter:\n d"
},
{
"path": "boids/Assets/BoidsSimulationOnGPU/Shaders/BoidsRender2.shader",
"chars": 3526,
"preview": "Shader \"Hidden/BoidsSimulationOnGPU/BoidsRender2\"\n{\n\tProperties\n\t{\n\t\t_Color (\"Color\", Color) = (1,1,1,1)\n\t\t_MainTex (\"A"
},
{
"path": "boids/Assets/BoidsSimulationOnGPU/Shaders/BoidsRender2.shader.meta",
"chars": 84,
"preview": "fileFormatVersion: 2\nguid: 372c8b710f3b4572b2cc9b7a37b145fb\ntimeCreated: 1514436380"
},
{
"path": "boids/Assets/BoidsSimulationOnGPU/Shaders.meta",
"chars": 191,
"preview": "fileFormatVersion: 2\nguid: 3cf58ec6d88ff7d47aa5d3cb91553ab7\nfolderAsset: yes\ntimeCreated: 1505730621\nlicenseType: Pro\nDe"
},
{
"path": "boids/Assets/BoidsSimulationOnGPU.meta",
"chars": 191,
"preview": "fileFormatVersion: 2\nguid: b95d633f81bd1114f97481999c5fbad6\nfolderAsset: yes\ntimeCreated: 1507619339\nlicenseType: Pro\nDe"
},
{
"path": "boids/Assets/GPUMarchingCubes/Materials/GPUMarchingCubesStandardMesh.mat",
"chars": 2299,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n serializedVersion: 6\n m_ObjectHideFlags: 0\n m_"
},
{
"path": "boids/Assets/GPUMarchingCubes/Materials/GPUMarchingCubesStandardMesh.mat.meta",
"chars": 208,
"preview": "fileFormatVersion: 2\nguid: c9bebd45a3223054aa470da95cf5b36c\ntimeCreated: 1495390739\nlicenseType: Free\nNativeFormatImport"
},
{
"path": "boids/Assets/GPUMarchingCubes/Materials.meta",
"chars": 192,
"preview": "fileFormatVersion: 2\nguid: 750528e59ec518c4db928ec16113b3dc\nfolderAsset: yes\ntimeCreated: 1495390725\nlicenseType: Free\nD"
},
{
"path": "boids/Assets/GPUMarchingCubes/Sample.unity",
"chars": 10711,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!29 &1\nOcclusionCullingSettings:\n m_ObjectHideFlags: 0\n serializedVersi"
},
{
"path": "boids/Assets/GPUMarchingCubes/Sample.unity.meta",
"chars": 175,
"preview": "fileFormatVersion: 2\nguid: d1c7e31d10f828d44954bdd25df36992\ntimeCreated: 1505060431\nlicenseType: Free\nDefaultImporter:\n "
},
{
"path": "boids/Assets/GPUMarchingCubes/Scripts/GPUMarchingCubesDrawMesh.cs",
"chars": 4723,
"preview": "using System.Runtime.InteropServices;\nusing System.Collections;\nusing System.Collections.Generic;\nusing System.IO;\nusin"
},
{
"path": "boids/Assets/GPUMarchingCubes/Scripts/GPUMarchingCubesDrawMesh.cs.meta",
"chars": 263,
"preview": "fileFormatVersion: 2\nguid: 2b8c25ad413a09b4c8150dcbd37a4d55\ntimeCreated: 1495379522\nlicenseType: Free\nMonoImporter:\n se"
},
{
"path": "boids/Assets/GPUMarchingCubes/Scripts/MarchingCubesDefines.cs",
"chars": 22143,
"preview": "using System.Collections;\nusing System.Collections.Generic;\nusing UnityEngine;\n\n/// <summary>\n/// MarchingCubes用定数配列群\n/"
},
{
"path": "boids/Assets/GPUMarchingCubes/Scripts/MarchingCubesDefines.cs.meta",
"chars": 263,
"preview": "fileFormatVersion: 2\nguid: ba32053b89fccb54c9d76a82adcb484c\ntimeCreated: 1505738672\nlicenseType: Free\nMonoImporter:\n se"
},
{
"path": "boids/Assets/GPUMarchingCubes/Scripts.meta",
"chars": 192,
"preview": "fileFormatVersion: 2\nguid: 2e786eda0c6f5ae4abcbac13b749ddc0\nfolderAsset: yes\ntimeCreated: 1495379512\nlicenseType: Free\nD"
},
{
"path": "boids/Assets/GPUMarchingCubes/Shaders/GPUMarchingCubesRenderStandardMesh.shader",
"chars": 12452,
"preview": "Shader \"Custom/GPUMarchingCubesRenderStandardMesh\"\n{\n\tProperties\n\t{\n\t\t_SegmentNum(\"SegmentNum\", int) = 32\n\n\t\t_Scale(\"Sc"
},
{
"path": "boids/Assets/GPUMarchingCubes/Shaders/GPUMarchingCubesRenderStandardMesh.shader.meta",
"chars": 196,
"preview": "fileFormatVersion: 2\nguid: 4bd001bc21efc2b409bf18708a222e93\ntimeCreated: 1495384565\nlicenseType: Free\nShaderImporter:\n "
},
{
"path": "boids/Assets/GPUMarchingCubes/Shaders/Libs/Primitives.cginc",
"chars": 1434,
"preview": "#ifndef primitives_h\n#define primitives_h\n\n// 球体\ninline float sphere(float3 pos, float radius)\n{\n return length(pos)"
},
{
"path": "boids/Assets/GPUMarchingCubes/Shaders/Libs/Primitives.cginc.meta",
"chars": 196,
"preview": "fileFormatVersion: 2\nguid: dcfed3f65a3aa924a80b509c41c10ffc\ntimeCreated: 1505057443\nlicenseType: Free\nShaderImporter:\n "
},
{
"path": "boids/Assets/GPUMarchingCubes/Shaders/Libs/Utils.cginc",
"chars": 2152,
"preview": "#ifndef utils_h \n#define utils_h \n\n#define PI 3.14159265358979\n\nfloat3 mod(float3 a, float3 b)\n{\n\treturn frac(abs(a / b"
},
{
"path": "boids/Assets/GPUMarchingCubes/Shaders/Libs/Utils.cginc.meta",
"chars": 196,
"preview": "fileFormatVersion: 2\nguid: 49ecbe9b0dedd984aad9c91386d94d6c\ntimeCreated: 1505057056\nlicenseType: Free\nShaderImporter:\n "
},
{
"path": "boids/Assets/GPUMarchingCubes/Shaders/Libs.meta",
"chars": 192,
"preview": "fileFormatVersion: 2\nguid: 50153716b7b4a014dbea1d9f2dd0bb8a\nfolderAsset: yes\ntimeCreated: 1495384351\nlicenseType: Free\nD"
},
{
"path": "boids/Assets/GPUMarchingCubes/Shaders.meta",
"chars": 192,
"preview": "fileFormatVersion: 2\nguid: 18f5592b261d10c4b9a480927b11940b\nfolderAsset: yes\ntimeCreated: 1495379505\nlicenseType: Free\nD"
},
{
"path": "boids/Assets/GPUMarchingCubes.meta",
"chars": 192,
"preview": "fileFormatVersion: 2\nguid: c0163787d57f2554099b1fb65ae37cce\nfolderAsset: yes\ntimeCreated: 1495379414\nlicenseType: Free\nD"
},
{
"path": "boids/Assets/MCMC3d/Demo/DemoMetropolis3d.cs",
"chars": 1448,
"preview": "using System.Collections;\nusing UnityEngine;\nusing komietty.Math;\n\npublic class DemoMetropolis3d : MonoBehaviour\n{\n "
},
{
"path": "boids/Assets/MCMC3d/Demo/DemoMetropolis3d.cs.meta",
"chars": 262,
"preview": "fileFormatVersion: 2\nguid: 7d799e26cec7cb744b630dc69ba17b25\ntimeCreated: 1504086718\nlicenseType: Pro\nMonoImporter:\n ser"
},
{
"path": "boids/Assets/MCMC3d/Demo/DemoRejection3d.cs",
"chars": 1174,
"preview": "using System.Collections;\nusing System.Collections.Generic;\nusing UnityEngine;\nusing komietty.Math;\n\npublic class DemoR"
},
{
"path": "boids/Assets/MCMC3d/Demo/DemoRejection3d.cs.meta",
"chars": 262,
"preview": "fileFormatVersion: 2\nguid: 9c437584513b60943a9ca3548e417f2d\ntimeCreated: 1506266143\nlicenseType: Pro\nMonoImporter:\n ser"
},
{
"path": "boids/Assets/MCMC3d/Demo/ManagerDemoMetropolis3d.prefab",
"chars": 2290,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!1001 &100100000\nPrefab:\n m_ObjectHideFlags: 1\n serializedVersion: 2\n "
},
{
"path": "boids/Assets/MCMC3d/Demo/ManagerDemoMetropolis3d.prefab.meta",
"chars": 209,
"preview": "fileFormatVersion: 2\nguid: 5427e5eec667cfb47b363bf42e040590\ntimeCreated: 1505974205\nlicenseType: Pro\nNativeFormatImporte"
},
{
"path": "boids/Assets/MCMC3d/Demo/ManagerDemoRejection3d.prefab",
"chars": 1721,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!1001 &100100000\nPrefab:\n m_ObjectHideFlags: 1\n serializedVersion: 2\n "
},
{
"path": "boids/Assets/MCMC3d/Demo/ManagerDemoRejection3d.prefab.meta",
"chars": 179,
"preview": "fileFormatVersion: 2\nguid: 8326f084c1a2b4445ab51b68a9e29525\ntimeCreated: 1506268398\nlicenseType: Pro\nNativeFormatImporte"
},
{
"path": "boids/Assets/MCMC3d/Demo/scene.unity",
"chars": 10635,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!29 &1\nOcclusionCullingSettings:\n m_ObjectHideFlags: 0\n serializedVersi"
},
{
"path": "boids/Assets/MCMC3d/Demo/scene.unity.meta",
"chars": 174,
"preview": "fileFormatVersion: 2\nguid: f4a7bb8da7ee43644bcad7eddd57eb6b\ntimeCreated: 1504084385\nlicenseType: Pro\nDefaultImporter:\n "
},
{
"path": "boids/Assets/MCMC3d/Demo.meta",
"chars": 191,
"preview": "fileFormatVersion: 2\nguid: cecf5a43e05b021418830917e090573c\nfolderAsset: yes\ntimeCreated: 1507806255\nlicenseType: Pro\nDe"
},
{
"path": "boids/Assets/MCMC3d/Math/GaussianDistribution3d.cs",
"chars": 1529,
"preview": "using System.Collections;\nusing System.Collections.Generic;\nusing UnityEngine;\n\nnamespace komietty.Math\n{\n public st"
},
{
"path": "boids/Assets/MCMC3d/Math/GaussianDistribution3d.cs.meta",
"chars": 262,
"preview": "fileFormatVersion: 2\nguid: b30f6ea1394b1b645bf6e95721442c35\ntimeCreated: 1504084437\nlicenseType: Pro\nMonoImporter:\n ser"
},
{
"path": "boids/Assets/MCMC3d/Math/Metroplis3d.cs",
"chars": 2139,
"preview": "using UnityEngine;\nusing System.Collections.Generic;\n\nnamespace komietty.Math\n{\n public class Metropolis3d\n {\n "
},
{
"path": "boids/Assets/MCMC3d/Math/Metroplis3d.cs.meta",
"chars": 262,
"preview": "fileFormatVersion: 2\nguid: 459fbccb86caf1e45b1609ef03d14c81\ntimeCreated: 1504088721\nlicenseType: Pro\nMonoImporter:\n ser"
},
{
"path": "boids/Assets/MCMC3d/Math/RandomGenerator.cs",
"chars": 1965,
"preview": "using UnityEngine;\n\nnamespace komietty.Math\n{\n public static class RandomGenerator\n {\n //\n // expon"
},
{
"path": "boids/Assets/MCMC3d/Math/RandomGenerator.cs.meta",
"chars": 262,
"preview": "fileFormatVersion: 2\nguid: 47bd456637e207247bfc52ada07810b8\ntimeCreated: 1504084909\nlicenseType: Pro\nMonoImporter:\n ser"
},
{
"path": "boids/Assets/MCMC3d/Math/Rejection3d.cs",
"chars": 1307,
"preview": "using System.Collections.Generic;\nusing UnityEngine;\n\n\nnamespace komietty.Math\n{\n public class Rejection3d\n {\n "
},
{
"path": "boids/Assets/MCMC3d/Math/Rejection3d.cs.meta",
"chars": 262,
"preview": "fileFormatVersion: 2\nguid: a07900cad0216b345bdf62e859f992b9\ntimeCreated: 1506266187\nlicenseType: Pro\nMonoImporter:\n ser"
},
{
"path": "boids/Assets/MCMC3d/Math/SimplexNoiseGenerator.cs",
"chars": 4402,
"preview": "using UnityEngine;\nusing System.Collections;\n\n\nnamespace komietty.Math\n{\n public class SimplexNoiseGenerator\n {\n "
},
{
"path": "boids/Assets/MCMC3d/Math/SimplexNoiseGenerator.cs.meta",
"chars": 262,
"preview": "fileFormatVersion: 2\nguid: 68a60af1f5fdf8a46b16a4a847b24258\ntimeCreated: 1504153935\nlicenseType: Pro\nMonoImporter:\n ser"
},
{
"path": "boids/Assets/MCMC3d/Math.meta",
"chars": 191,
"preview": "fileFormatVersion: 2\nguid: a2b7310231e0a4946b00811ede6cb391\nfolderAsset: yes\ntimeCreated: 1507808604\nlicenseType: Pro\nDe"
},
{
"path": "boids/Assets/MCMC3d/Resource/cube1.prefab",
"chars": 2312,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!1001 &100100000\nPrefab:\n m_ObjectHideFlags: 1\n serializedVersion: 2\n "
},
{
"path": "boids/Assets/MCMC3d/Resource/cube1.prefab.meta",
"chars": 209,
"preview": "fileFormatVersion: 2\nguid: da322ed11ed72de498d714e4b596c905\ntimeCreated: 1506410198\nlicenseType: Pro\nNativeFormatImporte"
},
{
"path": "boids/Assets/MCMC3d/Resource/cube2.prefab",
"chars": 2312,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!1001 &100100000\nPrefab:\n m_ObjectHideFlags: 1\n serializedVersion: 2\n "
},
{
"path": "boids/Assets/MCMC3d/Resource/cube2.prefab.meta",
"chars": 209,
"preview": "fileFormatVersion: 2\nguid: 74465a10f47d96a4c81bd9376490b5bc\ntimeCreated: 1506410198\nlicenseType: Pro\nNativeFormatImporte"
},
{
"path": "boids/Assets/MCMC3d/Resource/cube3.prefab",
"chars": 2312,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!1001 &100100000\nPrefab:\n m_ObjectHideFlags: 1\n serializedVersion: 2\n "
},
{
"path": "boids/Assets/MCMC3d/Resource/cube3.prefab.meta",
"chars": 209,
"preview": "fileFormatVersion: 2\nguid: 791be81dcf30f634bb0dc7183db68fba\ntimeCreated: 1506410198\nlicenseType: Pro\nNativeFormatImporte"
},
{
"path": "boids/Assets/MCMC3d/Resource/cube4.prefab",
"chars": 2312,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!1001 &100100000\nPrefab:\n m_ObjectHideFlags: 1\n serializedVersion: 2\n "
},
{
"path": "boids/Assets/MCMC3d/Resource/cube4.prefab.meta",
"chars": 209,
"preview": "fileFormatVersion: 2\nguid: 11740c327a655ce4abd5f56050a04be7\ntimeCreated: 1506410198\nlicenseType: Pro\nNativeFormatImporte"
},
{
"path": "boids/Assets/MCMC3d/Resource/cube5.prefab",
"chars": 2312,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!1001 &100100000\nPrefab:\n m_ObjectHideFlags: 1\n serializedVersion: 2\n "
},
{
"path": "boids/Assets/MCMC3d/Resource/cube5.prefab.meta",
"chars": 209,
"preview": "fileFormatVersion: 2\nguid: 841558a07defbfa40bd2221d62bef6c7\ntimeCreated: 1506410198\nlicenseType: Pro\nNativeFormatImporte"
},
{
"path": "boids/Assets/MCMC3d/Resource/cube6.prefab",
"chars": 2312,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!1001 &100100000\nPrefab:\n m_ObjectHideFlags: 1\n serializedVersion: 2\n "
},
{
"path": "boids/Assets/MCMC3d/Resource/cube6.prefab.meta",
"chars": 209,
"preview": "fileFormatVersion: 2\nguid: 4f42e28c1fb4d2d46959f37588c9f20e\ntimeCreated: 1506410198\nlicenseType: Pro\nNativeFormatImporte"
},
{
"path": "boids/Assets/MCMC3d/Resource/cube7.prefab",
"chars": 2312,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!1001 &100100000\nPrefab:\n m_ObjectHideFlags: 1\n serializedVersion: 2\n "
},
{
"path": "boids/Assets/MCMC3d/Resource/cube7.prefab.meta",
"chars": 209,
"preview": "fileFormatVersion: 2\nguid: 2fc4bdd01bc821b43b493bced6769ea5\ntimeCreated: 1506410198\nlicenseType: Pro\nNativeFormatImporte"
},
{
"path": "boids/Assets/MCMC3d/Resource/cube8.prefab",
"chars": 2312,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!1001 &100100000\nPrefab:\n m_ObjectHideFlags: 1\n serializedVersion: 2\n "
},
{
"path": "boids/Assets/MCMC3d/Resource/cube8.prefab.meta",
"chars": 209,
"preview": "fileFormatVersion: 2\nguid: ff5f01e53f88ea04e9e70b598a7b10b9\ntimeCreated: 1506410198\nlicenseType: Pro\nNativeFormatImporte"
},
{
"path": "boids/Assets/MCMC3d/Resource/cube9.prefab",
"chars": 2312,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!1001 &100100000\nPrefab:\n m_ObjectHideFlags: 1\n serializedVersion: 2\n "
},
{
"path": "boids/Assets/MCMC3d/Resource/cube9.prefab.meta",
"chars": 209,
"preview": "fileFormatVersion: 2\nguid: d1f123a9e0654c04c97699baf941823b\ntimeCreated: 1506410198\nlicenseType: Pro\nNativeFormatImporte"
},
{
"path": "boids/Assets/MCMC3d/Resource/mat1.mat",
"chars": 1992,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n serializedVersion: 6\n m_ObjectHideFlags: 0\n m_"
},
{
"path": "boids/Assets/MCMC3d/Resource/mat1.mat.meta",
"chars": 207,
"preview": "fileFormatVersion: 2\nguid: d911826c90a9b6e42b13ab4fb52c5748\ntimeCreated: 1506410273\nlicenseType: Pro\nNativeFormatImporte"
},
{
"path": "boids/Assets/MCMC3d/Resource/mat2.mat",
"chars": 1992,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n serializedVersion: 6\n m_ObjectHideFlags: 0\n m_"
},
{
"path": "boids/Assets/MCMC3d/Resource/mat2.mat.meta",
"chars": 207,
"preview": "fileFormatVersion: 2\nguid: 13e6517da3c097040a92d892441f40bf\ntimeCreated: 1506410273\nlicenseType: Pro\nNativeFormatImporte"
},
{
"path": "boids/Assets/MCMC3d/Resource/mat3.mat",
"chars": 1992,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n serializedVersion: 6\n m_ObjectHideFlags: 0\n m_"
},
{
"path": "boids/Assets/MCMC3d/Resource/mat3.mat.meta",
"chars": 207,
"preview": "fileFormatVersion: 2\nguid: 9e7f4e829f556914aaf66dbb2f13bed6\ntimeCreated: 1506410273\nlicenseType: Pro\nNativeFormatImporte"
},
{
"path": "boids/Assets/MCMC3d/Resource/mat4.mat",
"chars": 1992,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n serializedVersion: 6\n m_ObjectHideFlags: 0\n m_"
},
{
"path": "boids/Assets/MCMC3d/Resource/mat4.mat.meta",
"chars": 207,
"preview": "fileFormatVersion: 2\nguid: 59cf4b93d0e26c541903e084c036a67f\ntimeCreated: 1506410273\nlicenseType: Pro\nNativeFormatImporte"
},
{
"path": "boids/Assets/MCMC3d/Resource/mat5.mat",
"chars": 2000,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n serializedVersion: 6\n m_ObjectHideFlags: 0\n m_"
},
{
"path": "boids/Assets/MCMC3d/Resource/mat5.mat.meta",
"chars": 207,
"preview": "fileFormatVersion: 2\nguid: 4386fcbd3cbcc604499d3a60ac7cb394\ntimeCreated: 1506410273\nlicenseType: Pro\nNativeFormatImporte"
},
{
"path": "boids/Assets/MCMC3d/Resource/mat6.mat",
"chars": 1992,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n serializedVersion: 6\n m_ObjectHideFlags: 0\n m_"
},
{
"path": "boids/Assets/MCMC3d/Resource/mat6.mat.meta",
"chars": 207,
"preview": "fileFormatVersion: 2\nguid: ac6bb11b9c3e68c4f8ab4f50f461710f\ntimeCreated: 1506410273\nlicenseType: Pro\nNativeFormatImporte"
},
{
"path": "boids/Assets/MCMC3d/Resource/mat7.mat",
"chars": 2001,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n serializedVersion: 6\n m_ObjectHideFlags: 0\n m_"
},
{
"path": "boids/Assets/MCMC3d/Resource/mat7.mat.meta",
"chars": 207,
"preview": "fileFormatVersion: 2\nguid: cc44d287bd5ee3344811e296f596845e\ntimeCreated: 1506410273\nlicenseType: Pro\nNativeFormatImporte"
},
{
"path": "boids/Assets/MCMC3d/Resource/mat8.mat",
"chars": 1996,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n serializedVersion: 6\n m_ObjectHideFlags: 0\n m_"
},
{
"path": "boids/Assets/MCMC3d/Resource/mat8.mat.meta",
"chars": 207,
"preview": "fileFormatVersion: 2\nguid: 989bea797fb8a554e819efdf5f309570\ntimeCreated: 1506410273\nlicenseType: Pro\nNativeFormatImporte"
},
{
"path": "boids/Assets/MCMC3d/Resource/mat9.mat",
"chars": 1996,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n serializedVersion: 6\n m_ObjectHideFlags: 0\n m_"
},
{
"path": "boids/Assets/MCMC3d/Resource/mat9.mat.meta",
"chars": 207,
"preview": "fileFormatVersion: 2\nguid: 4cf1fd6c5a0aa4d49b174eb758144ea9\ntimeCreated: 1506410273\nlicenseType: Pro\nNativeFormatImporte"
},
{
"path": "boids/Assets/MCMC3d/Resource.meta",
"chars": 191,
"preview": "fileFormatVersion: 2\nguid: e51b77ded794fed44aaca0b8ed3f6f8d\nfolderAsset: yes\ntimeCreated: 1507808604\nlicenseType: Pro\nDe"
},
{
"path": "boids/Assets/MCMC3d.meta",
"chars": 191,
"preview": "fileFormatVersion: 2\nguid: 8d08957b3610efb469ac874c895463bc\nfolderAsset: yes\ntimeCreated: 1507808603\nlicenseType: Pro\nDe"
},
{
"path": "boids/Assets/Plugins/Editor/JetBrains.meta",
"chars": 214,
"preview": "fileFormatVersion: 2\nguid: 70610607e4e488a4bbb130a15ddb2a95\nfolderAsset: yes\ntimeCreated: 1513927884\nlicenseType: Free\nD"
},
{
"path": "boids/Assets/Plugins/Editor.meta",
"chars": 214,
"preview": "fileFormatVersion: 2\nguid: 72f6da44cc69a13449ac538abfca88f5\nfolderAsset: yes\ntimeCreated: 1513927884\nlicenseType: Free\nD"
},
{
"path": "boids/Assets/Plugins.meta",
"chars": 214,
"preview": "fileFormatVersion: 2\nguid: 851a41224de96d440bd97b2cb2b4aabd\nfolderAsset: yes\ntimeCreated: 1513927884\nlicenseType: Free\nD"
},
{
"path": "boids/Assets/ProceduralModeling/Resources/Materials/Normal.mat",
"chars": 1999,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n serializedVersion: 6\n m_ObjectHideFlags: 0\n m_"
},
{
"path": "boids/Assets/ProceduralModeling/Resources/Materials/Normal.mat.meta",
"chars": 208,
"preview": "fileFormatVersion: 2\nguid: 275c1d7d7d5dd4e6da55f5e123ec6eb9\ntimeCreated: 1504942032\nlicenseType: Free\nNativeFormatImport"
},
{
"path": "boids/Assets/ProceduralModeling/Resources/Materials/ProceduralTreeNormal.mat",
"chars": 2025,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n serializedVersion: 6\n m_ObjectHideFlags: 0\n m_"
},
{
"path": "boids/Assets/ProceduralModeling/Resources/Materials/ProceduralTreeNormal.mat.meta",
"chars": 208,
"preview": "fileFormatVersion: 2\nguid: 4ca5d3ed8d95b47e4aed998976ea76a9\ntimeCreated: 1505878968\nlicenseType: Free\nNativeFormatImport"
},
{
"path": "boids/Assets/ProceduralModeling/Resources/Materials/ProceduralTreeStandard.mat",
"chars": 2027,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n serializedVersion: 6\n m_ObjectHideFlags: 0\n m_"
},
{
"path": "boids/Assets/ProceduralModeling/Resources/Materials/ProceduralTreeStandard.mat.meta",
"chars": 208,
"preview": "fileFormatVersion: 2\nguid: dddbdc46c2ca042d988c5981008d110c\ntimeCreated: 1505878968\nlicenseType: Free\nNativeFormatImport"
},
{
"path": "boids/Assets/ProceduralModeling/Resources/Materials/ProceduralTreeUV.mat",
"chars": 2021,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n serializedVersion: 6\n m_ObjectHideFlags: 0\n m_"
},
{
"path": "boids/Assets/ProceduralModeling/Resources/Materials/ProceduralTreeUV.mat.meta",
"chars": 208,
"preview": "fileFormatVersion: 2\nguid: 07b5408875ec940efbf0ecdb26d0c942\ntimeCreated: 1505878968\nlicenseType: Free\nNativeFormatImport"
},
{
"path": "boids/Assets/ProceduralModeling/Resources/Materials/Standard.mat",
"chars": 2241,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n serializedVersion: 6\n m_ObjectHideFlags: 0\n m_"
},
{
"path": "boids/Assets/ProceduralModeling/Resources/Materials/Standard.mat.meta",
"chars": 208,
"preview": "fileFormatVersion: 2\nguid: a7f687302dcad4d8996934b8e1c6e18f\ntimeCreated: 1504942032\nlicenseType: Free\nNativeFormatImport"
},
{
"path": "boids/Assets/ProceduralModeling/Resources/Materials/UV.mat",
"chars": 1995,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n serializedVersion: 6\n m_ObjectHideFlags: 0\n m_"
},
{
"path": "boids/Assets/ProceduralModeling/Resources/Materials/UV.mat.meta",
"chars": 208,
"preview": "fileFormatVersion: 2\nguid: 37831db14348f4024a9e4b76029287d2\ntimeCreated: 1504942032\nlicenseType: Free\nNativeFormatImport"
},
{
"path": "boids/Assets/ProceduralModeling/Resources/Materials.meta",
"chars": 192,
"preview": "fileFormatVersion: 2\nguid: a7ac953cb67b84b9c9a4de4ad5d1ce5e\nfolderAsset: yes\ntimeCreated: 1504939354\nlicenseType: Free\nD"
},
{
"path": "boids/Assets/ProceduralModeling/Resources.meta",
"chars": 192,
"preview": "fileFormatVersion: 2\nguid: 366de83e68aeb401f88ca23e092d915e\nfolderAsset: yes\ntimeCreated: 1505015883\nlicenseType: Free\nD"
},
{
"path": "boids/Assets/ProceduralModeling/Scenes/Cylinder.unity",
"chars": 44752,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!29 &1\nOcclusionCullingSettings:\n m_ObjectHideFlags: 0\n serializedVersi"
},
{
"path": "boids/Assets/ProceduralModeling/Scenes/Cylinder.unity.meta",
"chars": 175,
"preview": "fileFormatVersion: 2\nguid: d325521c42fb346b09e89c7d7594d5bb\ntimeCreated: 1504939343\nlicenseType: Free\nDefaultImporter:\n "
},
{
"path": "boids/Assets/ProceduralModeling/Scenes/LSystem.unity",
"chars": 8205,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!29 &1\nOcclusionCullingSettings:\n m_ObjectHideFlags: 0\n serializedVersi"
},
{
"path": "boids/Assets/ProceduralModeling/Scenes/LSystem.unity.meta",
"chars": 175,
"preview": "fileFormatVersion: 2\nguid: dd3a32b95ba3c4652a9de904a342032c\ntimeCreated: 1504939343\nlicenseType: Free\nDefaultImporter:\n "
},
{
"path": "boids/Assets/ProceduralModeling/Scenes/ParametricPlane.unity",
"chars": 33958,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!29 &1\nOcclusionCullingSettings:\n m_ObjectHideFlags: 0\n serializedVersi"
},
{
"path": "boids/Assets/ProceduralModeling/Scenes/ParametricPlane.unity.meta",
"chars": 175,
"preview": "fileFormatVersion: 2\nguid: 2cb10dec7677246f79f562b2291208b1\ntimeCreated: 1504939343\nlicenseType: Free\nDefaultImporter:\n "
},
{
"path": "boids/Assets/ProceduralModeling/Scenes/Plane.unity",
"chars": 36898,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!29 &1\nOcclusionCullingSettings:\n m_ObjectHideFlags: 0\n serializedVersi"
},
{
"path": "boids/Assets/ProceduralModeling/Scenes/Plane.unity.meta",
"chars": 175,
"preview": "fileFormatVersion: 2\nguid: 689191e622ea642238d728c46c22b520\ntimeCreated: 1504939343\nlicenseType: Free\nDefaultImporter:\n "
},
{
"path": "boids/Assets/ProceduralModeling/Scenes/ProceduralTree.unity",
"chars": 4203360,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!29 &1\nOcclusionCullingSettings:\n m_ObjectHideFlags: 0\n serializedVersi"
},
{
"path": "boids/Assets/ProceduralModeling/Scenes/ProceduralTree.unity.meta",
"chars": 175,
"preview": "fileFormatVersion: 2\nguid: eaac7534a80dd4aee93e2aa28c0357af\ntimeCreated: 1504939343\nlicenseType: Free\nDefaultImporter:\n "
},
{
"path": "boids/Assets/ProceduralModeling/Scenes/Quad.unity",
"chars": 21709,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!29 &1\nOcclusionCullingSettings:\n m_ObjectHideFlags: 0\n serializedVersi"
},
{
"path": "boids/Assets/ProceduralModeling/Scenes/Quad.unity.meta",
"chars": 175,
"preview": "fileFormatVersion: 2\nguid: 0fc531866f11c4f1dbec96e05a1fe99f\ntimeCreated: 1504939343\nlicenseType: Free\nDefaultImporter:\n "
},
{
"path": "boids/Assets/ProceduralModeling/Scenes/Tubular.unity",
"chars": 122059,
"preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!29 &1\nOcclusionCullingSettings:\n m_ObjectHideFlags: 0\n serializedVersi"
},
{
"path": "boids/Assets/ProceduralModeling/Scenes/Tubular.unity.meta",
"chars": 175,
"preview": "fileFormatVersion: 2\nguid: 1263100e0cbb9413980fb078bce860b7\ntimeCreated: 1504939343\nlicenseType: Free\nDefaultImporter:\n "
},
{
"path": "boids/Assets/ProceduralModeling/Scenes.meta",
"chars": 192,
"preview": "fileFormatVersion: 2\nguid: 28e4bc25467e6438a8eb0e41a1d14fb4\nfolderAsset: yes\ntimeCreated: 1504939335\nlicenseType: Free\nD"
}
]
// ... and 123 more files (download for full content)
About this extraction
This page contains the full source code of the kitasenjudesign/UnityGpuInstancing GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 323 files (17.8 MB), approximately 4.7M tokens, and a symbol index with 170 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.